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)); } }
public BootstrapCloseIcon () { addClass (CBootstrapCSS.CLOSE); // TODO translate customAttrs ().setAriaLabel ("Close"); final HCSpan aTimes = new HCSpan ().addChild (HCEntityNode.times ()); aTimes.customAttrs ().setAriaHidden (true); addChild (aTimes); } }
/** * 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 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); }
@Override protected void onFinalizeNodeState (@Nonnull final IHCConversionSettingsToNode aConversionSettings, @Nonnull final IHCHasChildrenMutable <?, ? super IHCNode> aTargetNode) { super.onFinalizeNodeState (aConversionSettings, aTargetNode); addClass (CBootstrapCSS.MODAL).setRole (EHTMLRole.DIALOG); customAttrs ().setAriaHidden (true); if (m_bFade) addClass (CBootstrapCSS.FADE); final HCDiv aDialog = addAndReturnChild (new HCDiv ().addClasses (CBootstrapCSS.MODAL_DIALOG, m_eSize)); final HCDiv aContent = aDialog.addAndReturnChild (new HCDiv ().addClass (CBootstrapCSS.MODAL_CONTENT) .setID (_getContentID ())); if (m_aHeader != null) { final String sTitleID = _getTitleID (); customAttrs ().setAriaLabeledBy (sTitleID); final HCDiv aHeader = aContent.addAndReturnChild (new HCDiv ().addClass (CBootstrapCSS.MODAL_HEADER)); if (m_bShowClose) { final BootstrapCloseIcon aCloseIcon = new BootstrapCloseIcon (); aCloseIcon.customAttrs ().setDataAttr ("dismiss", "modal"); aHeader.addChild (aCloseIcon); } aHeader.addChild (new HCH4 ().addClass (CBootstrapCSS.MODAL_TITLE).setID (sTitleID).addChild (m_aHeader)); } if (m_aBody != null) aContent.addChild (new HCDiv ().addClass (CBootstrapCSS.MODAL_BODY).addChild (m_aBody)); if (m_aFooter != null) aContent.addChild (new HCDiv ().addClass (CBootstrapCSS.MODAL_FOOTER).addChild (m_aFooter)); }
private void _init () { customAttrs ().setDataAttr ("dismiss", "modal"); }
public BootstrapDropdown (@Nonnull final EBootstrapDropdownType eDropdownType, @Nonnull final IHCElementWithChildren <?> aSelector, @Nonnull final BootstrapDropdownMenu aMenu, final boolean bAddDropDownToggle) { ValueEnforcer.notNull (aSelector, "Selector"); ValueEnforcer.notNull (aMenu, "Menu"); addClass (eDropdownType); if (aSelector instanceof IHCButton <?>) { // If this is a dropdown for a button, add this class so that the // alignment of buttons is correct addClass (CBootstrapCSS.BTN_GROUP); } // Link selector and menu aMenu.customAttrs ().setAriaLabeledBy (aSelector); if (bAddDropDownToggle) { // Add dropdown caret makeDropdownToggle (aSelector); } else { // Required for drop down to work :) aSelector.customAttrs ().setDataAttr ("toggle", "dropdown"); } // Add children addChild (aSelector); addChild (aMenu); }
public static void connectFormControlWithLabel (@Nullable final IHCElement <?> aCtrl, @Nullable final HCFormLabel aLabel) { // Set "aria-labelledby" if (aCtrl != null && aLabel != null) { aLabel.setFor (aCtrl); aCtrl.customAttrs ().setAriaLabeledBy (aLabel); } }
@Nonnull public <T extends IHCElement <?>> T applyToNode (@Nonnull final T aElement) { aElement.addClasses (CBootstrapCSS.GLYPHICON, m_aCSSClass); aElement.customAttrs ().setAriaHidden (true); return aElement; }
public BootstrapBreadcrumb () { customAttrs ().setAriaLabel ("breadcrumb"); m_aList = new BootstrapBreadcrumbList (); }
public DataTablesServerDataRow (@Nonnull final HCRow aRow) { if (aRow.hasAnyStyle ()) LOGGER.warn ("Cell has styles assigned which will be lost: " + aRow.getAllStyles ()); m_sRowID = aRow.getID (); m_sRowClass = aRow.getAllClassesAsString (); for (final Map.Entry <IMicroQName, String> aEntry : aRow.customAttrs ().entrySet ()) { final IMicroQName aAttrName = aEntry.getKey (); if (CHTMLAttributes.isDataAttrName (aAttrName)) { // Data attribute if (m_aRowData == null) m_aRowData = new CommonsLinkedHashMap <> (); m_aRowData.put (aAttrName, aEntry.getValue ()); } else { // Custom non-data attribute if (m_aRowAttr == null) m_aRowAttr = new CommonsLinkedHashMap <> (); m_aRowAttr.put (aAttrName, aEntry.getValue ()); } } m_aCells = new CommonsArrayList <> (aRow.getCellCount ()); for (final IHCCell <?> aCell : aRow.getChildren ()) m_aCells.add (new DataTablesServerDataCell (aCell)); }
public HCYouTubeEmbed (final int nWidth, final int nHeight, @Nonnull @Nonempty final String sVideoID, final boolean bAllowFullScreen) { final ISimpleURL aBaseURL = new SimpleURL (PREFIX + sVideoID); setWidth (nWidth); setHeight (nHeight); final HCParam aParamMovie = addAndReturnChild (new HCParam ("movie")); final HCParam aParamAllowFullScreen = addAndReturnChild (new HCParam ("allowFullScreen")); aParamAllowFullScreen.setValue (Boolean.toString (bAllowFullScreen)); addChild (new HCParam ("allowscriptaccess").setValue ("always")); final HCEmbed aEmbed = addAndReturnChild (new HCEmbed ()); aEmbed.setType (CMimeType.APPLICATION_SHOCKWAVE_FLASH); aEmbed.customAttrs ().putIn ("allowscriptaccess", "always"); aEmbed.setWidth (nWidth); aEmbed.setHeight (nHeight); aEmbed.customAttrs ().putIn ("allowfullscreen", Boolean.toString (bAllowFullScreen)); // Build the correct URL based on the passed settings final ISimpleURL aURL = new SimpleURL (aBaseURL).add ("hl", "en_US").add ("fs", bAllowFullScreen ? "1" : "0"); aParamMovie.setValue (aURL.getAsStringWithEncodedParameters ()); aEmbed.setSrc (aURL); } }
customAttrs ().setAriaHidden (true); if (m_bFade) addClass (CBootstrapCSS.FADE); customAttrs ().setAriaLabeledBy (sTitleID); final HCDiv aHeader = aModalContent.addAndReturnChild (new HCDiv ().addClass (CBootstrapCSS.MODAL_HEADER)); aHeader.addChild (new HCH5 ().addClass (CBootstrapCSS.MODAL_TITLE).setID (sTitleID).addChild (m_aHeader)); aCloseIcon.customAttrs ().setDataAttr ("dismiss", "modal"); aHeader.addChild (aCloseIcon);
private void _init () { customAttrs ().setDataAttr ("dismiss", "modal"); }
public static void connectFormControlsWithLabel (@Nullable final Iterable <? extends IHCElement <?>> aCtrls, @Nullable final HCFormLabel aLabel) { // Set "aria-labelledby" if (aCtrls != null && aLabel != null) { boolean bSetLabel = false; for (final IHCElement <?> aCurCtrl : aCtrls) { if (!bSetLabel) { aLabel.setFor (aCurCtrl); bSetLabel = true; } aCurCtrl.customAttrs ().setAriaLabeledBy (aLabel); } } }
aActionButton.setRole (EHTMLRole.BUTTON); aActionButton.ensureID (); aActionButton.customAttrs ().setDataAttr ("toggle", "dropdown"); aActionButton.customAttrs ().setAriaHasPopup (true); aActionButton.customAttrs ().setAriaExpanded (false); aMenu.customAttrs ().setAriaLabeledBy (aButton);
@Override @Nonnull @OverrideOnDemand protected HCDiv createPrependGroup () { // Make the whole prepend thing a toggle final HCDiv ret = super.createPrependGroup (); ret.customAttrs ().setDataAttr ("toggle", "datetimepicker"); ret.customAttrs ().setDataAttr ("target", "#" + getID ()); return ret; }
public BootstrapCloseIcon () { addClass (CBootstrapCSS.CLOSE); customAttrs ().setAriaLabel ("Close"); final HCSpan aTimes = new HCSpan ().addChild (HCEntityNode.times ()); aTimes.customAttrs ().setAriaHidden (true); addChild (aTimes); } }
aCurCtrl.customAttrs ().setAriaLabeledBy (aLabel);