to.etc.domui.component.menu
Class MenuManager

java.lang.Object
  extended by to.etc.domui.component.menu.MenuManager

public final class MenuManager
extends java.lang.Object

The singleton which maintains the full system menu and all personal copies.

Author:
Frits Jalvingh Created on Apr 3, 2009

Field Summary
static java.util.Comparator<IMenuItem> C_BY_ORDER_AND_CHILDREN
           
 
Method Summary
 java.util.List<IMenuItem> createUserMenu(IMenuItemFilter filter)
          Creates a filtered and possibly reordered user menu.
static MenuManager getInstance()
           
 java.util.List<IMenuItem> getRootMenu()
          Return the global central menu.
 MenuItemImpl registerMenuItem(BundleRef bundle, java.lang.String keyBase)
          Registers a menu item with your own texts overriding the page's texts.
 MenuItemImpl registerMenuItem(BundleRef bundle, java.lang.String keyBase, java.lang.Class<? extends UrlPage> pageClass, java.lang.Object... parameters)
          Registers a menu item.
 MenuItemImpl registerMenuItem(BundleRef bundle, java.lang.String labelkey, java.lang.String titlekey, java.lang.String desckey, java.lang.String searchKey)
          Plugin-based registration of menu items.
 MenuItemImpl registerMenuItem(java.lang.Class<? extends UrlPage> pageClass, java.lang.Object... parameters)
          Registers a new menu item.
 MenuItemImpl registerSubMenu(BundleRef bundle, java.lang.String keyBase)
          Registers a ROOT submenu (can be other level if one of the setLocation() calls gets called after this).
 MenuItemImpl registerSubMenu(BundleRef bundle, java.lang.String keyBase, MenuItemImpl parent, int order)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

C_BY_ORDER_AND_CHILDREN

public static final java.util.Comparator<IMenuItem> C_BY_ORDER_AND_CHILDREN
Method Detail

getInstance

public static MenuManager getInstance()

registerMenuItem

public MenuItemImpl registerMenuItem(BundleRef bundle,
                                     java.lang.String labelkey,
                                     java.lang.String titlekey,
                                     java.lang.String desckey,
                                     java.lang.String searchKey)
Plugin-based registration of menu items.

Parameters:
msgbase -
labelkey -
desckey -
Returns:

registerMenuItem

public MenuItemImpl registerMenuItem(BundleRef bundle,
                                     java.lang.String keyBase)
Registers a menu item with your own texts overriding the page's texts. The title key, label key, description key and search key all start with the specified name; the actual key for each item is formed by adding .label, .desc, .title and .search after this initial key.

Parameters:
bundle -
keyBase -
Returns:

registerMenuItem

public MenuItemImpl registerMenuItem(BundleRef bundle,
                                     java.lang.String keyBase,
                                     java.lang.Class<? extends UrlPage> pageClass,
                                     java.lang.Object... parameters)
Registers a menu item.

Parameters:
bundle -
keyBase -
pageClass -
parameters -
Returns:

registerMenuItem

public MenuItemImpl registerMenuItem(java.lang.Class<? extends UrlPage> pageClass,
                                     java.lang.Object... parameters)
Registers a new menu item. All menu data is obtained from the UrlPage's metadata.

Parameters:
pageClass -
parameters -
Returns:

registerSubMenu

public MenuItemImpl registerSubMenu(BundleRef bundle,
                                    java.lang.String keyBase)
Registers a ROOT submenu (can be other level if one of the setLocation() calls gets called after this).

Returns:

registerSubMenu

public MenuItemImpl registerSubMenu(BundleRef bundle,
                                    java.lang.String keyBase,
                                    MenuItemImpl parent,
                                    int order)
Parameters:
bundle -
keyBase -
parent -
order -
Returns:

getRootMenu

public java.util.List<IMenuItem> getRootMenu()
Return the global central menu. This is the menu in the structure as specified by the system, and without any per-person modification. It always consists entirely of MenuItemImpl nodes. This checks to see if new menu registrations are available and if so creates a new copy of the menu containing those new items.

Returns:

createUserMenu

public java.util.List<IMenuItem> createUserMenu(IMenuItemFilter filter)
                                         throws java.lang.Exception
Creates a filtered and possibly reordered user menu.

Parameters:
filter -
Returns:
Throws:
java.lang.Exception