/** * Call this method to convert an element to a dropdown toggle. Important: * call this after all children are added, because a caret is added at the * end! * * @param aElement * The element to use. May not be <code>null</code>. * @param <IMPLTYPE> * Implementation type * @return The passed element. Never <code>null</code>. */ @Nonnull public static <IMPLTYPE extends IHCElementWithChildren <?>> IMPLTYPE makeDropdownToggle (@Nonnull final IMPLTYPE aElement) { aElement.addClass (CBootstrapCSS.DROPDOWN_TOGGLE).addChild (new BootstrapCaret ()); aElement.customAttrs ().setDataAttr ("toggle", "dropdown"); aElement.customAttrs ().setAriaHasPopup (true); aElement.customAttrs ().setAriaExpanded (false); return aElement; } }
public void addNavDropDown (@Nonnull final IHCNode aLabelText, @Nonnull final BootstrapDropdownMenu aDropDown) { final BootstrapNavLink aLabel = new BootstrapNavLink (); aLabel.addClass (CBootstrapCSS.DROPDOWN_TOGGLE).ensureID ().setRole (EHTMLRole.BUTTON); aLabel.customAttrs ().setDataAttr ("toggle", "dropdown"); aLabel.customAttrs ().setAriaHasPopup (true); aLabel.customAttrs ().setAriaExpanded (true); aLabel.addChild (aLabelText); aDropDown.customAttrs ().setAriaLabeledBy (aLabel); addChild (aLabel); addChild (aDropDown); m_bIsDropDown = true; }
@Override protected void onFinalizeNodeState (@Nonnull final IHCConversionSettingsToNode aConversionSettings, @Nonnull final IHCHasChildrenMutable <?, ? super IHCNode> aTargetNode) { super.onFinalizeNodeState (aConversionSettings, aTargetNode); addClass (CBootstrapCSS.NAVBAR_TOGGLER); customAttrs ().setDataAttr ("toggle", "collapse"); // With hash sign customAttrs ().setDataAttr ("target", "#" + m_sIDToToggle); // without hash sign! customAttrs ().setAriaControls (m_sIDToToggle); customAttrs ().setAriaExpanded (false); customAttrs ().setAriaLabel ("Toggle navigation"); // Main toggle button addChild (new HCSpan ().addClass (CBootstrapCSS.NAVBAR_TOGGLER_ICON)); } }
aActionButton.customAttrs ().setDataAttr ("toggle", "dropdown"); aActionButton.customAttrs ().setAriaHasPopup (true); aActionButton.customAttrs ().setAriaExpanded (false);
public BootstrapCardCollapsible (@Nullable final IHCNode aHeaderText, final boolean bIsOpen) { m_aHeader = addAndReturnChild (new BootstrapCardHeader ()); // Collapsible div final HCDiv aCollapseDiv = addAndReturnChild (new HCDiv ().ensureID ().addClass (CBootstrapCSS.COLLAPSE)); if (bIsOpen) aCollapseDiv.addClass (CBootstrapCSS.SHOW); aCollapseDiv.customAttrs ().setAriaLabeledBy (m_aHeader); m_aBody = aCollapseDiv.addAndReturnChild (new BootstrapCardBody ()); // Toggle in header final HCA aToggle = m_aHeader.addAndReturnChild (new HCA ().setHref (new SimpleURL ("#" + aCollapseDiv.getID ())) .addClass (CBootstrapCSS.D_BLOCK)); aToggle.customAttrs ().setDataAttr ("toggle", "collapse"); aToggle.customAttrs ().setAriaExpanded (bIsOpen); aToggle.customAttrs ().setAriaControls (aCollapseDiv.getID ()); aToggle.addChild (aHeaderText); aToggle.addChild (EFontAwesome4Icon.CHEVRON_DOWN.getAsNode ().addClass (CBootstrapCSS.FLOAT_RIGHT)); if (!bIsOpen) aToggle.addClass (CSS_CLASS_COLLAPSED); }