if (hasChildren() && itsChildren.contains(itemToAddBefore)) { int index = itsChildren.indexOf(itemToAddBefore); newItem = new MenuItem(caption, icon, command);
found = (clickedId == tmpItem.getId()); if (tmpItem.hasChildren()) { for (MenuItem i : tmpItem.getChildren()) { items.push(i);
/** * Sets the checkable state of the item. If an item is checkable its * checked state (as returned by {@link #isChecked()}) is indicated in * the UI. * * <p> * An item is not checkable by default. * </p> * * <p> * Items with sub items cannot be checkable. * </p> * * @param checkable * true if the item should be checkable, false otherwise * @throws IllegalStateException * If the item has children * @since 6.6.2 */ public void setCheckable(boolean checkable) throws IllegalStateException { if (hasChildren()) { throw new IllegalStateException( "A menu item with children cannot be checkable"); } this.checkable = checkable; markAsDirty(); }
private static void merge(MenuBar.MenuItem target, MenuBar.MenuItem source, List<MenuBar.MenuItem> added) if (source.hasChildren())
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)
private static void clean(MenuBar.MenuItem target, List<MenuBar.MenuItem> added) { if (target.hasChildren()) { List<MenuBar.MenuItem> items = target.getChildren(); for (MenuBar.MenuItem r:added) { for (MenuBar.MenuItem targetItem:items) { if (r.getId()==targetItem.getId()) { items.remove(r); break; } } } for (MenuBar.MenuItem targetItem:items) { clean(targetItem,added); } } } }
private static void clean(MenuBar.MenuItem target, List<MenuBar.MenuItem> added) { if (target.hasChildren()) { List<MenuBar.MenuItem> items = target.getChildren(); for (MenuBar.MenuItem r:added) { for (MenuBar.MenuItem targetItem:items) { if (r.getId()==targetItem.getId()) { items.remove(r); break; } } } for (MenuBar.MenuItem targetItem:items) { clean(targetItem,added); } } } }
private void addItems(ItemAddBehaviour<com.vaadin.contextmenu.MenuItem> behaviour, MenuBar.MenuItem child) { com.vaadin.contextmenu.MenuItem contextMenuItem = behaviour.addItem(); contextMenuItem.setEnabled(child.isEnabled()); if (child.isSeparator()) { contextMenuItem.addSeparator(); } if (child.getCommand() != null) { contextMenuItem.setCommand((Command) contextMenuItemClickEvent -> child.getCommand().menuSelected(child)); } if (child.hasChildren()) { for (MenuBar.MenuItem eachChild : child.getChildren()) { addItems(() -> contextMenuItem.addItem( eachChild.getText(), eachChild.getIcon(), (Command) selectedItem -> { if (eachChild.getCommand() != null) { eachChild.getCommand().menuSelected(eachChild); } }), eachChild); } } }
@Override public boolean hasChildren() { return delegateItem.hasChildren(); }
private void addItems(ItemAddBehaviour<ContextMenuItem> behaviour, MenuBar.MenuItem child) { ContextMenuItem contextMenuItem = behaviour.addItem(); contextMenuItem.setEnabled(child.isEnabled()); contextMenuItem.setSeparatorVisible(child.isSeparator()); if (child.getCommand() != null) { contextMenuItem.addItemClickListener(contextMenuItemClickEvent -> child.getCommand().menuSelected(child)); } if (child.hasChildren()) { for (MenuBar.MenuItem eachChild : child.getChildren()) { addItems(() -> contextMenuItem.addItem(eachChild.getText(), eachChild.getIcon()), eachChild); } } }
public void open(int x, int y) { if (rootItem.hasChildren()) { getRpcProxy(ContextMenuClientRpc.class).showContextMenu(x, y); } }
item.isChecked()); if (item.hasChildren()) { for (MenuItem child : item.getChildren()) { paintItem(target, child);
if (item.hasChildren()) { for (MenuItem subMenu : item.getChildren()) { menuElement.appendChild(createMenuElement(subMenu, context));