com.vaadin.client.

Class ApplicationConnection

  • All Implemented Interfaces:

    com.google.gwt.event.shared.HasHandlers

    public class ApplicationConnection
    extends Object
    implements com.google.gwt.event.shared.HasHandlers

    This is the client side communication "engine", managing client-server communication with its server side counterpart com.vaadin.server.VaadinService. Client-side connectors receive updates from the corresponding server-side connector (typically component) as state updates or RPC calls. The connector has the possibility to communicate back with its server side counter part through RPC calls. TODO document better Entry point classes (widgetsets) define onModuleLoad().

    • Field Detail

      • UIDL_REFRESH_TOKEN

        public static final String UIDL_REFRESH_TOKEN

        A string that, if found in a non-JSON response to a UIDL request, will cause the browser to refresh the page. If followed by a colon, optional whitespace, and a URI, causes the browser to synchronously load the URI.

        This allows, for instance, a servlet filter to redirect the application to a custom login page when the session expires. For example:

         if (sessionExpired) {
             response.setHeader("Content-Type", "text/html");
             response.getWriter().write(myLoginPageHtml + "<!-- Vaadin-Refresh: "
                     + request.getContextPath() + " -->");
         }
         

        See Also:

        Constant Field Values

      • cssLoaded

        protected boolean cssLoaded
    • Constructor Detail

      • ApplicationConnection

        public ApplicationConnection()
    • Method Detail

      • start

        public void start()

        Starts this application. Don't call this method directly - it's called by ApplicationConfiguration#startNextApplication(), which should be called once this application has started (first response received) or failed to start. This ensures that the applications are started in order, to avoid session-id problems.

      • analyzeLayouts

        @Deprecated
        public void analyzeLayouts()
        Deprecated.
        as of 7.1. Replaced by UIConnector.analyzeLayouts()

        Requests an analyze of layouts, to find inconsistencies. Exclusively used for debugging during development.

      • executeWhenCSSLoaded

        public void executeWhenCSSLoaded​(com.google.gwt.user.client.Command c)
      • isCSSLoaded

        protected boolean isCSSLoaded()

        Checks whether or not the CSS is loaded. By default checks the size of the loading indicator element.

        Returns:

      • showCommunicationError

        public void showCommunicationError​(String details,
                                           int statusCode)

        Shows the communication error notification.

        Parameters:

        details - Optional details.

        statusCode - The status code returned for the request

      • showAuthenticationError

        public void showAuthenticationError​(String details)

        Shows the authentication error notification.

        Parameters:

        details - Optional details.

      • showSessionExpiredError

        public void showSessionExpiredError​(String details)

        Shows the session expiration notification.

        Parameters:

        details - Optional details.

      • showError

        protected void showError​(String details,
                                 ApplicationConfiguration.ErrorMessage message)

        Shows an error notification.

        Parameters:

        details - Optional details.

        message - An ErrorMessage describing the error.

      • getLoadingIndicator

        public VLoadingIndicator getLoadingIndicator()

        Returns the loading indicator used by this ApplicationConnection.

        Returns:

        The loading indicator for this ApplicationConnection

      • updateVariable

        public void updateVariable​(String paintableId,
                                   String variableName,
                                   ServerConnector newValue,
                                   boolean immediate)

        Sends a new value for the given paintables given variable to the server.

        The update is actually queued to be sent at a suitable time. If immediate is true, the update is sent as soon as possible. If immediate is false, the update will be sent along with the next immediate update.

        Parameters:

        paintableId - the id of the paintable that owns the variable

        variableName - the name of the variable

        newValue - the new value to be sent

        immediate - true if the update is to be sent as soon as possible

      • updateVariable

        public void updateVariable​(String paintableId,
                                   String variableName,
                                   String newValue,
                                   boolean immediate)

        Sends a new value for the given paintables given variable to the server.

        The update is actually queued to be sent at a suitable time. If immediate is true, the update is sent as soon as possible. If immediate is false, the update will be sent along with the next immediate update.

        Parameters:

        paintableId - the id of the paintable that owns the variable

        variableName - the name of the variable

        newValue - the new value to be sent

        immediate - true if the update is to be sent as soon as possible

      • updateVariable

        public void updateVariable​(String paintableId,
                                   String variableName,
                                   int newValue,
                                   boolean immediate)

        Sends a new value for the given paintables given variable to the server.

        The update is actually queued to be sent at a suitable time. If immediate is true, the update is sent as soon as possible. If immediate is false, the update will be sent along with the next immediate update.

        Parameters:

        paintableId - the id of the paintable that owns the variable

        variableName - the name of the variable

        newValue - the new value to be sent

        immediate - true if the update is to be sent as soon as possible

      • updateVariable

        public void updateVariable​(String paintableId,
                                   String variableName,
                                   long newValue,
                                   boolean immediate)

        Sends a new value for the given paintables given variable to the server.

        The update is actually queued to be sent at a suitable time. If immediate is true, the update is sent as soon as possible. If immediate is false, the update will be sent along with the next immediate update.

        Parameters:

        paintableId - the id of the paintable that owns the variable

        variableName - the name of the variable

        newValue - the new value to be sent

        immediate - true if the update is to be sent as soon as possible

      • updateVariable

        public void updateVariable​(String paintableId,
                                   String variableName,
                                   float newValue,
                                   boolean immediate)

        Sends a new value for the given paintables given variable to the server.

        The update is actually queued to be sent at a suitable time. If immediate is true, the update is sent as soon as possible. If immediate is false, the update will be sent along with the next immediate update.

        Parameters:

        paintableId - the id of the paintable that owns the variable

        variableName - the name of the variable

        newValue - the new value to be sent

        immediate - true if the update is to be sent as soon as possible

      • updateVariable

        public void updateVariable​(String paintableId,
                                   String variableName,
                                   double newValue,
                                   boolean immediate)

        Sends a new value for the given paintables given variable to the server.

        The update is actually queued to be sent at a suitable time. If immediate is true, the update is sent as soon as possible. If immediate is false, the update will be sent along with the next immediate update.

        Parameters:

        paintableId - the id of the paintable that owns the variable

        variableName - the name of the variable

        newValue - the new value to be sent

        immediate - true if the update is to be sent as soon as possible

      • updateVariable

        public void updateVariable​(String paintableId,
                                   String variableName,
                                   boolean newValue,
                                   boolean immediate)

        Sends a new value for the given paintables given variable to the server.

        The update is actually queued to be sent at a suitable time. If immediate is true, the update is sent as soon as possible. If immediate is false, the update will be sent along with the next immediate update.

        Parameters:

        paintableId - the id of the paintable that owns the variable

        variableName - the name of the variable

        newValue - the new value to be sent

        immediate - true if the update is to be sent as soon as possible

      • updateVariable

        public void updateVariable​(String paintableId,
                                   String variableName,
                                   Map<String,​Object> map,
                                   boolean immediate)

        Sends a new value for the given paintables given variable to the server.

        The update is actually queued to be sent at a suitable time. If immediate is true, the update is sent as soon as possible. If immediate is false, the update will be sent along with the next immediate update.

        Parameters:

        paintableId - the id of the paintable that owns the variable

        variableName - the name of the variable

        map - the new values to be sent

        immediate - true if the update is to be sent as soon as possible

      • updateVariable

        public void updateVariable​(String paintableId,
                                   String variableName,
                                   String[] values,
                                   boolean immediate)

        Sends a new value for the given paintables given variable to the server.

        The update is actually queued to be sent at a suitable time. If immediate is true, the update is sent as soon as possible. If immediate is false, the update will be sent along with the next immediate update.

        A null array is sent as an empty array.

        Parameters:

        paintableId - the id of the paintable that owns the variable

        variableName - the name of the variable

        values - the new value to be sent

        immediate - true if the update is to be sent as soon as possible

      • updateVariable

        public void updateVariable​(String paintableId,
                                   String variableName,
                                   Object[] values,
                                   boolean immediate)

        Sends a new value for the given paintables given variable to the server.

        The update is actually queued to be sent at a suitable time. If immediate is true, the update is sent as soon as possible. If immediate is false, the update will be sent along with the next immediate update.

        A null array is sent as an empty array.

        Parameters:

        paintableId - the id of the paintable that owns the variable

        variableName - the name of the variable

        values - the new value to be sent

        immediate - true if the update is to be sent as soon as possible

      • runDescendentsLayout

        @Deprecated
        public void runDescendentsLayout​(com.google.gwt.user.client.ui.HasWidgets container)
        Deprecated.
        As of 7.0, serves no purpose

        Does absolutely nothing. Replaced by LayoutManager.

        Parameters:

        container -

      • forceLayout

        public void forceLayout()

        This will cause re-layouting of all components. Mainly used for development. Published to JavaScript.

      • handleComponentRelativeSize

        @Deprecated
        public boolean handleComponentRelativeSize​(com.google.gwt.user.client.ui.Widget widget)
        Deprecated.
        As of 7.0, serves no purpose

        Returns false.

        Parameters:

        paintable -

        Returns:

        false, always

      • getConnector

        public ServerConnector getConnector​(String connectorId,
                                            int connectorType)

        Get either an existing ComponentConnector or create a new ComponentConnector with the given type and id. If a ComponentConnector with the given id already exists, returns it. Otherwise creates and registers a new ComponentConnector of the given type.

        Parameters:

        connectorId - Id of the paintable

        connectorType - Type of the connector, as passed from the server side

        Returns:

        Either an existing ComponentConnector or a new ComponentConnector of the given type

      • getResource

        public String getResource​(String name)

        Gets a resource that has been pre-loaded via UIDL, such as custom layouts.

        Parameters:

        name - identifier of the resource to get

        Returns:

        the resource

      • setResource

        public void setResource​(String name,
                                String resource)

        Sets a resource that has been pre-loaded via UIDL, such as custom layouts.

        Parameters:

        name - identifier of the resource to Set

        resource - the resource

        Since:

        7.6

      • getContextMenu

        public VContextMenu getContextMenu()

        Singleton method to get instance of app's context menu.

        Returns:

        VContextMenu object

      • getIcon

        public Icon getIcon​(String uri)

        Gets an Icon instance corresponding to a URI.

        Parameters:

        uri -

        Returns:

        Icon object

        Since:

        7.2

      • translateVaadinUri

        public String translateVaadinUri​(String uidlUri)

        Translates custom protocols in UIDL URI's to be recognizable by browser. All uri's from UIDL should be routed via this method before giving them to browser due URI's in UIDL may contain custom protocols like theme://.

        Parameters:

        uidlUri - Vaadin URI from uidl

        Returns:

        translated URI ready for browser

      • getThemeUri

        public String getThemeUri()

        Gets the URI for the current theme. Can be used to reference theme resources.

        Returns:

        URI to the current theme

      • captionSizeUpdated

        @Deprecated
        public void captionSizeUpdated​(com.google.gwt.user.client.ui.Widget widget)
        Deprecated.
        As of 7.0.2, has not had any effect for a long time

        Use to notify that the given component's caption has changed; layouts may have to be recalculated.

        Parameters:

        widget - The Widget whose caption has changed

      • getUIConnector

        public UIConnector getUIConnector()

        Gets the main view.

        Returns:

        the main view

      • hasEventListeners

        @Deprecated
        public boolean hasEventListeners​(ComponentConnector connector,
                                         String eventIdentifier)
        Deprecated.

        Checks if there is a registered server side listener for the event. The list of events which has server side listeners is updated automatically before the component is updated so the value is correct if called from updatedFromUIDL.

        Parameters:

        connector - The connector to register event listeners for

        eventIdentifier - The identifier for the event

        Returns:

        true if at least one listener has been registered on server side for the event identified by eventIdentifier.

      • addGetParameters

        @Deprecated
        public static String addGetParameters​(String uri,
                                              String extraParams)

        Adds the get parameters to the uri and returns the new uri that contains the parameters.

        Parameters:

        uri - The uri to which the parameters should be added.

        extraParams - One or more parameters in the format "a=b" or "c=d&e=f". An empty string is allowed but will not modify the url.

        Returns:

        The modified URI with the get parameters in extraParams added.

      • unregisterPaintable

        @Deprecated
        public void unregisterPaintable​(ServerConnector p)
        Deprecated.
        As of 7.0. No longer serves any purpose.
      • getVTooltip

        public VTooltip getVTooltip()

        Get VTooltip instance related to application connection.

        Returns:

        VTooltip instance

      • updateComponent

        @Deprecated
        public boolean updateComponent​(com.google.gwt.user.client.ui.Widget component,
                                       UIDL uidl,
                                       boolean manageCaption)
        Deprecated.
        As of 7.0, no longer serves any purpose

        Method provided for backwards compatibility. Duties previously done by this method is now handled by the state change event handler in AbstractComponentConnector. The only function this method has is to return true if the UIDL is a "cached" update.

        Parameters:

        component -

        uidl -

        manageCaption -

        Returns:

      • scheduleHeartbeat

        @Deprecated
        protected void scheduleHeartbeat()
        Deprecated.
        as of 7.2, use Heartbeat.schedule() instead

        Schedules a heartbeat request to occur after the configured heartbeat interval elapses if the interval is a positive number. Otherwise, does nothing.

      • sendHeartbeat

        @Deprecated
        protected void sendHeartbeat()
        Deprecated.
        as of 7.2, use Heartbeat.send() instead

        Sends a heartbeat request to the server.

        Heartbeat requests are used to inform the server that the client-side is still alive. If the client page is closed or the connection lost, the server will eventually close the inactive UI.

      • handleCommunicationError

        public void handleCommunicationError​(String details,
                                             int statusCode)
      • setCommunicationErrorDelegate

        public void setCommunicationErrorDelegate​(ApplicationConnection.CommunicationErrorHandler delegate)

        Sets the delegate that is called whenever a communication error occurrs.

        Parameters:

        delegate - the delegate.

      • setApplicationRunning

        public void setApplicationRunning​(boolean applicationRunning)
      • isApplicationRunning

        public boolean isApplicationRunning()

        Checks if the application is in the ApplicationConnection.ApplicationState.RUNNING state.

        Returns:

        true if the application is in the running state, false otherwise

        Since:

        7.6

      • addHandler

        public <H extends com.google.gwt.event.shared.EventHandler> com.google.gwt.event.shared.HandlerRegistration addHandler​(com.google.gwt.event.shared.GwtEvent.Type<H> type,
                                                                                                                               H handler)
      • fireEvent

        public void fireEvent​(com.google.gwt.event.shared.GwtEvent<?> event)

        Specified by:

        fireEvent in interface com.google.gwt.event.shared.HasHandlers

      • flushActiveConnector

        public void flushActiveConnector()

        Calls ComponentConnector.flush() on the active connector. Does nothing if there is no active (focused) connector.

      • getHeartbeat

        public Heartbeat getHeartbeat()

        Returns the hearbeat instance.

      • getApplicationState

        public ApplicationConnection.ApplicationState getApplicationState()

        Returns the state of this application. An application state goes from "initializing" to "running" to "stopped". There is no way for an application to go back to a previous state, i.e. a stopped application can never be re-started

        Returns:

        the current state of this application

        Since:

        7.6

      • getServerRpcQueue

        public ServerRpcQueue getServerRpcQueue()

        Gets the server RPC queue for this application.

        Returns:

        the server RPC queue

        Since:

        7.6

      • getConnectionStateHandler

        public ConnectionStateHandler getConnectionStateHandler()

        Gets the communication error handler for this application.

        Returns:

        the server RPC queue

        Since:

        7.6

      • getMessageHandler

        public MessageHandler getMessageHandler()

        Gets the (server to client) message handler for this application.

        Returns:

        the message handler

        Since:

        7.6

      • getRpcManager

        public RpcManager getRpcManager()

        Gets the server rpc manager for this application.

        Returns:

        the server rpc manager

        Since:

        7.6

      • getMessageSender

        public MessageSender getMessageSender()

        Gets the (client to server) message sender for this application.

        Returns:

        the message sender

        Since:

        7.6

      • getWidgetSet

        public WidgetSet getWidgetSet()

        Returns:

        the widget set

        Since:

        7.6

      • getLastSeenServerSyncId

        public int getLastSeenServerSyncId()
      • getDependencyLoader

        public DependencyLoader getDependencyLoader()

        Gets the instance which handles loading of dependencies.

        Returns:

        the dependency loader for this connection