protected List<MenuItem> collectPermittedScreens(List<MenuItem> menuItems) { List<MenuItem> collectedItems = new ArrayList<>(); for (MenuItem item : menuItems) { if (!item.isPermitted(userSession)) continue; if (StringUtils.isNotEmpty(item.getScreen())) { collectedItems.add(item); } if (CollectionUtils.isNotEmpty(item.getChildren())) { collectedItems.addAll(collectPermittedScreens(item.getChildren())); } } return collectedItems; }
protected void build(SideMenu menu, List<MenuItem> rootItems) { Window window = ComponentsHelper.getWindowImplementation(menu); if (window == null) { throw new IllegalStateException("SideMenu is not belong to Window"); } for (MenuItem menuItem : rootItems) { // AppMenu does not support separators if (menuItem.isPermitted(session) && !menuItem.isSeparator()) { createMenuBarItem(window, menu, menuItem); } } removeExtraSeparators(menu); }
protected void build(AppMenu appMenu, List<MenuItem> rootItems) { this.appMenu = appMenu; Window window = ComponentsHelper.getWindowImplementation(appMenu); if (window == null) { throw new IllegalStateException("AppMenu is not belong to Window"); } for (MenuItem menuItem : rootItems) { // AppMenu does not load top-level separators if (menuItem.isPermitted(session) && !menuItem.isSeparator()) { createMenuBarItem(window, menuItem); } } removeExtraSeparators(); }
protected void createSubMenu(Window webWindow, AppMenu.MenuItem vItem, MenuItem item, UserSession session) { if (item.isPermitted(session) && !item.getChildren().isEmpty()) { for (MenuItem child : item.getChildren()) { if (child.getChildren().isEmpty()) { if (child.isPermitted(session)) { if (child.isSeparator()) { vItem.addChildItem(appMenu.createSeparator()); if (child.isPermitted(session)) { AppMenu.MenuItem menuItem = appMenu.createMenuItem(child.getId(), menuConfig.getItemCaption(child.getId()), null, null);
protected void createSubMenu(Window webWindow, SideMenu menu, SideMenu.MenuItem vItem, MenuItem parentItem, UserSession session) { if (parentItem.isPermitted(session)) { for (MenuItem child : parentItem.getChildren()) { if (child.isSeparator()) { continue; } if (child.isPermitted(session)) { SideMenu.MenuItem menuItem = menu.createMenuItem(child.getId(), menuConfig.getItemCaption(child.getId())); assignDescription(menuItem, child); assignIcon(menuItem, child); assignStyleName(menuItem, child); if (child.getChildren().isEmpty()) { menuItem.setCommand(createMenuBarCommand(child)); assignShortcut(webWindow, menuItem, child); vItem.addChildItem(menuItem); } else { createSubMenu(webWindow, menu, menuItem, child, session); assignExpanded(menuItem, child); if (!isMenuItemEmpty(menuItem)) { vItem.addChildItem(menuItem); } } } } } }
protected void createMenuBarItem(Window webWindow, MenuItem item) { if (item.isPermitted(session)) { AppMenu.MenuItem menuItem = appMenu.createMenuItem(item.getId(), menuConfig.getItemCaption(item.getId()), null, createMenuBarCommand(item)); assignShortcut(webWindow, menuItem, item); assignStyleName(menuItem, item); assignIcon(menuItem, item); assignDescription(menuItem, item); createSubMenu(webWindow, menuItem, item, session); if (!isMenuItemEmpty(menuItem)) { appMenu.addMenuItem(menuItem); } } }
protected void createMenuBarItem(Window webWindow, SideMenu menu, MenuItem item) { if (item.isPermitted(session)) { SideMenu.MenuItem menuItem = menu.createMenuItem(item.getId(), menuConfig.getItemCaption(item.getId()), null, createMenuBarCommand(item)); createSubMenu(webWindow, menu, menuItem, item, session); assignStyleName(menuItem, item); assignIcon(menuItem, item); assignDescription(menuItem, item); assignExpanded(menuItem, item); assignShortcut(webWindow, menuItem, item); if (!isMenuItemEmpty(menuItem)) { menu.addMenuItem(menuItem); } } }