private void addItems(MenuBar.MenuItem currentMenuItem, MenuItem currentParent, List<VertexRef> targets, OperationContext operationContext, List<Runnable> hooks) { if (currentMenuItem != null) { // Now add children List<MenuItem> childItems = new ArrayList<>(currentParent.getChildren()); Collections.sort(childItems); String prevGroup = null; MenuBar.MenuItem prevMenuItem = null; for (MenuItem eachChild : childItems) { // add Separators between groups if the previous group changed and we added an element // (otherwise we may end up having multiple separators) String currentGroup = getGroupForLabel(eachChild.getLabel(), getSubmenuOrderList(currentParent)); if (prevGroup != null && prevMenuItem != null && !prevGroup.equals(currentGroup)) { currentMenuItem.addSeparator(); } prevGroup = currentGroup; prevMenuItem = addItem(() -> currentMenuItem.addItem(removeLabelProperties(eachChild.getLabel()), null), eachChild, targets, operationContext, hooks); // add children addItems(prevMenuItem, eachChild, targets, operationContext, hooks); } } }
private void addItems(MenuBar.MenuItem currentMenuItem, MenuItem currentParent, List<VertexRef> targets, OperationContext operationContext, List<Runnable> hooks) { if (currentMenuItem != null) { // Now add children List<MenuItem> childItems = new ArrayList<>(currentParent.getChildren()); Collections.sort(childItems); String prevGroup = null; MenuBar.MenuItem prevMenuItem = null; for (MenuItem eachChild : childItems) { // add Separators between groups if the previous group changed and we added an element // (otherwise we may end up having multiple separators) String currentGroup = getGroupForLabel(eachChild.getLabel(), getSubmenuOrderList(currentParent)); if (prevGroup != null && prevMenuItem != null && !prevGroup.equals(currentGroup)) { currentMenuItem.addSeparator(); } prevGroup = currentGroup; prevMenuItem = addItem(() -> currentMenuItem.addItem(removeLabelProperties(eachChild.getLabel()), null), eachChild, targets, operationContext, hooks); // add children addItems(prevMenuItem, eachChild, targets, operationContext, hooks); } } }
menuHistory.addSeparator(); for (int i = 0; i < 15; i++) menuHistory.addItem("", new MenuBar.Command() { menuUser.addSeparator(); menuHelp = menuUser.addItem(MNls.find(this, "menu.help=Help"), new MenuBar.Command() { private static final long serialVersionUID = 1L; menuUser.addSeparator();
root.addSeparator(); root.addItem("Close", new Command()
menuSpaces.addSeparator(); menuSpaces.addSeparator();
mainMenuItem.setStyleName("title-menu-item"); mainMenuItem.addItem("About", selectedItem -> onMenuAbout()); mainMenuItem.addSeparator(); mainMenuItem.addItem("Exit", selectedItem -> onWindowExit());
private static void merge(MenuBar.MenuItem target, MenuBar.MenuItem source, List<MenuBar.MenuItem> added) { if (source.hasChildren()) { List<MenuBar.MenuItem> targetItems = target.getChildren(); for (MenuBar.MenuItem sourceItem:source.getChildren()) { if (sourceItem.isSeparator()) { target.addSeparator(); } else { MenuBar.MenuItem targetItem = findItem(sourceItem.getText(),targetItems); if (targetItem == null) { targetItem = target.addItem(sourceItem.getText(), sourceItem.getCommand()); fixMenuItem(targetItem,sourceItem); added.add(targetItem); } merge(targetItem,sourceItem,added); } } } } private static void fixMenuItem(MenuBar.MenuItem targetItem, MenuBar.MenuItem sourceItem)
public MenuItem addSeparator() { return rootItem.addSeparator(); }