Class ApplicationConnection

java.lang.Object
com.vaadin.client.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 Details

    • MODIFIED_CLASSNAME

      @Deprecated public static final String MODIFIED_CLASSNAME
      Deprecated.
      See Also:
    • DISABLED_CLASSNAME

      @Deprecated public static final String DISABLED_CLASSNAME
      Deprecated.
      See Also:
    • REQUIRED_CLASSNAME

      @Deprecated public static final String REQUIRED_CLASSNAME
      Deprecated.
      See Also:
    • REQUIRED_CLASSNAME_EXT

      @Deprecated public static final String REQUIRED_CLASSNAME_EXT
      Deprecated.
      See Also:
    • ERROR_CLASSNAME_EXT

      @Deprecated public static final String ERROR_CLASSNAME_EXT
      Deprecated.
      See Also:
    • 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:
    • cssLoaded

      protected boolean cssLoaded
  • Constructor Details

    • ApplicationConnection

      public ApplicationConnection()
  • Method Details

    • init

      public void init(com.vaadin.client.WidgetSet widgetSet, ApplicationConfiguration cnf)
    • start

      public void start()
      Starts this application. Don't call this method directly - it's called by ApplicationConfiguration.startApplication(String), 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 com.vaadin.client.VLoadingIndicator getLoadingIndicator()
      Returns the loading indicator used by this ApplicationConnection.
      Returns:
      The loading indicator for this ApplicationConnection
    • isLoadingIndicatorVisible

      @Deprecated public boolean isLoadingIndicatorVisible()
      Deprecated.
      As of 7.1. Use getLoadingIndicator() and VLoadingIndicator.isVisible().isVisible() instead.
      Determines whether or not the loading indicator is showing.
      Returns:
      true if the loading indicator is visible
    • sendPendingVariableChanges

      @Deprecated public void sendPendingVariableChanges()
      Deprecated.
      as of 7.6, use ServerRpcQueue.flush()
    • updateVariable

      public void updateVariable(String paintableId, String variableName, com.vaadin.client.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:
      widget -
      Returns:
      false, always
    • getPaintable

      @Deprecated public com.vaadin.client.ComponentConnector getPaintable(com.vaadin.client.UIDL uidl)
      Deprecated.
    • getConnector

      public com.vaadin.client.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 com.vaadin.client.ui.VContextMenu getContextMenu()
      Singleton method to get instance of app's context menu.
      Returns:
      VContextMenu object
    • getIcon

      public com.vaadin.client.ui.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 com.vaadin.client.ui.ui.UIConnector getUIConnector()
      Gets the main view.
      Returns:
      the main view
    • getConfiguration

      public ApplicationConfiguration getConfiguration()
      Gets the ApplicationConfiguration for the current application.
      Returns:
      the configuration for this application
      See Also:
    • hasEventListeners

      @Deprecated public boolean hasEventListeners(com.vaadin.client.ComponentConnector connector, String eventIdentifier)
      Deprecated.
      As of 7.0. Use AbstractConnector.hasEventListener(String) instead
      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)
      Deprecated.
      Use SharedUtil.addGetParameters(String,String) instead
      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(com.vaadin.client.ServerConnector p)
      Deprecated.
      As of 7.0. No longer serves any purpose.
    • getVTooltip

      public com.vaadin.client.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, com.vaadin.client.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:
    • hasEventListeners

      @Deprecated public boolean hasEventListeners(com.google.gwt.user.client.ui.Widget widget, String eventIdentifier)
      Deprecated.
      As of 7.0. Use AbstractConnector.hasEventListener(String) instead
    • 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 com.vaadin.client.communication.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 com.vaadin.client.communication.ServerRpcQueue getServerRpcQueue()
      Gets the server RPC queue for this application.
      Returns:
      the server RPC queue
      Since:
      7.6
    • getConnectionStateHandler

      public com.vaadin.client.communication.ConnectionStateHandler getConnectionStateHandler()
      Gets the communication error handler for this application.
      Returns:
      the server RPC queue
      Since:
      7.6
    • getMessageHandler

      public com.vaadin.client.communication.MessageHandler getMessageHandler()
      Gets the (server to client) message handler for this application.
      Returns:
      the message handler
      Since:
      7.6
    • getRpcManager

      public com.vaadin.client.communication.RpcManager getRpcManager()
      Gets the server rpc manager for this application.
      Returns:
      the server rpc manager
      Since:
      7.6
    • getMessageSender

      public com.vaadin.client.communication.MessageSender getMessageSender()
      Gets the (client to server) message sender for this application.
      Returns:
      the message sender
      Since:
      7.6
    • getWidgetSet

      public com.vaadin.client.WidgetSet getWidgetSet()
      Returns:
      the widget set
      Since:
      7.6
    • getLastSeenServerSyncId

      public int getLastSeenServerSyncId()
    • getDependencyLoader

      public com.vaadin.client.DependencyLoader getDependencyLoader()
      Gets the instance which handles loading of dependencies.
      Returns:
      the dependency loader for this connection