|
|||||||||
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(com.google.gwt.core.client.JavaScriptObject jsObj)
|
|
DataSourceField(java.lang.String name,
FieldType type)
|
|
DataSourceField(java.lang.String name,
FieldType type,
java.lang.String title)
|
|
DataSourceField(java.lang.String name,
FieldType type,
java.lang.String title,
int length)
|
|
DataSourceField(java.lang.String name,
FieldType type,
java.lang.String title,
int length,
boolean required)
|
Method Summary | |
---|---|
java.lang.Boolean |
getCanEdit()
Whether this field can ever be edited by the user. |
java.lang.Boolean |
getCanFilter()
Should the user be able to filter data by this field. Effects whether this field will show up in dataBoundComponents with UI for filtering data. |
java.lang.Boolean |
getCanSave()
Whether values in this field can be updated and saved to the dataSource. |
java.lang.Boolean |
getCanSortClientOnly()
When true, this field can only be used for sorting if the data is entirely client-side. |
java.lang.Boolean |
getChildrenProperty()
If true, this property indicates that this field will hold an explicit array of child nodes for the current node. This has the same effect as specifying childrenField to this field's
name. |
java.lang.String |
getChildTagName()
For a field that is multiple , controls the name of the XML tag used for each
subelement during DataSource.xmlSerialize(com.google.gwt.core.client.JavaScriptObject) .
|
java.lang.Boolean |
getDetail()
Whether this field should be considered a "detail" by a DataBoundComponent .
|
java.lang.String |
getExportTitle()
Optional different field-title used for exports. |
java.lang.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. |
java.lang.String |
getGroup()
For use in ComponentSchema , indicates what group to place the property in when
editing in Visual Builder. |
java.lang.Boolean |
getHidden()
Whether this field should be hidden from users by default within a DataBound component. This is generally used for internal ids and other values not meaningful to users. |
java.lang.Boolean |
getIgnore()
Whether this field should be completely excluded from this dataSource, as if it had never been defined. |
java.lang.Boolean |
getInapplicable()
For use in ComponentSchema , a field inheritsFrom from
another schema can be redeclared with this property set in order to indicate that the
property should not be used.
|
java.lang.String |
getJavaClass()
For use with the SmartGWT 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. |
java.lang.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. |
java.lang.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. |
java.lang.Integer |
getLength()
Maximum number of characters allowed. |
java.lang.Boolean |
getMultiple()
Indicates that this field should always be Array-valued. |
java.lang.String |
getName()
Name for this field. |
static DataSourceField |
getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)
|
java.lang.Boolean |
getPrimaryKey()
Whether this field holds a value unique across all records in this DataSource. |
java.lang.Boolean |
getPropertiesOnly()
For use in ComponentSchema for fields that contain other components, this flag
suppresses auto-construction for subcomponents that appear under this field.
|
java.lang.Boolean |
getRequired()
Indicates this field must be non-null in order for a record to pass validation. |
java.lang.String |
getSequenceName()
For a DataSource with serverType with a field of type
"sequence", the name of the SQL sequence that should be used when inserting new records into
this table.
|
java.lang.String |
getTitle()
Default user-visible title for this field. |
FieldType |
getType()
Type of this field. |
DataSource |
getTypeAsDataSource()
Return the type of the assigned DataSource |
java.lang.String |
getValueXPath()
XPath expression used to retrieve the field's value. |
java.lang.Boolean |
getXmlAttribute()
Indicates that DataSource.xmlSerialize(com.google.gwt.core.client.JavaScriptObject) should serialize this value as an XML
attribute.
|
void |
setCanEdit(java.lang.Boolean canEdit)
Whether this field can ever be edited by the user. |
void |
setCanFilter(java.lang.Boolean canFilter)
Should the user be able to filter data by this field. Effects whether this field will show up in dataBoundComponents with UI for filtering data. |
void |
setCanSave(java.lang.Boolean canSave)
Whether values in this field can be updated and saved to the dataSource. |
void |
setCanSortClientOnly(java.lang.Boolean canSortClientOnly)
When true, this field can only be used for sorting if the data is entirely client-side. |
void |
setChildrenProperty(java.lang.Boolean childrenProperty)
If true, this property indicates that this field will hold an explicit array of child nodes for the current node. This has the same effect as specifying childrenField to this field's
name. |
void |
setChildTagName(java.lang.String childTagName)
For a field that is multiple , controls the name of the XML tag used for each
subelement during DataSource.xmlSerialize(com.google.gwt.core.client.JavaScriptObject) .
|
void |
setDetail(java.lang.Boolean detail)
Whether this field should be considered a "detail" 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(java.lang.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(java.lang.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(java.lang.String group)
For use in ComponentSchema , indicates what group to place the property in when
editing in Visual Builder. |
void |
setHidden(java.lang.Boolean hidden)
Whether this field should be hidden from users by default within a DataBound component. This is generally used for internal ids and other values not meaningful to users. |
void |
setIgnore(java.lang.Boolean ignore)
Whether this field should be completely excluded from this dataSource, as if it had never been defined. |
void |
setInapplicable(java.lang.Boolean inapplicable)
For use in ComponentSchema , a field inheritsFrom from
another schema can be redeclared with this property set in order to indicate that the
property should not be used.
|
void |
setJavaClass(java.lang.String javaClass)
For use with the SmartGWT 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(java.lang.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(java.lang.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(java.lang.Integer length)
Maximum number of characters allowed. |
void |
setMultiple(java.lang.Boolean multiple)
Indicates that this field should always be Array-valued. |
void |
setName(java.lang.String name)
Name for this field. |
void |
setPrimaryKey(java.lang.Boolean primaryKey)
Whether this field holds a value unique across all records in this DataSource. |
void |
setPropertiesOnly(java.lang.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(java.lang.Boolean required)
Indicates this field must be non-null in order for a record to pass validation. |
void |
setRootValue(java.lang.Float rootValue)
For a field that is a foreignKey establishing a tree relationship, what value indicates a root-level node. |
void |
setRootValue(java.lang.Integer rootValue)
For a field that is a foreignKey establishing a tree relationship, what value indicates a root-level node. |
void |
setRootValue(java.lang.String rootValue)
For a field that is a foreignKey establishing a tree relationship, what value indicates a root-level node. |
void |
setSequenceName(java.lang.String sequenceName)
For a DataSource with serverType with a field of type
"sequence", the name of the SQL sequence that should be used when inserting new records into
this table.
|
void |
setTitle(java.lang.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 |
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(java.util.Map valueMap)
A valueMap} is a set of legal values for a field. |
void |
setValueMap(java.lang.String... valueMap)
A valueMap} is a set of legal values for a field. |
void |
setValueXPath(java.lang.String valueXPath)
XPath expression used to retrieve the field's value. |
void |
setXmlAttribute(java.lang.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(com.google.gwt.core.client.JavaScriptObject jsObj)
public DataSourceField(java.lang.String name, FieldType type)
public DataSourceField(java.lang.String name, FieldType type, java.lang.String title)
public DataSourceField(java.lang.String name, FieldType type, java.lang.String title, int length)
public DataSourceField(java.lang.String name, FieldType type, java.lang.String title, int length, boolean required)
Method Detail |
---|
public static DataSourceField getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)
public void setName(java.lang.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 java.lang.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 of 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 of type "date", components that edit that field will automatically choose a date-editing interface with pop-up date picker.
public void setRequired(java.lang.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 java.lang.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(java.lang.Integer length)
length
- length Default value is nullpublic java.lang.Integer getLength()
public void setValueXPath(java.lang.String valueXPath)
This XPath expression will be evaluated in the scope of the record objects selected by
the recordXPath
. For XML data
(dataFormat
) this means a call to
XMLTools.selectString(java.lang.Object, java.lang.String)
passing the selected XML element. For JSON data
(dataFormat
), 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 SmartGWT server
If you're using the SmartGWT 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 java.lang.String getValueXPath()
This XPath expression will be evaluated in the scope of the record objects selected by
the recordXPath
. For XML data
(dataFormat
) this means a call to
XMLTools.selectString(java.lang.Object, java.lang.String)
passing the selected XML element. For JSON data
(dataFormat
), 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 SmartGWT server
If you're using the SmartGWT 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(java.lang.String title)
This will be picked up by DataBound components and other views onto this DataSource.
title
- title Default value is nullpublic java.lang.String getTitle()
This will be picked up by DataBound components and other views onto this DataSource.
public void setCanEdit(java.lang.Boolean canEdit)
false
, no
DataBound component will ever try to offer an editing interface for this field.
canEdit
- canEdit Default value is nullpublic java.lang.Boolean getCanEdit()
false
, no
DataBound component will ever try to offer an editing interface for this field.
public void setCanSave(java.lang.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 showFilterEditor
.
Note: if canEdit
is explicitly specified it will take precedence over this
behavior.
canSave
- canSave Default value is nullpublic java.lang.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 showFilterEditor
.
Note: if canEdit
is explicitly specified it will take precedence over this
behavior.
public void setCanFilter(java.lang.Boolean canFilter)
canFilter
- canFilter Default value is nullpublic java.lang.Boolean getCanFilter()
public void setHidden(java.lang.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 java.lang.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(java.lang.Boolean ignore)
ignore
- ignore Default value is falsepublic java.lang.Boolean getIgnore()
public void setDetail(java.lang.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 java.lang.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(java.lang.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.
SmartGWT 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 java.lang.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.
SmartGWT 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(java.lang.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 java.lang.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(java.lang.Boolean childrenProperty)
childrenField
to this field's
name.
childrenProperty
- childrenProperty Default value is falsepublic java.lang.Boolean getChildrenProperty()
childrenField
to this field's
name.
public void setSequenceName(java.lang.String sequenceName)
serverType
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 SmartGWT 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 java.lang.String getSequenceName()
serverType
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 SmartGWT 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(java.lang.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 java.lang.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(java.lang.Boolean multiple)
dataFormat
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 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>
multiple
- multiple Default value is nullpublic java.lang.Boolean getMultiple()
dataFormat
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 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>
public void setChildTagName(java.lang.String childTagName)
multiple
, 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 java.lang.String getChildTagName()
multiple
, 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(java.lang.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 java.lang.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(java.lang.Boolean inapplicable)
ComponentSchema
, a field inheritsFrom
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 java.lang.Boolean getInapplicable()
ComponentSchema
, a field inheritsFrom
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(java.lang.String group)
ComponentSchema
, indicates what group to place the property in when
editing in Visual Builder.
group
- group Default value is nullpublic java.lang.String getGroup()
ComponentSchema
, indicates what group to place the property in when
editing in Visual Builder.
public void setJavaClass(java.lang.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: SmartGWT 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 java.lang.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: SmartGWT 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(java.lang.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,
java.util.ArrayList
is used for fields of type Collection, and
org.apache.commons.collections.SequencedHashMap
is used for fields of type Map.
Note that this value is used even if the target Collection or Map is declared as a concrete
class. So, for example, if you set 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 java.lang.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,
java.util.ArrayList
is used for fields of type Collection, and
org.apache.commons.collections.SequencedHashMap
is used for fields of type Map.
Note that this value is used even if the target Collection or Map is declared as a concrete
class. So, for example, if you set javaCollectionClass
to
java.util.LinkedList
but your setter method accepts a
java.util.ArrayList
, you will get a ClassCastException.
public void setJavaKeyClass(java.lang.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 java.lang.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(java.lang.String exportTitle)
exportTitle
- exportTitle Default value is nullpublic java.lang.String getExportTitle()
public void setCanSortClientOnly(java.lang.Boolean canSortClientOnly)
canSortClientOnly
- canSortClientOnly Default value is falsepublic java.lang.Boolean getCanSortClientOnly()
public 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(java.lang.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(java.util.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(java.lang.String rootValue)
rootValue
- rootValue Default value is nullpublic void setRootValue(java.lang.Integer rootValue)
rootValue
- rootValue Default value is nullpublic void setRootValue(java.lang.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()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |