Class WBootstrap3Theme


  • public class WBootstrap3Theme
    extends WTheme
    Theme based on the Twitter Bootstrap 3 CSS framework.

    This theme implements support for building a JWt web application that uses Twitter Bootstrap as a theme for its (layout and) styling. The theme comes with CSS from Bootstrap version 3.1. Only the CSS components of twitter bootstrap are used, but not the JavaScript (i.e. the functional parts), since the functionality is already built-in to the widgets from the library.

    Using this theme, various widgets provided by the library are rendered using markup that is compatible with Twitter Bootstrap. 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 resources that are shipped together with the JWt distribution, but since the Twitter Bootstrap CSS API is a popular API for custom themes, you can easily replace the CSS with custom-built CSS (by reimplementing getStyleSheets()).

    Although this theme facilitates the use of Twitter Bootstrap with JWt, it is still important to understand how Bootstrap expects markup to be, especially related to layout using its grid system, for which we refer to the official bootstrap documentation, see http://getbootstrap.com

    See Also:
    WApplication.setTheme(WTheme theme)
    • Constructor Detail

      • WBootstrap3Theme

        public WBootstrap3Theme()
        Constructor.
    • Method Detail

      • setResponsive

        public void setResponsive​(boolean enabled)
        Enables responsive features.

        Responsive features can be enabled only at application startup. For bootstrap 3, you need to use the progressive bootstrap feature of JWt as it requires setting HTML meta flags.

        Responsive features are disabled by default.

      • setFormControlStyleEnabled

        public void setFormControlStyleEnabled​(boolean enabled)
        Enables form-control on all applicable form widgets.

        By applying "form-control" on form widgets, they will become block level elements that take the size of the parent (which is in bootstrap's philosphy a grid layout).

        The default value is true.

      • getName

        public java.lang.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 java.lang.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 java.util.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
      • 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
      • 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 java.lang.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 java.lang.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 java.lang.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