@Override public void onClose(CloseEvent<PopupPanel> event) { super.close(event, currentVisibleContextMenu == null); currentVisibleContextMenu = null; }
@Override protected VOverlay createOverlay() { VOverlay overlay = super.createOverlay(); for (VMenuBar current = this; current != null; current = current .getParentMenu()) { if (current.client != null) { overlay.setApplicationConnection(current.client); break; } } return overlay; }
Stack<VMenuBar> menuStack = new Stack<>(); VMenuBar currentMenu = contextMenuRoot.getSubMenu(); currentMenu.clearItems(); if (state.menuItems != null && !state.menuItems.isEmpty()) { Iterator<ContextMenuItemState> itr = state.menuItems.iterator(); currentItem = currentMenu.addItem(itemHTML, cmd); currentItem.setId("" + menuItemState.id); updateItemFromState(currentItem, menuItemState); currentMenu.addStyleDependentName(style); boolean hasCheckableItem = false; for (VMenuBar.CustomMenuItem menuItem : currentMenu .getItems()) { hasCheckableItem = hasCheckableItem || menuItem.isCheckable(); currentMenu.addStyleDependentName("check-column"); } else { currentMenu.removeStyleDependentName("check-column");
public void showRootMenu(int x, int y) { if (currentVisibleContextMenu != null) { Scheduler.get().scheduleDeferred(() -> showRootMenu(x,y)); } else { CustomMenuItem rootItem = items.get(0); VMenuBar rootSubMenu = rootItem.getSubMenu(); List<CustomMenuItem> items = rootSubMenu.getItems(); if (!items.isEmpty()) { setSelected(rootItem); currentVisibleContextMenu = this; super.showChildMenuAt(rootItem, y, x); rootSubMenu.setSelected(items.get(0)); } } }
@Override public boolean handleNavigation(int keycode, boolean ctrl, boolean shift) { if (keycode == KeyCodes.KEY_TAB) { return true; } if (keycode == getNavigationLeftKey() && (getParentMenu() == null || getParentMenu().getParentMenu() == null)) { // do not close parent menu by left key return true; } if (keycode == getNavigationRightKey() && getSelected() != null && getSelected().getSubMenu() == null) { // do not close menu by right key if there is no submenu return true; } return super.handleNavigation(keycode, ctrl, shift); }
@Override protected VMenuBar getRoot() { VMenuBar root = this; while (root.getParentMenu() != null && root.getParentMenu().getParentMenu() != null) { root = root.getParentMenu(); } return root; } }
@Override protected void assignAdditionalMenuStyles(VMenuBar currentMenu, UIDL item) { String icon = item.getStringAttribute("icon"); if (icon != null) { currentMenu.addStyleDependentName("has-icons"); } } }