public class CanvasItem extends FormItem implements HasCanEditChangedHandlers, HasReadOnlyDisplayChangedHandlers, HasShowValueHandlers
CanvasItem is shouldSaveValue
:false by default, meaning that no
value from the CanvasItem will be present in DynamicForm.getValues()
and no value will be saved when DynamicForm.saveData()
is called. This is appropriate if the Canvas does not participate in editing a value of the
form and is embedded in the form for layout or UI purposes only (e.g. ButtonItem
, SectionItem
). Note
that some built-in CanvasItem types override the shouldSaveValue default to true (e.g. MultiComboBoxItem
, RichTextItem
).
If you set shouldSaveValue
:true, a showValue
event will be raised to provide a
value that your item should display. Handle this event by calling methods on the Canvas you've created to cause the
value to be displayed.
The showValue
event will be triggered in various situations where the form receives data, including a call to DynamicForm.setValues()
, DynamicForm.editRecord()
, or if DynamicForm.fetchData()
is called and a Record is returned.
Bear in mind that the showValue
event can be called when the form and your item have not yet been drawn; in
this case, store the value for later display.
To provide a value to the form, call CanvasItem.storeValue()
whenever the user changes the
value in your Canvas. Generally, if storeValue() is called then shouldSaveValue
should be overridden to true.
Note that the form will not call getValue() in order to discover your item's value, so there is no purpose in
overriding this method; instead, call storeValue() to proactively inform the form about changes to the value. This
approach is necessary in order to enable change events.
If you cannot easily detect changes to values in your
Canvas, a workaround is to call storeValue
right before the form saves.
scClassName
id
factoryCreated, factoryProperties
Constructor and Description |
---|
CanvasItem() |
CanvasItem(com.google.gwt.core.client.JavaScriptObject jsObj) |
CanvasItem(java.lang.String name) |
CanvasItem(java.lang.String name,
java.lang.String title) |
Modifier and Type | Method and Description |
---|---|
com.google.gwt.event.shared.HandlerRegistration |
addCanEditChangedHandler(CanEditChangedHandler handler)
Add a canEditChanged handler.
|
com.google.gwt.event.shared.HandlerRegistration |
addReadOnlyDisplayChangedHandler(ReadOnlyDisplayChangedHandler handler)
Add a readOnlyDisplayChanged handler.
|
com.google.gwt.event.shared.HandlerRegistration |
addShowValueHandler(ShowValueHandler handler)
Add a showValue handler.
|
static void |
changeAutoChildDefaults(java.lang.String autoChildName,
Canvas defaults)
Changes the defaults for Canvas AutoChildren named
autoChildName . |
static void |
changeAutoChildDefaults(java.lang.String autoChildName,
DrawItem defaults)
Changes the defaults for DrawItem AutoChildren named
autoChildName . |
static void |
changeAutoChildDefaults(java.lang.String autoChildName,
FormItem defaults)
Changes the defaults for FormItem AutoChildren named
autoChildName . |
static void |
changePickerIconDefaults(FormItemIcon defaults) |
protected Canvas |
createCanvas()
This method is called to dynamically create a canvas for this CanvasItem.
|
java.lang.Boolean |
getApplyPromptToCanvas()
|
java.lang.Boolean |
getAutoDestroy()
Should this item's
canvas be automatically
destroyed when the item is destroyed? Form items are destroyed automatically when a call to DynamicForm.setItems() removes them from their parent form, or if
their parent form is destroyed. |
Canvas |
getCanvas()
The canvas that will be displayed inside this item.
|
java.lang.Boolean |
getEditCriteriaInInnerForm()
Flag to disable the criteria editing overrides described in
setCriterionGetter() whereby if this item
contains a DynamicForm as its canvas, it will be used to edit nested AdvancedCriteria automatically. |
int |
getHeight()
Height of the Canvas.
|
java.lang.String |
getHeightAsString()
Height of the Canvas.
|
java.lang.Boolean |
getMultiple()
Whether this CanvasItem is intended to hold multiple values.
|
static CanvasItem |
getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj) |
Overflow |
getOverflow()
CanvasItems support specifying overflow for the Canvas directly on the item.
|
java.lang.String |
getPrompt()
This text is shown as a tooltip prompt when the cursor hovers over this item.
|
java.lang.Boolean |
getShouldSaveValue()
Should this item's value be saved in the form's values and hence returned from
DynamicForm.getValues() ? |
java.lang.Boolean |
hasAdvancedCriteria()
Overridden to return true if
canvas is a
dynamicForm. |
void |
setApplyPromptToCanvas(java.lang.Boolean applyPromptToCanvas)
|
void |
setAutoDestroy(java.lang.Boolean autoDestroy)
Should this item's
canvas be automatically
destroyed when the item is destroyed? Form items are destroyed automatically when a call to DynamicForm.setItems() removes them from their parent form, or if
their parent form is destroyed. |
void |
setCanEditCriterionPredicate(FormItemCanEditCriterionPredicate predicate)
AdvancedCriteria objects may be edited via nested dynamicForms as described in
CanvasItem.setCriterionGetter . |
void |
setCanvas(Canvas canvas)
The canvas that will be displayed inside this item.
|
void |
setCriterionGetter(FormItemCriterionGetter getter)
The standard formItem criteria editing APIs have been overridden in the canvasItem class
to simplify the editing of complex
AdvancedCriteria objects using nested
DynamicForms. |
void |
setCriterionSetter(FormItemCriterionSetter setter)
Provide a
setCriterion() implementation to display a Criterion object in this item for editing. |
static void |
setDefaultProperties(CanvasItem canvasItemProperties)
Class level method to set the default properties of this class.
|
void |
setEditCriteriaInInnerForm(java.lang.Boolean editCriteriaInInnerForm)
Flag to disable the criteria editing overrides described in
setCriterionGetter() whereby if this item
contains a DynamicForm as its canvas, it will be used to edit nested AdvancedCriteria automatically. |
void |
setHeight(int height)
Height of the Canvas.
|
void |
setHeight(java.lang.String height)
Height of the Canvas.
|
void |
setMultiple(java.lang.Boolean multiple)
Whether this CanvasItem is intended to hold multiple values.
|
void |
setOverflow(Overflow overflow)
CanvasItems support specifying overflow for the Canvas directly on the item.
|
void |
setPrompt(java.lang.String prompt)
This text is shown as a tooltip prompt when the cursor hovers over this item.
|
void |
setShouldDisableCanvasCustomizer(ShouldDisableCanvasCustomizer customizer)
Sets the
ShouldDisableCanvasCustomizer that is called to determine whether
the canvas should be
disabled when this
CanvasItem is disabled or its
editability changes . |
void |
setShouldSaveValue(java.lang.Boolean shouldSaveValue)
Should this item's value be saved in the form's values and hence returned from
DynamicForm.getValues() ? |
protected void |
setupCanvasConstructor() |
void |
storeValue(java.lang.Object value)
Store a value for this form item.
|
void |
storeValue(Record value)
Store a value for this form item.
|
void |
storeValue(RecordList value)
Store a value for this form item.
|
_getValue, addBlurHandler, addChangedHandler, addChangeHandler, addClickHandler, addDoubleClickHandler, addEditorEnterHandler, addEditorExitHandler, addFocusHandler, addIconClickHandler, addIconKeyPressHandler, addItemHoverHandler, addKeyDownHandler, addKeyPressHandler, addKeyUpHandler, addPickerIconClickHandler, addTitleClickHandler, addTitleDoubleClickHandler, addTitleHoverHandler, addValueHoverHandler, addValueIconClickHandler, asSGWTComponent, blurItem, canEditCriterion, clearValue, disable, enable, error, error, errorIfNotCreated, focusInItem, getAccessKey, getAlign, getAllowExpressions, getAlwaysFetchMissingValues, getApplyHeightToTextBox, getAriaRole, getAttribute, getAttributeAsBoolean, getAttributeAsBoolean, getAttributeAsDate, getAttributeAsDouble, getAttributeAsFloat, getAttributeAsInt, getAttributeAsJavaScriptObject, getAttributeAsObject, getAttributeAsString, getAutoComplete, getBrowserSpellCheck, getCanEdit, getCanEditOpaqueValues, getCanFocus, getCanSelectText, getCanvasAutoChild, getCellHeight, getCellStyle, getChangeOnKeypress, getClassName, getClipStaticValue, getClipTitle, getConfig, getContainerWidget, getControlStyle, getCriteriaField, getCriterion, getCriterion, getDataPath, getDateFormatter, getDecimalPad, getDecimalPrecision, getDefaultIconSrc, getDisabled, getDisableIconsOnReadOnly, getDisplayField, getDisplayFieldName, getDisplayValue, getDisplayValue, getEditorTypeConfig, getEditPendingCSSText, getEditProxyConstructor, getEmptyDisplayValue, getEmptyValueIcon, getEndRow, getErrorIconHeight, getErrorIconSrc, getErrorIconWidth, getErrorMessageWidth, getExportFormat, getFetchMissingValues, getFieldName, getFilterLocally, getForeignDisplayField, getForm, getFormat, getFormItemAutoChild, getFullDataPath, getGlobalTabIndex, getHint, getHintStyle, getHoverAlign, getHoverDelay, getHoverHeight, getHoverOpacity, getHoverStyle, getHoverVAlign, getHoverWidth, getIcon, getIconHeight, getIconHSpace, getIconPageRect, getIconPrompt, getIconRect, getIconVAlign, getIconWidth, getImageURLPrefix, getImageURLSuffix, getImplicitSave, getImplicitSaveOnBlur, getInputFormat, getLeft, getLoadingDisplayValue, getLocateItemBy, getMultipleValueSeparator, getName, getOperator, getOptionCriteria, getOptionFilterContext, getOptionOperationId, getPageLeft, getPageRect, getPageTop, getPicker, getPickerIconHeight, getPickerIconName, getPickerIconPrompt, getPickerIconProperties, getPickerIconSrc, getPickerIconStyle, getPickerIconWidth, getPixelHeight, getPixelWidth, getPrintTextBoxStyle, getPrintTitleStyle, getReadOnlyDisplay, getReadOnlyTextBoxStyle, getRect, getRedrawOnChange, getRejectInvalidValueOnChange, getRequired, getRequiredMessage, getRowSpan, getSaveOnEnter, getScClassName, getSelectedRecord, getSelectOnClick, getSelectOnFocus, getShowClippedTitleOnHover, getShowClippedValueOnHover, getShowDisabled, getShowErrorIcon, getShowErrorStyle, getShowErrorText, getShowFocused, getShowFocusedErrorState, getShowFocusedIcons, getShowFocusedPickerIcon, getShowHint, getShowIcons, getShowOverIcons, getShowPickerIcon, getShowRTL, getShowTitle, getShowValueIconOnly, getStartRow, getStaticHeight, getStopOnError, getSuppressValueIcon, getSynchronousValidation, getTabIndex, getTextAlign, getTextBoxStyle, getTimeFormatter, getTitle, getTitleAlign, getTitleColSpan, getTitleOrientation, getTitleStyle, getTitleVAlign, getTooltip, getTop, getType, getValidateOnChange, getValidateOnExit, getValidOperators, getVAlign, getValue, getValueAsRecordList, getValueField, getValueFieldName, getValueIconHeight, getValueIconLeftPadding, getValueIconRightPadding, getValueIconSize, getValueIconWidth, getVisible, getVisibleHeight, getVisibleWidth, getWidth, getWidthAsString, getWrapTitle, hide, hideIcon, invalidateDisplayValueCache, isCreated, isDisabled, isDrawn, isVisible, redraw, redraw, setAccessKey, setAlign, setAllowExpressions, setAlwaysFetchMissingValues, setApplyHeightToTextBox, setAriaRole, setAriaState, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAutoChildConstructor, setAutoChildProperties, setAutoChildProperties, setAutoChildProperties, setAutoChildVisibility, setAutoComplete, setBrowserSpellCheck, setCanEdit, setCanEditOpaqueValues, setCanFocus, setCanSelectText, setCellHeight, setCellStyle, setChangeOnKeypress, setClipStaticValue, setClipTitle, setColSpan, setColSpan, setControlStyle, setCriteriaField, setCriterion, setDataPath, setDateFormatter, setDecimalPad, setDecimalPrecision, setDefaultIconSrc, setDefaultProperties, setDefaultValue, setDefaultValue, setDefaultValue, setDefaultValue, setDefaultValue, setDefaultValue, setDefaultValue, setDisabled, setDisableIconsOnReadOnly, setDisplayField, setDisplayFormat, setDisplayFormat, setEditorProperties, setEditorType, setEditorType, setEditorType, setEditorValueFormatter, setEditorValueParser, setEditPendingCSSText, setEditProxyConstructor, setEmptyDisplayValue, setEmptyValueIcon, setEndRow, setErrorFormatter, setErrorIconHeight, setErrorIconSrc, setErrorIconWidth, setErrorMessageWidth, setErrorOrientation, setExportFormat, setFetchMissingValues, setFilterLocally, setForeignDisplayField, setFormat, setGlobalTabIndex, setHint, setHintStyle, setHoverAlign, setHoverDelay, setHoverHeight, setHoverOpacity, setHoverStyle, setHoverVAlign, setHoverWidth, setIconHeight, setIconHSpace, setIconPrompt, setIcons, setIconVAlign, setIconWidth, setImageURLPrefix, setImageURLSuffix, setImplicitSave, setImplicitSaveOnBlur, setInitHandler, setInputFormat, setInputTransformer, setItemHoverFormatter, setItemTitleHoverFormatter, setItemValueHoverFormatter, setLeft, setLoadingDisplayValue, setLocateItemBy, setMultipleValueSeparator, setName, setNullProperty, setOperator, setOptionCriteria, setOptionDataSource, setOptionFilterContext, setOptionOperationId, setPickerIconHeight, setPickerIconName, setPickerIconPrompt, setPickerIconProperties, setPickerIconSrc, setPickerIconStyle, setPickerIconWidth, setPrintTextBoxStyle, setPrintTitleStyle, setProperty, setProperty, setProperty, setProperty, setProperty, setReadOnlyDisplay, setReadOnlyTextBoxStyle, setRedrawOnChange, setRejectInvalidValueOnChange, setRequired, setRequiredMessage, setRowSpan, setSaveOnEnter, setScClassName, setSelectOnClick, setSelectOnFocus, setShowClippedTitleOnHover, setShowClippedValueOnHover, setShowDisabled, setShowErrorIcon, setShowErrorStyle, setShowErrorText, setShowFocused, setShowFocusedErrorState, setShowFocusedIcons, setShowFocusedPickerIcon, setShowHint, setShowIcons, setShowIfCondition, setShowOverIcons, setShowPickerIcon, setShowRTL, setShowTitle, setShowValueIconOnly, setStartRow, setStaticHeight, setStopOnError, setSuppressValueIcon, setSynchronousValidation, setTabIndex, setTextAlign, setTextBoxStyle, setTimeFormatter, setTitle, setTitleAlign, setTitleColSpan, setTitleHoverFormatter, setTitleOrientation, setTitleStyle, setTitleVAlign, setTooltip, setTop, setType, setValidateOnChange, setValidateOnExit, setValidators, setValidOperators, setVAlign, setValue, setValue, setValue, setValue, setValue, setValue, setValueField, setValueFormatter, setValueHoverFormatter, setValueIconHeight, setValueIconLeftPadding, setValueIconMapper, setValueIconRightPadding, setValueIcons, setValueIconSize, setValueIconWidth, setValueMap, setValueMap, setVisible, setWidth, setWidth, setWrapTitle, shouldApplyHeightToTextBox, shouldFetchMissingValue, shouldSaveOnEnter, shouldStopKeyPressBubbling, show, showIcon, showPicker, stopHover, storeValue, updateState, validate, valueClipped
getRef, getRef, internalSetID
applyFactoryProperties, doAddHandler, fireEvent, getAttributeAsDoubleArray, getAttributeAsIntArray, getAttributeAsLong, getAttributeAsMap, getAttributeAsObject, getAttributeAsRecord, getAttributeAsStringArray, getAttributes, getHandlerCount, isFactoryCreated, setAttribute, setAttribute, setAttribute, setAttributeAsJavaObject, setFactoryCreated
equals, getJsObj, hashCode, setJavaScriptObject, setJsObj
public CanvasItem()
public CanvasItem(com.google.gwt.core.client.JavaScriptObject jsObj)
public CanvasItem(java.lang.String name)
public CanvasItem(java.lang.String name, java.lang.String title)
public static CanvasItem getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)
public static void changeAutoChildDefaults(java.lang.String autoChildName, Canvas defaults)
autoChildName
.autoChildName
- name of an AutoChild to customize the defaults for.defaults
- Canvas defaults to apply. These defaults override any existing properties
without destroying or wiping out non-overridden properties.AutoChildUsage
public static void changeAutoChildDefaults(java.lang.String autoChildName, FormItem defaults)
autoChildName
.autoChildName
- name of an AutoChild to customize the defaults for.defaults
- FormItem defaults to apply. These defaults override any existing properties
without destroying or wiping out non-overridden properties.AutoChildUsage
public static void changeAutoChildDefaults(java.lang.String autoChildName, DrawItem defaults)
autoChildName
.autoChildName
- name of an AutoChild to customize the defaults for.defaults
- DrawItem defaults to apply. These defaults override any existing properties
without destroying or wiping out non-overridden properties.AutoChildUsage
public static void changePickerIconDefaults(FormItemIcon defaults)
public void setApplyPromptToCanvas(java.lang.Boolean applyPromptToCanvas)
applyPromptToCanvas
- Default value is truepublic java.lang.Boolean getApplyPromptToCanvas()
public void setAutoDestroy(java.lang.Boolean autoDestroy)
canvas
be automatically
destroyed when the item is destroyed? Form items are destroyed automatically when a call to DynamicForm.setItems()
removes them from their parent form, or if
their parent form is destroyed. This property governs whether, when this occurs, the item's canvas should also be
destroyed
. Setting this property to true is typically appropriate for cases where a custom CanvasItem automatically creates its canvas as part of its initialization flow. Note that once a canvas has been destroyed it can not be re-used elsewhere within an application.
Note : This is an advanced setting
autoDestroy
- Default value is falsepublic java.lang.Boolean getAutoDestroy()
canvas
be automatically
destroyed when the item is destroyed? Form items are destroyed automatically when a call to DynamicForm.setItems()
removes them from their parent form, or if
their parent form is destroyed. This property governs whether, when this occurs, the item's canvas should also be
destroyed
. Setting this property to true is typically appropriate for cases where a custom CanvasItem automatically creates its canvas as part of its initialization flow. Note that once a canvas has been destroyed it can not be re-used elsewhere within an application.
public void setCanvas(Canvas canvas)
CanvasItem.createCanvas()
to dynamically create the canvas when the FormItem is initialized. If canvas
and createCanvas()
are unspecified, the canvas for this item will be auto-created using the overrideable
defaults: canvasProperties
and canvasConstructor
Note that canvasItem
will be set on the canvas to point back to this item.
If this method is called after the component has been drawn/initialized:
Setter to update the canvas
at runtime
canvas
- New canvas to display.. Default value is nullpublic Canvas getCanvas()
CanvasItem.createCanvas()
to dynamically create the canvas when the FormItem is initialized. If canvas
and createCanvas()
are unspecified, the canvas for this item will be auto-created using the overrideable
defaults: canvasProperties
and canvasConstructor
Note that canvasItem
will be set on the canvas to point back to this item.
public void setEditCriteriaInInnerForm(java.lang.Boolean editCriteriaInInnerForm)
setCriterionGetter()
whereby if this item
contains a DynamicForm as its canvas, it will be used to edit nested AdvancedCriteria automatically. This flag is required for cases where a canvasItem contains a DynamicForm, but the form is not set up to show inner field values of nested objects, and therefore should not attempt to apply nested advanced criteria directly to the form.
Note : This is an advanced setting
editCriteriaInInnerForm
- Default value is truepublic java.lang.Boolean getEditCriteriaInInnerForm()
setCriterionGetter()
whereby if this item
contains a DynamicForm as its canvas, it will be used to edit nested AdvancedCriteria automatically. This flag is required for cases where a canvasItem contains a DynamicForm, but the form is not set up to show inner field values of nested objects, and therefore should not attempt to apply nested advanced criteria directly to the form.
public void setHeight(int height)
FormLayout
overview for details. Height may also be explicitly specified on the canvas
. In this any canvasItem.height
will be
ignored in favor of the value applied to the canvas directly. In either case, percentage values will be resolved using
standard formItem sizing rules as described in FormLayout
setHeight
in class FormItem
height
- Default value is -1FormLayout overview and related methods
,
Filling Examplepublic int getHeight()
FormLayout
overview for details. Height may also be explicitly specified on the canvas
. In this any canvasItem.height
will be
ignored in favor of the value applied to the canvas directly. In either case, percentage values will be resolved using
standard formItem sizing rules as described in FormLayout
getHeight
in class FormItem
FormLayout overview and related methods
,
Filling Examplepublic void setHeight(java.lang.String height)
FormLayout
overview for details. Height may also be explicitly specified on the canvas
. In this any canvasItem.height
will be
ignored in favor of the value applied to the canvas directly. In either case, percentage values will be resolved using
standard formItem sizing rules as described in FormLayout
setHeight
in class FormItem
height
- Default value is -1FormLayout overview and related methods
,
Filling Examplepublic java.lang.String getHeightAsString()
FormLayout
overview for details. Height may also be explicitly specified on the canvas
. In this any canvasItem.height
will be
ignored in favor of the value applied to the canvas directly. In either case, percentage values will be resolved using
standard formItem sizing rules as described in FormLayout
getHeightAsString
in class FormItem
FormLayout overview and related methods
,
Filling Examplepublic void setMultiple(java.lang.Boolean multiple)
This attribute can affect the return type of
getValue(). If this CanvasItem is storing multiple values, then the return type of getValue() is
JavaScriptObject
(a JavaScript array object) if multiple is null or false. However, if multiple is true,
then the return type is either List
or RecordList
.
multiple
- Default value is falsepublic java.lang.Boolean getMultiple()
This attribute can affect the return type of
getValue(). If this CanvasItem is storing multiple values, then the return type of getValue() is
JavaScriptObject
(a JavaScript array object) if multiple is null or false. However, if multiple is true,
then the return type is either List
or RecordList
.
public void setOverflow(Overflow overflow)
overflow
- Default value is nullpublic Overflow getOverflow()
public void setPrompt(java.lang.String prompt)
prompt
for this item. Default implementation will also apply the prompt to canvas
if applyPromptToCanvas
is true.setPrompt
in class FormItem
prompt
- new prompt for the item. See HTMLString
. Default value is nullBasics overview and related methods
public java.lang.String getPrompt()
getPrompt
in class FormItem
HTMLString
Basics overview and related methods
public void setShouldSaveValue(java.lang.Boolean shouldSaveValue)
DynamicForm.getValues()
? Note that by default,
shouldSaveValue
is false for CanvasItems, meaning that no value from the CanvasItem will be present in
DynamicForm.getValues()
and no value for the CanvasItem
will be saved when DynamicForm.saveData()
is called. See
the CanvasItem
class overview for a discussion of values handling in
CanvasItems.
setShouldSaveValue
in class FormItem
shouldSaveValue
- Default value is falsepublic java.lang.Boolean getShouldSaveValue()
DynamicForm.getValues()
? Note that by default,
shouldSaveValue
is false for CanvasItems, meaning that no value from the CanvasItem will be present in
DynamicForm.getValues()
and no value for the CanvasItem
will be saved when DynamicForm.saveData()
is called. See
the CanvasItem
class overview for a discussion of values handling in
CanvasItems.
getShouldSaveValue
in class FormItem
public com.google.gwt.event.shared.HandlerRegistration addCanEditChangedHandler(CanEditChangedHandler handler)
Notification method called when the canEdit
setting
is modified. Developers may make use of this to toggle between an editable and a read-only appearance of the canvas
.
The default behavior is:
canvas
is a DynamicForm
, the form's canEdit
setting is set to canEdit
. CanvasItem.shouldDisableCanvas()
is called to
determine if the canvas
should be disabled. Standard CanvasItem
-based form items may
customize the default behavior. For example, a MultiComboBoxItem
will
hide its comboForm
if the readOnlyDisplay
is ReadOnlyDisplayAppearance.READONLY
or ReadOnlyDisplayAppearance.STATIC
and also disable the buttons when made read-only.
addCanEditChangedHandler
in interface HasCanEditChangedHandlers
handler
- the canEditChanged handlerHandlerRegistration
used to remove this handlerpublic java.lang.Boolean hasAdvancedCriteria()
canvas
is a
dynamicForm. See setCriterionGetter()
for details of editing advanced criteria using nested dynamicForms.hasAdvancedCriteria
in class FormItem
CriteriaEditing overview and related methods
public com.google.gwt.event.shared.HandlerRegistration addReadOnlyDisplayChangedHandler(ReadOnlyDisplayChangedHandler handler)
Notification method called when the readOnlyDisplay
setting is modified. Developers may make use of this to toggle between an editable and a read-only
appearance of the canvas
.
The default behavior
is: when the canvas
is a DynamicForm
, the form's readOnlyDisplay
setting is set to
appearance
.
Standard CanvasItem
-based form items may customize the default behavior.
addReadOnlyDisplayChangedHandler
in interface HasReadOnlyDisplayChangedHandlers
handler
- the readOnlyDisplayChanged handlerHandlerRegistration
used to remove this handlerpublic com.google.gwt.event.shared.HandlerRegistration addShowValueHandler(ShowValueHandler handler)
This method will be called whenever this FormItem's value is being set via a programmatic call to e.g: DynamicForm.setValues()
or FormItem.setValue()
and may be overridden by CanvasItems
intended to support displaying data values to update the embedded Canvas to reflect the value passed in.
addShowValueHandler
in interface HasShowValueHandlers
handler
- the showValue handlerHandlerRegistration
used to remove this handlerpublic static void setDefaultProperties(CanvasItem canvasItemProperties)
Note: This method is intended for setting default attributes only and will affect all instances of the underlying class (including those automatically generated in JavaScript). This method should not be used to apply standard EventHandlers or override methods for a class - use a custom subclass instead. Calling this method after instances have been created can result in undefined behavior, since it bypasses any setters and a class instance may have already examined a particular property and not be expecting any changes through this route.
canvasItemProperties
- properties that should be used as new defaults when instances of this class are createdprotected void setupCanvasConstructor()
protected Canvas createCanvas()
#setCanvas()
directly.public void setShouldDisableCanvasCustomizer(ShouldDisableCanvasCustomizer customizer)
ShouldDisableCanvasCustomizer
that is called to determine whether
the canvas
should be
disabled
when this
CanvasItem
is disabled or its
editability changes
.
Setting a ShouldDisableCanvasCustomizer
is the Smart GWT equivalent
of overriding the CanvasItem.shouldDisableCanvas()
method in SmartClient.
customizer
- the ShouldDisableCanvasCustomizer
to use.public void storeValue(java.lang.Object value)
This method will fire standard FormItem.change
and FormItem.changed
handlers, and
store the value passed in such that subsequent calls to FormItem.getValue
or DynamicForm.getValue
will return the
new value for this item.
For canvasItems that manipulate values and display them in some arbitrary canvas representation developers should call this method when the user interacts with the embedded canvas in a way that modifies the value for the item.
If you cannot easily detect changes to values in your Canvas, a workaround is to
call storeValue
right before the form saves.
storeValue
in class FormItem
value
- value to save for this itempublic void storeValue(Record value)
FormItem.change
and FormItem.changed
handlers, and store out the method
passed in such that subsequent calls to FormItem.getValue
or DynamicForm.getValue
will return the
new value for this item. For canvasItems that manipulate values and display them in some arbitrary canvas representation developers should call this method when the user interacts with the embedded canvas in a way that modifies the value for the item.
If you cannot easily detect changes to values in your Canvas, a workaround is to
call storeValue
right before the form saves.
value
- value to save for this itempublic void storeValue(RecordList value)
FormItem.change
and FormItem.changed
handlers, and store out the method
passed in such that subsequent calls to FormItem.getValue
or DynamicForm.getValue
will return the
new value for this item. For canvasItems that manipulate values and display them in some arbitrary canvas representation developers should call this method when the user interacts with the embedded canvas in a way that modifies the value for the item.
If you cannot easily detect changes to values in your Canvas, a workaround is to
call storeValue
right before the form saves.
value
- value to save for this itempublic void setCanEditCriterionPredicate(FormItemCanEditCriterionPredicate predicate)
CanvasItem.setCriterionGetter
.
The default canEditCriterion()
predicate is overridden to return true if this item's canvas is a DynamicForm, where the operator
matches the operator of the criterion passed in and
dynamicForm contains items where the registered FormItemCanEditCriterionPredicate
's canEditCriterion
method returns true for each sub-criterion in the object passed in.
setCanEditCriterionPredicate
in class FormItem
predicate
- the predicate to determine the form items that can edit the criterion in questionFormItem.setCanEditCriterionPredicate
,
CriteriaEditing overview and related methods
public void setCriterionGetter(FormItemCriterionGetter getter)
AdvancedCriteria
objects using nested
DynamicForms.
The following pattern is supported without need for further modification:
A complex Advanced criteria object may have nested sub criteria using the "and"
or "or"
operators. For example:
{ _constructor:"AdvancedCriteria", operator:"and", criteria:[ {fieldName:"field1", value:"value1", operator:"iContains"}, {operator:"or", criteria:[ {fieldName:"innerField1", value:"value1", operator:"equals"}, {fieldName:"innerField2", value:"value2", operator:"iContains"} ] } ] }To create a form capable of editing the above criteria without providing a custom
FormItemCriterionGetter
et al, you would create a
form with 2 items.
The 'field1' criterion could be edited by a simple form item such as a TextItem.
The nested criteria ('innerField1' and 'innerField2') could be edited by a canvasItem
whose canvas property was set to a DynamicForm showing items capable of editing the 2
inner criteria, and whose operator was specified as "or".isc.DynamicForm.create({ items:[ {name:"field1", type:"TextItem"}, {name:"nestedItem", shouldSaveValue:true, type:"CanvasItem", canvas:isc.DynamicForm.create({ operator:"or", items:[ {name:"innerField1", type:"TextItem", operator:"equals"}, {name:"innerField2", type:"TextItem"} ] }) } ] });This form would be able to edit the above advanced criteria object via
DynamicForm.setValuesAsCriteria
. Edited values
would be retrieved via
DynamicForm.getValuesAsCriteria
.
Note that the canvas item has shouldSaveValue
set to true - this is required
to ensure the nested form is actually passed the values to edit.
The default implementation of this method checks for this.canvas being specified as a
dynamicForm, and in that case simply returns the result of
DynamicForm.getValuesAsAdvancedCriteria
on the inner form.
Note that this functionality may be entirely bypassed by
setting editCriteriaInInnerForm
to
false. This flag is useful when defining a
dynamicForm based canvasItem which is not intended for editing nested data -- for example
if a standard atomic field value is being displayed in some custom way using a
DynamicForm embedded in the item.
setCriterionGetter
in class FormItem
getter
- provides a method to get a criterion object based on this field's current edited value(s).FormItem.setCriterionGetter(com.smartgwt.client.widgets.form.FormItemCriterionGetter)
,
CriteriaEditing overview and related methods
public void setCriterionSetter(FormItemCriterionSetter setter)
setCriterion()
implementation to display a Criterion
object in this item for editing.
The default implementation is overridden from FormItem.setCriterionSetter
in order to support editing nested criteria using nested dynamicForms as described in CanvasItem.setCriterionGetter
.
Implementation checks for this.canvas being specified as a DynamicForm, and applies criterion directly to the embedded form via setValuesAsCriteria().
setCriterionSetter
in class FormItem
setter
- provides a method to update this field with the edited criterion