org.apache.jetspeed.portalsite.impl
Class MenuImpl

java.lang.Object
  extended by org.apache.jetspeed.portalsite.impl.MenuElementImpl
      extended by org.apache.jetspeed.portalsite.impl.MenuImpl
All Implemented Interfaces:
Cloneable, org.apache.jetspeed.portalsite.Menu, org.apache.jetspeed.portalsite.MenuElement

public class MenuImpl
extends MenuElementImpl
implements org.apache.jetspeed.portalsite.Menu, Cloneable

This class implements the portal-site menu elements constructed and returned to decorators.

Version:
$Id: MenuImpl.java 516448 2007-03-09 16:25:47Z ate $
Author:
Randy Watler

Field Summary
private  org.apache.jetspeed.om.folder.MenuDefinition definition
          definition - menu definition
private  boolean elementRelative
          elementRelative - flag that indicates whether any relative paths dependent on the current page in context were referenced while constructing menu elements: requires request, not session, caching
private  List elements
          elements - ordered list of menu elements that make up this instaniated menu
 
Fields inherited from interface org.apache.jetspeed.portalsite.MenuElement
MENU_ELEMENT_TYPE, OPTION_ELEMENT_TYPE, SEPARATOR_ELEMENT_TYPE
 
Constructor Summary
MenuImpl(org.apache.jetspeed.om.folder.MenuDefinition definition, PortalSiteRequestContextImpl context, Set menus)
          MenuImpl - request/session context dependent constructor
MenuImpl(MenuImpl parent, org.apache.jetspeed.om.folder.MenuDefinition definition, PortalSiteRequestContextImpl context, Set menus)
          MenuImpl - request/session context dependent constructor
 
Method Summary
private  void appendMenuElement(MenuElementImpl appendMenuElement, List menuElements)
          appendMenuElement - append to ordered list of unique menu option/menu elements
private  void appendMenuElementProxies(org.apache.jetspeed.page.document.Node pathProxy, List elementProxies)
          appendMenuElementProxies - append to ordered list of unique menu element proxies
private  void appendMenuElements(List appendMenuElements, List menuElements)
          appendMenuElements - append to ordered list of unique menu option/menu elements
 Object clone()
          clone - clone this instance
private  List constructMenuElements(PortalSiteRequestContextImpl context, SiteView view, String options, List overrideElementProxies, int depth, boolean paths, boolean regexp, String locatorName, String order)
          constructMenuElements - construct ordered list of menu elements in context/site view using specified element selection parameters; also sets up the elementRelative flag while constructing the menu elements
 List getElements()
          getElements - get ordered list of menu elements that are members of this menu; possibly contains options, nested menus, or separators
 String getElementType()
          getElementType - get type of menu element
 org.apache.jetspeed.om.common.GenericMetadata getMetadata()
          getMetadata - get generic metadata for menu element
 String getName()
          getName - get name of menu
 org.apache.jetspeed.portalsite.MenuElement getSelectedElement(org.apache.jetspeed.portalsite.PortalSiteRequestContext context)
          getSelectedElement - return selected option or nested menu within this menu selected by the specified request context
 String getShortTitle()
          getShortTitle - get default short title for menu element
 String getShortTitle(Locale locale)
          getShortTitle - get locale specific short title for menu element from metadata
 String getSkin()
          getSkin - get skin name for menu element
 String getTitle()
          getTitle - get default title for menu element
 String getTitle(Locale locale)
          getTitle - get locale specific title for menu element from metadata
 String getUrl()
          getUrl - get url of top level folder that defined menu options; only available for menus defined without multiple options, nested menus, or separators
 boolean isElementRelative()
          isElementRelative - get flag that indicates whether any relative paths dependent on the current page in context were referenced while constructing menu elements
 boolean isEmpty()
          isEmpty - get empty state of list of menu elements
 boolean isHidden()
          isHidden - get hidden state of folder that defined menu options; only available for menus defined without multiple options, nested menus, or separators
 boolean isSelected(org.apache.jetspeed.portalsite.PortalSiteRequestContext context)
          isSelected - return true if an option or nested menu within this menu are selected by the specified request context
private static String orderRegexpPattern(String regexp)
          orderRegexpPattern - tests for and converts simple order wildcard and character class regular exressions to perl5/standard java pattern syntax
private  void removeMenuElements(List removeMenuElements, List menuElements)
          removeMenuElements - remove from ordered list of unique menu option/menu elements
 
Methods inherited from class org.apache.jetspeed.portalsite.impl.MenuElementImpl
equals, getNode, getParentMenu, setNode, setParentMenu
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.jetspeed.portalsite.MenuElement
getParentMenu
 

Field Detail

definition

private org.apache.jetspeed.om.folder.MenuDefinition definition
definition - menu definition


elements

private List elements
elements - ordered list of menu elements that make up this instaniated menu


elementRelative

private boolean elementRelative
elementRelative - flag that indicates whether any relative paths dependent on the current page in context were referenced while constructing menu elements: requires request, not session, caching

Constructor Detail

MenuImpl

public MenuImpl(MenuImpl parent,
                org.apache.jetspeed.om.folder.MenuDefinition definition,
                PortalSiteRequestContextImpl context,
                Set menus)
MenuImpl - request/session context dependent constructor

Parameters:
parent - containing menu implementation
definition - menu definition
context - request context
menus - related menu definition names set

MenuImpl

public MenuImpl(org.apache.jetspeed.om.folder.MenuDefinition definition,
                PortalSiteRequestContextImpl context,
                Set menus)
MenuImpl - request/session context dependent constructor

Parameters:
definition - menu definition
context - request context
menus - related menu definition names set
Method Detail

appendMenuElement

private void appendMenuElement(MenuElementImpl appendMenuElement,
                               List menuElements)
appendMenuElement - append to ordered list of unique menu option/menu elements

Parameters:
appendMenuElement - option/menu element to append
menuElements - option/menu element list

appendMenuElements

private void appendMenuElements(List appendMenuElements,
                                List menuElements)
appendMenuElements - append to ordered list of unique menu option/menu elements

Parameters:
appendMenuElements - option/menu element list to append
menuElements - option/menu element list

removeMenuElements

private void removeMenuElements(List removeMenuElements,
                                List menuElements)
removeMenuElements - remove from ordered list of unique menu option/menu elements

Parameters:
removeMenuElements - option/menu element list to remove
menuElements - option/menu element list

constructMenuElements

private List constructMenuElements(PortalSiteRequestContextImpl context,
                                   SiteView view,
                                   String options,
                                   List overrideElementProxies,
                                   int depth,
                                   boolean paths,
                                   boolean regexp,
                                   String locatorName,
                                   String order)
constructMenuElements - construct ordered list of menu elements in context/site view using specified element selection parameters; also sets up the elementRelative flag while constructing the menu elements

Parameters:
context - request context
view - context site view
options - option paths specification
overrideElementProxies - override menu element node proxies
depth - inclusion depth
paths - paths elements flag
regexp - regexp flag
locatorName - profile locator name
order - ordering patterns list

appendMenuElementProxies

private void appendMenuElementProxies(org.apache.jetspeed.page.document.Node pathProxy,
                                      List elementProxies)
appendMenuElementProxies - append to ordered list of unique menu element proxies

Parameters:
pathProxy - menu element page, folder, or link proxy at path
elementProxies - element proxies list

clone

public Object clone()
             throws CloneNotSupportedException
clone - clone this instance

Overrides:
clone in class MenuElementImpl
Returns:
unparented deep copy
Throws:
CloneNotSupportedException

getElementType

public String getElementType()
getElementType - get type of menu element

Specified by:
getElementType in interface org.apache.jetspeed.portalsite.MenuElement
Specified by:
getElementType in class MenuElementImpl
Returns:
MENU_ELEMENT_TYPE

getName

public String getName()
getName - get name of menu

Specified by:
getName in interface org.apache.jetspeed.portalsite.Menu
Overrides:
getName in class MenuElementImpl
Returns:
menu name

getTitle

public String getTitle()
getTitle - get default title for menu element

Specified by:
getTitle in interface org.apache.jetspeed.portalsite.MenuElement
Overrides:
getTitle in class MenuElementImpl
Returns:
title text

getShortTitle

public String getShortTitle()
getShortTitle - get default short title for menu element

Specified by:
getShortTitle in interface org.apache.jetspeed.portalsite.MenuElement
Overrides:
getShortTitle in class MenuElementImpl
Returns:
short title text

getTitle

public String getTitle(Locale locale)
getTitle - get locale specific title for menu element from metadata

Specified by:
getTitle in interface org.apache.jetspeed.portalsite.MenuElement
Overrides:
getTitle in class MenuElementImpl
Parameters:
locale - preferred locale
Returns:
title text

getShortTitle

public String getShortTitle(Locale locale)
getShortTitle - get locale specific short title for menu element from metadata

Specified by:
getShortTitle in interface org.apache.jetspeed.portalsite.MenuElement
Overrides:
getShortTitle in class MenuElementImpl
Parameters:
locale - preferred locale
Returns:
short title text

getMetadata

public org.apache.jetspeed.om.common.GenericMetadata getMetadata()
getMetadata - get generic metadata for menu element

Specified by:
getMetadata in interface org.apache.jetspeed.portalsite.MenuElement
Overrides:
getMetadata in class MenuElementImpl
Returns:
metadata

getSkin

public String getSkin()
getSkin - get skin name for menu element

Specified by:
getSkin in interface org.apache.jetspeed.portalsite.MenuElement
Overrides:
getSkin in class MenuElementImpl
Returns:
skin name

getUrl

public String getUrl()
getUrl - get url of top level folder that defined menu options; only available for menus defined without multiple options, nested menus, or separators

Specified by:
getUrl in interface org.apache.jetspeed.portalsite.Menu
Overrides:
getUrl in class MenuElementImpl
Returns:
folder url

isHidden

public boolean isHidden()
isHidden - get hidden state of folder that defined menu options; only available for menus defined without multiple options, nested menus, or separators

Specified by:
isHidden in interface org.apache.jetspeed.portalsite.Menu
Returns:
hidden state

isSelected

public boolean isSelected(org.apache.jetspeed.portalsite.PortalSiteRequestContext context)
isSelected - return true if an option or nested menu within this menu are selected by the specified request context

Specified by:
isSelected in interface org.apache.jetspeed.portalsite.Menu
Parameters:
context - request context
Returns:
selected state

getElements

public List getElements()
getElements - get ordered list of menu elements that are members of this menu; possibly contains options, nested menus, or separators

Specified by:
getElements in interface org.apache.jetspeed.portalsite.Menu
Returns:
menu elements list

isEmpty

public boolean isEmpty()
isEmpty - get empty state of list of menu elements

Specified by:
isEmpty in interface org.apache.jetspeed.portalsite.Menu
Returns:
menu elements list empty state

isElementRelative

public boolean isElementRelative()
isElementRelative - get flag that indicates whether any relative paths dependent on the current page in context were referenced while constructing menu elements

Returns:
relative element status

getSelectedElement

public org.apache.jetspeed.portalsite.MenuElement getSelectedElement(org.apache.jetspeed.portalsite.PortalSiteRequestContext context)
getSelectedElement - return selected option or nested menu within this menu selected by the specified request context

Specified by:
getSelectedElement in interface org.apache.jetspeed.portalsite.Menu
Returns:
selected menu element

orderRegexpPattern

private static String orderRegexpPattern(String regexp)
orderRegexpPattern - tests for and converts simple order wildcard and character class regular exressions to perl5/standard java pattern syntax

Parameters:
regexp - - candidate order regular expression
Returns:
- converted pattern


Copyright © 1999-2007 Apache Software Foundation. All Rights Reserved.