/** * @return <code>true</code> if either no display filter is installed, or if * the installed filter matches, <code>false</code> otherwise. */ default boolean matchesDisplayFilter () { final IMenuObjectFilter aDisplayFilter = getDisplayFilter (); return aDisplayFilter == null || aDisplayFilter.test (this); }
public final boolean matchesDisplayFilter () { return m_aDisplayFilter == null || m_aDisplayFilter.test (this); }
@Nonnull public IMenuItemPage createRootItem (@Nonnull final String sItemID, @Nonnull final IPage aPage) { return internalCreateChildItem (getRootItem (), new MenuItemPage (sItemID, aPage)); }
@Nonnull default IPage getSelectedPage () { final IMenuItemPage aSelectedMenuItem = getSelectedMenuItem (); // Resolve the page of the selected menu item (if found) if (aSelectedMenuItem.matchesDisplayFilter ()) { // Only if we have display rights! return aSelectedMenuItem.getPage (); } // No rights -> goto start page return getMenuTree ().getDefaultMenuItem ().getPage (); }
@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 IMenuItemExternal createRootItem (@Nonnull final String sItemID, @Nonnull final IHasSimpleURL aURL, @Nonnull final IHasDisplayText aName) { return internalCreateChildItem (getRootItem (), new MenuItemExternal (sItemID, aURL, aName)); }
@Nonnull public IMenuItemPage createItem (@Nonnull final String sParentID, @Nonnull final String sItemID, @Nonnull final IPage aPage) { final DefaultTreeItemWithID <String, IMenuObject> aParentItem = getItemWithID (sParentID); if (aParentItem == null) throw new IllegalArgumentException ("No such parent menu item '" + sParentID + "'"); return internalCreateChildItem (aParentItem, new MenuItemPage (sItemID, aPage)); }
@Nonnull public IMenuItemExternal createItem (@Nonnull final String sParentID, @Nonnull final String sItemID, @Nonnull final IHasSimpleURL aURL, @Nonnull final IHasDisplayText aName) { final DefaultTreeItemWithID <String, IMenuObject> aParentItem = getItemWithID (sParentID); if (aParentItem == null) throw new IllegalArgumentException ("No such parent menu item '" + sParentID + "'"); return internalCreateChildItem (aParentItem, new MenuItemExternal (sItemID, aURL, aName)); }
@Nonnull public IMenuSeparator createRootSeparator (@Nonnull @Nonempty final String sID) { return internalCreateChildItem (getRootItem (), new MenuSeparator (sID)); }
@Nonnull public IMenuSeparator createSeparator (@Nonnull final String sParentID, @Nonnull @Nonempty final String sID) { final DefaultTreeItemWithID <String, IMenuObject> aParentItem = getItemWithID (sParentID); if (aParentItem == null) throw new IllegalArgumentException ("No such parent menu item '" + sParentID + "'"); return internalCreateChildItem (aParentItem, new MenuSeparator (sID)); }
@Nullable public IMenuItemPage getDefaultMenuItem () { return _getDefaultMenuItem (getDefaultMenuItemID ()); }
@Override public String toString () { return ToStringGenerator.getDerived (super.toString ()) .append ("URLProvider", m_aURLProvider) .append ("DisplayText", m_aDisplayText) .append ("Target", m_sTarget) .getToString (); } }
@Override public int hashCode () { return HashCodeGenerator.getDerived (super.hashCode ()).append (m_aURLProvider).getHashCode (); }
@Override public boolean equals (final Object o) { if (o == this) return true; if (!super.equals (o)) return false; final MenuItemExternal rhs = (MenuItemExternal) o; return m_aURLProvider.equals (rhs.m_aURLProvider); }
/** * @return <code>true</code> if an explicit target is defined, * <code>false</code> otherwise. */ default boolean hasTarget () { return StringHelper.hasText (getTarget ()); }
@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); } };
@Override public String toString () { return ToStringGenerator.getDerived (super.toString ()) .append ("Page", m_aPage) .append ("DisplayText", m_aDisplayText) .append ("Target", m_sTarget) .getToString (); } }
@Override public int hashCode () { return HashCodeGenerator.getDerived (super.hashCode ()).append (m_aPage).getHashCode (); }