@Nonnull public IHCNode renderMenuItemExternal (@Nonnull final ISimpleWebExecutionContext aSWEC, @Nonnull final IMenuItemExternal aMenuItem, final boolean bHasChildren, final boolean bIsSelected, final boolean bIsExpanded) { final String sMenuItemID = aMenuItem.getID (); final HCA aLink = new HCA (aMenuItem.getURL ()); aLink.setTarget (HC_Target.BLANK); aLink.addChild (aMenuItem.getDisplayText (getContentLocale ()) + (bHasChildren && !bIsExpanded ? " [+]" : "")); aLink.setID (CSS_ID_PREFIX_MENU_ITEM + sMenuItemID); if (bIsSelected) aLink.addClass (CSS_CLASS_SELECTED_MENU_ITEM); return aLink; }
/** * @return The referenced external URL. Never <code>null</code>. */ @Nonnull default ISimpleURL getURL () { return getURLProvider ().getSimpleURL (); }
@Nonnull public IHCNode renderMenuItemExternal (@Nonnull final ISimpleWebExecutionContext aSWEC, @Nonnull final IMenuItemExternal aMenuItem, final boolean bHasChildren, final boolean bIsSelected, final boolean bIsExpanded) { final HCA aLink = new HCA (aMenuItem.getURL ()); aLink.setTargetBlank (); aLink.addChild (getMenuItemExternalLabel (aMenuItem, bHasChildren, bIsSelected, bIsExpanded)); if (bHasChildren && !bIsExpanded) aLink.addChildren (new HCTextNode (" "), EBootstrapIcon.CHEVRON_RIGHT.getAsNode ()); return aLink; }
/** * Get the label to display. * * @param aMenuItem * Menu item. Never <code>null</code>. * @param bHasChildren * <code>true</code> if the item has children * @param bIsSelected * <code>true</code> if it is selected * @param bIsExpanded * <code>true</code> if it is expanded. * @return The label text. Should not be <code>null</code>. * @see #getContentLocale() */ @Nonnull @OverrideOnDemand protected String getMenuItemExternalLabel (@Nonnull final IMenuItemExternal aMenuItem, final boolean bHasChildren, final boolean bIsSelected, final boolean bIsExpanded) { return aMenuItem.getDisplayText (getContentLocale ()); }
@Nonnull public IHCNode renderMenuItemExternal (@Nonnull final ISimpleWebExecutionContext aSWEC, @Nonnull final IMenuItemExternal aMenuItem, final boolean bHasChildren, final boolean bIsSelected, final boolean bIsExpanded) { final HCA aLink = new HCA (aMenuItem.getURL ()); aLink.setTargetBlank (); aLink.addClass (CBootstrapCSS.NAV_LINK); aLink.addChild (getMenuItemExternalLabel (aMenuItem, bHasChildren, bIsSelected, bIsExpanded)); if (bHasChildren && !bIsExpanded) aLink.addChild (new HCTextNode (" + ")); return aLink; }
/** * Get the label to display. * * @param aMenuItem * Menu item. Never <code>null</code>. * @param bHasChildren * <code>true</code> if the item has children * @param bIsSelected * <code>true</code> if it is selected * @param bIsExpanded * <code>true</code> if it is expanded. * @return The label text. Should not be <code>null</code>. * @see #getContentLocale() */ @Nonnull @OverrideOnDemand protected String getMenuItemExternalLabel (@Nonnull final IMenuItemExternal aMenuItem, final boolean bHasChildren, final boolean bIsSelected, final boolean bIsExpanded) { return aMenuItem.getDisplayText (getContentLocale ()); }
if (aMenuObj instanceof IMenuItemExternal) aTargetURL = new SimpleURL (((IMenuItemExternal) aMenuObj).getURL ());