itsChildren.add(index, newItem); } else { newItem = addItem(caption, icon, command);
@Override public MenuItem create(MenuItem parentNode, @Nonnull UserSitemapNode sourceNode) { checkNotNull(sourceNode); checkNotNull(captionReader, "This implementation requires a caption reader"); MenuItem newTargetNode = null; if (parentNode == null) { newTargetNode = menuBar.addItem(captionReader.getCaption(sourceNode), null); } else { newTargetNode = parentNode.addItem(captionReader.getCaption(sourceNode), null); } targetLookup.put(newTargetNode, sourceNode); return newTargetNode; }
@Override public MenuItem create(MenuItem parentNode, UserSitemapNode sourceNode) { checkNotNull(sourceNode); checkNotNull(captionReader, "This implementation requires a caption reader"); MenuItem newTargetNode = null; if (parentNode == null) { newTargetNode = menuBar.addItem(captionReader.getCaption(sourceNode), null); } else { newTargetNode = parentNode.addItem(captionReader.getCaption(sourceNode), null); } targetLookup.put(newTargetNode, sourceNode); return newTargetNode; }
/** * Creates the context menu entry and it's children.<p> * * @param parent the entry parent * @param node the item tree node * @param treeBuilder the tree builder */ private void createMenuEntry( MenuItem parent, final CmsTreeNode<I_CmsContextMenuItem> node, CmsContextMenuTreeBuilder treeBuilder) { Command entryCommand = null; if (node.getChildren().size() == 0) { entryCommand = new Command() { private static final long serialVersionUID = 1L; public void menuSelected(MenuItem selectedItem) { node.getData().executeAction(getDialogContext()); } }; } MenuItem entry = parent.addItem((node.getData().getTitle(A_CmsUI.get().getLocale())), entryCommand); for (CmsTreeNode<I_CmsContextMenuItem> child : node.getChildren()) { createMenuEntry(entry, child, treeBuilder); } if (treeBuilder.getVisibility(node.getData()).isInActive()) { entry.setEnabled(false); } }
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 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); } } }
private Component buildUserMenu(final UiProperties uiProperties) { final MenuBar settings = new MenuBar(); settings.addStyleName("user-menu"); settings.setHtmlContentAllowed(true); final MenuItem settingsItem = settings.addItem("", getImage(uiProperties.isGravatar()), null); final String formattedTenant = UserDetailsFormatter.formatCurrentTenant(); if (!StringUtils.isEmpty(formattedTenant)) { settingsItem.setText(formattedTenant); UserDetailsFormatter.getCurrentTenant().ifPresent(tenant -> settingsItem.setDescription(i18n .getMessage("menu.user.description", tenant, UserDetailsFormatter.getCurrentUser().getUsername()))); } else { settingsItem.setText("..."); } settingsItem.setStyleName("user-menuitem"); final String logoutUrl = generateLogoutUrl(); settingsItem.addItem(i18n.getMessage("label.sign.out"), selectedItem -> Page.getCurrent().setLocation(logoutUrl)); return settings; }
private Component buildUserMenu(final UiProperties uiProperties) { final MenuBar settings = new MenuBar(); settings.addStyleName("user-menu"); settings.setHtmlContentAllowed(true); final MenuItem settingsItem = settings.addItem("", getImage(uiProperties.isGravatar()), null); final String formattedTenant = UserDetailsFormatter.formatCurrentTenant(); if (!StringUtils.isEmpty(formattedTenant)) { settingsItem.setText(formattedTenant); UserDetailsFormatter.getCurrentTenant().ifPresent(tenant -> settingsItem.setDescription(i18n .getMessage("menu.user.description", tenant, UserDetailsFormatter.getCurrentUser().getUsername()))); } else { settingsItem.setText("..."); } settingsItem.setStyleName("user-menuitem"); final String logoutUrl = generateLogoutUrl(); settingsItem.addItem(i18n.getMessage("label.sign.out"), selectedItem -> Page.getCurrent().setLocation(logoutUrl)); return settings; }
public MenuItem addItem(String caption, Command command) { return rootItem.addItem(caption, command); }
public MenuItem addItem(String caption) { return rootItem.addItem(caption); }
public MenuItem addItem(String caption, Resource icon, Command command) { return rootItem.addItem(caption, icon, command); }
/** * Add a menu-item, which executes the given command when clicked. */ public MenuItem addMenuItem(String title, final ToolbarCommand command) { return rootItem.addItem(title, new Command() { private static final long serialVersionUID = 1L; public void menuSelected(MenuItem selectedItem) { if(command != null) { command.toolBarItemSelected(); } } }); }
/** * Add menu-item. */ public MenuItem addMenuItem(String title) { return rootItem.addItem(title, null); }
private void addMenuItems() { if (createPermission) { config.addItem(UIComponentIdProvider.CONFIG_MENU_BAR_CREATE, FontAwesome.PLUS, addButtonCommand); } if (updatePermission) { config.addItem(UIComponentIdProvider.CONFIG_MENU_BAR_UPDATE, FontAwesome.EDIT, updateButtonCommand); } if (deletePermission) { config.addItem(UIComponentIdProvider.CONFIG_MENU_BAR_DELETE, FontAwesome.TRASH_O, deleteButtonCommand); } }
private void addMenuItems() { if (createPermission) { config.addItem(UIComponentIdProvider.CONFIG_MENU_BAR_CREATE, FontAwesome.PLUS, addButtonCommand); } if (updatePermission) { config.addItem(UIComponentIdProvider.CONFIG_MENU_BAR_UPDATE, FontAwesome.EDIT, updateButtonCommand); } if (deletePermission) { config.addItem(UIComponentIdProvider.CONFIG_MENU_BAR_DELETE, FontAwesome.TRASH_O, deleteButtonCommand); } }
protected void initSortMenu() { MenuBar menuBar = new MenuBar(); menuBar.addStyleName(ExplorerLayout.STYLE_SEARCHBOX_SORTMENU); //TODO: Adding types of sorting manually and listener/events MenuItem rootItem = menuBar.addItem("Sort by", null); rootItem.addItem("Id", null); rootItem.addItem("Name", null); rootItem.addItem("Due date", null); rootItem.addItem("Creation date", null); layout.addComponent(menuBar); layout.setComponentAlignment(menuBar, Alignment.MIDDLE_RIGHT); }
/** * Add a new menu item inside this menu item, creating a sub-menu. * <p> * Clicking on the new item has no effect. Use * {@link #addItem(String, Command)} or {@link #setCommand(Command)} to * assign an action to the menu item. * * @param caption * the text for the menu item * * @since 8.4 */ public MenuBar.MenuItem addItem(String caption) { return addItem(caption, null, null); }
/** * Adds a separator to this menu. A separator is a way to visually group * items in a menu, to make it easier for users to find what they are * looking for in the menu. * * @author Jouni Koivuviita / Vaadin Ltd. * @since 6.2.0 */ public MenuBar.MenuItem addSeparator() { MenuItem item = addItem("", null, null); item.setSeparator(true); return item; }
/** * Add a new item inside this item, thus creating a sub-menu. Command * can be null, but a caption must be given. * * @param caption * the text for the menu item * @param command * the command for the menu item */ public MenuBar.MenuItem addItem(String caption, MenuBar.Command command) { return addItem(caption, null, command); }