Class WBootstrap5Theme


public class WBootstrap5Theme extends WTheme
Theme based on the Bootstrap 5 CSS framework.

This theme implements support for building a JWt web application that uses Bootstrap 5 as a theme for its (layout and) styling.

Using this theme, various widgets provided by the library are rendered using markup that is compatible with Bootstrap 5. The bootstrap theme is also extended with a proper (compatible) styling of widgets for which bootstrap does not provide styling (table views, tree views, sliders, etc...).

By default, the theme will use CSS and JavaScript resources that are shipped together with the JWt distribution, but you can replace the CSS with custom-built CSS by reimplementing getStyleSheets().

Although this theme styles individual widgets correctly, for your web application's layout you are recommended to use WTemplate in conjunction with Bootstrap's CSS classes. For this we refer to Bootstrap's documentation at https://getbootstrap.com.

  • Constructor Details

    • WBootstrap5Theme

      public WBootstrap5Theme()
      Constructor.
  • Method Details

    • init

      public void init(WApplication app)
      Description copied from class: WTheme
      Called when the theme is assigned to a WApplication.

      This allows the theme to do things like load resource bundles when it is added to an application using WApplication#setTheme().

      The default implementation does nothing.

      Overrides:
      init in class WTheme
    • getName

      public String getName()
      Description copied from class: WTheme
      Returns a theme name.

      Returns a unique name for the theme. This name is used by the default implementation of getResourcesUrl() to compute a location for the theme's resources.

      Specified by:
      getName in class WTheme
    • getResourcesUrl

      public String getResourcesUrl()
      Description copied from class: WTheme
      Returns the URL where theme-related resources are stored.

      The default implementation considers a folder within JWt's resource directory, based on the theme getName().

      Overrides:
      getResourcesUrl in class WTheme
    • getStyleSheets

      public List<WLinkedCssStyleSheet> getStyleSheets()
      Description copied from class: WTheme
      Returns a vector with stylesheets for the theme.

      This should return a vector with stylesheets that implement the theme. This list may be tailored to the current user agent, which is read from the application environment.

      Specified by:
      getStyleSheets in class WTheme
    • apply

      public void apply(WWidget widget, DomElement element, int elementRole)
      Description copied from class: WTheme
      Applies the theme to a DOM element that renders a widget.

      The element is a rendered representation of the widget, and may be further customized to reflect the theme.

      Specified by:
      apply in class WTheme
    • getDisabledClass

      public String getDisabledClass()
      Description copied from class: WTheme
      Returns a generic CSS class name for a disabled element.
      Specified by:
      getDisabledClass in class WTheme
    • getActiveClass

      public String getActiveClass()
      Description copied from class: WTheme
      Returns a generic CSS class name for an active element.
      Specified by:
      getActiveClass in class WTheme
    • utilityCssClass

      public String utilityCssClass(int utilityCssClassRole)
      Description copied from class: WTheme
      Returns a generic CSS class name for the chosen role.
      Specified by:
      utilityCssClass in class WTheme
    • isCanStyleAnchorAsButton

      public boolean isCanStyleAnchorAsButton()
      Description copied from class: WTheme
      Returns whether the theme allows for an anchor to be styled as a button.
      Specified by:
      isCanStyleAnchorAsButton in class WTheme
    • loadValidationStyling

      public void loadValidationStyling(WApplication app)
      Description copied from class: WTheme
      Load the required content for validation.

      The styling, and scripts used for validation are separated. Loading these is not done on theme initialization.

      Overrides:
      loadValidationStyling in class WTheme
    • applyValidationStyle

      public void applyValidationStyle(WWidget widget, WValidator.Result validation, EnumSet<ValidationStyleFlag> styles)
      Description copied from class: WTheme
      Applies a style that indicates the result of validation.
      Specified by:
      applyValidationStyle in class WTheme
    • canBorderBoxElement

      public boolean canBorderBoxElement(DomElement element)
      Specified by:
      canBorderBoxElement in class WTheme
    • getPanelCollapseIconSide

      public Side getPanelCollapseIconSide()
      Description copied from class: WTheme
      Returns which side the WPanel collapse icon should be added on.

      Side is assumed to be Side.Left or Side.Right, other sides are not supported.

      Overrides:
      getPanelCollapseIconSide in class WTheme
    • setColorMode

      public void setColorMode(String mode)
      Description copied from class: WTheme
      Sets the color mode for the theme.

      The color mode is a string that indicates which color mode the theme be in. The interpretation of the color mode is up to the theme, but it is typically used to indicate a dark or light mode.

      This is relevant only for themes that support color modes. The default implementation does nothing. You can override this method if you want to support color modes in your theme.

      Overrides:
      setColorMode in class WTheme
      See Also:
    • getColorMode

      public String getColorMode()
      Description copied from class: WTheme
      Returns the current color mode for the theme.

      The default implementation always returns an empty string.

      Overrides:
      getColorMode in class WTheme
      See Also:
    • getSliderTickColor

      public WColor getSliderTickColor()
      Description copied from class: WTheme
      Returns the color of the slider ticks.

      Returns the color that will be used for the ticks of WSliders that do not use native controls.

      Overrides:
      getSliderTickColor in class WTheme
      See Also:
    • applyFunctionalStyling

      protected void applyFunctionalStyling(WWidget widget, WWidget child, int widgetRole)
      Description copied from class: WTheme
      Applies the functional part of the theme to a widget's child.

      Only applies the functional part of the theme. This means that only things that are mandatory for the widget to function properly but depend on the theme are applied.

      Specified by:
      applyFunctionalStyling in class WTheme
      See Also:
    • applyOptionalStyling

      protected void applyOptionalStyling(WWidget widget, WWidget child, int widgetRole)
      Description copied from class: WTheme
      Applies the optional part of the theme to a widget's child.

      Only applies the optional part of the theme. This means that only things that are purely cosmetic and do not affect the functionality of the widget are applied.

      This should only be called for widgets that have theme styling enabled.

      Specified by:
      applyOptionalStyling in class WTheme
      See Also: