Interface Application


  • public interface Application
    This interface represents an RWT application before it is started. It's used to configure the various aspects that form an application such as entrypoints, URL mapping, styling, etc.

    An instance of this interface is provided by the framework to the configure method of an ApplicationConfiguration.

    Since:
    2.0
    See Also:
    ApplicationConfiguration
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Interface Description
      static class  Application.OperationMode
      Instances of this class represent a mode of operation for an RWT application.
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void addEntryPoint​(java.lang.String path, java.lang.Class<? extends EntryPoint> entryPointType, java.util.Map<java.lang.String,​java.lang.String> properties)
      Registers an entrypoint at the given servlet path.
      void addEntryPoint​(java.lang.String path, EntryPointFactory entryPointFactory, java.util.Map<java.lang.String,​java.lang.String> properties)
      Registers an entrypoint at the given servlet path.
      void addResource​(java.lang.String resourceName, ResourceLoader resourceLoader)  
      void addServiceHandler​(java.lang.String serviceHandlerId, ServiceHandler serviceHandler)
      Adds a service handler to the application.
      void addStyleSheet​(java.lang.String themeId, java.lang.String styleSheetLocation)
      Adds the given stylesheet to a theme.
      void addStyleSheet​(java.lang.String themeId, java.lang.String styleSheetLocation, ResourceLoader resourceLoader)
      Adds the given stylesheet to a theme.
      void addThemeableWidget​(java.lang.Class<? extends Widget> widget)
      Register a themeable widget for this application.
      void setAttribute​(java.lang.String name, java.lang.Object value)
      Set an initial attribute in the application context.
      void setExceptionHandler​(ExceptionHandler exceptionHandler)
      Sets the exception handler to which exceptions should be forwarded that occur while running the event loop.
      void setOperationMode​(Application.OperationMode operationMode)
      The operation mode in which the application will be running.
      void setSettingStoreFactory​(SettingStoreFactory settingStoreFactory)
      Configure this application to use a custom setting store implementation.
    • Method Detail

      • setOperationMode

        void setOperationMode​(Application.OperationMode operationMode)
        The operation mode in which the application will be running. The default is JEE_COMPATIBILITY.
        Parameters:
        operationMode - the operation mode to be used, must not be null
        See Also:
        Application.OperationMode
      • addEntryPoint

        void addEntryPoint​(java.lang.String path,
                           java.lang.Class<? extends EntryPoint> entryPointType,
                           java.util.Map<java.lang.String,​java.lang.String> properties)
        Registers an entrypoint at the given servlet path. A valid path must start with a slash ('/') and must not contain any other slashes. The servlet path "/" denotes the root path. Nested paths (e.g. "/path/subpath") are currently not supported.

        Properties can be specified to control client-specific aspects of the entrypoint such as theme, icons, etc. The acceptable keys and values depend on the client implementation. The class WebClient provides constants for the default RAP client.

        Parameters:
        path - a valid path to register the entry point at
        entryPointType - the entry point class to be registered, must not be null
        properties - properties that control client-specific aspects of the application, such as theme, icons, etc., may be null
      • addEntryPoint

        void addEntryPoint​(java.lang.String path,
                           EntryPointFactory entryPointFactory,
                           java.util.Map<java.lang.String,​java.lang.String> properties)
        Registers an entrypoint at the given servlet path. A valid path must start with a slash ('/') and must not contain any other slashes. The servlet path "/" denotes the root path. Nested paths (e.g. "/path/subpath") are currently not supported.

        Properties can be specified to control client-specific aspects of the entrypoint such as theme, icons, etc. The acceptable keys and values depend on the client implementation. The class WebClient provides constants for the default RAP client.

        Parameters:
        path - a valid path to register the entry point at
        entryPointFactory - the entry point factory to be registered, must not be null
        properties - properties that control client-specific aspects of the application, such as theme, icons, etc., may be null
      • addStyleSheet

        void addStyleSheet​(java.lang.String themeId,
                           java.lang.String styleSheetLocation)
        Adds the given stylesheet to a theme. If a theme with the given ID does not exist, it is created and initialized with the stylesheet. If the theme exists already, the stylesheet is appended to the theme. The stylesheet file will be loaded with the classloader of the ApplicationConfiguration.
        Parameters:
        themeId - the id of the theme to register or to contribute to
        styleSheetLocation - the location of the CSS file in the format accepted by ClassLoader.getResource(String)
        See Also:
        ApplicationConfiguration, RWT.DEFAULT_THEME_ID
      • addStyleSheet

        void addStyleSheet​(java.lang.String themeId,
                           java.lang.String styleSheetLocation,
                           ResourceLoader resourceLoader)
        Adds the given stylesheet to a theme. If a theme with the given ID does not exist, it is created and initialized with the stylesheet. If the theme exists already, the stylesheet is appended to the theme. The stylesheet file will be loaded with the classloader of the ApplicationConfiguration. The stylesheet file will be loaded using the given resource loader.
        Parameters:
        themeId - the id of the theme to register or to contribute to
        styleSheetLocation - the location of the CSS file in the format accepted by the given resource loader
        resourceLoader - the resource loader that is able to load the style sheet from the given location
        See Also:
        RWT.DEFAULT_THEME_ID
      • setAttribute

        void setAttribute​(java.lang.String name,
                          java.lang.Object value)
        Set an initial attribute in the application context.
        Parameters:
        name - the name of the attribute, must not be null
        value - the attribute value
        See Also:
        ApplicationContext
      • setSettingStoreFactory

        void setSettingStoreFactory​(SettingStoreFactory settingStoreFactory)
        Configure this application to use a custom setting store implementation.
        Parameters:
        the - setting store implementation to use, must not be null
        See Also:
        SettingStore
      • setExceptionHandler

        void setExceptionHandler​(ExceptionHandler exceptionHandler)
        Sets the exception handler to which exceptions should be forwarded that occur while running the event loop.

        To give an exception handler the chance to log errors it called for all classes of exceptions. Errors however are re-thrown after the handler was called so that they cannot be swallowed.

        The default implementation throws the given exception, resulting in a HTTP 500 response.

        Parameters:
        the - exception handler to use, must not be null
        Since:
        2.1
        See Also:
        ExceptionHandler
      • addThemeableWidget

        void addThemeableWidget​(java.lang.Class<? extends Widget> widget)
        Register a themeable widget for this application. A themeable widget is a custom widget that supports theming. To do so, the widget provides a couple of classes and files, such as a theme adapter, that will be found by a naming convention. It's sufficient to register the widget itself. For details on custom widgets, please refer to the documentation.
        Parameters:
        widget - the widget to register as themeable widget
        Since:
        3.0
      • addServiceHandler

        void addServiceHandler​(java.lang.String serviceHandlerId,
                               ServiceHandler serviceHandler)
        Adds a service handler to the application. A service handler is used to handle requests with a certain parameter inside the application. You can think of it like a lightweight servlet that has access to the user's session. Please see the documentation of ServiceHandler for the URL to access this service handler.
        Parameters:
        serviceHandlerId - the id for this servlet handler, used in the parameter
        serviceHandler - the servlet handler to register
        See Also:
        ServiceHandler
      • addResource

        void addResource​(java.lang.String resourceName,
                         ResourceLoader resourceLoader)