Class WTheme

Direct Known Subclasses:
WBootstrap2Theme, WBootstrap3Theme, WBootstrap5Theme, WBootstrapTheme, WCssTheme

public abstract class WTheme extends WObject
Abstract base class for themes in JWt.

See Also:
  • Constructor Details

    • WTheme

      public WTheme()
      Constructor.
  • Method Details

    • getName

      public abstract String getName()
      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.

    • getResourcesUrl

      public String getResourcesUrl()
      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().

    • serveCss

      public void serveCss(StringBuilder out)
      Serves the CSS for the theme.

      This must serve CSS declarations for the theme.

      The default implementation serves all the getStyleSheets().

    • getStyleSheets

      public abstract List<WLinkedCssStyleSheet> getStyleSheets()
      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.

    • init

      public void init(WApplication app)
      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.

    • apply

      public void apply(WWidget widget, WWidget child, int widgetRole)
      Applies the theme to a child of a composite widget.

      The widgetRole indicates the role that child has within the implementation of the widget.

      See Also:
    • apply

      public abstract void apply(WWidget widget, DomElement element, int elementRole)
      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.

    • getDisabledClass

      public abstract String getDisabledClass()
      Returns a generic CSS class name for a disabled element.
    • getActiveClass

      public abstract String getActiveClass()
      Returns a generic CSS class name for an active element.
    • utilityCssClass

      public abstract String utilityCssClass(int utilityCssClassRole)
      Returns a generic CSS class name for the chosen role.
    • isCanStyleAnchorAsButton

      public abstract boolean isCanStyleAnchorAsButton()
      Returns whether the theme allows for an anchor to be styled as a button.
    • loadValidationStyling

      public void loadValidationStyling(WApplication app)
      Load the required content for validation.

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

    • applyValidationStyle

      public abstract void applyValidationStyle(WWidget widget, WValidator.Result validation, EnumSet<ValidationStyleFlag> flags)
      Applies a style that indicates the result of validation.
    • applyValidationStyle

      public final void applyValidationStyle(WWidget widget, WValidator.Result validation, ValidationStyleFlag flag, ValidationStyleFlag... flags)
      Applies a style that indicates the result of validation.

      Calls applyValidationStyle(widget, validation, EnumSet.of(flag, flags))

    • canBorderBoxElement

      public abstract boolean canBorderBoxElement(DomElement element)
    • getPanelCollapseIconSide

      public Side getPanelCollapseIconSide()
      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.

    • applyFunctionalStyling

      protected abstract void applyFunctionalStyling(WWidget widget, WWidget child, int widgetRole)
      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.

      See Also:
    • applyOptionalStyling

      protected abstract void applyOptionalStyling(WWidget widget, WWidget child, int widgetRole)
      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.

      See Also: