public class RPCRequest extends RefDataClass
RPCManager.sendRequest()
method. If you use the RPCManager.send()
method, an instance of RPCRequest will be created for you.id
factoryCreated, factoryProperties
Constructor and Description |
---|
RPCRequest() |
RPCRequest(com.google.gwt.core.client.JavaScriptObject jsObj) |
Modifier and Type | Method and Description |
---|---|
boolean |
downloadCallback(RPCResponse response,
java.util.Map data,
java.lang.String fileName,
java.lang.String type,
RPCRequest request)
|
java.lang.String |
getActionURL()
Overrides RPCManager.actionURL for this request only.
|
java.lang.Boolean |
getAllowIE9Leak()
Advanced flag to avoid a potential memory leak in Internet Explorer 9 for requests with JSON formatted responses.
|
java.lang.Boolean |
getBypassCache()
For xmlHttp transport + httpMethod: "GET" only, set to true to force a conditional GET request even if the browser
thinks it has a current cached response.
|
java.lang.String |
getCallbackParam()
For use only with the
scriptInclude transport, this attribute
specifies the name of the URL parameter which is used to specify the callback function that
the server is expected to call by writing out JavaScript code. |
java.lang.Boolean |
getContainsCredentials()
For use during
Relogin , this property marks this request an attempt to login,
therefore a response containing the loginRequiredMarker is a normal condition and should result in the
status code STATUS_LOGIN_INCORRECT rather than a call
to loginRequired() . |
java.lang.String |
getContentType()
Valid with the xmlHttpRequest transport only and only when
httpMethod is set to "POST". |
com.google.gwt.core.client.JavaScriptObject |
getData()
Returns the payload of this request to be sent to the server, as a JavaScriptObject.
|
java.lang.String |
getDataAsString() |
java.lang.Boolean |
getDownloadResult()
If enabled, causes the RPCRequest to download the requested resource as a file, either showing the browser's Save
dialog or displaying the file-content in
a new browser
window . |
java.lang.Boolean |
getDownloadToNewWindow()
When
downloadResult is true, setting this attribute to true
causes the content of the downloaded file to be displayed in a new browser window. |
java.lang.Boolean |
getEvalResult()
This works similarly to
serverOutputAsString except
the resulting String
is automatically evaluated as JavaScript. |
java.util.Map |
getHttpHeaders()
HTTP headers to send, as a Object mapping Header name -> Header value, eg
{ "Content-Type" : "text/xml" } |
java.lang.String |
getHttpMethod()
Selects the HTTP method that will be used for the request.
|
java.lang.String |
getHttpProxyURL()
The proxy URL to use for this request (if
useHttpProxy is set
for this request). |
java.lang.Boolean |
getIgnoreTimeout()
When set to true, no reply is expected from the server.
|
java.lang.Boolean |
getIsBackgroundRequest()
Is this a background request?
|
java.lang.Boolean |
getMockMode()
If enabled and request is applied to
RPCManager.cacheScreens()
or RPCManager.loadScreen() indicates that referenced DataSources
should be loaded in mock mode. |
java.lang.Boolean |
getOmitNullMapValuesInResponse()
If enabled, the server omits any key/value pairs in map that have null values from the response.
|
static RPCRequest |
getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj) |
java.util.Map |
getParams()
Values to be sent as simple HTTP params, as a JavaScript Object where each property/value pair will become an HTTP
parameter name and value.
|
java.lang.String |
getPrompt()
Overrides RPCManager.defaultPrompt for this request only.
|
java.lang.String |
getPromptCursor()
Controls the cursor shown when
promptStyle is set to
"cursor" for this request only. |
int |
getPromptDelay()
Overrides RPCManager.promptDelay for this request only.
|
PromptStyle |
getPromptStyle()
Controls the prompt style for this request only.
|
java.lang.Boolean |
getReportDownloadErrorsAsDocuments()
Whether errors during download should be reported inside the document, rather than through the
normal mechanism . |
java.lang.Boolean |
getSendNoQueue()
When set to true, this request is sent to the server immediately, bypassing any current queue.
|
java.lang.Boolean |
getServerOutputAsString()
Setting this flag makes the body of the HTTP response available as a String in the
callback as RPCResponse.data . |
java.lang.Boolean |
getShowPrompt()
Overrides
RPCManager.showPrompt for this request only. |
java.lang.Boolean |
getSuppressAutoDraw()
If
evalResult is set, setting this property to true causes
Canvas.autoDraw to be set to false for the duration of the result
evaluation - which is generally what you want if you're returning new components from the server. |
java.lang.Integer |
getTimeout()
Sets the timeout on this request.
|
RPCTransport |
getTransport()
Selects the transport used for this RPCRequest.
|
boolean |
getUseCursorTracker()
If true, an image is shown to the right of the cursor when
promptStyle is set to "cursor", otherwise the cursor itself is modified via css to the value of promptCursor . |
java.lang.Boolean |
getUseHttpProxy()
Indicates whether this request should use the HttpProxyServlet in order to enable contacting hosts other than the origin
server (available only in Pro Edition or better).
|
java.lang.Boolean |
getUseSimpleHttp()
When set to true, assume the request is not going to the Smart GWT server, and hence send a simple HTTP request that
does not use Smart GWT-specific request encoding.
|
java.lang.Boolean |
getUseStrictJSON()
If set true, tells the server to use strict JSON format when serializing the response data.
|
java.lang.Boolean |
getWillHandleError()
With willHandleError:false, rpcResponses that indicate an error go through centralized handling in the RPCManager and
rpcRequest.callback is never invoked.
|
java.lang.Boolean |
getWithCredentials()
In browsers that support Cross-Origin
Resource Sharing and XMLHttpRequest 2, and where the
service at the
actionURL allows the origin to send credentials
(see Access-Control-Allow-Credentials ), should user credentials such as cookies, HTTP authentication, and
client-side SSL certificates be sent with the actual CORS request? |
protected static boolean |
isDSRequest(com.google.gwt.core.client.JavaScriptObject jsObj) |
RPCRequest |
setActionURL(java.lang.String actionURL)
Overrides RPCManager.actionURL for this request only.
|
RPCRequest |
setAllowIE9Leak(java.lang.Boolean allowIE9Leak)
Advanced flag to avoid a potential memory leak in Internet Explorer 9 for requests with JSON formatted responses.
|
RPCRequest |
setBypassCache(java.lang.Boolean bypassCache)
For xmlHttp transport + httpMethod: "GET" only, set to true to force a conditional GET request even if the browser
thinks it has a current cached response.
|
RPCRequest |
setCallbackParam(java.lang.String callbackParam)
For use only with the
scriptInclude transport, this attribute
specifies the name of the URL parameter which is used to specify the callback function that
the server is expected to call by writing out JavaScript code. |
RPCRequest |
setContainsCredentials(java.lang.Boolean containsCredentials)
For use during
Relogin , this property marks this request an attempt to login,
therefore a response containing the loginRequiredMarker is a normal condition and should result in the
status code STATUS_LOGIN_INCORRECT rather than a call
to loginRequired() . |
RPCRequest |
setContentType(java.lang.String contentType)
Valid with the xmlHttpRequest transport only and only when
httpMethod is set to "POST". |
void |
setData(com.google.gwt.core.client.JavaScriptObject data)
This attribute specifies the payload of the RPCRequest.
|
RPCRequest |
setData(java.util.Map data)
This attribute specifies the payload of the RPCRequest.
|
RPCRequest |
setData(Record data)
This attribute specifies the payload of the RPCRequest.
|
RPCRequest |
setData(java.lang.String data)
This attribute specifies the payload of the RPCRequest.
|
RPCRequest |
setDownloadResult(java.lang.Boolean downloadResult)
If enabled, causes the RPCRequest to download the requested resource as a file, either showing the browser's Save
dialog or displaying the file-content in
a new browser
window . |
RPCRequest |
setDownloadToNewWindow(java.lang.Boolean downloadToNewWindow)
When
downloadResult is true, setting this attribute to true
causes the content of the downloaded file to be displayed in a new browser window. |
RPCRequest |
setEvalResult(java.lang.Boolean evalResult)
This works similarly to
serverOutputAsString except
the resulting String
is automatically evaluated as JavaScript. |
RPCRequest |
setEvalVars(java.util.Map evalVars)
If you've set
evalResult : true, then the property values of
this object will be available in the evaluation scope of the result under the variable names specified by the property
names. |
RPCRequest |
setHttpHeaders(java.util.Map httpHeaders)
HTTP headers to send, as a Object mapping Header name -> Header value, eg
{ "Content-Type" : "text/xml" } |
RPCRequest |
setHttpMethod(java.lang.String httpMethod)
Selects the HTTP method that will be used for the request.
|
RPCRequest |
setHttpProxyURL(java.lang.String httpProxyURL)
The proxy URL to use for this request (if
useHttpProxy is set
for this request). |
RPCRequest |
setIgnoreTimeout(java.lang.Boolean ignoreTimeout)
When set to true, no reply is expected from the server.
|
RPCRequest |
setIsBackgroundRequest(java.lang.Boolean isBackgroundRequest)
Is this a background request?
|
RPCRequest |
setMockMode(java.lang.Boolean mockMode)
If enabled and request is applied to
RPCManager.cacheScreens()
or RPCManager.loadScreen() indicates that referenced DataSources
should be loaded in mock mode. |
RPCRequest |
setOmitNullMapValuesInResponse(java.lang.Boolean omitNullMapValuesInResponse)
If enabled, the server omits any key/value pairs in map that have null values from the response.
|
RPCRequest |
setParams(java.util.Map params)
Values to be sent as simple HTTP params, as a JavaScript Object where each property/value pair will become an HTTP
parameter name and value.
|
RPCRequest |
setPrompt(java.lang.String prompt)
Overrides RPCManager.defaultPrompt for this request only.
|
RPCRequest |
setPromptCursor(java.lang.String promptCursor)
Controls the cursor shown when
promptStyle is set to
"cursor" for this request only. |
RPCRequest |
setPromptDelay(int promptDelay)
Overrides RPCManager.promptDelay for this request only.
|
RPCRequest |
setPromptStyle(PromptStyle promptStyle)
Controls the prompt style for this request only.
|
RPCRequest |
setReportDownloadErrorsAsDocuments(java.lang.Boolean reportDownloadErrorsAsDocuments)
Whether errors during download should be reported inside the document, rather than through the
normal mechanism . |
RPCRequest |
setSendNoQueue(java.lang.Boolean sendNoQueue)
When set to true, this request is sent to the server immediately, bypassing any current queue.
|
RPCRequest |
setServerOutputAsString(java.lang.Boolean serverOutputAsString)
Setting this flag makes the body of the HTTP response available as a String in the
callback as RPCResponse.data . |
RPCRequest |
setShowPrompt(java.lang.Boolean showPrompt)
Overrides
RPCManager.showPrompt for this request only. |
RPCRequest |
setSuppressAutoDraw(java.lang.Boolean suppressAutoDraw)
If
evalResult is set, setting this property to true causes
Canvas.autoDraw to be set to false for the duration of the result
evaluation - which is generally what you want if you're returning new components from the server. |
RPCRequest |
setTimeout(java.lang.Integer timeout)
Sets the timeout on this request.
|
RPCRequest |
setTransport(RPCTransport transport)
Selects the transport used for this RPCRequest.
|
RPCRequest |
setUseCursorTracker(boolean useCursorTracker)
If true, an image is shown to the right of the cursor when
promptStyle is set to "cursor", otherwise the cursor itself is modified via css to the value of promptCursor . |
RPCRequest |
setUseHttpProxy(java.lang.Boolean useHttpProxy)
Indicates whether this request should use the HttpProxyServlet in order to enable contacting hosts other than the origin
server (available only in Pro Edition or better).
|
RPCRequest |
setUseSimpleHttp(java.lang.Boolean useSimpleHttp)
When set to true, assume the request is not going to the Smart GWT server, and hence send a simple HTTP request that
does not use Smart GWT-specific request encoding.
|
RPCRequest |
setUseStrictJSON(java.lang.Boolean useStrictJSON)
If set true, tells the server to use strict JSON format when serializing the response data.
|
RPCRequest |
setWillHandleError(java.lang.Boolean willHandleError)
With willHandleError:false, rpcResponses that indicate an error go through centralized handling in the RPCManager and
rpcRequest.callback is never invoked.
|
RPCRequest |
setWithCredentials(java.lang.Boolean withCredentials)
In browsers that support Cross-Origin
Resource Sharing and XMLHttpRequest 2, and where the
service at the
actionURL allows the origin to send credentials
(see Access-Control-Allow-Credentials ), should user credentials such as cookies, HTTP authentication, and
client-side SSL certificates be sent with the actual CORS request? |
void |
xhr_onProgress(java.util.Map progressEvent,
RPCRequest request)
Progress event notification fired repeatedly during requests with
transport set to "xmlHttpRequest" . |
getRef, getRef, internalSetID
applyFactoryProperties, doAddHandler, fireEvent, getAttribute, getAttributeAsBoolean, getAttributeAsBoolean, getAttributeAsDate, getAttributeAsDouble, getAttributeAsDoubleArray, getAttributeAsElement, getAttributeAsFloat, getAttributeAsInt, getAttributeAsIntArray, getAttributeAsJavaScriptObject, getAttributeAsLong, getAttributeAsMap, getAttributeAsObject, getAttributeAsRecord, getAttributeAsString, getAttributeAsStringArray, getAttributes, getHandlerCount, isFactoryCreated, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttributeAsJavaObject, setFactoryCreated
public RPCRequest()
public RPCRequest(com.google.gwt.core.client.JavaScriptObject jsObj)
public static RPCRequest getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)
public RPCRequest setActionURL(java.lang.String actionURL)
actionURL
- New actionURL value. Default value is RPCManager.actionURLRPCRequest
instance, for chaining setter callscom.smartgwt.client.rpc.RPCManager#actionURL
,
URL
public java.lang.String getActionURL()
com.smartgwt.client.rpc.RPCManager#actionURL
,
URL
public RPCRequest setAllowIE9Leak(java.lang.Boolean allowIE9Leak)
This attribute may be set to false
to explicitly enable the workaround described here
for this request, avoiding a potential memory leak in Internet
Explorer 9.
This workaround has a limitation in that if parsing the JSON response generates certain object types
including JavaScript Date
or function
objects, attempts to interact with these objects can
subsequently lead to a JavaScript error with the message "Can't execute code from a freed script"
.
This workaround therefore may not be suitable for all transactions or dataSources within a given application.
This
property may also be set globally within an application (via allowIE9Leak
)_.
Note: This memory leak and workaround is discussed further in the online Smart GWT FAQ.
Note : This is an advanced setting
allowIE9Leak
- New allowIE9Leak value. Default value is nullRPCRequest
instance, for chaining setter callspublic java.lang.Boolean getAllowIE9Leak()
This attribute may be set to false
to explicitly enable the workaround described here
for this request, avoiding a potential memory leak in Internet
Explorer 9.
This workaround has a limitation in that if parsing the JSON response generates certain object types
including JavaScript Date
or function
objects, attempts to interact with these objects can
subsequently lead to a JavaScript error with the message "Can't execute code from a freed script"
.
This workaround therefore may not be suitable for all transactions or dataSources within a given application.
This
property may also be set globally within an application (via allowIE9Leak
)_.
Note: This memory leak and workaround is discussed further in the online Smart GWT FAQ.
public RPCRequest setBypassCache(java.lang.Boolean bypassCache)
Note : This is an advanced setting
bypassCache
- New bypassCache value. Default value is falseRPCRequest
instance, for chaining setter callspublic java.lang.Boolean getBypassCache()
public RPCRequest setCallbackParam(java.lang.String callbackParam)
scriptInclude
transport, this attribute
specifies the name of the URL parameter which is used to specify the callback function that
the server is expected to call by writing out JavaScript code. The actual function to call
is automatically generated and differs for every request (to allow concurrency).
For example, with callbackParam
set to it's default value of "callback", the
server might be contacted with a URL like:
loadData?callback=isc_scriptIncludeCallback_5.. then the server's response should look like:
isc_scriptIncludeCallback_5({ .. data .. });The name "isc_scriptIncludeCallback_5" is automatically generated and will differ each time the server is contacted.
Smart GWT makes of this server-provided callback mechanism, then calls
callback
normally.
rpcRequest.callbackParam
is ignored by all transport other than
scriptInclude
.
callbackParam
- New callbackParam value. Default value is "callback"RPCRequest
instance, for chaining setter callspublic java.lang.String getCallbackParam()
scriptInclude
transport, this attribute
specifies the name of the URL parameter which is used to specify the callback function that
the server is expected to call by writing out JavaScript code. The actual function to call
is automatically generated and differs for every request (to allow concurrency).
For example, with callbackParam
set to it's default value of "callback", the
server might be contacted with a URL like:
loadData?callback=isc_scriptIncludeCallback_5.. then the server's response should look like:
isc_scriptIncludeCallback_5({ .. data .. });The name "isc_scriptIncludeCallback_5" is automatically generated and will differ each time the server is contacted.
Smart GWT makes of this server-provided callback mechanism, then calls
callback
normally.
rpcRequest.callbackParam
is ignored by all transport other than
scriptInclude
.
public RPCRequest setContainsCredentials(java.lang.Boolean containsCredentials)
Relogin
, this property marks this request an attempt to login,
therefore a response containing the loginRequiredMarker
is a normal condition and should result in the
status code STATUS_LOGIN_INCORRECT
rather than a call
to loginRequired()
. It is not required to set
containsCredentials
, however, it does typically simplify relogin logic by separating the handling of RPCs
that are login attempts from RPCs that are not.
Note : This is an advanced setting
containsCredentials
- New containsCredentials value. Default value is falseRPCRequest
instance, for chaining setter callsRelogin
public java.lang.Boolean getContainsCredentials()
Relogin
, this property marks this request an attempt to login,
therefore a response containing the loginRequiredMarker
is a normal condition and should result in the
status code STATUS_LOGIN_INCORRECT
rather than a call
to loginRequired()
. It is not required to set
containsCredentials
, however, it does typically simplify relogin logic by separating the handling of RPCs
that are login attempts from RPCs that are not.
Relogin
public RPCRequest setContentType(java.lang.String contentType)
httpMethod
is set to "POST".contentType
- New contentType value. Default value is "application/x-www-form-urlencoded"RPCRequest
instance, for chaining setter callspublic java.lang.String getContentType()
httpMethod
is set to "POST".public RPCRequest setData(java.lang.String data)
Smart GWT server
, objects sent to the server as request.data
will be available on the server-side
RPCRequest
object as Java Objects. This is achieved by serializing the client side data in a JSON type
format and generating Java Objects on the server from this serialized data. If the client side
request.data
is set to a Java object in your SmartGWT code it will be serialized as JSON as follows:
-
Numeric client side values (int, Integer, etc) will be serialized as JavaScript numbers.
- String values will be
serialized as JavaScript strings.
- Date values will be serialized as JavaScript dates.
- Maps or Record objects
will be serialized as JavaScript Objects.
- Arrays or Lists will become JavaScript arrays
Serialization of Maps
and Arrays is recursive - each entry in an Array, or attribute on a Map will also be serialized according to the above
rules.
Note that you can also set request.data
directly to a JavaScriptObject, and use the
JSOHelper
class or SomeObject.getJSObj()
to perform your own data conversions on the
client. The serialized JavaScript will then be converted back to Java on the server according to the following rules.
Here are the mapping of JavaScript types to their corresponding server object types:
JS Type | Java Type |
Object: {} | Map |
Array: [] | List |
String | String |
Number | Long|Double |
Boolean | Boolean |
Date | java.util.Date |
String | com.smartgwt.client.types.ValueEnum |
When using JPA or
Hibernate Java value used can be affected by the Java Bean declaration. See DsRequestBeanTypes
for details.
Server->client conversion follows this table as well, with some extras. See the toJS() method on JSTranslater in the server documentation for a description of additional behaviors.
When not communicating with the Smart GWT server, rpcRequest.data
becomes simple HTTP
parameters or an HTTP request body - see useSimpleHttp
for
details.
data
- New data value. Default value is nullRPCRequest
instance, for chaining setter callscom.smartgwt.client.rpc.RPCResponse#setData
public RPCRequest setData(Record data)
Smart GWT server
, objects sent to the server as request.data
will be available on the server-side
RPCRequest
object as Java Objects. This is achieved by serializing the client side data in a JSON type
format and generating Java Objects on the server from this serialized data. If the client side
request.data
is set to a Java object in your SmartGWT code it will be serialized as JSON as follows:
-
Numeric client side values (int, Integer, etc) will be serialized as JavaScript numbers.
- String values will be
serialized as JavaScript strings.
- Date values will be serialized as JavaScript dates.
- Maps or Record objects
will be serialized as JavaScript Objects.
- Arrays or Lists will become JavaScript arrays
Serialization of Maps
and Arrays is recursive - each entry in an Array, or attribute on a Map will also be serialized according to the above
rules.
Note that you can also set request.data
directly to a JavaScriptObject, and use the
JSOHelper
class or SomeObject.getJSObj()
to perform your own data conversions on the
client. The serialized JavaScript will then be converted back to Java on the server according to the following rules.
Here are the mapping of JavaScript types to their corresponding server object types:
JS Type | Java Type |
Object: {} | Map |
Array: [] | List |
String | String |
Number | Long|Double |
Boolean | Boolean |
Date | java.util.Date |
String | com.smartgwt.client.types.ValueEnum |
When using JPA or
Hibernate Java value used can be affected by the Java Bean declaration. See DsRequestBeanTypes
for details.
Server->client conversion follows this table as well, with some extras. See the toJS() method on JSTranslater in the server documentation for a description of additional behaviors.
When not communicating with the Smart GWT server, rpcRequest.data
becomes simple HTTP
parameters or an HTTP request body - see useSimpleHttp
for
details.
data
- New data value. Default value is nullRPCRequest
instance, for chaining setter callscom.smartgwt.client.rpc.RPCResponse#setData
public RPCRequest setData(java.util.Map data)
Smart GWT server
, objects sent to the server as request.data
will be available on the server-side
RPCRequest
object as Java Objects. This is achieved by serializing the client side data in a JSON type
format and generating Java Objects on the server from this serialized data. If the client side
request.data
is set to a Java object in your SmartGWT code it will be serialized as JSON as follows:
-
Numeric client side values (int, Integer, etc) will be serialized as JavaScript numbers.
- String values will be
serialized as JavaScript strings.
- Date values will be serialized as JavaScript dates.
- Maps or Record objects
will be serialized as JavaScript Objects.
- Arrays or Lists will become JavaScript arrays
Serialization of Maps
and Arrays is recursive - each entry in an Array, or attribute on a Map will also be serialized according to the above
rules.
Note that you can also set request.data
directly to a JavaScriptObject, and use the
JSOHelper
class or SomeObject.getJSObj()
to perform your own data conversions on the
client. The serialized JavaScript will then be converted back to Java on the server according to the following rules.
Here are the mapping of JavaScript types to their corresponding server object types:
JS Type | Java Type |
Object: {} | Map |
Array: [] | List |
String | String |
Number | Long|Double |
Boolean | Boolean |
Date | java.util.Date |
String | com.smartgwt.client.types.ValueEnum |
When using JPA or
Hibernate Java value used can be affected by the Java Bean declaration. See DsRequestBeanTypes
for details.
Server->client conversion follows this table as well, with some extras. See the toJS() method on JSTranslater in the server documentation for a description of additional behaviors.
When not communicating with the Smart GWT server, rpcRequest.data
becomes simple HTTP
parameters or an HTTP request body - see useSimpleHttp
for
details.
data
- New data value. Default value is nullRPCRequest
instance, for chaining setter callscom.smartgwt.client.rpc.RPCResponse#setData
public RPCRequest setDownloadResult(java.lang.Boolean downloadResult)
a new browser
window
. Download requests will use transport
: "hiddenFrame"
by default.
In this mode, the download will be performed by a standard HTTP request issued by the browser. If DSRequest.downloadToNewWindow
is true, the request will be
targeted against a new browser window, and if the resulting file can be displayed inline by the browser it will be. If
DSRequest.downloadToNewWindow
is not true, or the
browser cannot display the returned file inline, the browser will download the file and store it to the user's file
system.
Download requests with transport
: "hiddenFrame" do
not fire any callbacks.
If a developer explicitly sets request.transport
to "xmlHttpRequest", the
browser will instead use an XMLHttpRequest to download the data from the server. This mode differs from hiddenFrame
downloads in various ways:
httpHeaders
may be
sent to the server in this modedownloadCallback()
will be invoked, if specified.false
from the downloadCallback will suppress the
default behavior of saving the file to the user's filesystem, giving developers an opportunity to take
other actions, such as generating a data URL from the Blob.xhr_onProgress()
event to indicate download progress if
required.Note : This is an advanced setting
downloadResult
- New downloadResult value. Default value is falseRPCRequest
instance, for chaining setter callspublic java.lang.Boolean getDownloadResult()
a new browser
window
. Download requests will use transport
: "hiddenFrame"
by default.
In this mode, the download will be performed by a standard HTTP request issued by the browser. If DSRequest.downloadToNewWindow
is true, the request will be
targeted against a new browser window, and if the resulting file can be displayed inline by the browser it will be. If
DSRequest.downloadToNewWindow
is not true, or the
browser cannot display the returned file inline, the browser will download the file and store it to the user's file
system.
Download requests with transport
: "hiddenFrame" do
not fire any callbacks.
If a developer explicitly sets request.transport
to "xmlHttpRequest", the
browser will instead use an XMLHttpRequest to download the data from the server. This mode differs from hiddenFrame
downloads in various ways:
httpHeaders
may be
sent to the server in this modedownloadCallback()
will be invoked, if specified.false
from the downloadCallback will suppress the
default behavior of saving the file to the user's filesystem, giving developers an opportunity to take
other actions, such as generating a data URL from the Blob.xhr_onProgress()
event to indicate download progress if
required.public RPCRequest setDownloadToNewWindow(java.lang.Boolean downloadToNewWindow)
downloadResult
is true, setting this attribute to true
causes the content of the downloaded file to be displayed in a new browser window. Note that this setting is
currently incompatible with transport:"xmlHttpRequest"
. See the
downloadResult
documentation for more details on
xmlHttpRequest downloads
Note : This is an advanced setting
downloadToNewWindow
- New downloadToNewWindow value. Default value is falseRPCRequest
instance, for chaining setter callspublic java.lang.Boolean getDownloadToNewWindow()
downloadResult
is true, setting this attribute to true
causes the content of the downloaded file to be displayed in a new browser window. Note that this setting is
currently incompatible with transport:"xmlHttpRequest"
. See the
downloadResult
documentation for more details on
xmlHttpRequest downloads
public RPCRequest setEvalResult(java.lang.Boolean evalResult)
serverOutputAsString
except
the resulting String
is automatically evaluated as JavaScript. The result of the evaluation is then passed to
any specified callback
as RPCResponse.data
.
This feature can be used to dynamically load new application modules into a running
application. An RPCRequest with evalResult
enabled can be used to fetch a
static .js file or JavaScript dynamically generated by the server. The returned JavaScript
can contain anything that a JavaScript file loaded at init time can contain, including new
views and new Smart GWT class definitions.
Example usage with RPCManager.sendRequest()
:
RPCRequest rpcRequestProperties = new RPCRequest(); rpcRequestProperties.setEvalResult(true); rpcRequestProperties.setActionURL("js/loadLabel.js"); Map evalVars = new HashMap(); evalVars.put(var1, "A Value"); rpcRequestProperties.setEvalVars(evalVars); RPCManager.sendRequest(rpcRequestProperties);This call would execute the code from
loadLabel.js
, and make the variable
var1
available to that code. Therefore if the .js file contained this code:
Label label = new Label(); label.setContents(var1);A label would be created with contents set to the value of
var1
- the string
"A Value"
.
This feature relies on the XMLHttpRequest object which can be disabled by end-users in some
supported browsers. See PlatformDependencies
for more information.
Note : This is an advanced setting
evalResult
- New evalResult value. Default value is falseRPCRequest
instance, for chaining setter callsViewLoader
,
setEvalVars(java.util.Map)
public java.lang.Boolean getEvalResult()
serverOutputAsString
except
the resulting String
is automatically evaluated as JavaScript. The result of the evaluation is then passed to
any specified callback
as RPCResponse.data
.
This feature can be used to dynamically load new application modules into a running
application. An RPCRequest with evalResult
enabled can be used to fetch a
static .js file or JavaScript dynamically generated by the server. The returned JavaScript
can contain anything that a JavaScript file loaded at init time can contain, including new
views and new Smart GWT class definitions.
Example usage with RPCManager.sendRequest()
:
RPCRequest rpcRequestProperties = new RPCRequest(); rpcRequestProperties.setEvalResult(true); rpcRequestProperties.setActionURL("js/loadLabel.js"); Map evalVars = new HashMap(); evalVars.put(var1, "A Value"); rpcRequestProperties.setEvalVars(evalVars); RPCManager.sendRequest(rpcRequestProperties);This call would execute the code from
loadLabel.js
, and make the variable
var1
available to that code. Therefore if the .js file contained this code:
Label label = new Label(); label.setContents(var1);A label would be created with contents set to the value of
var1
- the string
"A Value"
.
This feature relies on the XMLHttpRequest object which can be disabled by end-users in some
supported browsers. See PlatformDependencies
for more information.
ViewLoader
,
com.smartgwt.client.rpc.RPCRequest#getEvalVars
public RPCRequest setEvalVars(java.util.Map evalVars)
evalResult
: true, then the property values of
this object will be available in the evaluation scope of the result under the variable names specified by the property
names. So e.g. if evalVars is: {foo: "bar"}
then a reference to the variable foo
in the
result will evaluate to "bar"
.
Note : This is an advanced setting
evalVars
- New evalVars value. Default value is nullRPCRequest
instance, for chaining setter callspublic RPCRequest setHttpHeaders(java.util.Map httpHeaders)
Valid
with the xmlHttpRequest transport
only.
httpHeaders
- New httpHeaders value. Default value is nullRPCRequest
instance, for chaining setter callspublic java.util.Map getHttpHeaders()
Valid
with the xmlHttpRequest transport
only.
public RPCRequest setHttpMethod(java.lang.String httpMethod)
The more obscure "PUT", "DELETE" and "HEAD" methods are also valid, however, none of these are supported by the Safari browser previous to version 3.0.
httpMethod
- New httpMethod value. Default value is "POST"RPCRequest
instance, for chaining setter callspublic java.lang.String getHttpMethod()
The more obscure "PUT", "DELETE" and "HEAD" methods are also valid, however, none of these are supported by the Safari browser previous to version 3.0.
public RPCRequest setHttpProxyURL(java.lang.String httpProxyURL)
useHttpProxy
is set
for this request). If unset, the value of httpProxyURL
will be
used instead.httpProxyURL
- New httpProxyURL value. Default value is nullRPCRequest
instance, for chaining setter callscom.smartgwt.client.rpc.RPCManager#httpProxyURL
public java.lang.String getHttpProxyURL()
useHttpProxy
is set
for this request). If unset, the value of httpProxyURL
will be
used instead.com.smartgwt.client.rpc.RPCManager#httpProxyURL
public RPCRequest setIgnoreTimeout(java.lang.Boolean ignoreTimeout)
Note:
setting this to true, forces sendNoQueue
to true
for this request.
Note : This is an advanced setting
ignoreTimeout
- New ignoreTimeout value. Default value is falseRPCRequest
instance, for chaining setter callspublic java.lang.Boolean getIgnoreTimeout()
Note:
setting this to true, forces sendNoQueue
to true
for this request.
public RPCRequest setIsBackgroundRequest(java.lang.Boolean isBackgroundRequest)
This attribute may be set to true for requests that do not interfere with the normal flow of user interaction within an application.
Background requests are ignored by AutoTest.waitForSystemDone()
, giving automated testing tools a way
to identify specific operations that should not interfere with the flow of the test, without entirely disabling the
ability to wait for network operations
.
isBackgroundRequest
- New isBackgroundRequest value. Default value is nullRPCRequest
instance, for chaining setter callspublic java.lang.Boolean getIsBackgroundRequest()
This attribute may be set to true for requests that do not interfere with the normal flow of user interaction within an application.
Background requests are ignored by AutoTest.waitForSystemDone()
, giving automated testing tools a way
to identify specific operations that should not interfere with the flow of the test, without entirely disabling the
ability to wait for network operations
.
public RPCRequest setMockMode(java.lang.Boolean mockMode)
RPCManager.cacheScreens()
or RPCManager.loadScreen()
indicates that referenced DataSources
should be loaded in mock mode.mockMode
- New mockMode value. Default value is nullRPCRequest
instance, for chaining setter callspublic java.lang.Boolean getMockMode()
RPCManager.cacheScreens()
or RPCManager.loadScreen()
indicates that referenced DataSources
should be loaded in mock mode.public RPCRequest setOmitNullMapValuesInResponse(java.lang.Boolean omitNullMapValuesInResponse)
To enable this globally for all responses you can set
RPCManager.omitNullMapValuesInResponse in server.properties
.
Note
that SQL DataSources
don't add nulls to results for null values so this
flag does nothing in that case.
Note : This is an advanced setting
omitNullMapValuesInResponse
- New omitNullMapValuesInResponse value. Default value is falseRPCRequest
instance, for chaining setter callspublic java.lang.Boolean getOmitNullMapValuesInResponse()
To enable this globally for all responses you can set
RPCManager.omitNullMapValuesInResponse in server.properties
.
Note
that SQL DataSources
don't add nulls to results for null values so this
flag does nothing in that case.
public RPCRequest setParams(java.util.Map params)
Array-valued parameters will be submitted as multiple
instances of the same parameter, similar to an HTML form with a multi-select (?paramName=value1¶mName=value2
...), accessible as getParameterValues(paramName) in Java Servlets. Any non-atomic type, such as an Object, will be
serialized to JSON by the JSONEncoder
. If this isn't desirable, serialize the data in advance so that the value
provided in rpcRequest.params
is a String.
Note that this API is primarily used in combination with
useSimpleHttp
- when contacting the Smart GWT Server, use
data
instead, which provides full JavaScript <-> Java
translation of arbitrary structures. rpcRequest.params
can also be used with the Smart GWT Server, where it
provides an an opportunity to send additional data aside from the main data
payload. This is useful for adding data to DataSource requests which will be kept separate from the automatically
sent DataSource data, or for making parts of the request visible in the URL for HTTP-level logging or layer 4 switches.
Note that in contrast to data
object, the data in
rpcRequest.params
is not deserialized by the Smart GWT server, and all values arrive on the server as
String type (like HTTP parameters always do).
Note: The params are submitted once per http transaction. If you
are using request queuing
to bundle multiple RPCRequests or
DSRequests into a single HTTP turnaround, the params from the various RPCRequests will be merged, with the later-queued
transactions winning on parameter name collisions. A warning will be logged in the Developer Console if multiple
RPCRequests specified params.
params
- New params value. Default value is nullRPCRequest
instance, for chaining setter callspublic java.util.Map getParams()
Array-valued parameters will be submitted as multiple
instances of the same parameter, similar to an HTML form with a multi-select (?paramName=value1¶mName=value2
...), accessible as getParameterValues(paramName) in Java Servlets. Any non-atomic type, such as an Object, will be
serialized to JSON by the JSONEncoder
. If this isn't desirable, serialize the data in advance so that the value
provided in rpcRequest.params
is a String.
Note that this API is primarily used in combination with
useSimpleHttp
- when contacting the Smart GWT Server, use
data
instead, which provides full JavaScript <-> Java
translation of arbitrary structures. rpcRequest.params
can also be used with the Smart GWT Server, where it
provides an an opportunity to send additional data aside from the main data
payload. This is useful for adding data to DataSource requests which will be kept separate from the automatically
sent DataSource data, or for making parts of the request visible in the URL for HTTP-level logging or layer 4 switches.
Note that in contrast to data
object, the data in
rpcRequest.params
is not deserialized by the Smart GWT server, and all values arrive on the server as
String type (like HTTP parameters always do).
Note: The params are submitted once per http transaction. If you
are using request queuing
to bundle multiple RPCRequests or
DSRequests into a single HTTP turnaround, the params from the various RPCRequests will be merged, with the later-queued
transactions winning on parameter name collisions. A warning will be logged in the Developer Console if multiple
RPCRequests specified params.
public RPCRequest setPrompt(java.lang.String prompt)
prompt
- New prompt value. Default value is RPCManager.defaultPromptRPCRequest
instance, for chaining setter callscom.smartgwt.client.rpc.RPCManager#defaultPrompt
,
com.smartgwt.client.rpc.RPCManager#showPrompt
,
com.smartgwt.client.rpc.RPCManager#promptStyle
,
com.smartgwt.client.rpc.RPCManager#promptCursor
,
setShowPrompt(java.lang.Boolean)
,
setPromptStyle(com.smartgwt.client.types.PromptStyle)
,
setPromptCursor(java.lang.String)
,
HTMLString
,
RpcPrompt overview and related methods
public java.lang.String getPrompt()
com.smartgwt.client.rpc.RPCManager#defaultPrompt
,
com.smartgwt.client.rpc.RPCManager#showPrompt
,
com.smartgwt.client.rpc.RPCManager#promptStyle
,
com.smartgwt.client.rpc.RPCManager#promptCursor
,
getShowPrompt()
,
getPromptStyle()
,
getPromptCursor()
,
HTMLString
,
RpcPrompt overview and related methods
public RPCRequest setPromptCursor(java.lang.String promptCursor)
promptStyle
is set to
"cursor"
for this request only. Defaults to promptCursor
.promptCursor
- New promptCursor value. Default value is "progress"RPCRequest
instance, for chaining setter callscom.smartgwt.client.rpc.RPCManager#promptCursor
,
RpcPrompt overview and related methods
public java.lang.String getPromptCursor()
promptStyle
is set to
"cursor"
for this request only. Defaults to promptCursor
.com.smartgwt.client.rpc.RPCManager#promptCursor
,
RpcPrompt overview and related methods
public RPCRequest setPromptDelay(int promptDelay)
promptDelay
. If you're using queuing, note that the promptDelay of the first request is used for the entire queue.
Note : This is an advanced setting
promptDelay
- New promptDelay value. Default value is RPCManager.promptDelayRPCRequest
instance, for chaining setter callssetShowPrompt(java.lang.Boolean)
,
com.smartgwt.client.rpc.RPCManager#promptDelay
,
RpcPrompt overview and related methods
public int getPromptDelay()
promptDelay
. If you're using queuing, note that the promptDelay of the first request is used for the entire queue.
getShowPrompt()
,
com.smartgwt.client.rpc.RPCManager#promptDelay
,
RpcPrompt overview and related methods
public RPCRequest setPromptStyle(PromptStyle promptStyle)
promptStyle
.promptStyle
- New promptStyle value. Default value is RPCManager.promptStyleRPCRequest
instance, for chaining setter callscom.smartgwt.client.rpc.RPCManager#promptStyle
,
RpcPrompt overview and related methods
public PromptStyle getPromptStyle()
promptStyle
.com.smartgwt.client.rpc.RPCManager#promptStyle
,
RpcPrompt overview and related methods
public RPCRequest setReportDownloadErrorsAsDocuments(java.lang.Boolean reportDownloadErrorsAsDocuments)
normal mechanism
. If unset, this will be defaulted from reportDownloadErrorsAsDocuments
.reportDownloadErrorsAsDocuments
- New reportDownloadErrorsAsDocuments value. Default value is nullRPCRequest
instance, for chaining setter callspublic java.lang.Boolean getReportDownloadErrorsAsDocuments()
normal mechanism
. If unset, this will be defaulted from reportDownloadErrorsAsDocuments
.public RPCRequest setSendNoQueue(java.lang.Boolean sendNoQueue)
Note : This is an advanced setting
sendNoQueue
- New sendNoQueue value. Default value is falseRPCRequest
instance, for chaining setter callspublic java.lang.Boolean getSendNoQueue()
public RPCRequest setServerOutputAsString(java.lang.Boolean serverOutputAsString)
callback
as RPCResponse.data
. This is typically only useful if you are sending a request that will not be received by the
Smart GWT Java Server, however in that case, set useSimpleHttp
:true instead, which implies serverOutputAsString:true
.
serverOutputAsString:true
allows you to, for example, load the contents of static files off your webserver
into a string for processing on the client with no server support. The actionURL
must be in the same domain as the current page for this to
work.
This feature relies on the XMLHttpRequest object which can be disabled by end-users in some supported
browsers. See PlatformDependencies
for more information.
Generally this API is
used for either non-Java backends
or for advanced usage such as content
that requires processing before it can be used in Smart GWT components (such as client-side web scraping). Note that
Smart GWT provides higher-level APIs for loading common types of data, see eg HTMLFlow
for HTML content, ViewLoader
for loading Smart
GWT components, XMLTools.loadXML()
for loading XML, evalResult
for loading JSON, and DataSource
for loading structured data in various
formats.
Note : This is an advanced setting
serverOutputAsString
- New serverOutputAsString value. Default value is falseRPCRequest
instance, for chaining setter callspublic java.lang.Boolean getServerOutputAsString()
callback
as RPCResponse.data
. This is typically only useful if you are sending a request that will not be received by the
Smart GWT Java Server, however in that case, set useSimpleHttp
:true instead, which implies serverOutputAsString:true
.
serverOutputAsString:true
allows you to, for example, load the contents of static files off your webserver
into a string for processing on the client with no server support. The actionURL
must be in the same domain as the current page for this to
work.
This feature relies on the XMLHttpRequest object which can be disabled by end-users in some supported
browsers. See PlatformDependencies
for more information.
Generally this API is
used for either non-Java backends
or for advanced usage such as content
that requires processing before it can be used in Smart GWT components (such as client-side web scraping). Note that
Smart GWT provides higher-level APIs for loading common types of data, see eg HTMLFlow
for HTML content, ViewLoader
for loading Smart
GWT components, XMLTools.loadXML()
for loading XML, evalResult
for loading JSON, and DataSource
for loading structured data in various
formats.
public RPCRequest setShowPrompt(java.lang.Boolean showPrompt)
RPCManager.showPrompt
for this request only. If you're using queuing, note that if any of the requests in the queue specify showPrompt:true, then a prompt will be shown for the entire queue with the prompt text of the first request in the queue to specify a custom prompt if promptStyle is set to "dialog".
If promptStyle is set to "cursor" for the request that specified showPrompt: true, then the entire queue uses the "cursor" style for the prompt.
showPrompt
- New showPrompt value. Default value is nullRPCRequest
instance, for chaining setter callscom.smartgwt.client.rpc.RPCManager#showPrompt
,
setPromptStyle(com.smartgwt.client.types.PromptStyle)
,
RpcPrompt overview and related methods
public java.lang.Boolean getShowPrompt()
RPCManager.showPrompt
for this request only. If you're using queuing, note that if any of the requests in the queue specify showPrompt:true, then a prompt will be shown for the entire queue with the prompt text of the first request in the queue to specify a custom prompt if promptStyle is set to "dialog".
If promptStyle is set to "cursor" for the request that specified showPrompt: true, then the entire queue uses the "cursor" style for the prompt.
com.smartgwt.client.rpc.RPCManager#showPrompt
,
getPromptStyle()
,
RpcPrompt overview and related methods
public RPCRequest setSuppressAutoDraw(java.lang.Boolean suppressAutoDraw)
evalResult
is set, setting this property to true causes
Canvas.autoDraw
to be set to false for the duration of the result
evaluation - which is generally what you want if you're returning new components from the server. This also effects
components loaded via the RPCManager.loadScreen()
API.
Note : This is an advanced setting
suppressAutoDraw
- New suppressAutoDraw value. Default value is trueRPCRequest
instance, for chaining setter callspublic java.lang.Boolean getSuppressAutoDraw()
evalResult
is set, setting this property to true causes
Canvas.autoDraw
to be set to false for the duration of the result
evaluation - which is generally what you want if you're returning new components from the server. This also effects
components loaded via the RPCManager.loadScreen()
API.
public RPCRequest setTimeout(java.lang.Integer timeout)
defaultTimeout
. If you're using queuing
, note that the
timeout setting derived from the last request in the queue is used for the entire queue. If you want to override the
timeout for the queue, make sure to set your override at least on the last request in the queue.
For the
"xmlHttpRequest" transport
, this timeout can only happen if the
server actually fails to respond within the specified number of milliseconds. For the "hiddenFrame" transport, this
timeout will occur for non-200 (HTTP_OK) responses.
If timeout
is set to zero, the RPCManager will not
enforce a timeout for this request. However, note that all browsers enforce their own timeouts on HTTP requests, and
may have different timeouts for different kinds of failures (no response at all from server, hung response after
receiving headers, hung response after receiving partial data, etc). Also, intervening web proxies or firewalls may
impose timeouts of their own.
As a rough rule of thumb, if your server response will have a lengthy pause before data begins to be sent, 1-2 minutes is the maximum allowable pause for a public site and still may not work for a minority of users, but up to 4 minutes may be allowable in a controlled environment (intranet or extranet with well-known user base).
Above these limits, your code should return some kind of immediate response to the browser, then kick off a server-side process to complete processing. The browser can then either poll for completion, or use a server-push notification system such as Smart GWT Real-Time Messaging (see http://smartclient.com/product).
Note : This is an advanced setting
timeout
- New timeout value. Default value is nullRPCRequest
instance, for chaining setter callscom.smartgwt.client.rpc.RPCManager#defaultTimeout
public java.lang.Integer getTimeout()
defaultTimeout
. If you're using queuing
, note that the
timeout setting derived from the last request in the queue is used for the entire queue. If you want to override the
timeout for the queue, make sure to set your override at least on the last request in the queue.
For the
"xmlHttpRequest" transport
, this timeout can only happen if the
server actually fails to respond within the specified number of milliseconds. For the "hiddenFrame" transport, this
timeout will occur for non-200 (HTTP_OK) responses.
If timeout
is set to zero, the RPCManager will not
enforce a timeout for this request. However, note that all browsers enforce their own timeouts on HTTP requests, and
may have different timeouts for different kinds of failures (no response at all from server, hung response after
receiving headers, hung response after receiving partial data, etc). Also, intervening web proxies or firewalls may
impose timeouts of their own.
As a rough rule of thumb, if your server response will have a lengthy pause before data begins to be sent, 1-2 minutes is the maximum allowable pause for a public site and still may not work for a minority of users, but up to 4 minutes may be allowable in a controlled environment (intranet or extranet with well-known user base).
Above these limits, your code should return some kind of immediate response to the browser, then kick off a server-side process to complete processing. The browser can then either poll for completion, or use a server-push notification system such as Smart GWT Real-Time Messaging (see http://smartclient.com/product).
com.smartgwt.client.rpc.RPCManager#defaultTimeout
public RPCRequest setTransport(RPCTransport transport)
defaultTransport
will be used. If you're using queueing, note that all requests in the queue must use the same transport. If you attempt to send a request via a different transport than those that are currently on the queue, it will be sent to the server separately, ahead of the queue, and a warning will be logged to the Developer Console.
If you specify an unknown transport, an error will be logged to the
DeveloperConsole and defaultTransport
will be used instead.
If you specify the xmlHttpRequest
transport and it is not available, a warning will be logged to the
Developer Console and the RPCManager will attempt to use the hiddenFrame
transport instead for this
request. Note that some features like serverOutputAsString
require the xmlHttpRequest
transport and will not work if the
xmlHttpRequest
transport is unavailable (this can happen if the end user is using Internet Explorer and has
disabled ActiveX). You can check whether or not the xmlHttpRequest
transport is currently available by
calling RPCManager.xmlHttpRequestAvailable()
.
Note : This is an advanced setting
transport
- New transport value. Default value is RPCManager.defaultTransportRPCRequest
instance, for chaining setter callscom.smartgwt.client.rpc.RPCManager#defaultTransport
public RPCTransport getTransport()
defaultTransport
will be used. If you're using queueing, note that all requests in the queue must use the same transport. If you attempt to send a request via a different transport than those that are currently on the queue, it will be sent to the server separately, ahead of the queue, and a warning will be logged to the Developer Console.
If you specify an unknown transport, an error will be logged to the
DeveloperConsole and defaultTransport
will be used instead.
If you specify the xmlHttpRequest
transport and it is not available, a warning will be logged to the
Developer Console and the RPCManager will attempt to use the hiddenFrame
transport instead for this
request. Note that some features like serverOutputAsString
require the xmlHttpRequest
transport and will not work if the
xmlHttpRequest
transport is unavailable (this can happen if the end user is using Internet Explorer and has
disabled ActiveX). You can check whether or not the xmlHttpRequest
transport is currently available by
calling RPCManager.xmlHttpRequestAvailable()
.
com.smartgwt.client.rpc.RPCManager#defaultTransport
public RPCRequest setUseCursorTracker(boolean useCursorTracker)
promptStyle
is set to "cursor", otherwise the cursor itself is modified via css to the value of promptCursor
. If left unspecified, the default value is set by
useCursorTracker
.
useCursorTracker
- New useCursorTracker value. Default value is falseRPCRequest
instance, for chaining setter callscom.smartgwt.client.rpc.RPCManager#useCursorTracker
,
RpcPrompt overview and related methods
public boolean getUseCursorTracker()
promptStyle
is set to "cursor", otherwise the cursor itself is modified via css to the value of promptCursor
. If left unspecified, the default value is set by
useCursorTracker
.
com.smartgwt.client.rpc.RPCManager#useCursorTracker
,
RpcPrompt overview and related methods
public RPCRequest setUseHttpProxy(java.lang.Boolean useHttpProxy)
When various UI components issues requests automatically, or when
a call to RPCManager.sendProxied()
is made, the HttpProxy will
automatically be used for a URL that starts with "http" and uses a hostname other than "localhost" or
window.location.hostname
, or if the port number differs.
rpcRequest.useHttpProxy
should
only be used to force requests to go through the HttpProxy when the above rules don't work, or to avoid using the
HttpProxy when contacting hosts that allow cross-site calls via the Http Access Control standard.
You can
also set useHttpProxy
:false to avoid ever using the
HttpProxyServlet.
useHttpProxy
- New useHttpProxy value. Default value is nullRPCRequest
instance, for chaining setter callspublic java.lang.Boolean getUseHttpProxy()
When various UI components issues requests automatically, or when
a call to RPCManager.sendProxied()
is made, the HttpProxy will
automatically be used for a URL that starts with "http" and uses a hostname other than "localhost" or
window.location.hostname
, or if the port number differs.
rpcRequest.useHttpProxy
should
only be used to force requests to go through the HttpProxy when the above rules don't work, or to avoid using the
HttpProxy when contacting hosts that allow cross-site calls via the Http Access Control standard.
You can
also set useHttpProxy
:false to avoid ever using the
HttpProxyServlet.
public RPCRequest setUseSimpleHttp(java.lang.Boolean useSimpleHttp)
Values specified in params
are sent to to the server as HTTP request parameters. If httpMethod
is "GET", parameters appear in the request URL, otherwise
if httpMethod is "POST", parameters are encoded in the request body (exactly like an HTML form does). These parameters
are then accessible via typical server-side APIs for retrieving HTTP parameters, eg,
servletRequest.getParameter(paramName) in Java Servlets.
Note that if httpMethod
method is POST and data
is supplied, data
is
assumed to be a string to post as the HTTP request body, and params
are sent as URL parameters instead. This usage is for sending custom request bodies such as the XML payloads used for
SOAP. In this case, contentType
is typically also set to
indicate the content type of the request body.
Setting useSimpleHttp
to true also automatically sets
serverOutputAsString
to true as well.
Note : This is an advanced setting
useSimpleHttp
- New useSimpleHttp value. Default value is falseRPCRequest
instance, for chaining setter callspublic java.lang.Boolean getUseSimpleHttp()
Values specified in params
are sent to to the server as HTTP request parameters. If httpMethod
is "GET", parameters appear in the request URL, otherwise
if httpMethod is "POST", parameters are encoded in the request body (exactly like an HTML form does). These parameters
are then accessible via typical server-side APIs for retrieving HTTP parameters, eg,
servletRequest.getParameter(paramName) in Java Servlets.
Note that if httpMethod
method is POST and data
is supplied, data
is
assumed to be a string to post as the HTTP request body, and params
are sent as URL parameters instead. This usage is for sending custom request bodies such as the XML payloads used for
SOAP. In this case, contentType
is typically also set to
indicate the content type of the request body.
Setting useSimpleHttp
to true also automatically sets
serverOutputAsString
to true as well.
public RPCRequest setUseStrictJSON(java.lang.Boolean useStrictJSON)
To enable this globally for all responses
you can set RPCManager.useStrictJSON
in server.properties
. If the global flag is not set either way in server.properties
, it defaults to false.
Note : This is an advanced setting
useStrictJSON
- New useStrictJSON value. Default value is nullRPCRequest
instance, for chaining setter callsDSRequest.setUseStrictJSON(java.lang.Boolean)
public java.lang.Boolean getUseStrictJSON()
To enable this globally for all responses
you can set RPCManager.useStrictJSON
in server.properties
. If the global flag is not set either way in server.properties
, it defaults to false.
DSRequest.getUseStrictJSON()
public RPCRequest setWillHandleError(java.lang.Boolean willHandleError)
Setting willHandleError:true means that your rpcRequest.callback will receive rpcResponses that have an error status and must handle them.
See also the error handling section in the RPCManager
docs.
willHandleError
- New willHandleError value. Default value is falseRPCRequest
instance, for chaining setter callsRPCManager
,
Error Handling Overview
public java.lang.Boolean getWillHandleError()
Setting willHandleError:true means that your rpcRequest.callback will receive rpcResponses that have an error status and must handle them.
See also the error handling section in the RPCManager
docs.
RPCManager
,
Error Handling Overview
public RPCRequest setWithCredentials(java.lang.Boolean withCredentials)
actionURL
allows the origin to send credentials
(see Access-Control-Allow-Credentials
), should user credentials such as cookies, HTTP authentication, and
client-side SSL certificates be sent with the actual CORS request? This setting only applies when the request transport
is RPCTransport.XMLHTTPREQUEST
.
Note that Internet Explorer 10 and 11 do not send cookies as part of user credentials: IE10 doesn't support cookies on cross origin XMLHttpRequest withCredentials=true.
Note : This is an advanced setting
withCredentials
- New withCredentials value. Default value is nullRPCRequest
instance, for chaining setter callspublic java.lang.Boolean getWithCredentials()
actionURL
allows the origin to send credentials
(see Access-Control-Allow-Credentials
), should user credentials such as cookies, HTTP authentication, and
client-side SSL certificates be sent with the actual CORS request? This setting only applies when the request transport
is RPCTransport.XMLHTTPREQUEST
.
Note that Internet Explorer 10 and 11 do not send cookies as part of user credentials: IE10 doesn't support cookies on cross origin XMLHttpRequest withCredentials=true.
public boolean downloadCallback(RPCResponse response, java.util.Map data, java.lang.String fileName, java.lang.String type, RPCRequest request)
download requests
with transport
set to "xmlHttpRequest"
. This method will
fire when a download request completes. If DSRequest.willHandleError
is true it will fire on both successful completion or failure as reflected by the DSResponse.status
.
By default, successful download requests will save the returned file to the filesystem. To suppress this behavior, return false from this callback. This allows you to take some other action such as generating a data url to display media, etc.
Note that for a successful download request, the data
parameter will be a Blob. For an unsuccessful download
attempt, the data parameter typically contains the error message from the server. To invoke standard error handling,
RPCManager.runDefaultErrorHandling()
may be called.
response
- the response to the requestdata
- The Blob returned by the server, or error message if the download was unsuccessfulfileName
- The file name for the downloaded file, derived from the content-disposition
header.type
- the content type for the downloaded file, as specified by the content-type header.request
- the request that initiated the downloadpublic void xhr_onProgress(java.util.Map progressEvent, RPCRequest request)
transport
set to "xmlHttpRequest"
. This callback will be invoked from the native XMLHttpRequest progress event.
This is typically useful to provide visual feedback to the user when a lengthy download is in progress.
progressEvent
- The native ProgressEvent
with attributes indicating the loaded
content so far, and, if Content-Length
headers were
set on the response, the total
download size. Note that this is a native event produced by the browser and
Smart GWT does not guarantee consistency for the event object, or the timing of the onprogress
event
notifications across browsers.request
- the request that initiated the downloadpublic void setData(com.google.gwt.core.client.JavaScriptObject data)
Smart GWT server
, objects sent to the server as
request.data
will be available on the server-side RPCRequest
object as Java Objects. This is
achieved by serializing the client side data in a JSON type format and generating Java Objects on the server from this
serialized data.
If the client side request.data
is set to a Java object in your SmartGWT code on the client side,
logic in your server side code will be passed the following equivalent objects:
Client | Server Type |
boolean primitive or Boolean | Boolean |
Non-fractional numeric value (e.g: int, Integer, long, Long) | Long |
Fractional numeric value (e.g:float, Float, double, Double) | Double |
String | String |
Date | Date |
List, Set, Iterator | List |
Map | Map |
Record | Map |
RecordList | List of Map |
ResultSet | List of Map (containing only loaded rows if the ResultSet has a partial cache on the client) |
Server->client conversion follows this table as well, with some extras. See the toJS() method on JSTranslater in the server documentation for a description of additional behaviors.
When not communicating with the Smart GWT server, rpcRequest.data
becomes simple HTTP
parameters or an HTTP request body - see useSimpleHttp
for
details.
data
- data Default value is nullRPCResponse.getDataAsMap()
,
RPCResponse.getDataAsObject()
,
RPCResponse.getDataAsString()
public com.google.gwt.core.client.JavaScriptObject getData()
When using the Smart GWT server
, objects sent to the server as
request.data
will be available on the server-side RPCRequest
object as Java Objects. This is
achieved by serializing the client side data in a JSON type format and generating Java Objects on the server from this
serialized data.
If the client side request.data
is set to a Java object in your SmartGWT code on the client side,
logic in your server side code will be passed the following equivalent objects:
Client | Server Type |
boolean primitive or Boolean | Boolean |
Non-fractional numeric value (e.g: int, Integer, long, Long) | Long |
Fractional numeric value (e.g:float, Float, double, Double) | Double |
String | String |
Date | Date |
List, Set, Iterator | List |
Map | Map |
Record | Map |
RecordList | List of Map |
ResultSet | List of Map (containing only loaded rows if the ResultSet has a partial cache on the client) |
Server->client conversion follows this table as well, with some extras. See the toJS() method on JSTranslater in the server documentation for a description of additional behaviors.
When not communicating with the Smart GWT server, rpcRequest.data
becomes simple HTTP
parameters or an HTTP request body - see useSimpleHttp
for
details.
public java.lang.String getDataAsString()
protected static boolean isDSRequest(com.google.gwt.core.client.JavaScriptObject jsObj)