public class SimpleType extends BaseClass
SimpleTypes can be created at any time, and subsequently referred to as a
field type
in DataSources
and
DataBoundComponents
. This allows you to define
validation
, formatting
and editing
behaviors for a type to be reused across all
DataBoundComponents
.
The SimpleType class also allows data to be stored in some opaque format but treated as
simple atomic values as far as Smart GWT components are concerned by implementing
getAtomicValue()
and updateAtomicValue()
methods.
For example, if some record has a field value set to a javascript object with the
following properties:
{ stringValue:"A String", length: 9 }this value could be treated as a simple string by defining a SimpleType with
inheritsFrom
set to "text"
and a custom
getAtomicValue()
method that simply extracted the "stringValue"
attribute from the data object. DataBoundComponents would then display
the string value, and use it for sorting and other standard databinding features.
Note that the term "simpleType" is used in the same sense as in
XML Schema, and
XMLTools.loadXMLSchema()
will create new SimpleType definitions.
When using the Smart GWT Server, SimpleTypes can be defined server-side, and should be defined server-side if validators are going to be declared so that the server will enforce validation. To define server-side SimpleTypes using Component XML you should create file {typeName}.type.xml in the following format:
<SimpleType name="{typeName}" inheritsFrom="{otherSimpleType}" editorType="{FormItemClassName}"> <validators> <!-- validator definition just like DataSourceField --> </validators> </SimpleType>.. and place this file alongside your DataSource files (.ds.xml) files - in any of folders listed in
project.datasources
property in server.properties
.
SimpleTypes can be loaded via DataSourceLoader or loadDS JSP tags
and
should be loaded before the definitions of any DataSources that use them (so
generally put all SimpleType definitions first).
Define validators in the server-side type definition, for example:
<SimpleType name="countryCodeType" inheritsFrom="text"> <validators> <validator type="lengthRange" min="2" max="2" errorMessage="Length of country code should be equal to 2." /> <validator type="regexp" expression="[A-Z][A-Z]" errorMessage="CountryCode should have only uppercase letters." /> </validators> </SimpleType>
For client-side formatters, add these to the type definition after loading it from the server, for example:
SimpleType.getType("independenceDateType").setShortDisplayFormatter(new SimpleTypeFormatter() { public String format(Object value, DataClass field, DataBoundComponent component, Record record) { if (value == null) return null; return "<i>" + (((java.util.Date) value).getYear() + 1900) + "</i>"; } });Note that formatters must be added to the SimpleType definition before any DataBoundComponent binds to a DataSource that uses the SimpleType.
An example is here.
Modifier and Type | Class and Description |
---|---|
static interface |
SimpleType.SimpleTypeValueComparator |
static class |
SimpleType.SimpleTypeValueExtractor |
static class |
SimpleType.SimpleTypeValueUpdater |
config, configOnly, factoryCreated, factoryProperties, id, scClassName
Constructor and Description |
---|
SimpleType()
Create a new simple type.
|
SimpleType(com.google.gwt.core.client.JavaScriptObject jsObj) |
SimpleType(java.lang.String name,
FieldType inheritsFrom)
Create a new simple type.
|
SimpleType(java.lang.String name,
SimpleType inheritsFrom)
Create a new simple type.
|
Modifier and Type | Method and Description |
---|---|
static java.lang.Object |
applySummaryFunction(Record[] records,
ListGridField field,
java.lang.String functionName)
Apply a registered summary function to a set of records and a field.
|
static java.lang.Object |
applySummaryFunction(Record[] records,
ListGridField field,
SummaryFunctionType summaryFunction)
Apply a standard
SummaryFunctionType to a set of records and a field. |
com.google.gwt.core.client.JavaScriptObject |
create() |
java.lang.Boolean |
getCanEdit()
Default value for
DataSourceField.canEdit for fields of this
type. |
java.lang.Boolean |
getCanFilter()
Default value for
DataSourceField.canFilter for fields of
this type. |
java.lang.String |
getDefaultGroupingMode()
In components that support grouping, the default mode from the available
groupingModes to use when grouping values of this type. |
OperatorId |
getDefaultOperator()
The default
search-operator for this data-type. |
java.lang.String |
getExportFormat()
FormatString used during exports for numeric or date formatting. |
DataSourceField |
getFieldProperties()
These are properties that are essentially copied onto any DataSourceField where the property is applied.
|
java.lang.String |
getFormat()
FormatString for numeric or date formatting. |
java.util.Map |
getGroupingModes()
A set of key-value pairs that represent the names and titles of the grouping modes available to values of this type,
for use in components that support grouping.
|
java.lang.String |
getGroupTitle(java.lang.Object value,
Record record,
java.util.Map field,
java.lang.String fieldName,
Canvas component)
Returns a string value appropriate for the title of the group containing the passed value.
|
java.lang.Object |
getGroupValue(java.lang.Object value,
Record record,
java.util.Map field,
java.lang.String fieldName,
Canvas component)
Returns a group value appropriate for the passed record, field and value, in the passed component.
|
java.lang.String |
getInheritsFrom()
Name of another SimpleType from which this type should inherit.
|
com.google.gwt.core.client.JavaScriptObject |
getJsObj() |
java.lang.String |
getName()
Name of the type, used to refer to the type from
field.type . |
static SimpleType |
getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj) |
ReadOnlyDisplayAppearance |
getReadOnlyDisplay()
Default
readOnlyDisplay for fields of this
type. |
static java.lang.Boolean |
getSkipConvertOpaqueValues()
Tells the atomic values subsystem whether to convert the incoming opaque value to a Java object when calling user
getAtomicValue() and updateAtomicValue() methods.
|
static SimpleType |
getType(java.lang.String typeName)
Retrieve a simpleType definition by type name
|
boolean |
isCreated() |
void |
register()
Explicitly register this SimpleType with the system so that it can be used / referenced by remote DataSources.
|
static void |
registerSummaryFunction(java.lang.String functionName,
SummaryFunction summaryFunction)
Registers a new SummaryFunction by name.
|
SimpleType |
setCanEdit(java.lang.Boolean canEdit)
Default value for
DataSourceField.canEdit for fields of this
type. |
SimpleType |
setCanFilter(java.lang.Boolean canFilter)
Default value for
DataSourceField.canFilter for fields of
this type. |
SimpleType |
setDefaultGroupingMode(java.lang.String defaultGroupingMode)
In components that support grouping, the default mode from the available
groupingModes to use when grouping values of this type. |
SimpleType |
setDefaultOperator(OperatorId defaultOperator)
The default
search-operator for this data-type. |
static void |
setDefaultSummaryFunction(java.lang.String typeName,
java.lang.String functionName)
Set a default summary function for some field type.
|
static void |
setDefaultSummaryFunction(java.lang.String typeName,
SummaryFunctionType summaryFunction)
Set a default summary function for some field type.
|
void |
setEditFormatter(SimpleTypeFormatter formatter)
Formatter for values of this type when displayed in a freeform text editor such as a
TextItem |
void |
setEditorProperties(FormItem editorProperties)
Default
FormItem configuration for editing values of this type. |
void |
setEditorType(java.lang.Class<? extends FormItem> editorType)
Set the default
FormItem class to be used whenever a value of this type is edited
(whether in a grid, form, or other component). |
void |
setEditorType(FormItem editorType)
Deprecated.
Renamed to
setEditorProperties(FormItem) . You can also consider using
setEditorType(Class) or setEditorType(String) instead. |
void |
setEditorType(java.lang.String editorType)
Set the default
FormItem class to be used whenever a value of this type is edited
(whether in a grid, form, or other component). |
void |
setEditParser(SimpleTypeParser parser)
Specify a parser to convert some user-edited value to an underlying data value of this type.
|
SimpleType |
setExportFormat(java.lang.String exportFormat)
FormatString used during exports for numeric or date formatting. |
SimpleType |
setFieldProperties(DataSourceField fieldProperties)
These are properties that are essentially copied onto any DataSourceField where the property is applied.
|
void |
setFilterEditorProperties(FormItem filterEditorProperties)
Default
FormItem configuration for editing values of this type in a
ListGrid filter row or
SearchForm . |
void |
setFilterEditorType(java.lang.Class<? extends FormItem> filterEditorType)
Set the default
FormItem class to be used whenever a value of this type appears
in a ListGrid filter row or
SearchForm . |
void |
setFilterEditorType(java.lang.String filterEditorType)
Set the default
FormItem class to be used whenever a value of this type appears
in a ListGrid filter row or
SearchForm . |
SimpleType |
setFormat(java.lang.String format)
FormatString for numeric or date formatting. |
SimpleType |
setGroupingModes(java.util.Map groupingModes)
A set of key-value pairs that represent the names and titles of the grouping modes available to values of this type,
for use in components that support grouping.
|
void |
setGroupTitleFunction(GroupTitleFunction titleFunction)
Sets customizer whose
getTitle()
method overrides the default behavior of
getGroupTitle() . |
void |
setGroupValueFunction(GroupValueFunction valueFunction)
Sets customizer whose
getValue()
method overrides the default behavior of
getGroupValue() . |
void |
setInheritsFrom(FieldType inheritsFrom)
Name of another SimpleType from which this type should inherit.
|
SimpleType |
setInheritsFrom(java.lang.String inheritsFrom)
Name of another SimpleType from which this type should inherit.
|
void |
setJavaScriptObject(com.google.gwt.core.client.JavaScriptObject jsObj) |
SimpleType |
setName(java.lang.String name)
Name of the type, used to refer to the type from
field.type . |
void |
setNormalDisplayFormatter(SimpleTypeFormatter formatter)
Normal formatter for values of this type used in a
StaticTextItem or DetailViewer . |
SimpleType |
setReadOnlyDisplay(ReadOnlyDisplayAppearance readOnlyDisplay)
Default
readOnlyDisplay for fields of this
type. |
void |
setReadOnlyEditorProperties(FormItem editorProperties)
FormItem properties to be applied when editing values of this type in a read-only context.
|
void |
setReadOnlyEditorType(java.lang.Class<? extends FormItem> editorType)
Set the default
FormItem class to be used whenever a value of this type is edited
in a read-only context (whether in a grid, form, or other component). |
void |
setReadOnlyEditorType(FormItem editorType)
Deprecated.
Renamed to
setReadOnlyEditorProperties(FormItem) . You can also consider using
setReadOnlyEditorType(Class) or setReadOnlyEditorType(String) instead. |
void |
setReadOnlyEditorType(java.lang.String editorType)
Set the default
FormItem class to be used whenever a value of this type is edited
in a read-only context (whether in a grid, form, or other component). |
void |
setShortDisplayFormatter(SimpleTypeFormatter formatter)
|
void |
setSimpleTypeValueComparator(SimpleType.SimpleTypeValueComparator comparator)
Specify a custom comparator to use for this type.
|
void |
setSimpleTypeValueExtractor(SimpleType.SimpleTypeValueExtractor extractor)
Specify an extractor to extract an atomic value (such as a string or number) from some arbitrary live data value.
|
void |
setSimpleTypeValueUpdater(SimpleType.SimpleTypeValueUpdater updater)
Specify an updater to update a live data value with an edited atomic value (such as a string or number).
|
static void |
setSkipConvertOpaqueValues(java.lang.Boolean convert)
Tells the atomic values subsystem whether to skip conversion of the incoming opaque value to a Java object when
calling user getAtomicValue() and updateAtomicValue() methods.
|
SimpleType |
setValidators(Validator... validators)
Validators to apply to value of this type.
|
SimpleType |
setValidOperators(OperatorId... validOperators)
Set of
search-operators valid for this SimpleType . |
void |
setValueMap(java.util.Map valueMap)
List of legal values for this type, like
valueMap . |
void |
setValueMap(java.lang.String... valueMap)
List of legal values for this type, like
valueMap . |
addDynamicProperty, addDynamicProperty, addDynamicProperty, addDynamicProperty, applyFactoryProperties, asSGWTComponent, clearDynamicProperty, createJsObj, destroy, doAddHandler, doInit, error, error, errorIfNotCreated, fireEvent, getAttribute, getAttributeAsBoolean, getAttributeAsDate, getAttributeAsDouble, getAttributeAsElement, getAttributeAsFloat, getAttributeAsInt, getAttributeAsJavaScriptObject, getAttributeAsMap, getAttributeAsString, getAttributeAsStringArray, getClassName, getConfig, getHandlerCount, getID, getOrCreateJsObj, getRef, getRuleScope, getScClassName, getTestInstance, hasAutoAssignedID, hasDynamicProperty, internalSetID, internalSetID, isConfigOnly, isFactoryCreated, onBind, onInit, registerID, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setConfig, setConfigOnly, setFactoryCreated, setID, setProperty, setProperty, setProperty, setProperty, setRuleScope, setScClassName
public SimpleType(com.google.gwt.core.client.JavaScriptObject jsObj)
public SimpleType()
name
- the name of the simple typeinheritsFrom
- the type it inherits frompublic SimpleType(java.lang.String name, FieldType inheritsFrom)
name
- the name of the simple typeinheritsFrom
- the type it inherits frompublic SimpleType(java.lang.String name, SimpleType inheritsFrom)
name
- the name of the simple typeinheritsFrom
- the type it inherits frompublic static SimpleType getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)
public void setJavaScriptObject(com.google.gwt.core.client.JavaScriptObject jsObj)
setJavaScriptObject
in class BaseClass
public com.google.gwt.core.client.JavaScriptObject create()
public SimpleType setCanEdit(java.lang.Boolean canEdit) throws java.lang.IllegalStateException
DataSourceField.canEdit
for fields of this
type. This impacts client-side behavior only and is a way to simply disallow editing of this field type by default
within editors
.
This property is set to false for the "sequence" SimpleType by default.
canEdit
- New canEdit value. Default value is nullSimpleType
instance, for chaining setter callsjava.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdpublic java.lang.Boolean getCanEdit()
DataSourceField.canEdit
for fields of this
type. This impacts client-side behavior only and is a way to simply disallow editing of this field type by default
within editors
.
This property is set to false for the "sequence" SimpleType by default.
public SimpleType setCanFilter(java.lang.Boolean canFilter) throws java.lang.IllegalStateException
DataSourceField.canFilter
for fields of
this type. This impacts client-side behavior only and may be used to explicitly enable editing in filter interfaces,
even if editing is disabled
.
This property is set to true for the "sequence" SimpleType by default.
canFilter
- New canFilter value. Default value is nullSimpleType
instance, for chaining setter callsjava.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdpublic java.lang.Boolean getCanFilter()
DataSourceField.canFilter
for fields of
this type. This impacts client-side behavior only and may be used to explicitly enable editing in filter interfaces,
even if editing is disabled
.
This property is set to true for the "sequence" SimpleType by default.
public SimpleType setDefaultGroupingMode(java.lang.String defaultGroupingMode)
groupingModes
to use when grouping values of this type.defaultGroupingMode
- New defaultGroupingMode value. Default value is nullSimpleType
instance, for chaining setter callspublic java.lang.String getDefaultGroupingMode()
groupingModes
to use when grouping values of this type.public SimpleType setDefaultOperator(OperatorId defaultOperator) throws java.lang.IllegalStateException
search-operator
for this data-type.defaultOperator
- New defaultOperator value. Default value is nullSimpleType
instance, for chaining setter callsjava.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdAdvancedFilter overview and related methods
public OperatorId getDefaultOperator()
search-operator
for this data-type.AdvancedFilter overview and related methods
public SimpleType setExportFormat(java.lang.String exportFormat) throws java.lang.IllegalStateException
FormatString
used during exports for numeric or date formatting. See DataSourceField.exportFormat
.exportFormat
- New exportFormat value. Default value is nullSimpleType
instance, for chaining setter callsjava.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdFormatString
,
ExportFormatting overview and related methods
public java.lang.String getExportFormat()
FormatString
used during exports for numeric or date formatting. See DataSourceField.exportFormat
.FormatString
,
ExportFormatting overview and related methods
public SimpleType setFieldProperties(DataSourceField fieldProperties) throws java.lang.IllegalStateException
fieldProperties
- New fieldProperties value. Default value is nullSimpleType
instance, for chaining setter callsjava.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdpublic DataSourceField getFieldProperties()
public SimpleType setFormat(java.lang.String format) throws java.lang.IllegalStateException
FormatString
for numeric or date formatting. See DataSourceField.format
.format
- New format value. Default value is nullSimpleType
instance, for chaining setter callsjava.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdFormatString
,
ExportFormatting overview and related methods
public java.lang.String getFormat()
FormatString
for numeric or date formatting. See DataSourceField.format
.FormatString
,
ExportFormatting overview and related methods
public SimpleType setGroupingModes(java.util.Map groupingModes)
Some types provide a set of builtin groupingModes, as covered here
.
Use setGroupValueFunction()
and setGroupTitleFunction()
to implement custom grouping logic
for each of the grouping modes you provide.
groupingModes
- New groupingModes value. Default value is nullSimpleType
instance, for chaining setter callspublic java.util.Map getGroupingModes()
Some types provide a set of builtin groupingModes, as covered here
.
Use setGroupValueFunction()
and setGroupTitleFunction()
to implement custom grouping logic
for each of the grouping modes you provide.
grouping modes
available for values of
this type in components that support grouping. Default value is nullpublic SimpleType setInheritsFrom(java.lang.String inheritsFrom) throws java.lang.IllegalStateException
Validators, if any, will be combined. All other SimpleType properties default to the inherited type's value.
inheritsFrom
- New inheritsFrom value. Default value is nullSimpleType
instance, for chaining setter callsjava.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdIdentifier
,
DataType Reuse Examplepublic java.lang.String getInheritsFrom()
Validators, if any, will be combined. All other SimpleType properties default to the inherited type's value.
Identifier
,
DataType Reuse Examplepublic SimpleType setName(java.lang.String name) throws java.lang.IllegalStateException
field.type
.name
- New name value. Default value is nullSimpleType
instance, for chaining setter callsjava.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdIdentifier
public java.lang.String getName()
field.type
.Identifier
public SimpleType setReadOnlyDisplay(ReadOnlyDisplayAppearance readOnlyDisplay) throws java.lang.IllegalStateException
readOnlyDisplay
for fields of this
type. For more sophisticated management of read-only behavior, see readOnlyEditorType
.
readOnlyDisplay
- New readOnlyDisplay value. Default value is nullSimpleType
instance, for chaining setter callsjava.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdpublic ReadOnlyDisplayAppearance getReadOnlyDisplay()
readOnlyDisplay
for fields of this
type. For more sophisticated management of read-only behavior, see readOnlyEditorType
.
public SimpleType setValidators(Validator... validators) throws java.lang.IllegalStateException
validators
- New validators value. Default value is nullSimpleType
instance, for chaining setter callsjava.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdValidation overview and related methods
public SimpleType setValidOperators(OperatorId... validOperators) throws java.lang.IllegalStateException
search-operators
valid for this SimpleType
. If
not specified, the inherited
type's operators will be used,
finally defaulting to the default operators for the basic types (eg, integer).
validOperators
- New validOperators value. Default value is nullSimpleType
instance, for chaining setter callsjava.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdAdvancedFilter overview and related methods
public java.lang.String getGroupTitle(java.lang.Object value, Record record, java.util.Map field, java.lang.String fieldName, Canvas component)
value
- the record value to return a group title forrecord
- the record containing the passed group valuefield
- the field relating to the value to be processedfieldName
- the name of the field relating to the value to be processedcomponent
- the component, usually a ListGrid
, containing the
passed recordpublic java.lang.Object getGroupValue(java.lang.Object value, Record record, java.util.Map field, java.lang.String fieldName, Canvas component)
value
- the record value to return a group value forrecord
- the record containing the passed valuefield
- the field relating to the value to be processedfieldName
- the name of the field relating to the value to be processedcomponent
- the component, usually a ListGrid
, containing the
passed recordpublic static SimpleType getType(java.lang.String typeName)
typeName
- the name
of the simpleType to returnpublic void register()
public void setValueMap(java.lang.String... valueMap) throws java.lang.IllegalStateException
valueMap
.valueMap
- valueMap Default value is nulljava.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdpublic void setValueMap(java.util.Map valueMap) throws java.lang.IllegalStateException
valueMap
.valueMap
- valueMap Default value is nulljava.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdpublic void setEditorProperties(FormItem editorProperties) throws java.lang.IllegalStateException
FormItem
configuration for editing values of this type.
You can create a simple custom FormItem by adding default
icons
that launch custom value picking dialogs (an example is in the QuickStart Guide, Chapter 9,
Extending Smart GWT).
By setting simpleType.editorProperties to an instance of your custom FormItem, forms will
automatically use the custom FormItem, as will grids performing
grid editing
.
Note: When you supply a custom FormItem via setEditorProperties(), you're really providing properties which are then used to create
multiple FormItems (e.g., in grids, forms and trees) and there's an underlying limitation here where event handlers have to be written to
dynamically receive the actual FormItem rather than relying on "this" (because there's more than one "this").
This means you need to follow the special rules indicated for
DataSourceField.setEditorProperties(FormItem)
.
As an alternative, you can use setEditorType(String)
or
setEditorType(Class)
to avoid these limitations, if you register
the FormItem subclass with the reflection mechanism
.
editorProperties
- FormItem with default properties to use when editingjava.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdpublic void setEditorType(FormItem editorType) throws java.lang.IllegalStateException
setEditorProperties(FormItem)
. You can also consider using
setEditorType(Class)
or setEditorType(String)
instead.setEditorProperties(FormItem)
.editorType
- FormItem with default properties to be applied when editingjava.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdpublic void setEditorType(java.lang.String editorType)
FormItem
class to be used whenever a value of this type is edited
(whether in a grid, form, or other component).
If unset, a FormItem will be automatically chosen.
Note: The editorType must be registered for use with the
reflection mechanism
.
By doing so, you avoid the limitations of setEditorProperties(FormItem)
.
editorType
- the fully-qualified class name of a FormItem
subclass, which must have been registered with the
reflection mechanism
.java.lang.IllegalArgumentException
- if the editorType class has not been registered for use with the
reflection mechanism
,
or if it does not inherit from
FormItem
.public void setEditorType(java.lang.Class<? extends FormItem> editorType)
FormItem
class to be used whenever a value of this type is edited
(whether in a grid, form, or other component).
If unset, a FormItem will be automatically chosen.
Note: The editorType must be registered for use with the
reflection mechanism
.
By doing so, you avoid the limitations of setEditorProperties(FormItem)
.
editorType
- a FormItem
subclass, which must have been registered with the
reflection mechanism
.java.lang.IllegalArgumentException
- if the editorType class has not been registered for use with the
reflection mechanism
,
or if it does not inherit from
FormItem
.public void setReadOnlyEditorProperties(FormItem editorProperties) throws java.lang.IllegalStateException
Note: The FormItem passed to setReadOnlyEditorProperties() is used as a "template" to create a FormItem whenever
a DataBoundComponent
needs to show an interface for editing this
field (and the field is marked read-only). This means you need to follow special rules indicated
for DataSourceField.setEditorProperties(FormItem)
.
As an alternative, you can use setReadOnlyEditorType(String)
or
setReadOnlyEditorType(Class)
to avoid these limitations, if you register
the FormItem subclass with the reflection mechanism
.
editorProperties
- FormItem with properties to be applied when editing values of this type in a read-only context.java.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdpublic void setReadOnlyEditorType(FormItem editorType)
setReadOnlyEditorProperties(FormItem)
. You can also consider using
setReadOnlyEditorType(Class)
or setReadOnlyEditorType(String)
instead.setReadOnlyEditorProperties(FormItem)
.editorType
- FormItem with default properties to be applied when editingpublic void setReadOnlyEditorType(java.lang.String editorType)
FormItem
class to be used whenever a value of this type is edited
in a read-only context (whether in a grid, form, or other component).
If unset, a FormItem will be automatically chosen.
By using the reflection mechanism
,
this method avoids the limitations described in setReadOnlyEditorProperties(FormItem)
.
editorType
- the fully-qualified class name of a FormItem
subclass, which must have been registered with the
reflection mechanism
.java.lang.IllegalArgumentException
- if the editorType class has not been registered for use with the
reflection mechanism
,
or if it does not inherit from
FormItem
.public void setReadOnlyEditorType(java.lang.Class<? extends FormItem> editorType)
FormItem
class to be used whenever a value of this type is edited
in a read-only context (whether in a grid, form, or other component).
If unset, a FormItem will be automatically chosen.
By using the reflection mechanism
,
this method avoids the limitations described in setReadOnlyEditorProperties(FormItem)
.
editorType
- a FormItem
subclass, which must have been registered with the
reflection mechanism
.java.lang.IllegalArgumentException
- if the editorType class has not been registered for use with the
reflection mechanism
,
or if it does not inherit from
FormItem
.public void setFilterEditorProperties(FormItem filterEditorProperties) throws java.lang.IllegalStateException
FormItem
configuration for editing values of this type in a
ListGrid
filter row or
SearchForm
.
You can create a simple custom FormItem by adding default
icons
that launch custom value picking dialogs (an example is in the QuickStart Guide,
Chapter 9, Extending Smart GWT).
By setting filterEditorProperties
to an instance of your custom FormItem,
filter rows or search forms will automatically use the custom FormItem.
Note:
When you supply a custom FormItem via setFilterEditorProperties()
,
you're really providing properties which are then used to create
multiple FormItems (e.g., in grids, forms and trees) and there's an underlying limitation
here where event handlers have to be written to dynamically receive the actual FormItem
rather than relying on "this" (because there's more than one "this").
This means you need to follow the special rules indicated for
DataSourceField.setEditorProperties(FormItem)
.
As an alternative, you can use setFilterEditorType(String)
or
setFilterEditorType(Class)
to avoid these limitations, if you register the
FormItem subclass with the
reflection mechanism
.
filterEditorProperties
- FormItem with default properties to use when editingjava.lang.IllegalStateException
- this property cannot be changed after the underlying
component has been createdpublic void setFilterEditorType(java.lang.String filterEditorType)
FormItem
class to be used whenever a value of this type appears
in a ListGrid
filter row or
SearchForm
.
If unset, a FormItem will be automatically chosen.
Note: The filterEditorType must be registered for use with the
reflection mechanism
.
By doing so, you avoid the limitations of setFilterEditorProperties(FormItem)
.
filterEditorType
- the fully-qualified class name of a
FormItem
subclass, which must have
been registered with the reflection mechanism
.java.lang.IllegalArgumentException
- if the filterEditorType class has not been registered
for use with the reflection mechanism
,
or if it does not inherit from FormItem
.public void setFilterEditorType(java.lang.Class<? extends FormItem> filterEditorType)
FormItem
class to be used whenever a value of this type appears
in a ListGrid
filter row or
SearchForm
.
If unset, a FormItem will be automatically chosen.
Note: The filterEditorType must be registered for use with the
reflection mechanism
.
By doing so, you avoid the limitations of setFilterEditorProperties(FormItem)
.
filterEditorType
- a FormItem
subclass, which must have been registered with the
reflection mechanism
.java.lang.IllegalArgumentException
- if the filterEditorType class has not been registered
for use with the reflection mechanism
,
or if it does not inherit from FormItem
.public void setInheritsFrom(FieldType inheritsFrom) throws java.lang.IllegalStateException
Validators, if any, will be combined. All other SimpleType properties default to the inherited type's value.
inheritsFrom
- inheritsFrom Default value is nulljava.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdpublic void setNormalDisplayFormatter(SimpleTypeFormatter formatter)
StaticTextItem
or DetailViewer
.
A formatter can make itself configurable on a per-component or per-field basis by checking properties on the component or field. For example, a formatter for account IDs may want to omit a prefix in views where it is redundant, and could check a flag detailViewer.omitAccountIdPrefix for this purpose.
formatter
- the formatterpublic void setShortDisplayFormatter(SimpleTypeFormatter formatter)
ListGrid
or
TreeGrid
.
A formatter can make itself configurable on a per-component or per-field basis by checking properties on the component or field. For example, a formatter for account IDs may want to omit a prefix in views where it is redundant, and could check a flag listGridField.omitAccountIdPrefix for this purpose.
formatter
- the formatterpublic void setEditFormatter(SimpleTypeFormatter formatter)
TextItem
See also #parseInput
for parsing an edited text value back to a data value.
formatter
- the formatterpublic void setEditParser(SimpleTypeParser parser)
TextItem
.
Typically this will convert from the format produced by #editFormatter
back to a data value.parser
- the parserpublic static void setSkipConvertOpaqueValues(java.lang.Boolean convert)
convert
- Whether the atomic values subsystem should skip conversion of opaque values to native Java typespublic static java.lang.Boolean getSkipConvertOpaqueValues()
public void setSimpleTypeValueExtractor(SimpleType.SimpleTypeValueExtractor extractor)
extractor
- the extractorpublic void setSimpleTypeValueUpdater(SimpleType.SimpleTypeValueUpdater updater)
extractor
- the updaterpublic void setSimpleTypeValueComparator(SimpleType.SimpleTypeValueComparator comparator)
If defined, this comparator's compareValues() method will be called when the framework needs to compares values of this type for equality.
comparator
- the comparatorpublic com.google.gwt.core.client.JavaScriptObject getJsObj()
public static void registerSummaryFunction(java.lang.String functionName, SummaryFunction summaryFunction)
functionName
- name for the SummaryFunctionsummaryFunction
- new SummaryFunction implementationpublic static java.lang.Object applySummaryFunction(Record[] records, ListGridField field, SummaryFunctionType summaryFunction)
SummaryFunctionType
to a set of records and a field.records
- records to obtain the summary value forfield
- field on which the summary function is being runsummaryFunction
- standard summary function identifierpublic static java.lang.Object applySummaryFunction(Record[] records, ListGridField field, java.lang.String functionName)
records
- records to obtain the summary value forfield
- field on which the summary function is being runfunctionName
- name under which the summary function is registered. See registerSummaryFunction(String, SummaryFunction)
public static void setDefaultSummaryFunction(java.lang.String typeName, SummaryFunctionType summaryFunction)
typeName
- name of the field type. If this is the name of a custom SimpleType, the developer may need
to ensure the type is registered
.summaryFunction
- standard summary function type for this data typepublic static void setDefaultSummaryFunction(java.lang.String typeName, java.lang.String functionName)
typeName
- name of the field type. If this is the name of a custom SimpleType, the developer may need
to ensure the type is registered
.summaryFunction
- name under which the summary function is registered. See registerSummaryFunction(String, SummaryFunction)
public void setGroupTitleFunction(GroupTitleFunction titleFunction)
getTitle()
method overrides the default behavior of
getGroupTitle()
.
Pass null to clear the override.public void setGroupValueFunction(GroupValueFunction valueFunction)
getValue()
method overrides the default behavior of
getGroupValue()
.
Pass null to clear the override.