|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.vaadin.client.ApplicationConnection
public class ApplicationConnection
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().
| Nested Class Summary | |
|---|---|
static class |
ApplicationConnection.ApplicationConnectionEvent
|
static class |
ApplicationConnection.ApplicationStoppedEvent
Event triggered when a application is stopped by calling ApplicationConnection#setApplicationRunning(false). |
static interface |
ApplicationConnection.ApplicationStoppedHandler
A listener for listening to application stopped events. |
static interface |
ApplicationConnection.CommunicationErrorHandler
Allows custom handling of communication errors. |
static interface |
ApplicationConnection.CommunicationHandler
The communication handler methods are called at certain points during communication with the server. |
static class |
ApplicationConnection.ConnectionStatusEvent
Event triggered when a XHR request has finished with the status code of the response. |
static class |
ApplicationConnection.MultiStepDuration
|
static class |
ApplicationConnection.RequestStartingEvent
|
static class |
ApplicationConnection.ResponseHandlingEndedEvent
|
static class |
ApplicationConnection.ResponseHandlingStartedEvent
|
| Field Summary | |
|---|---|
protected boolean |
applicationRunning
|
protected boolean |
cssLoaded
|
static java.lang.String |
DISABLED_CLASSNAME
|
static java.lang.String |
ERROR_CLASSNAME_EXT
|
protected int |
lastProcessingTime
Holds the time spent rendering the last request |
static java.lang.String |
MODIFIED_CLASSNAME
|
static java.lang.String |
REQUIRED_CLASSNAME
|
static java.lang.String |
REQUIRED_CLASSNAME_EXT
|
protected int |
totalProcessingTime
Holds the total time spent rendering requests during the lifetime of the session. |
static java.lang.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. |
| Constructor Summary | |
|---|---|
ApplicationConnection()
|
|
| Method Summary | ||
|---|---|---|
static java.lang.String |
addGetParameters(java.lang.String uri,
java.lang.String extraParams)
Adds the get parameters to the uri and returns the new uri that contains the parameters. |
|
|
addHandler(com.google.gwt.event.shared.GwtEvent.Type<H> type,
H handler)
|
|
void |
addMethodInvocationToQueue(com.vaadin.shared.communication.MethodInvocation invocation,
boolean delayed,
boolean lastOnly)
Adds an explicit RPC method invocation to the send queue. |
|
void |
analyzeLayouts()
Deprecated. as of 7.1. Replaced by UIConnector.analyzeLayouts() |
|
void |
captionSizeUpdated(Widget widget)
Deprecated. As of 7.0.2, has not had any effect for a long time |
|
protected void |
doAjaxRequest(java.lang.String uri,
JSONObject payload,
RequestCallback requestCallback)
Sends an asynchronous UIDL request to the server using the given URI. |
|
protected void |
doUidlRequest(java.lang.String uri,
JSONObject payload)
Sends an asynchronous or synchronous UIDL request to the server using the given URI. |
|
protected void |
doUidlRequest(java.lang.String uri,
JSONObject payload,
boolean retry)
Sends an asynchronous or synchronous UIDL request to the server using the given URI. |
|
protected void |
endRequest()
|
|
protected void |
extendLiferaySession()
If on Liferay and logged in, ask the client side session management JavaScript to extend the session duration. |
|
void |
fireEvent(com.google.gwt.event.shared.GwtEvent<?> event)
|
|
void |
flushActiveConnector()
Calls ComponentConnector.flush() on the active connector. |
|
void |
forceLayout()
This will cause re-layouting of all components. |
|
java.lang.String |
getCommunicationMethodName()
Returns a human readable string representation of the method used to communicate with the server. |
|
ApplicationConfiguration |
getConfiguration()
Gets the ApplicationConfiguration for the current application. |
|
ServerConnector |
getConnector(java.lang.String connectorId,
int connectorType)
Get either an existing ComponentConnector or create a new ComponentConnector with the given type and id. |
|
VContextMenu |
getContextMenu()
Singleton method to get instance of app's context menu. |
|
java.lang.String |
getCsrfToken()
Gets the token (aka double submit cookie) that the server uses to protect against Cross Site Request Forgery attacks. |
|
Heartbeat |
getHeartbeat()
Returns the hearbeat instance. |
|
Icon |
getIcon(java.lang.String uri)
Gets an Icon instance corresponding to a URI. |
|
int |
getLastResponseId()
Gets the id of the last received response. |
|
VLoadingIndicator |
getLoadingIndicator()
Returns the loading indicator used by this ApplicationConnection |
|
ComponentConnector |
getPaintable(UIDL uidl)
Deprecated. |
|
java.lang.String |
getResource(java.lang.String name)
Gets a recource that has been pre-loaded via UIDL, such as custom layouts. |
|
java.lang.String |
getThemeUri()
Gets the URI for the current theme. |
|
UIConnector |
getUIConnector()
Gets the main view |
|
protected java.lang.String |
getUidlSecurityKey()
|
|
VTooltip |
getVTooltip()
Get VTooltip instance related to application connection |
|
boolean |
handleComponentRelativeSize(Widget widget)
Deprecated. As of 7.0, serves no purpose |
|
void |
handlePushMessage(java.lang.String message)
|
|
protected void |
handleUIDLMessage(java.util.Date start,
java.lang.String jsonText,
ValueMap json)
|
|
protected void |
handleWhenCSSLoaded(java.lang.String jsonText,
ValueMap json)
|
|
boolean |
hasActiveRequest()
Indicates whether or not there are currently active UIDL requests. |
|
boolean |
hasEventListeners(ComponentConnector paintable,
java.lang.String eventIdentifier)
Deprecated. As of 7.0. Use AbstractComponentState#hasEventListener(String)
instead |
|
boolean |
hasEventListeners(Widget widget,
java.lang.String eventIdentifier)
Deprecated. As of 7.0. Use AbstractConnector.hasEventListener(String)
instead |
|
void |
init(WidgetSet widgetSet,
ApplicationConfiguration cnf)
|
|
boolean |
isApplicationRunning()
|
|
protected boolean |
isCSSLoaded()
Checks whether or not the CSS is loaded. |
|
boolean |
isLoadingIndicatorVisible()
Deprecated. As of 7.1. Use getLoadingIndicator() and
VLoadingIndicator.isVisible().isVisible() instead. |
|
protected void |
makeUidlRequest(JSONArray reqInvocations,
java.lang.String extraParams)
Makes an UIDL request to the server. |
|
void |
removePendingInvocations(com.vaadin.shared.communication.MethodInvocation invocation)
Removes any pending invocation of the given method from the queue |
|
protected void |
repaintAll()
|
|
void |
resumeResponseHandling(java.lang.Object lock)
Resumes the rendering process once all locks have been removed. |
|
void |
runDescendentsLayout(HasWidgets container)
Deprecated. As of 7.0, serves no purpose |
|
protected void |
scheduleHeartbeat()
Deprecated. as of 7.2, use Heartbeat.schedule() instead |
|
protected void |
sendHeartbeat()
Deprecated. as of 7.2, use Heartbeat.send() instead |
|
void |
sendPendingVariableChanges()
This method sends currently queued variable changes to server. |
|
void |
setApplicationRunning(boolean running)
|
|
void |
setCommunicationErrorDelegate(ApplicationConnection.CommunicationErrorHandler delegate)
Sets the delegate that is called whenever a communication error occurrs. |
|
void |
setPushEnabled(boolean enabled)
Sets the status for the push connection. |
|
protected void |
showAuthenticationError(java.lang.String details)
Shows the authentication error notification. |
|
protected void |
showCommunicationError(java.lang.String details,
int statusCode)
Shows the communication error notification. |
|
protected void |
showError(java.lang.String details,
ApplicationConfiguration.ErrorMessage message)
Shows an error notification. |
|
void |
showSessionExpiredError(java.lang.String details)
Shows the session expiration notification. |
|
void |
start()
Starts this application. |
|
protected void |
startRequest()
|
|
void |
suspendReponseHandling(java.lang.Object lock)
This method can be used to postpone rendering of a response for a short period of time (e.g. |
|
java.lang.String |
translateVaadinUri(java.lang.String uidlUri)
Translates custom protocols in UIDL URI's to be recognizable by browser. |
|
void |
unregisterPaintable(ServerConnector p)
Deprecated. As of 7.0. No longer serves any purpose. |
|
boolean |
updateComponent(Widget component,
UIDL uidl,
boolean manageCaption)
Deprecated. As of 7.0, no longer serves any purpose |
|
void |
updateVariable(java.lang.String paintableId,
java.lang.String variableName,
boolean newValue,
boolean immediate)
Sends a new value for the given paintables given variable to the server. |
|
void |
updateVariable(java.lang.String paintableId,
java.lang.String variableName,
double newValue,
boolean immediate)
Sends a new value for the given paintables given variable to the server. |
|
void |
updateVariable(java.lang.String paintableId,
java.lang.String variableName,
float newValue,
boolean immediate)
Sends a new value for the given paintables given variable to the server. |
|
void |
updateVariable(java.lang.String paintableId,
java.lang.String variableName,
int newValue,
boolean immediate)
Sends a new value for the given paintables given variable to the server. |
|
void |
updateVariable(java.lang.String paintableId,
java.lang.String variableName,
long newValue,
boolean immediate)
Sends a new value for the given paintables given variable to the server. |
|
void |
updateVariable(java.lang.String paintableId,
java.lang.String variableName,
java.util.Map<java.lang.String,java.lang.Object> map,
boolean immediate)
Sends a new value for the given paintables given variable to the server. |
|
void |
updateVariable(java.lang.String paintableId,
java.lang.String variableName,
java.lang.Object[] values,
boolean immediate)
Sends a new value for the given paintables given variable to the server. |
|
void |
updateVariable(java.lang.String paintableId,
java.lang.String variableName,
ServerConnector newValue,
boolean immediate)
Sends a new value for the given paintables given variable to the server. |
|
void |
updateVariable(java.lang.String paintableId,
java.lang.String variableName,
java.lang.String[] values,
boolean immediate)
Sends a new value for the given paintables given variable to the server. |
|
void |
updateVariable(java.lang.String paintableId,
java.lang.String variableName,
java.lang.String newValue,
boolean immediate)
Sends a new value for the given paintables given variable to the server. |
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final java.lang.String MODIFIED_CLASSNAME
public static final java.lang.String DISABLED_CLASSNAME
public static final java.lang.String REQUIRED_CLASSNAME
public static final java.lang.String REQUIRED_CLASSNAME_EXT
public static final java.lang.String ERROR_CLASSNAME_EXT
public static final java.lang.String UIDL_REFRESH_TOKEN
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() + " -->");
}
protected boolean applicationRunning
protected boolean cssLoaded
protected int lastProcessingTime
protected int totalProcessingTime
| Constructor Detail |
|---|
public ApplicationConnection()
| Method Detail |
|---|
public void init(WidgetSet widgetSet,
ApplicationConfiguration cnf)
public void start()
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.
protected void extendLiferaySession()
public boolean hasActiveRequest()
protected void repaintAll()
@Deprecated public void analyzeLayouts()
UIConnector.analyzeLayouts()
protected void makeUidlRequest(JSONArray reqInvocations,
java.lang.String extraParams)
reqInvocations - Data containing RPC invocations and all related information.extraParams - Parameters that are added as GET parameters to the url.
Contains key=value pairs joined by & characters or is empty if
no parameters should be added. Should not start with any
special character.
protected void doUidlRequest(java.lang.String uri,
JSONObject payload)
uri - The URI to use for the request. May includes GET parameterspayload - The contents of the request to send
protected void doUidlRequest(java.lang.String uri,
JSONObject payload,
boolean retry)
uri - The URI to use for the request. May includes GET parameterspayload - The contents of the request to sendretry - true when a status code 0 should be retried
protected void doAjaxRequest(java.lang.String uri,
JSONObject payload,
RequestCallback requestCallback)
throws RequestException
uri - The URI to use for the request. May includes GET parameterspayload - The contents of the request to sendrequestCallback - The handler for the response
RequestException - if the request could not be sent
protected void handleWhenCSSLoaded(java.lang.String jsonText,
ValueMap json)
protected boolean isCSSLoaded()
protected void showCommunicationError(java.lang.String details,
int statusCode)
details - Optional details for debugging.statusCode - The status code returned for the requestprotected void showAuthenticationError(java.lang.String details)
details - Optional details for debugging.public void showSessionExpiredError(java.lang.String details)
details - Optional details for debugging.
protected void showError(java.lang.String details,
ApplicationConfiguration.ErrorMessage message)
details - Optional details for debugging.message - An ErrorMessage describing the error.protected void startRequest()
protected void endRequest()
public VLoadingIndicator getLoadingIndicator()
@Deprecated public boolean isLoadingIndicatorVisible()
getLoadingIndicator() and
VLoadingIndicator.isVisible().isVisible() instead.
public int getLastResponseId()
No guarantees are made for the structure of the id other than that there will be a new unique value every time a new response with data from the server is received.
The initial id when no request has yet been processed is -1.
protected void handleUIDLMessage(java.util.Date start,
java.lang.String jsonText,
ValueMap json)
public void addMethodInvocationToQueue(com.vaadin.shared.communication.MethodInvocation invocation,
boolean delayed,
boolean lastOnly)
invocation - RPC method invocationdelayed - false to trigger sending within a short time
window (possibly combining subsequent calls to a single
request), true to let the framework delay sending
of RPC calls and variable changes until the next non-delayed
changelastOnly - true to remove all previously delayed invocations
of the same method that were also enqueued with lastonly set
to true. false to add invocation to
the end of the queue without touching previously enqueued
invocations.public void removePendingInvocations(com.vaadin.shared.communication.MethodInvocation invocation)
invocation - The invocation to removepublic void sendPendingVariableChanges()
public void updateVariable(java.lang.String paintableId,
java.lang.String variableName,
ServerConnector newValue,
boolean immediate)
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.
paintableId - the id of the paintable that owns the variablevariableName - the name of the variablenewValue - the new value to be sentimmediate - true if the update is to be sent as soon as possible
public void updateVariable(java.lang.String paintableId,
java.lang.String variableName,
java.lang.String newValue,
boolean immediate)
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.
paintableId - the id of the paintable that owns the variablevariableName - the name of the variablenewValue - the new value to be sentimmediate - true if the update is to be sent as soon as possible
public void updateVariable(java.lang.String paintableId,
java.lang.String variableName,
int newValue,
boolean immediate)
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.
paintableId - the id of the paintable that owns the variablevariableName - the name of the variablenewValue - the new value to be sentimmediate - true if the update is to be sent as soon as possible
public void updateVariable(java.lang.String paintableId,
java.lang.String variableName,
long newValue,
boolean immediate)
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.
paintableId - the id of the paintable that owns the variablevariableName - the name of the variablenewValue - the new value to be sentimmediate - true if the update is to be sent as soon as possible
public void updateVariable(java.lang.String paintableId,
java.lang.String variableName,
float newValue,
boolean immediate)
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.
paintableId - the id of the paintable that owns the variablevariableName - the name of the variablenewValue - the new value to be sentimmediate - true if the update is to be sent as soon as possible
public void updateVariable(java.lang.String paintableId,
java.lang.String variableName,
double newValue,
boolean immediate)
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.
paintableId - the id of the paintable that owns the variablevariableName - the name of the variablenewValue - the new value to be sentimmediate - true if the update is to be sent as soon as possible
public void updateVariable(java.lang.String paintableId,
java.lang.String variableName,
boolean newValue,
boolean immediate)
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.
paintableId - the id of the paintable that owns the variablevariableName - the name of the variablenewValue - the new value to be sentimmediate - true if the update is to be sent as soon as possible
public void updateVariable(java.lang.String paintableId,
java.lang.String variableName,
java.util.Map<java.lang.String,java.lang.Object> map,
boolean immediate)
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.
paintableId - the id of the paintable that owns the variablevariableName - the name of the variablemap - the new values to be sentimmediate - true if the update is to be sent as soon as possible
public void updateVariable(java.lang.String paintableId,
java.lang.String variableName,
java.lang.String[] values,
boolean immediate)
paintableId - the id of the paintable that owns the variablevariableName - the name of the variablevalues - the new value to be sentimmediate - true if the update is to be sent as soon as possible
public void updateVariable(java.lang.String paintableId,
java.lang.String variableName,
java.lang.Object[] values,
boolean immediate)
paintableId - the id of the paintable that owns the variablevariableName - the name of the variablevalues - the new value to be sentimmediate - true if the update is to be sent as soon as possible@Deprecated public void runDescendentsLayout(HasWidgets container)
LayoutManager.
container - public void forceLayout()
@Deprecated public boolean handleComponentRelativeSize(Widget widget)
paintable -
@Deprecated public ComponentConnector getPaintable(UIDL uidl)
public ServerConnector getConnector(java.lang.String connectorId,
int connectorType)
connectorId - Id of the paintableconnectorType - Type of the connector, as passed from the server side
public java.lang.String getResource(java.lang.String name)
name - identifier of the resource to get
public VContextMenu getContextMenu()
public Icon getIcon(java.lang.String uri)
Icon instance corresponding to a URI.
uri -
public java.lang.String translateVaadinUri(java.lang.String uidlUri)
uidlUri - Vaadin URI from uidl
public java.lang.String getThemeUri()
protected java.lang.String getUidlSecurityKey()
public java.lang.String getCsrfToken()
@Deprecated public void captionSizeUpdated(Widget widget)
component - the Paintable whose caption has changedpublic UIConnector getUIConnector()
public ApplicationConfiguration getConfiguration()
ApplicationConfiguration for the current application.
ApplicationConfiguration
@Deprecated
public boolean hasEventListeners(ComponentConnector paintable,
java.lang.String eventIdentifier)
AbstractComponentState#hasEventListener(String)
instead
paintable - The connector to register event listeners foreventIdentifier - The identifier for the event
public static java.lang.String addGetParameters(java.lang.String uri,
java.lang.String extraParams)
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.
@Deprecated public void unregisterPaintable(ServerConnector p)
public VTooltip getVTooltip()
@Deprecated
public boolean updateComponent(Widget component,
UIDL uidl,
boolean manageCaption)
component - uidl - manageCaption -
@Deprecated
public boolean hasEventListeners(Widget widget,
java.lang.String eventIdentifier)
AbstractConnector.hasEventListener(String)
instead
@Deprecated protected void scheduleHeartbeat()
Heartbeat.schedule() instead
@Deprecated protected void sendHeartbeat()
Heartbeat.send() instead
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.
public void suspendReponseHandling(java.lang.Object lock)
lock - public void resumeResponseHandling(java.lang.Object lock)
lock - public void setCommunicationErrorDelegate(ApplicationConnection.CommunicationErrorHandler delegate)
delegate - the delegate.public void setApplicationRunning(boolean running)
public boolean isApplicationRunning()
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)
public void fireEvent(com.google.gwt.event.shared.GwtEvent<?> event)
fireEvent in interface com.google.gwt.event.shared.HasHandlerspublic void flushActiveConnector()
ComponentConnector.flush() on the active connector. Does
nothing if there is no active (focused) connector.
public void setPushEnabled(boolean enabled)
enabled - true to enable the push connection;
false to disable the push connection.public void handlePushMessage(java.lang.String message)
public java.lang.String getCommunicationMethodName()
public Heartbeat getHeartbeat()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||