private MenuEntry getMenuEntry(final MenuEntry parent, final MenuItemDef menuItemDef) { if (parent.menuItemDef == menuItemDef) { return parent; } if (parent.hasSubMenuEntries() == true) { for (final MenuEntry subMenuEntry : parent.getSubMenuEntries()) { final MenuEntry result = getMenuEntry(subMenuEntry, menuItemDef); if (result != null) { return result; } } } return null; }
public void addMenuEntry(final MenuEntry menuEntry) { MenuEntry parent = menuEntry.getParent(); if (parent == null) { final MenuItemDef parentItemDef = menuEntry.getParentMenuItemDef(); if (parentItemDef == null) { parent = rootMenuEntry; } else { parent = getMenuEntry(parentItemDef); if (parent == null) { log.error("Oups, can't find parent menu item: " + parentItemDef.getId()); parent = rootMenuEntry; } } } parent.addMenuEntry(menuEntry); }
// filters out non-acceleratable menu entries @SuppressWarnings("rawtypes") private static void addAcceleratableChildrenRecursively( final DefaultMutableTreeNode target, final Enumeration sourceChildren) { while (sourceChildren.hasMoreElements()) { final DefaultMutableTreeNode sourceChild = (DefaultMutableTreeNode) sourceChildren.nextElement(); final MenuEntry menuEntry = (MenuEntry) sourceChild.getUserObject(); if (sourceChild.isLeaf()) { if (menuEntry.getKeyStroke() != null) { target.add(new DefaultMutableTreeNode(menuEntry)); } } else { final DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(menuEntry); target.add(newNode); MenuUtils.addAcceleratableChildrenRecursively(newNode, sourceChild.children()); if (newNode.isLeaf()) { target.remove(newNode); } } } }
private static NodeModel insertAsNodeModel( final NodeModel nodeModel, final DefaultMutableTreeNode treeNode, final MapController mapController) { final MenuEntry menuEntry = (MenuEntry) treeNode.getUserObject(); final String text = menuEntry.getKeyStroke() == null ? menuEntry.getLabel() : menuEntry.getLabel() + ": " + MenuUtils.formatKeyStroke(menuEntry.getKeyStroke()); final NodeModel newNodeModel = mapController.newNode(text, nodeModel.getMap()); if (!treeNode.isLeaf()) { newNodeModel.setFolded(true); } if (menuEntry.getIconKey() != null) { final MindIcon mindIcon = menuEntry.createMindIcon(); if (mindIcon != null) newNodeModel.addIcon(mindIcon); } nodeModel.insert(newNodeModel); return newNodeModel; }
public MenuEntry findById(final String id) { return rootMenuEntry.findById(id); }
public Collection<MenuEntry> getMenuEntries() { return rootMenuEntry.getSubMenuEntries(); }