@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; }
public void doUpdateHistoryMenu() { int cnt = -2; for (MenuItem c : menuHistory.getChildren()) { if (cnt >= 0) { if (history.size() - cnt - 1 < 0) { c.setText(""); c.setDescription(""); c.setIcon(null); } else { String x = history.get(history.size() - cnt - 1); c.setText(MString.beforeIndex(x, '|')); c.setDescription(x); c.setIcon(VaadinIcons.ARROW_RIGHT); // FontAwesome.ARROW_RIGHT } } cnt++; } }
private static MenuBar.MenuItem findItem(String name, List<MenuBar.MenuItem> items) { if (items != null) { for (MenuBar.MenuItem item: items) { if (item.getText().equals(name)) { return item; } } } return null; }
log.t(t); menuUser.setText(name == null ? "?" : name); menuSpaces.removeChildren(); overView.removeAllComponents(); menuOverview = menuSpaces.addItem(MNls.find(this, "menu.overview=Overview"), new MenuBar.Command() { menuSpaces.addSeparator(); MenuItem item = menuSpaces.addItem(space.getDisplayName(locale), new MenuBar.Command() { item.setEnabled(true); menuSpaces.addSeparator(); menuLeave = menuSpaces.addItem(MNls.find(this, "menu.leave=Leave Space"), new MenuBar.Command() { menuLeave.setEnabled(false);
menuBack = menuHistory.addItem(MNls.find(this, "menu.back=Back"), new MenuBar.Command() { private static final long serialVersionUID = 1L; menuHistory.addSeparator(); for (int i = 0; i < 15; i++) menuHistory.addItem("", new MenuBar.Command() { menuUser.setStyleName("right"); menuLogout = menuUser.addItem(MNls.find(this, "menu.logout=Logout"), new MenuBar.Command() { menuUser.addSeparator(); menuHelp = menuUser.addItem(MNls.find(this, "menu.help=Help"), new MenuBar.Command() { private static final long serialVersionUID = 1L; menuHelp.setEnabled(false); menuUser.addSeparator();
max.setStyleName("icon-only"); MenuItem root = tools.addItem("", VaadinIcons.COG, null); root.addItem("Configure", new Command() root.addSeparator(); root.addItem("Close", new Command()
mainMenuItem.setStyleName("title-menu-item"); mainMenuItem.addItem("About", selectedItem -> onMenuAbout()); mainMenuItem.addSeparator(); mainMenuItem.addItem("Exit", selectedItem -> onWindowExit());
profileMenu.addStyleName(ExplorerLayout.STYLE_HEADER_PROFILE_BOX); MenuItem rootItem = profileMenu.addItem(user.getFirstName() + " " + user.getLastName(), null); rootItem.setStyleName(ExplorerLayout.STYLE_HEADER_PROFILE_MENU); rootItem.addItem(i18nManager.getMessage(Messages.PROFILE_SHOW), new Command() { public void menuSelected(MenuItem selectedItem) { ExplorerApp.get().getViewManager().showProfilePopup(user.getId()); rootItem.addItem(i18nManager.getMessage(Messages.PROFILE_EDIT), new Command() { rootItem.addItem(i18nManager.getMessage(Messages.PASSWORD_CHANGE), new Command() { public void menuSelected(MenuItem selectedItem) { ExplorerApp.get().getViewManager().showPopupWindow(new ChangePasswordPopupWindow()); rootItem.addSeparator(); rootItem.addItem(i18nManager.getMessage(Messages.HEADER_LOGOUT), new Command() { public void menuSelected(MenuItem selectedItem) { ExplorerApp.get().close();
HelpContext help = getHelpContext(space.getName()); menuHelp.setEnabled(false); helpActive = false; menuHistory.setText(space.getDisplayName(locale)); menuLeave.setEnabled(true); currentSpace = space; space.createMenu(component,menuSpace); menuHelp.setEnabled(true);
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(); MenuBar.MenuItem targetItem = findItem(sourceItem.getText(),targetItems); if (targetItem == null) int sizeOfTarget = target.getChildren().size(); if (sizeOfTarget > 0) { targetItem = target.addItemBefore(sourceItem.getText(), null, sourceItem.getCommand(),target.getChildren().get(sizeOfTarget-1)); targetItem = target.addItem(sourceItem.getText(), sourceItem.getCommand());
private static MenuBar.MenuItem addItem(ItemAddBehaviour<MenuBar.MenuItem> behaviour, MenuItem eachChildElement, List<VertexRef> targets, OperationContext operationContext, List<Runnable> hooks) { boolean visibility = eachChildElement.isVisible(targets, operationContext); if (visibility) { // only add item if it is actually visible final MenuBar.MenuItem childMenuItem = behaviour.addItem(); final boolean enabled = eachChildElement.isEnabled(targets, operationContext); final boolean checkable = eachChildElement.isCheckable(); childMenuItem.setEnabled(enabled); childMenuItem.setCheckable(checkable); if (checkable) { boolean checked = eachChildElement.isChecked(targets, operationContext); childMenuItem.setChecked(checked); } // Add click behaviour if leaf element if (!eachChildElement.getChildren().isEmpty() && eachChildElement.getCommand() != null) { LOG.warn("The MenuItem {} is not a leaf but defines a command. The command is ignored.", removeLabelProperties(eachChildElement.getLabel())); } else { if (eachChildElement.getCommand() != null) { childMenuItem.setCommand((MenuBar.Command) selectedItem -> { eachChildElement.getCommand().execute(targets, operationContext); hooks.forEach(Runnable::run); }); } } return childMenuItem; } return null; } }
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 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(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); } } }
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); } } }
@Override public void initContextMenu(AbstractWindow window, Component contextMenuTarget) { ClientConfig clientConfig = configuration.getConfig(ClientConfig.class); if (clientConfig.getLayoutAnalyzerEnabled()) { ContextMenu contextMenu = new ContextMenu(contextMenuTarget.unwrap(AbstractComponent.class), true); MenuItem menuItem = contextMenu.addItem(messages.getMainMessage("actions.analyzeLayout"), c -> { LayoutAnalyzer analyzer = new LayoutAnalyzer(); List<LayoutTip> tipsList = analyzer.analyze(window); if (tipsList.isEmpty()) { window.showNotification("No layout problems found", NotificationType.HUMANIZED); } else { window.openWindow("layoutAnalyzer", OpenType.DIALOG, ParamsMap.of("tipsList", tipsList) ); } }); menuItem.setStyleName("c-cm-item"); } } }
public void showHelpTopic(String topic) { HelpContext help = getHelpContext(currentSpace.getName()); if (help == null) { menuHelp.setEnabled(false); return; } Component component = help.getComponent(); if (component == null) return; synchronized (this) { if (!helpActive) { contentScreen.addComponent(helpView); contentScreen.setExpandRatio(helpView, 0.5f); }; helpView.removeAllComponents(); helpView.addComponent(component); } helpActive = true; }
public static void merge(MenuBar target, MenuBar source, List<MenuBar.MenuItem> added) { if (source != null) { List<MenuBar.MenuItem> targetItems = target.getItems(); for (MenuBar.MenuItem sourceItem:source.getItems()) { 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); } } }