Package org.opencms.ui.contextmenu
Class CmsContextMenuTreeBuilder
- java.lang.Object
-
- org.opencms.ui.contextmenu.CmsContextMenuTreeBuilder
-
public class CmsContextMenuTreeBuilder extends java.lang.Object
Helper class for building context menus from the list of available context menu items.
-
-
Constructor Summary
Constructors Constructor Description CmsContextMenuTreeBuilder(I_CmsDialogContext context)
Creates a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description CmsTreeNode<I_CmsContextMenuItem>
buildAll(java.util.List<I_CmsContextMenuItem> availableItems)
Builds the complete context menu from the given available items.CmsTreeNode<I_CmsContextMenuItem>
buildTree(java.util.List<I_CmsContextMenuItem> items)
Builds a tree from a list of available context menu items.java.util.List<I_CmsContextMenuItem>
filterVisible(java.util.List<I_CmsContextMenuItem> items)
Filters out invisible context menu items from a given list.I_CmsContextMenuItem
getDefaultActionItem()
Returns the default action item if available.CmsMenuItemVisibilityMode
getVisibility(I_CmsContextMenuItem item)
Gets the visibility for a given item (cached, if possible).void
removeEmptySubtrees(CmsTreeNode<I_CmsContextMenuItem> root)
Recursively remove subtrees (destructively!) which do not contain any 'leaf' context menu items.
-
-
-
Constructor Detail
-
CmsContextMenuTreeBuilder
public CmsContextMenuTreeBuilder(I_CmsDialogContext context)
Creates a new instance.- Parameters:
context
- the dialog context
-
-
Method Detail
-
buildAll
public CmsTreeNode<I_CmsContextMenuItem> buildAll(java.util.List<I_CmsContextMenuItem> availableItems)
Builds the complete context menu from the given available items.- Parameters:
availableItems
- the available items- Returns:
- the complete context menu
-
buildTree
public CmsTreeNode<I_CmsContextMenuItem> buildTree(java.util.List<I_CmsContextMenuItem> items)
Builds a tree from a list of available context menu items.The root node of the returned tree has no useful data, its child nodes correspond to the top-level entries of the ccontext menu.
- Parameters:
items
- the available context menu items- Returns:
- the context menu item tree
-
filterVisible
public java.util.List<I_CmsContextMenuItem> filterVisible(java.util.List<I_CmsContextMenuItem> items)
Filters out invisible context menu items from a given list.- Parameters:
items
- the items- Returns:
- the list of context menu items
-
getDefaultActionItem
public I_CmsContextMenuItem getDefaultActionItem()
Returns the default action item if available.Only available once
buildTree(List)
orbuildAll(List)
has been executed.- Returns:
- the default action item
-
getVisibility
public CmsMenuItemVisibilityMode getVisibility(I_CmsContextMenuItem item)
Gets the visibility for a given item (cached, if possible).- Parameters:
item
- the item- Returns:
- the visibility of that item
-
removeEmptySubtrees
public void removeEmptySubtrees(CmsTreeNode<I_CmsContextMenuItem> root)
Recursively remove subtrees (destructively!) which do not contain any 'leaf' context menu items.- Parameters:
root
- the root of the tree to process
-
-