@Nonnull @ReturnsMutableCopy public static ICommonsMap <String, Boolean> getAllDisplayMenuItemIDs (@Nonnull final IMenuTree aMenuTree, @Nullable final String sSelectedMenuItemID) { return getAllDisplayMenuItemIDs (new MenuItemDeterminatorCallback (aMenuTree, sSelectedMenuItemID)); }
@Override protected boolean isMenuItemValidToBeDisplayed (@Nonnull final IMenuObject aMenuObj) { // Don't show items that belong to the footer if (aMenuObj.attrs ().containsKey (CMenuPublic.FLAG_FOOTER)) return false; // Use default code return super.isMenuItemValidToBeDisplayed (aMenuObj); } };
aStartTreeItem, aRenderer, MenuItemDeterminatorCallback.getAllDisplayMenuItemIDs (aMenuTree, aLEC.getSelectedMenuItemID ()));
@Nonnull public static IHCElement <?> getMenuContent (@Nonnull final ILayoutExecutionContext aLEC) { // Main menu final IMenuTree aMenuTree = aLEC.getMenuTree (); final MenuItemDeterminatorCallback aCallback = new MenuItemDeterminatorCallback (aMenuTree, aLEC.getSelectedMenuItemID ()); final IHCElement <?> aMenu = BootstrapMenuItemRenderer.createSideBarMenu (aLEC, aMenuTree, aCallback); return aMenu; }
boolean bAddAllChildrenOnThisLevel = false; boolean bExpanded = false; final boolean bIsTopLevel = getLevel () == 0; if (m_aSelectedItem == null) if (!isMenuItemValidToBeDisplayed (aItem.getData ())) rememberMenuItemForDisplay (aItem.getID (), bExpanded); if (bAddAllChildrenOnThisLevel) aItem.getParent () .forAllChildren (aSibling -> isMenuItemValidToBeDisplayed (aSibling.getData ()), aSibling -> rememberMenuItemForDisplay (aSibling.getID (), false));
@Nonnull public static IHCElement <?> createSideBarMenu (@Nonnull final ILayoutExecutionContext aLEC, @Nonnull final IMenuTree aMenuTree, @Nonnull final IMenuItemDeterminatorCallback aDeterminator, @Nonnull final BootstrapMenuItemRenderer aRenderer) { final ICommonsMap <String, Boolean> aAllDisplayMenuItemIDs = MenuItemDeterminatorCallback.getAllDisplayMenuItemIDs (aDeterminator); final HCUL aUL = MenuRendererCallback.createRenderedMenu (aLEC, FactoryNewInstance.create (HCUL.class), aMenuTree.getRootItem (), aRenderer, aAllDisplayMenuItemIDs) .addClass (CBootstrapCSS.NAV); final BootstrapWell ret = new BootstrapWell (EBootstrapWellType.SMALL); ret.addChild (aUL); return ret; } }
@Nonnull public static IHCElement <?> createSideBarMenu (@Nonnull final ILayoutExecutionContext aLEC) { final IMenuTree aMenuTree = aLEC.getMenuTree (); return createSideBarMenu (aLEC, new MenuItemDeterminatorCallback (aMenuTree, aLEC.getSelectedMenuItemID ())); }
/** * Render the whole menu * * @param aLEC * The current layout execution context. Required for cookie-less * handling. May not be <code>null</code>. * @param aFactory * The factory to be used to create nodes of type T. May not be * <code>null</code>. * @param aRenderer * The renderer to use * @return Never <code>null</code>. * @param <T> * HC list type to be instantiated */ @Nonnull public static <T extends IHCList <T, HCLI>> T createRenderedMenu (@Nonnull final ILayoutExecutionContext aLEC, @Nonnull final ISupplier <T> aFactory, @Nonnull final IMenuItemRenderer <T> aRenderer) { final IMenuTree aMenuTree = aLEC.getMenuTree (); return createRenderedMenu (aLEC, aFactory, aMenuTree.getRootItem (), aRenderer, MenuItemDeterminatorCallback.getAllDisplayMenuItemIDs (aMenuTree, aLEC.getSelectedMenuItemID ())); }
@Nonnull public static IHCElement <?> createSideBarMenu (@Nonnull final ILayoutExecutionContext aLEC) { final IMenuTree aMenuTree = aLEC.getMenuTree (); return createSideBarMenu (aLEC, new MenuItemDeterminatorCallback (aMenuTree, aLEC.getSelectedMenuItemID ())); }
@Override protected boolean isMenuItemValidToBeDisplayed (@Nonnull final IMenuObject aMenuObj) { // Don't show items that belong to the footer if (aMenuObj.attrs ().containsKey (CMenuPublic.FLAG_FOOTER)) return false; // Use default code return super.isMenuItemValidToBeDisplayed (aMenuObj); } };
@Nonnull public static IHCElement <?> createSideBarMenu (@Nonnull final ILayoutExecutionContext aLEC, @Nonnull final IMenuTree aMenuTree, @Nonnull final IMenuItemDeterminatorCallback aDeterminator, @Nonnull final BootstrapMenuItemRenderer aRenderer) { final ICommonsMap <String, Boolean> aAllDisplayMenuItemIDs = MenuItemDeterminatorCallback.getAllDisplayMenuItemIDs (aDeterminator); final HCUL aUL = MenuRendererCallback.createRenderedMenu (aLEC, FactoryNewInstance.create (HCUL.class), aMenuTree.getRootItem (), aRenderer, aAllDisplayMenuItemIDs) .addClass (CBootstrapCSS.NAV) .addClass (CBootstrapCSS.FLEX_COLUMN); final BootstrapCard ret = new BootstrapCard (); ret.createAndAddBody ().addChild (aUL); return ret; } }