|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.smartgwt.client.core.JsObject
com.smartgwt.client.core.DataClass
com.smartgwt.client.rpc.RPCRequest
com.smartgwt.client.data.DSRequest
public class DSRequest
Request sent to the server to initiate a 'DataSource operation'
.
All properties which are legal on RPCRequest
are legal, in addition to the properties
listed here.
Field Summary |
---|
Fields inherited from class com.smartgwt.client.core.JsObject |
---|
jsObj |
Constructor Summary | |
---|---|
DSRequest()
|
|
DSRequest(JavaScriptObject jsObj)
|
Method Summary | |
---|---|
String |
getComponentId()
For requests submitted by a DataBoundComponent , the ID of the submitting component. |
Criteria |
getCriteria()
Return the Criteria associated with a FETCH operation. |
String |
getDataSource()
DataSource this DSRequest will act on. |
Integer |
getEndRow()
End row of requested results, used only with fetch operations. |
ExportFormat |
getExportAs()
The format in which the data should be exported. |
ExportDisplay |
getExportDisplay()
Specifies whether the exported data will be downloaded to the file-system or displayed in a new window. |
String[] |
getExportFields()
The list of field-names to export. |
String |
getExportFilename()
The name of the file to save the exported data into. |
String |
getExportFooter()
Optional text to appear at the end of the file. |
String |
getExportHeader()
Optional text to appear at the beginning of the file. |
Boolean |
getExportResults()
When set, causes the results of the DSRequest to be exported to a file, whose name and format are indicated by exportFilename and
exportAs respectively. |
Map |
getHeaderData()
For DataSources using SOAP messaging with a WSDL web service, data to be serialized to form SOAP headers, as a map from the header part name to the data. |
String |
getLineBreakStyle()
The style of line-breaks to use in the exported output. |
Record |
getOldValues()
For an update or remove operation, the original values from the record that is being updated
or removed. |
DSOperationType |
getOperationType()
Type of operation being performed: "fetch", "add", "remove", "update" or "custom". |
static DSRequest |
getOrCreateRef(JavaScriptObject jsObj)
|
String |
getRequestId()
Automatically generated unique ID for this request. |
ResultSet |
getResultSet()
For advanced use in integrating dataset paging with web services, the ResultSet that issued this "fetch" DSRequest is automatically made available as the resultSet property. |
SortSpecifier[] |
getSortBy()
Fieldname to sortBy |
Integer |
getStartRow()
Starting row of requested results, used only with fetch operations. |
Boolean |
getUseFlatFields()
When useFlatFields is set for a request to be sent to a WSDL web service, when
creating the input XML
message to send to the web service, properties in
'request.data'
will be used as the values for XML elements of the same name, at
any level of nesting.
|
Boolean |
getUseFlatHeaderFields()
Cause the 'useFlatFields' XML serialization behavior to be
used for all soap headers in the request. |
void |
setComponentId(String componentId)
For requests submitted by a DataBoundComponent , the ID of the submitting component. |
void |
setDataSource(String dataSource)
DataSource this DSRequest will act on. |
void |
setEndRow(Integer endRow)
End row of requested results, used only with fetch operations. |
void |
setExportAs(ExportFormat exportAs)
The format in which the data should be exported. |
void |
setExportDisplay(ExportDisplay exportDisplay)
Specifies whether the exported data will be downloaded to the file-system or displayed in a new window. |
void |
setExportFields(String[] exportFields)
The list of field-names to export. |
void |
setExportFilename(String exportFilename)
The name of the file to save the exported data into. |
void |
setExportFooter(String exportFooter)
Optional text to appear at the end of the file. |
void |
setExportHeader(String exportHeader)
Optional text to appear at the beginning of the file. |
void |
setExportResults(Boolean exportResults)
When set, causes the results of the DSRequest to be exported to a file, whose name and format are indicated by exportFilename and
exportAs respectively. |
void |
setHeaderData(Map headerData)
For DataSources using SOAP messaging with a WSDL web service, data to be serialized to form SOAP headers, as a map from the header part name to the data. |
void |
setLineBreakStyle(String lineBreakStyle)
The style of line-breaks to use in the exported output. |
void |
setOldValues(JavaScriptObject oldValues)
For an update or remove operation, the original values from the record that is being updated
or removed. |
void |
setOldValues(Map oldValues)
For an update or remove operation, the original values from the record that is being updated
or removed. |
void |
setOldValues(Record oldValues)
For an update or remove operation, the original values from the record that is being updated
or removed. |
void |
setOperationId(String operationId)
When a DataBoundComponent sends a DSRequest, the dsRequest.operationId
will be automatically picked up from the fetchOperation , addOperation , etc properties of the
DataBoundComponent. |
void |
setOperationType(DSOperationType operationType)
Type of operation being performed: "fetch", "add", "remove", "update" or "custom". |
void |
setParams(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. |
void |
setSortBy(SortSpecifier[] sortSpecifiers)
Fieldnames to sortBy. |
void |
setStartRow(Integer startRow)
Starting row of requested results, used only with fetch operations. |
void |
setTextMatchStyle(TextMatchStyle textMatchStyle)
For "fetch" operations, how search criteria should be interpreted for text fields: either "exact" for exact match, "startsWith" for matching at the beginning only, or "substring" for case-insensitive substring match. |
void |
setUseFlatFields(Boolean useFlatFields)
When useFlatFields is set for a request to be sent to a WSDL web service, when
creating the input XML
message to send to the web service, properties in
'request.data'
will be used as the values for XML elements of the same name, at
any level of nesting.
|
void |
setUseFlatHeaderFields(Boolean useFlatHeaderFields)
Cause the 'useFlatFields' XML serialization behavior to be
used for all soap headers in the request. |
Methods inherited from class com.smartgwt.client.core.JsObject |
---|
isCreated, setJsObj |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public DSRequest()
public DSRequest(JavaScriptObject jsObj)
Method Detail |
---|
public static DSRequest getOrCreateRef(JavaScriptObject jsObj)
public void setDataSource(String dataSource)
This property is generally automatically populated, for example when calling
DataSource.fetchData()
the dataSource property is set to the target DataSource.
dataSource
- dataSource Default value is nullpublic String getDataSource()
This property is generally automatically populated, for example when calling
DataSource.fetchData()
the dataSource property is set to the target DataSource.
public void setOperationType(DSOperationType operationType)
This property is generally
automatically populated, for example when calling fetchData()
on a DataSource or DataBound component the
operationType is automatically set to "fetch". Note that "custom" operations are never generated automatically, they
are always fired by your code.
operationType
- operationType Default value is nullpublic DSOperationType getOperationType()
This property is generally
automatically populated, for example when calling fetchData()
on a DataSource or DataBound component the
operationType is automatically set to "fetch". Note that "custom" operations are never generated automatically, they
are always fired by your code.
public void setStartRow(Integer startRow)
Note that startRow and endRow are zero-based, so startRow: 0, endRow: 1 is a request for the first two records.
startRow
- startRow Default value is nullpublic Integer getStartRow()
Note that startRow and endRow are zero-based, so startRow: 0, endRow: 1 is a request for the first two records.
public void setEndRow(Integer endRow)
Note that startRow and endRow are zero-based, so startRow: 0, endRow: 1 is a request for the first two records.
endRow
- endRow Default value is nullpublic Integer getEndRow()
Note that startRow and endRow are zero-based, so startRow: 0, endRow: 1 is a request for the first two records.
public void setTextMatchStyle(TextMatchStyle textMatchStyle)
This setting is respected by the built-in SQLDataSource. Your custom DataSource implementation can interpret the search criteria passed into "fetch" operations in arbitrary ways; you can safely ignore this flag and use others of your own devising.
textMatchStyle
- textMatchStyle Default value is "exact"public void setOldValues(Record oldValues)
update
or remove
operation, the original values from the record that is being updated
or removed. oldValues
is automatically added to DSRequests submitted by DataBound Components. Available
on the server via DSRequest.getOldValues()
. The server can compare the oldValues
to the
most recent stored values in order to detect that the user was looking at stale values when the user submitted changes
(NOTE: this means of detecting concurrent edit is sometimes called "optimistic concurrency" or "long transactions").
In applications where a policy of "last update wins" is not appropriate when updating certain fields, special UI can
be shown for this case. For example, on detecting concurrent edit, the server may send back a special
dsResponse.status
code that the client application detects, offering the user a choice of proceeding with
the operation, discarding edits, or reconciling new and old values in a special interface.
oldValues
- oldValues Default value is nullpublic Record getOldValues()
update
or remove
operation, the original values from the record that is being updated
or removed. oldValues
is automatically added to DSRequests submitted by DataBound Components. Available
on the server via DSRequest.getOldValues()
. The server can compare the oldValues
to the
most recent stored values in order to detect that the user was looking at stale values when the user submitted changes
(NOTE: this means of detecting concurrent edit is sometimes called "optimistic concurrency" or "long transactions").
In applications where a policy of "last update wins" is not appropriate when updating certain fields, special UI can
be shown for this case. For example, on detecting concurrent edit, the server may send back a special
dsResponse.status
code that the client application detects, offering the user a choice of proceeding with
the operation, discarding edits, or reconciling new and old values in a special interface.
public void setComponentId(String componentId)
DataBoundComponent
, the ID
of the submitting component. This ID will be present for operations
including automatic saves by a ListGrid 'during editing'
, or calls to DynamicForm.saveData()
. It will not be present for a direct call to a DataSource method
such as DataSource.fetchData()
.
Note this is the component's String ID - you
can retrieve the component itself via Canvas.getById(java.lang.String)
.
componentId
- componentId Default value is nullpublic String getComponentId()
DataBoundComponent
, the ID
of the submitting component. This ID will be present for operations
including automatic saves by a ListGrid 'during editing'
, or calls to DynamicForm.saveData()
. It will not be present for a direct call to a DataSource method
such as DataSource.fetchData()
.
Note this is the component's String ID - you
can retrieve the component itself via Canvas.getById(java.lang.String)
.
public void setOperationId(String operationId)
DataBoundComponent
sends a DSRequest, the dsRequest.operationId
will be automatically picked up from the fetchOperation
, addOperation
, etc properties of the
DataBoundComponent. The operationId
serves as an identifier that you can use to create variations on
the 4 basic DataSource operations that are used by different components in different parts of your application. For
example, you may be using a standard fetch
operation in one part of your application, however on another
screen you want to perform a fetch
operation on the same DataSource but interpret search criteria
differently (eg full text search).
If you declare more than one OperationBinding
for the same operationType
, you can specify an
operationId
'on the operationBinding'
which will cause that operationBinding to be used for dsRequests containing a matching operationId
. This
allows all the possible settings of an operationBinding
, including 'wsOperation'
or com.smartgwt.client..DMI
settings, to
be switched on a per-component or per-request basis.
For example, by setting the fetchOperation
on a
particular ListGrid, you could cause it to invoke a different server method via DMI, different 'dataURL'
or different 'web service operation'
.
The operationId
can
also be directly received by the server in order to affect behavior. When using the Smart GWT Server,
operationId
can be accessed via dsRequest.getOperationId(). The RestDataSource
will also send the operationId
to the server as part of the 'request metadata'
.
Note that if you DataSource.fetchData()
a DataSource operation, you can also specify operationId via the
requestProperties
parameter.
operationId
- operationId Default value is nullpublic String getRequestId()
DSProtocol
.
public void setUseFlatFields(Boolean useFlatFields)
useFlatFields
is set for a request to be sent to a WSDL web service, when
creating the input XML
message to send to the web service, properties in
'request.data'
will be used as the values for XML elements of the same name, at
any level of nesting.
useFlatFields
allows you to ignore gratuitous XML message structure, such as
extra levels of nested
elements, and provides some insulation against changes in the
required structure of the input message.
For example, given this input message:
<FindServices> <searchFor>search text</searchFor> <Options> <caseSensitive>false</caseSensitive> </Options> <IncludeInSearch> <serviceName>true</serviceName> <documentation>true</documentation> <keywords>true</keywords> </IncludeInSearch> </FindServices>If
useFlatFields
were not set,
in order to fill out this message
correctly, request.data
would need to be:
{ searchFor: "search text", Options : { caseSensitive: false, }, IncludeInSearch : { serviceName: true, documentation : true, keywords : true } }However if useFlatFields were set,
request.data
could be just:
{ searchFor: "search text", caseSensitive: false, serviceName: true, documentation : true, keywords : true }
useFlatFields
is often set when the input data comes from a DynamicForm
to avoid the cumbersome and fragile process of mapping input fields
to an XML structure.
useFlatFields
can
also be set to cause all dsRequests of a
particular type to useFlatFields
automatically.
For DataBoundComponent
,
'component.useFlatFields'
can be set use
"flattened"
binding to fields of a WSDL message or XML Schema.
Note that useFlatFields
is not generally recommended for use with XML input
messages where multiple simple type fields exist with the same
name, however if used in this
way, the first field to use a given name wins. "first" means the first field
encountered in a
depth first search. "wins" means only the first field will be populated in the generated
XML
message.
useFlatFields
- useFlatFields Default value is nullpublic Boolean getUseFlatFields()
useFlatFields
is set for a request to be sent to a WSDL web service, when
creating the input XML
message to send to the web service, properties in
'request.data'
will be used as the values for XML elements of the same name, at
any level of nesting.
useFlatFields
allows you to ignore gratuitous XML message structure, such as
extra levels of nested
elements, and provides some insulation against changes in the
required structure of the input message.
For example, given this input message:
<FindServices> <searchFor>search text</searchFor> <Options> <caseSensitive>false</caseSensitive> </Options> <IncludeInSearch> <serviceName>true</serviceName> <documentation>true</documentation> <keywords>true</keywords> </IncludeInSearch> </FindServices>If
useFlatFields
were not set,
in order to fill out this message
correctly, request.data
would need to be:
{ searchFor: "search text", Options : { caseSensitive: false, }, IncludeInSearch : { serviceName: true, documentation : true, keywords : true } }However if useFlatFields were set,
request.data
could be just:
{ searchFor: "search text", caseSensitive: false, serviceName: true, documentation : true, keywords : true }
useFlatFields
is often set when the input data comes from a DynamicForm
to avoid the cumbersome and fragile process of mapping input fields
to an XML structure.
useFlatFields
can
also be set to cause all dsRequests of a
particular type to useFlatFields
automatically.
For DataBoundComponent
,
'component.useFlatFields'
can be set use
"flattened"
binding to fields of a WSDL message or XML Schema.
Note that useFlatFields
is not generally recommended for use with XML input
messages where multiple simple type fields exist with the same
name, however if used in this
way, the first field to use a given name wins. "first" means the first field
encountered in a
depth first search. "wins" means only the first field will be populated in the generated
XML
message.
public void setUseFlatHeaderFields(Boolean useFlatHeaderFields)
'useFlatFields'
XML serialization behavior to be
used for all soap headers in the request. See also headerData
.
useFlatHeaderFields
- useFlatHeaderFields Default value is nullpublic Boolean getUseFlatHeaderFields()
'useFlatFields'
XML serialization behavior to be
used for all soap headers in the request. See also headerData
.
public void setExportResults(Boolean exportResults)
exportFilename
and
exportAs
respectively. When no exportFilename is provided, the default
is
Results and the default value of exportAs is csv.
The export field-list can also
be configured, see exportFields
.
Once the
operation completes, exportDisplay
specifies whether the
exported
data should be downloaded to the file-system or displayed in a new window. The default value
of
exportDisplay is "download" which displays the Save As dialog. See ExportDisplay
for more information.
You can also configure the style of line-breaks to use when generating the
output. See
com.smartgwt.client..LineBreakStyle
for more information.
Note that an export initiated using dsRequest properties does not provide support for JSON format (see this post for more detail).
As well as
setting dsRequest.exportResults and related properties, exports can be initiated
in two other ways, via OperationBinding
s and via custom server code which sets
export-related properties on the
DSResponse
. Both of those methods support exporting
to JSON format.
Format Examples XML format
<List> <Object> <id>10101</id> <displayName>Record 10101</displayName> </Object> </List>JSON Format
[ { id: 10101, displayName: "Record 10101" } ]CSV Format
id,displayName 10101,"Record 10101"
exportResults
- exportResults Default value is falsepublic Boolean getExportResults()
exportFilename
and
exportAs
respectively. When no exportFilename is provided, the default
is
Results and the default value of exportAs is csv.
The export field-list can also
be configured, see exportFields
.
Once the
operation completes, exportDisplay
specifies whether the
exported
data should be downloaded to the file-system or displayed in a new window. The default value
of
exportDisplay is "download" which displays the Save As dialog. See ExportDisplay
for more information.
You can also configure the style of line-breaks to use when generating the
output. See
com.smartgwt.client..LineBreakStyle
for more information.
Note that an export initiated using dsRequest properties does not provide support for JSON format (see this post for more detail).
As well as
setting dsRequest.exportResults and related properties, exports can be initiated
in two other ways, via OperationBinding
s and via custom server code which sets
export-related properties on the
DSResponse
. Both of those methods support exporting
to JSON format.
Format Examples XML format
<List> <Object> <id>10101</id> <displayName>Record 10101</displayName> </Object> </List>JSON Format
[ { id: 10101, displayName: "Record 10101" } ]CSV Format
id,displayName 10101,"Record 10101"
public void setExportAs(ExportFormat exportAs)
ExportFormat
for more
information.
exportAs
- exportAs Default value is "csv"public ExportFormat getExportAs()
ExportFormat
for more
information.
public void setExportFilename(String exportFilename)
exportFilename
- exportFilename Default value is nullpublic String getExportFilename()
public void setExportDisplay(ExportDisplay exportDisplay)
ExportDisplay
for more information.
exportDisplay
- exportDisplay Default value is "download"public ExportDisplay getExportDisplay()
ExportDisplay
for more information.
public void setLineBreakStyle(String lineBreakStyle)
com.smartgwt.client..LineBreakStyle
for more
information.
lineBreakStyle
- lineBreakStyle Default value is nullpublic String getLineBreakStyle()
com.smartgwt.client..LineBreakStyle
for more
information.
public void setExportHeader(String exportHeader)
exportHeader
- exportHeader Default value is nullpublic String getExportHeader()
public void setExportFooter(String exportFooter)
exportFooter
- exportFooter Default value is nullpublic String getExportFooter()
public void setExportFields(String[] exportFields)
If exportFields is not provided, the exported output includes all visible fields from the DataSource (field.hidden=false), sorted in the order they're defined.
exportFields
- exportFields Default value is nullpublic String[] getExportFields()
If exportFields is not provided, the exported output includes all visible fields from the DataSource (field.hidden=false), sorted in the order they're defined.
public void setParams(Map params)
RPCRequest
This API is primarily used in combination with
useSimpleHttp
.
When contacting the Smart GWT
server, setting params
is 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.
Note that in contrast to data
object, the data in rpcRequest.params
is not
serialized/deserialized by the Smart GWT server, and all values arrive on the server as String type (like HTTP
parameters always do).
The params value can also be a componentID or component instance that provides a
method getValues() that returns an Object literal. Smart GWT components DynamicForm
, ValuesManager
are two
such classes. Lastly, you may specify the ID of a native form element (retreivable via getElementById()) and the
params will be populated from there. If there is an error resolving your params directive, it will be logged to
the Developer Console.
Note: The params are submitted once per http transaction. If you are using RPCManager.startQueue()
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.
setParams
in class RPCRequest
params
- params Default value is nullpublic void setHeaderData(Map headerData)
SOAP headers typically contain request metadata such as a session id for authentication, and so dsRequest.headerData is typically populated by DataSource.transformRequest(), or, for data that applies to every request sent to the server, by WebService.getHeaderData().
headerData
- the header datapublic Map getHeaderData()
SOAP headers typically contain request metadata such as a session id for authentication, and so dsRequest.headerData is typically populated by DataSource.transformRequest(), or, for data that applies to every request sent to the server, by WebService.getHeaderData().
public ResultSet getResultSet()
This property can only be read. There is no meaning to setting this property yourself.
public void setSortBy(SortSpecifier[] sortSpecifiers)
sortSpecifiers
- Default value is nullpublic SortSpecifier[] getSortBy()
public void setOldValues(Map oldValues)
update
or remove
operation, the original values from the record that is being updated
or removed. oldValues
is automatically added to DSRequests submitted by DataBound Components. Available
on the server via DSRequest.getOldValues()
. The server can compare the oldValues
to the
most recent stored values in order to detect that the user was looking at stale values when the user submitted changes
(NOTE: this means of detecting concurrent edit is sometimes called "optimistic concurrency" or "long transactions").
In applications where a policy of "last update wins" is not appropriate when updating certain fields, special UI can
be shown for this case. For example, on detecting concurrent edit, the server may send back a special
dsResponse.status
code that the client application detects, offering the user a choice of proceeding with
the operation, discarding edits, or reconciling new and old values in a special interface.
oldValues
- oldValues Default value is nullpublic void setOldValues(JavaScriptObject oldValues)
update
or remove
operation, the original values from the record that is being updated
or removed. oldValues
is automatically added to DSRequests submitted by DataBound Components. Available
on the server via DSRequest.getOldValues()
. The server can compare the oldValues
to the
most recent stored values in order to detect that the user was looking at stale values when the user submitted changes
(NOTE: this means of detecting concurrent edit is sometimes called "optimistic concurrency" or "long transactions").
In applications where a policy of "last update wins" is not appropriate when updating certain fields, special UI can
be shown for this case. For example, on detecting concurrent edit, the server may send back a special
dsResponse.status
code that the client application detects, offering the user a choice of proceeding with
the operation, discarding edits, or reconciling new and old values in a special interface.
oldValues
- oldValues Default value is nullpublic Criteria getCriteria() throws IllegalStateException
Note : This method should only be called during a FETCH operation
IllegalStateException
- if called for a non-fetch operation
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |