|
|||||||||
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.data.DataSourceField
public class DataSourceField
Metadata about a DataSourceField, including its type and validators.
Field Summary |
---|
Fields inherited from class com.smartgwt.client.core.JsObject |
---|
jsObj |
Constructor Summary | |
---|---|
DataSourceField()
|
|
DataSourceField(JavaScriptObject jsObj)
|
|
DataSourceField(String name,
FieldType type)
|
|
DataSourceField(String name,
FieldType type,
String title)
|
|
DataSourceField(String name,
FieldType type,
String title,
int length)
|
|
DataSourceField(String name,
FieldType type,
String title,
int length,
boolean required)
|
Method Summary | |
---|---|
static DataSourceField[] |
convertToDataSourceFieldArray(JavaScriptObject nativeArray)
|
Boolean |
getCanEdit()
Whether this field can ever be edited by the user. |
Boolean |
getCanExport()
Dictates whether the data in this field be exported. |
Boolean |
getCanFilter()
Should the user be able to filter data by this field. |
Boolean |
getCanSave()
Whether values in this field can be updated and saved to the dataSource. |
Boolean |
getCanSortClientOnly()
When true, this field can only be used for sorting if the data is entirely client-side. |
Boolean |
getChildrenProperty()
If true, this property indicates that this field will hold an explicit array of child nodes for the current node. |
String |
getChildTagName()
For a field that is 'multiple:"true"' , controls the name of
the XML tag used for each subelement during DataSource.xmlSerialize(com.google.gwt.core.client.JavaScriptObject) . |
Boolean |
getDetail()
Whether this field should be considered a "detail" field by a DataBoundComponent . |
String |
getExportTitle()
Optional different field-title used for exports. |
String |
getForeignKey()
Declares that this field holds values that can be matched to values from another DataSource field, to create a relationship between records from different DataSources or even records within the same DataSource. |
String |
getGroup()
For use in ComponentSchema , indicates what group to place the property in when editing
in Visual Builder. |
Boolean |
getHidden()
Whether this field should be hidden from users by default within a DataBound component. |
Boolean |
getIgnore()
Whether this field should be completely excluded from this dataSource, as if it had never been defined. |
Boolean |
getInapplicable()
For use in ComponentSchema , a field 'inherited' from another schema can be redeclared with this
property set in order to indicate that the property should not be used. |
String |
getJavaClass()
For use with the Smart GWT server when populating Java Beans / POJOs based on data contained in a DSRequest, javaClass specifies the fully qualified Java className to be created and passed to the setter for the Java
Bean Property with the same name as this field. |
String |
getJavaCollectionClass()
See javaClass - when auto-populating of Java Beans / POJOs
based on inbound DSRequest data, for a field of type Collection or Map, javaCollectionClass can be used
to specify a particular concrete class to use. |
String |
getJavaKeyClass()
See javaClass - when auto-populating of Java Beans / POJOs
based on inbound DSRequest data, for a field of Map type, javaKeyClass can be used to specify a particular
concrete class for the map keys. |
Integer |
getLength()
Maximum number of characters allowed. |
Integer |
getMaxFileSize()
For fields of a type that are represented by binary data initially uploaded from a file (currently "binary" and "imageFile", see FieldType ), this sets the maximum file size allowed, in bytes. |
Boolean |
getMultiple()
Indicates that this field should always be Array-valued. |
String |
getName()
Name for this field. |
static DataSourceField |
getOrCreateRef(JavaScriptObject jsObj)
|
String |
getPluralTitle()
Return the plural title. |
Boolean |
getPrimaryKey()
Whether this field holds a value unique across all records in this DataSource. |
Boolean |
getPropertiesOnly()
For use in ComponentSchema for fields that contain other components, this flag
suppresses auto-construction for subcomponents that appear under this field.
|
Boolean |
getRequired()
Indicates this field must be non-null in order for a record to pass validation. |
String |
getSequenceName()
For a DataSource with 'serverType:"sql"' with a field of type
"sequence", the name of the SQL sequence that should be used when inserting new records into this table. |
Boolean |
getShowFileInline()
For a field of type:"imageFile", indicates whether to stream the image and display it inline or to display the View and Download icons. |
HashAlgorithm |
getStoreWithHash()
If set, causes the field to be securely hashed before saving on an "add" or "update" operation. |
SummaryFunctionType |
getSummaryFunction()
If showGridSummary or showGroupSummary is true, this attribute can be used to
specify an explicit SummaryFunction for calculating the summary value to display. |
String |
getTitle()
Default user-visible title for this field. |
FieldType |
getType()
Type of this field. |
DataSource |
getTypeAsDataSource()
Return the type of the assigned DataSource |
String |
getValueXPath()
XPath expression used to retrieve the field's value. |
Boolean |
getXmlAttribute()
Indicates that DataSource.xmlSerialize(com.google.gwt.core.client.JavaScriptObject) should serialize this value as an XML attribute. |
void |
setCanEdit(Boolean canEdit)
Whether this field can ever be edited by the user. |
void |
setCanExport(Boolean canExport)
Dictates whether the data in this field be exported. |
void |
setCanFilter(Boolean canFilter)
Should the user be able to filter data by this field. |
void |
setCanSave(Boolean canSave)
Whether values in this field can be updated and saved to the dataSource. |
void |
setCanSortClientOnly(Boolean canSortClientOnly)
When true, this field can only be used for sorting if the data is entirely client-side. |
void |
setChildrenProperty(Boolean childrenProperty)
If true, this property indicates that this field will hold an explicit array of child nodes for the current node. |
void |
setChildTagName(String childTagName)
For a field that is 'multiple:"true"' , controls the name of
the XML tag used for each subelement during DataSource.xmlSerialize(com.google.gwt.core.client.JavaScriptObject) . |
void |
setDetail(Boolean detail)
Whether this field should be considered a "detail" field by a DataBoundComponent . |
void |
setEditorType(FormItem editorType)
Sets the default FormItem to be used whenever this field is edited (whether in a grid, form, or other component). |
void |
setExportTitle(String exportTitle)
Optional different field-title used for exports. |
void |
setFieldValueExtractor(FieldValueExtractor extractor)
Function to retrieve the field's value from the XML element or JSON record returned from a web service. |
void |
setForeignKey(String foreignKey)
Declares that this field holds values that can be matched to values from another DataSource field, to create a relationship between records from different DataSources or even records within the same DataSource. |
void |
setGroup(String group)
For use in ComponentSchema , indicates what group to place the property in when editing
in Visual Builder. |
void |
setHidden(Boolean hidden)
Whether this field should be hidden from users by default within a DataBound component. |
void |
setIgnore(Boolean ignore)
Whether this field should be completely excluded from this dataSource, as if it had never been defined. |
void |
setInapplicable(Boolean inapplicable)
For use in ComponentSchema , a field 'inherited' from another schema can be redeclared with this
property set in order to indicate that the property should not be used. |
void |
setJavaClass(String javaClass)
For use with the Smart GWT server when populating Java Beans / POJOs based on data contained in a DSRequest, javaClass specifies the fully qualified Java className to be created and passed to the setter for the Java
Bean Property with the same name as this field. |
void |
setJavaCollectionClass(String javaCollectionClass)
See javaClass - when auto-populating of Java Beans / POJOs
based on inbound DSRequest data, for a field of type Collection or Map, javaCollectionClass can be used
to specify a particular concrete class to use. |
void |
setJavaKeyClass(String javaKeyClass)
See javaClass - when auto-populating of Java Beans / POJOs
based on inbound DSRequest data, for a field of Map type, javaKeyClass can be used to specify a particular
concrete class for the map keys. |
void |
setLength(Integer length)
Maximum number of characters allowed. |
void |
setMaxFileSize(Integer maxFileSize)
For fields of a type that are represented by binary data initially uploaded from a file (currently "binary" and "imageFile", see FieldType ), this sets the maximum file size allowed, in bytes. |
void |
setMultiple(Boolean multiple)
Indicates that this field should always be Array-valued. |
void |
setName(String name)
Name for this field. |
void |
setPluralTitle(String pluralTitle)
Set the plural title. |
void |
setPrimaryKey(Boolean primaryKey)
Whether this field holds a value unique across all records in this DataSource. |
void |
setPropertiesOnly(Boolean propertiesOnly)
For use in ComponentSchema for fields that contain other components, this flag
suppresses auto-construction for subcomponents that appear under this field.
|
void |
setRequired(Boolean required)
Indicates this field must be non-null in order for a record to pass validation. |
void |
setRootValue(Float rootValue)
For a field that is a foreignKey establishing a tree relationship, what value indicates a root-level node. |
void |
setRootValue(Integer rootValue)
For a field that is a foreignKey establishing a tree relationship, what value indicates a root-level node. |
void |
setRootValue(String rootValue)
For a field that is a foreignKey establishing a tree relationship, what value indicates a root-level node. |
void |
setSequenceName(String sequenceName)
For a DataSource with 'serverType:"sql"' with a field of type
"sequence", the name of the SQL sequence that should be used when inserting new records into this table. |
void |
setShowFileInline(Boolean showFileInline)
For a field of type:"imageFile", indicates whether to stream the image and display it inline or to display the View and Download icons. |
void |
setStoreWithHash(HashAlgorithm storeWithHash)
If set, causes the field to be securely hashed before saving on an "add" or "update" operation. |
void |
setSummaryFunction(SummaryFunction summaryFunction)
If showGridSummary or showGroupSummary is true, this attribute can be used to
specify an explicit SummaryFunction for calculating the summary value to display. |
void |
setSummaryFunction(SummaryFunctionType summaryFunction)
If showGridSummary or showGroupSummary is true, this attribute can be used to
specify an explicit SummaryFunction for calculating the summary value to display. |
void |
setTitle(String title)
Default user-visible title for this field. |
void |
setType(DataSource dataSource)
Deprecated. use #setTypeAsDataSource |
void |
setType(FieldType type)
Type of this field. |
void |
setType(SimpleType type)
Set the type directly to a defined SimpleType. |
void |
setTypeAsDataSource(DataSource dataSource)
The type can also be the another DataSource, which allows you to model nested structures such as XML documents (in fact, XMLTools.loadXMLSchema() models XML schema in this way). |
void |
setValidators(Validator... validators)
Validators to be applied to this field. |
void |
setValidOperators(OperatorId... operators)
List of operators valid on this field. |
void |
setValueMap(Map valueMap)
A valueMap is a set of legal values for a field. |
void |
setValueMap(String... valueMap)
A valueMap is a set of legal values for a field. |
void |
setValueXPath(String valueXPath)
XPath expression used to retrieve the field's value. |
void |
setXmlAttribute(Boolean xmlAttribute)
Indicates that DataSource.xmlSerialize(com.google.gwt.core.client.JavaScriptObject) should serialize this value as an XML attribute. |
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 DataSourceField()
public DataSourceField(JavaScriptObject jsObj)
public DataSourceField(String name, FieldType type)
public DataSourceField(String name, FieldType type, String title)
public DataSourceField(String name, FieldType type, String title, int length)
public DataSourceField(String name, FieldType type, String title, int length, boolean required)
Method Detail |
---|
public static DataSourceField getOrCreateRef(JavaScriptObject jsObj)
public void setName(String name)
The field name is also the property in each DataSource record which holds the value for this field.
Must be unique across all fields within the DataSource.
name
- name Default value is nullpublic String getName()
The field name is also the property in each DataSource record which holds the value for this field.
Must be unique across all fields within the DataSource.
public void setType(FieldType type)
Field type may imply automatic validators (for example, an integer field cannot accept the value "foo"). Field type also affects the default behaviors of DataBound components, for example, if a field is declared as type "date", components that edit that field will automatically choose a date-editing interface with pop-up date picker.
type
- type Default value is nullpublic FieldType getType()
Field type may imply automatic validators (for example, an integer field cannot accept the value "foo"). Field type also affects the default behaviors of DataBound components, for example, if a field is declared as type "date", components that edit that field will automatically choose a date-editing interface with pop-up date picker.
public void setRequired(Boolean required)
Note that required
should not be set for a server-generated field, such as a sequence, or validation will fail on the client.
required
- required Default value is nullpublic Boolean getRequired()
Note that required
should not be set for a server-generated field, such as a sequence, or validation will fail on the client.
public void setLength(Integer length)
length
- length Default value is nullpublic Integer getLength()
public void setValueXPath(String valueXPath)
This XPath expression will be evaluated in the scope
of the record objects selected by
the recordXPath
. For
XML data
('dataFormat:"xml"'
) this means a call to
XMLTools.selectString(java.lang.Object, java.lang.String)
passing the selected XML element. For JSON data
('dataFormat:"json"'
), this means a call to
XMLTools.selectObjects(java.lang.Object, java.lang.String)
passing the selected JSON object.
In the absence of a
valueXPath
, for JSON data the value for the field will
be the value of the same-named property in the
record object selected by
'recordXPath'
.
For XML data, the value will be the attribute or subelement named after the field name. For example, for a field "author" on a record element <book>, the following structures require no valueXPath:
<book author="Mark Jones"/> <book> <author>Mark Jones</author> </book>
If valueXPath
is not required for your field because of the default
handling
described above, don't specify it, as it's slightly slower.
To learn about XPath, try the following search: http://www.google.com/search?q=xpath+tutorial
Using valueXPath with the Smart GWT server
If you're using the Smart GWT server to return data via the DSResponse object (or indirectly doing so using DataSource DMI), the valueXPath you specify on the DataSource fields will be applied to the data you return via the JXPath library.
If
you are returning Java Beans as your DSResponse data, normally each dataSource field
receives the value of the
same-named Java Bean property, that is, a field "zipCode" is
populated by looking for "getZipCode()" on the objects
passed as DSResponse data. You can
use valueXPath
to retrieve properties from subobjects, so long as
a chain of
getter methods exists that corresponds to the valueXPath. For example, a valueXPath of
"address/zipCode" expects to call "getAddress()" on the bean(s) passed to
DSResponse.setData(), followed by
"getZipCode()" on whatever object "getAddress()" returns.
When you are saving data, the inbound DSRequest values, available as a Java Map, will use just dataSource field names as Map keys, not the valueXPath used to derive them. However, to achieve bidirectional valueXPath binding, you can use the server-side method dataSource.setProperties() to use the valueXPath when setting properties on your server object model. When applied as a setter, an XPath like "address/zipCode" attempts "getAddress()" followed by "setZipCode()" on the returned object. JXPath also has some ability to auto-create intervening objects if they are missing, such as auto-creating an "address" subobject when applying "address/zipCode" as a valueXPath.
See the JXPath library documentation for complete details, including other types of server object models supported, such as server-side XML.
valueXPath
- valueXPath Default value is nullpublic String getValueXPath()
This XPath expression will be evaluated in the scope
of the record objects selected by
the recordXPath
. For
XML data
('dataFormat:"xml"'
) this means a call to
XMLTools.selectString(java.lang.Object, java.lang.String)
passing the selected XML element. For JSON data
('dataFormat:"json"'
), this means a call to
XMLTools.selectObjects(java.lang.Object, java.lang.String)
passing the selected JSON object.
In the absence of a
valueXPath
, for JSON data the value for the field will
be the value of the same-named property in the
record object selected by
'recordXPath'
.
For XML data, the value will be the attribute or subelement named after the field name. For example, for a field "author" on a record element <book>, the following structures require no valueXPath:
<book author="Mark Jones"/> <book> <author>Mark Jones</author> </book>
If valueXPath
is not required for your field because of the default
handling
described above, don't specify it, as it's slightly slower.
To learn about XPath, try the following search: http://www.google.com/search?q=xpath+tutorial
Using valueXPath with the Smart GWT server
If you're using the Smart GWT server to return data via the DSResponse object (or indirectly doing so using DataSource DMI), the valueXPath you specify on the DataSource fields will be applied to the data you return via the JXPath library.
If
you are returning Java Beans as your DSResponse data, normally each dataSource field
receives the value of the
same-named Java Bean property, that is, a field "zipCode" is
populated by looking for "getZipCode()" on the objects
passed as DSResponse data. You can
use valueXPath
to retrieve properties from subobjects, so long as
a chain of
getter methods exists that corresponds to the valueXPath. For example, a valueXPath of
"address/zipCode" expects to call "getAddress()" on the bean(s) passed to
DSResponse.setData(), followed by
"getZipCode()" on whatever object "getAddress()" returns.
When you are saving data, the inbound DSRequest values, available as a Java Map, will use just dataSource field names as Map keys, not the valueXPath used to derive them. However, to achieve bidirectional valueXPath binding, you can use the server-side method dataSource.setProperties() to use the valueXPath when setting properties on your server object model. When applied as a setter, an XPath like "address/zipCode" attempts "getAddress()" followed by "setZipCode()" on the returned object. JXPath also has some ability to auto-create intervening objects if they are missing, such as auto-creating an "address" subobject when applying "address/zipCode" as a valueXPath.
See the JXPath library documentation for complete details, including other types of server object models supported, such as server-side XML.
public void setTitle(String title)
This will be picked up by DataBound components and other views over this DataSource.
title
- title Default value is nullpublic String getTitle()
This will be picked up by DataBound components and other views over this DataSource.
public void setCanEdit(Boolean canEdit)
false
, no DataBound component will ever try
to offer an editing interface for this field.
canEdit
- canEdit Default value is nullpublic Boolean getCanEdit()
false
, no DataBound component will ever try
to offer an editing interface for this field.
public void setCanSave(Boolean canSave)
If set to false
, this field
will default to being non-editable in standard editing components (DynamicForm
,
editable ListGrid
), but will be editable when displayed for filtering purposes
only (in a SearchForm
or 'ListGrid filter editor'
.
Note: if canEdit
is explicitly specified it will take precedence over this
behavior.
canSave
- canSave Default value is nullpublic Boolean getCanSave()
If set to false
, this field
will default to being non-editable in standard editing components (DynamicForm
,
editable ListGrid
), but will be editable when displayed for filtering purposes
only (in a SearchForm
or 'ListGrid filter editor'
.
Note: if canEdit
is explicitly specified it will take precedence over this
behavior.
public void setCanFilter(Boolean canFilter)
canFilter
- canFilter Default value is nullpublic Boolean getCanFilter()
public void setHidden(Boolean hidden)
See detail
for fields that should be hidden in a summary view such as a ListGrid
,
but still available to the user.
hidden
- hidden Default value is falsepublic Boolean getHidden()
See detail
for fields that should be hidden in a summary view such as a ListGrid
,
but still available to the user.
public void setIgnore(Boolean ignore)
ignore
- ignore Default value is falsepublic Boolean getIgnore()
public void setDetail(Boolean detail)
DataBoundComponent
.
Detail fields won't be shown by default in a DataBoundComponent where showDetailFields
is false. This allows for some
DataBound components, like a ListGrid
, to show a summary view of records which
displays only the most commonly viewed fields by default, while other DataBoundComponents, like a DetailViewer
, show all fields by default.
In addition, the com.smartgwt.client.widgets.form.fields.FormItem#showIf
property is supported in multiple components for conditional
visibility - see for example com.smartgwt.client.widgets.grid.ListGridField#showIf
and com.smartgwt.client.widgets.form.fields.FormItem#showIf
).
detail
- detail Default value is falsepublic Boolean getDetail()
DataBoundComponent
.
Detail fields won't be shown by default in a DataBoundComponent where showDetailFields
is false. This allows for some
DataBound components, like a ListGrid
, to show a summary view of records which
displays only the most commonly viewed fields by default, while other DataBoundComponents, like a DetailViewer
, show all fields by default.
In addition, the com.smartgwt.client.widgets.form.fields.FormItem#showIf
property is supported in multiple components for conditional
visibility - see for example com.smartgwt.client.widgets.grid.ListGridField#showIf
and com.smartgwt.client.widgets.form.fields.FormItem#showIf
).
public void setPrimaryKey(Boolean primaryKey)
A DataSource that can only perform the "fetch" operation does not require a primaryKey. If a DataSource allows modification of DataSource records through add, update and remove DataSource operations, exactly one field must be marked as the primary key.
Smart GWT requires a primary key value to uniquely identify records when communicating updates or deletions to the server. There is no requirement that the primaryKey field be mapped to an actual "primary key" in your object model, web service, or database. The only requirement is that values of the primaryKey field be unique for a given browser instance for the lifetime of the page.
If your
underlying data model has no primaryKey or has multiple primaryKey(s), you can
generate unique values or combine
multiple values into a single field that serves as a
unique key, and declare that field as the single primary key
instead. For example, if your
underlying data model has two primary keys "firstName" and "lastName", you can
use
DataSource.transformResponse(com.smartgwt.client.data.DSResponse, com.smartgwt.client.data.DSRequest, java.lang.Object)
to combine them to into a new field
"name_key":
isc.DataSource.create({ fields:[ {name:"name_key", primaryKey:true}, {name:"firstName"}, {name:"lastName"}, ... other fields ... ], transformResponse : function (dsResponse) { var data = dsResponse.data; for (var i = 0 ; i < data.length; i++) { data[i].name_key = data[i].firstName + ":" + data[i].lastName; } } });
Here it is assumed that ":" is not a legal character in either the firstName or lastName field. Updates to records from this DataSource will then be sent with name_key as the primary key value, and the server can split the value to obtain the separate key values.
If using ISC's 'SQL engine'
and generating SQL tables using
the
"Databases" tab of the Developer Console, the table column generated from a primaryKey field
will have a
unique constraint applied in the database table.
primaryKey
- primaryKey Default value is falsepublic Boolean getPrimaryKey()
A DataSource that can only perform the "fetch" operation does not require a primaryKey. If a DataSource allows modification of DataSource records through add, update and remove DataSource operations, exactly one field must be marked as the primary key.
Smart GWT requires a primary key value to uniquely identify records when communicating updates or deletions to the server. There is no requirement that the primaryKey field be mapped to an actual "primary key" in your object model, web service, or database. The only requirement is that values of the primaryKey field be unique for a given browser instance for the lifetime of the page.
If your
underlying data model has no primaryKey or has multiple primaryKey(s), you can
generate unique values or combine
multiple values into a single field that serves as a
unique key, and declare that field as the single primary key
instead. For example, if your
underlying data model has two primary keys "firstName" and "lastName", you can
use
DataSource.transformResponse(com.smartgwt.client.data.DSResponse, com.smartgwt.client.data.DSRequest, java.lang.Object)
to combine them to into a new field
"name_key":
isc.DataSource.create({ fields:[ {name:"name_key", primaryKey:true}, {name:"firstName"}, {name:"lastName"}, ... other fields ... ], transformResponse : function (dsResponse) { var data = dsResponse.data; for (var i = 0 ; i < data.length; i++) { data[i].name_key = data[i].firstName + ":" + data[i].lastName; } } });
Here it is assumed that ":" is not a legal character in either the firstName or lastName field. Updates to records from this DataSource will then be sent with name_key as the primary key value, and the server can split the value to obtain the separate key values.
If using ISC's 'SQL engine'
and generating SQL tables using
the
"Databases" tab of the Developer Console, the table column generated from a primaryKey field
will have a
unique constraint applied in the database table.
public void setForeignKey(String foreignKey)
The format of foreignKey
is
<dataSourceId>.<fieldName>
.
For a
foreignKey within the same dataSource, you can omit the dataSourceId
and just specify
<fieldName>
.
For example, to create a tree relationship within a DataSource:
DataSource.create({ ID:"supplyItem", fields : [ {name:"itemId", type:"sequence", primaryKey:true}, {name:"parentId", type:"integer", foreignKey:"itemId"}, ... ] });
foreignKey
declarations also allow other automatic behaviors by
DataBoundComponent
, such as ListGrid.fetchRelatedData(com.smartgwt.client.data.Record, com.smartgwt.client.data.DataSource)
.
foreignKey
- foreignKey Default value is falsepublic String getForeignKey()
The format of foreignKey
is
<dataSourceId>.<fieldName>
.
For a
foreignKey within the same dataSource, you can omit the dataSourceId
and just specify
<fieldName>
.
For example, to create a tree relationship within a DataSource:
DataSource.create({ ID:"supplyItem", fields : [ {name:"itemId", type:"sequence", primaryKey:true}, {name:"parentId", type:"integer", foreignKey:"itemId"}, ... ] });
foreignKey
declarations also allow other automatic behaviors by
DataBoundComponent
, such as ListGrid.fetchRelatedData(com.smartgwt.client.data.Record, com.smartgwt.client.data.DataSource)
.
public void setChildrenProperty(Boolean childrenProperty)
childrenField
to this
field's name.
childrenProperty
- childrenProperty Default value is falsepublic Boolean getChildrenProperty()
childrenField
to this
field's name.
public void setSequenceName(String sequenceName)
'serverType:"sql"'
with a field of type
"sequence", the name of the SQL sequence that should be used when inserting new records into this table. Note that this is never required for SQL tables that are generated from Smart GWT DataSources (a default sequence name of tableName + "_" + columnName is chosen), and is never required for databases where inserting null into a sequence column is sufficient (MySQL, SQL Server, DB2 and others).
You would only need to set sequenceName if you are integrating with a pre-existing table stored in a database where the sequence must be named for insertion to work (Oracle, Postgres) OR you are trying to use the same sequence across multiple DataSources.
sequenceName
- sequenceName Default value is nullpublic String getSequenceName()
'serverType:"sql"'
with a field of type
"sequence", the name of the SQL sequence that should be used when inserting new records into this table. Note that this is never required for SQL tables that are generated from Smart GWT DataSources (a default sequence name of tableName + "_" + columnName is chosen), and is never required for databases where inserting null into a sequence column is sufficient (MySQL, SQL Server, DB2 and others).
You would only need to set sequenceName if you are integrating with a pre-existing table stored in a database where the sequence must be named for insertion to work (Oracle, Postgres) OR you are trying to use the same sequence across multiple DataSources.
public void setXmlAttribute(Boolean xmlAttribute)
DataSource.xmlSerialize(com.google.gwt.core.client.JavaScriptObject)
should serialize this value as an XML attribute.
Note this does not need to be declared in order for DataSource records to be derived from XML data: a field will be populated with either an attribute or subelement with matching name.
xmlAttribute
- xmlAttribute Default value is nullpublic Boolean getXmlAttribute()
DataSource.xmlSerialize(com.google.gwt.core.client.JavaScriptObject)
should serialize this value as an XML attribute.
Note this does not need to be declared in order for DataSource records to be derived from XML data: a field will be populated with either an attribute or subelement with matching name.
public void setMultiple(Boolean multiple)
'XML or JSON data'
is singular, it will be wrapped in an Array.
Specifically for XML serialization and deserialization, multiple:true
behaves
similarly to
the
SOAP array idiom, that
is,
there will be a "wrapper element" named after the field name, whose contents will be several
elements of
the specified 'field.type'
.
For example, members
is declared with type:"Canvas",
multiple:true
. The correct XML format is thus:
<VLayout> <members> <Canvas ID="myCanvas" ... /> <ListGrid ID="myGrid" .../> <Toolstrip ID="myToolStrip" ... /> </members> </VLayout>
See childTagName
for customizing the tagName used for subelements.
multiple
- multiple Default value is nullpublic Boolean getMultiple()
'XML or JSON data'
is singular, it will be wrapped in an Array.
Specifically for XML serialization and deserialization, multiple:true
behaves
similarly to
the
SOAP array idiom, that
is,
there will be a "wrapper element" named after the field name, whose contents will be several
elements of
the specified 'field.type'
.
For example, members
is declared with type:"Canvas",
multiple:true
. The correct XML format is thus:
<VLayout> <members> <Canvas ID="myCanvas" ... /> <ListGrid ID="myGrid" .../> <Toolstrip ID="myToolStrip" ... /> </members> </VLayout>
See childTagName
for customizing the tagName used for subelements.
public void setChildTagName(String childTagName)
'multiple:"true"'
, controls the name of
the XML tag used for each subelement during DataSource.xmlSerialize(com.google.gwt.core.client.JavaScriptObject)
. If unset, the
default tag name is "value" for a field of simple type, and for a field of DataSource type, is the tagName or ID of the
DataSource (as though xmlSerialize()
were called on the child DataSource).
childTagName
- childTagName Default value is nullpublic String getChildTagName()
'multiple:"true"'
, controls the name of
the XML tag used for each subelement during DataSource.xmlSerialize(com.google.gwt.core.client.JavaScriptObject)
. If unset, the
default tag name is "value" for a field of simple type, and for a field of DataSource type, is the tagName or ID of the
DataSource (as though xmlSerialize()
were called on the child DataSource).
public void setPropertiesOnly(Boolean propertiesOnly)
ComponentSchema
for fields that contain other components, this flag
suppresses auto-construction for subcomponents that appear under this field.
For example, the VLayout
schema sets this for its 'members'
property, so that when a VLayout is constructed via
XML as follows:
<VLayout> <members> <ListGrid ID="myGrid" .../> <Toolstrip ID="myToolStrip" ... /> </members> </VLayout>The ListGrid and ToolStrip do not construct themselves automatically. Instead, the VLayout receives the properties of the ListGrid and ToolStrip as ordinary JavaScript Objects, with the special property
_constructor
set to the name of the class that should be
constructed.
propertiesOnly
- propertiesOnly Default value is nullpublic Boolean getPropertiesOnly()
ComponentSchema
for fields that contain other components, this flag
suppresses auto-construction for subcomponents that appear under this field.
For example, the VLayout
schema sets this for its 'members'
property, so that when a VLayout is constructed via
XML as follows:
<VLayout> <members> <ListGrid ID="myGrid" .../> <Toolstrip ID="myToolStrip" ... /> </members> </VLayout>The ListGrid and ToolStrip do not construct themselves automatically. Instead, the VLayout receives the properties of the ListGrid and ToolStrip as ordinary JavaScript Objects, with the special property
_constructor
set to the name of the class that should be
constructed.
public void setInapplicable(Boolean inapplicable)
ComponentSchema
, a field 'inherited'
from another schema can be redeclared with this
property set in order to indicate that the property should not be used. This is primarily used to influence VisualBuilder
. For simple type properties, this avoids the property appearing in the
Component Editor.
For fields that hold subcomponents, this prevents inappropriate drag and drop. For example, a
custom class called MyDialog
may automatically create a series of children, and not allow arbitrary other
children to be added. In this case, the inherited property children
should be marked inapplicable in order to prevent arbitrary components being dropped onto a
MyDialog
instance.
inapplicable
- inapplicable Default value is nullpublic Boolean getInapplicable()
ComponentSchema
, a field 'inherited'
from another schema can be redeclared with this
property set in order to indicate that the property should not be used. This is primarily used to influence VisualBuilder
. For simple type properties, this avoids the property appearing in the
Component Editor.
For fields that hold subcomponents, this prevents inappropriate drag and drop. For example, a
custom class called MyDialog
may automatically create a series of children, and not allow arbitrary other
children to be added. In this case, the inherited property children
should be marked inapplicable in order to prevent arbitrary components being dropped onto a
MyDialog
instance.
public void setGroup(String group)
ComponentSchema
, indicates what group to place the property in when editing
in Visual Builder.
group
- group Default value is nullpublic String getGroup()
ComponentSchema
, indicates what group to place the property in when editing
in Visual Builder.
public void setJavaClass(String javaClass)
javaClass
specifies the fully qualified Java className to be created and passed to the setter for the Java
Bean Property with the same name as this field. javaClass
is used both when manually calling
DataSource.setProperties() and when auto-populating POJO arguments of a com.smartgwt.client..DMI
method. The
Java class to create does not normally have to be specified: Smart GWT will use Java reflection to inspect the type of
argument expected by a setter method and will attempt conversion of inbound data to that type. As described in the
documentation for DataTools.setProperties(), this works for almost all typical cases. However
field.javaClass
is useful for:
javaClass
should be set instead.javaClass
needs
to be specified. Note that javaClass
will take precendence over generics if both are used. Also note that
javaCollectionClass
can be specified if a
particular Collection or Map type is needed, and javaKeyClass
can be specified for a field of type java.util.Map
.
javaClass
- javaClass Default value is nullpublic String getJavaClass()
javaClass
specifies the fully qualified Java className to be created and passed to the setter for the Java
Bean Property with the same name as this field. javaClass
is used both when manually calling
DataSource.setProperties() and when auto-populating POJO arguments of a com.smartgwt.client..DMI
method. The
Java class to create does not normally have to be specified: Smart GWT will use Java reflection to inspect the type of
argument expected by a setter method and will attempt conversion of inbound data to that type. As described in the
documentation for DataTools.setProperties(), this works for almost all typical cases. However
field.javaClass
is useful for:
javaClass
should be set instead.javaClass
needs
to be specified. Note that javaClass
will take precendence over generics if both are used. Also note that
javaCollectionClass
can be specified if a
particular Collection or Map type is needed, and javaKeyClass
can be specified for a field of type java.util.Map
.
public void setJavaCollectionClass(String javaCollectionClass)
javaClass
- when auto-populating of Java Beans / POJOs
based on inbound DSRequest data, for a field of type Collection or Map, javaCollectionClass
can be used
to specify a particular concrete class to use. If not specified, and a concrete Collection or Map class cannot be
discovered using Java Reflection, the following concrete classes are used: java.util.ArrayList
is
used for fields of type List
java.util.HashSet
is used for fields of type
Set
java.util.LinkedList
is used for fields of type Queue
org.apache.commons.collections.map.LinkedMap
is used for fields of type Map
java.util.ArrayList
is used for fields that are otherwise of type Collection
javaCollectionClass
to java.util.LinkedList
but your setter method accepts a
java.util.ArrayList
, you will get a ClassCastException.
javaCollectionClass
- javaCollectionClass Default value is nullpublic String getJavaCollectionClass()
javaClass
- when auto-populating of Java Beans / POJOs
based on inbound DSRequest data, for a field of type Collection or Map, javaCollectionClass
can be used
to specify a particular concrete class to use. If not specified, and a concrete Collection or Map class cannot be
discovered using Java Reflection, the following concrete classes are used: java.util.ArrayList
is
used for fields of type List
java.util.HashSet
is used for fields of type
Set
java.util.LinkedList
is used for fields of type Queue
org.apache.commons.collections.map.LinkedMap
is used for fields of type Map
java.util.ArrayList
is used for fields that are otherwise of type Collection
javaCollectionClass
to java.util.LinkedList
but your setter method accepts a
java.util.ArrayList
, you will get a ClassCastException.
public void setJavaKeyClass(String javaKeyClass)
javaClass
- when auto-populating of Java Beans / POJOs
based on inbound DSRequest data, for a field of Map type, javaKeyClass
can be used to specify a particular
concrete class for the map keys. If not specified, and a concrete type cannot be discovered using Java Reflection,
java.lang.Object
is used. Note that javaKeyClass
take precedence over generics if both are
used.
javaKeyClass
- javaKeyClass Default value is nullpublic String getJavaKeyClass()
javaClass
- when auto-populating of Java Beans / POJOs
based on inbound DSRequest data, for a field of Map type, javaKeyClass
can be used to specify a particular
concrete class for the map keys. If not specified, and a concrete type cannot be discovered using Java Reflection,
java.lang.Object
is used. Note that javaKeyClass
take precedence over generics if both are
used.
public void setExportTitle(String exportTitle)
exportTitle
- exportTitle Default value is nullpublic String getExportTitle()
public void setCanExport(Boolean canExport)
'ListGrid
fields'
.
canExport
- canExport Default value is nullpublic Boolean getCanExport()
'ListGrid
fields'
.
public void setShowFileInline(Boolean showFileInline)
showFileInline
- showFileInline Default value is nullpublic Boolean getShowFileInline()
public void setCanSortClientOnly(Boolean canSortClientOnly)
canSortClientOnly
- canSortClientOnly Default value is falsepublic Boolean getCanSortClientOnly()
public void setStoreWithHash(HashAlgorithm storeWithHash)
storeWithHash
- storeWithHash Default value is nullpublic HashAlgorithm getStoreWithHash()
public void setMaxFileSize(Integer maxFileSize)
FieldType
), this sets the maximum file size allowed, in bytes.
maxFileSize
- maxFileSize Default value is nullpublic Integer getMaxFileSize()
FieldType
), this sets the maximum file size allowed, in bytes.
public void setPluralTitle(String pluralTitle)
pluralTitle
- the plural titlepublic String getPluralTitle()
public void setType(SimpleType type)
type
- the SimpleTypepublic void setValidators(Validator... validators)
For the available set of built-in validators, and how to define a custom validator, see the
Validator
class.
validators
- the validatorspublic void setValueMap(String... valueMap)
The valueMap can be specified as either an Array of legal values, or as a Map where each property maps a stored value to a user-displayable value.
To enforce that a field should be constrained to only the values in the valueMap,
either declare type
as "enum", or use an com.smartgwt.client.types.ValidatorTypes#isOneOf
with explicitly listed values. Otherwise, although a normal SelectItem
control will only allow values from the valueMap to be
entered, other controls such as a ComboBoxItem
will allow other
values to be entered.
In XML, a valueMap that specifies only a list of legal values is specified as follows:
<valueMap> <value>Pens & Pencils</value> <value>Stationery</value> <value>Computer Products</value> <value>Furniture</value> <value>Misc</value> </valueMap>A ValueMap that specifies stored values mapped to user-visible values is specified as follows:
<valueMap> <value ID="1">Pens & Pencils</value> <value ID="2">Stationery</value> <value ID="3">Computer Products</value> <value ID="4">Furniture</value> <value ID="5">Misc</value> </valueMap>
valueMap
- valueMap Default value is nullpublic void setValueMap(Map valueMap)
The valueMap can be specified as either an Array of legal values, or as a Map where each property maps a stored value to a user-displayable value.
To enforce that a field should be constrained to only the values in the valueMap,
either declare type
as "enum", or use an com.smartgwt.client..ValidatorTypes#isOneOf
with explicitly listed values. Otherwise, although a normal SelectItem
control will only allow values from the valueMap to be
entered, other controls such as a ComboBoxItem
will allow other
values to be entered.
IIn XML, a valueMap that specifies only a list of legal values is specified as follows:
<valueMap> <value>Pens & Pencils</value> <value>Stationery</value> <value>Computer Products</value> <value>Furniture</value> <value>Misc</value> </valueMap>A ValueMap that specifies stored values mapped to user-visible values is specified as follows:
<valueMap> <value ID="1">Pens & Pencils</value> <value ID="2">Stationery</value> <value ID="3">Computer Products</value> <value ID="4">Furniture</value> <value ID="5">Misc</value> </valueMap>
valueMap
- valueMap Default value is nullpublic void setEditorType(FormItem editorType)
If unset, a FormItem will be automatically chosen based on the type of the field.
editorType
- editorType Default value is nullpublic void setRootValue(String rootValue)
rootValue
- rootValue Default value is nullpublic void setRootValue(Integer rootValue)
rootValue
- rootValue Default value is nullpublic void setRootValue(Float rootValue)
rootValue
- rootValue Default value is nullpublic void setValidOperators(OperatorId... operators)
If not specified, all operators that are valid for the field type are allowed.
operators
- validOperators Default value is nullpublic void setFieldValueExtractor(FieldValueExtractor extractor)
This is an advanced API for use when a valueXPath
setting is insufficient to derive a field's value, yet an implementation of DataSource.transformResponse(com.smartgwt.client.data.DSResponse, com.smartgwt.client.data.DSRequest, java.lang.Object)
is overkill.
extractor
- the field value extractorpublic void setType(DataSource dataSource)
dataSource
- the data sourcepublic void setTypeAsDataSource(DataSource dataSource)
dataSource
- the data sourcepublic DataSource getTypeAsDataSource()
public static DataSourceField[] convertToDataSourceFieldArray(JavaScriptObject nativeArray)
public void setSummaryFunction(SummaryFunctionType summaryFunction)
showGridSummary
or showGroupSummary
is true, this attribute can be used to
specify an explicit SummaryFunction
for calculating the summary value to display.
summaryFunction
- summaryFunction Default value is nullpublic SummaryFunctionType getSummaryFunction()
showGridSummary
or showGroupSummary
is true, this attribute can be used to
specify an explicit SummaryFunction
for calculating the summary value to display.
public void setSummaryFunction(SummaryFunction summaryFunction)
showGridSummary
or showGroupSummary
is true, this attribute can be used to
specify an explicit SummaryFunction
for calculating the summary value to display.
summaryFunction
- summaryFunction Default value is null
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |