Package com.smartgwt.client.widgets.form.fields

# Class FormItem

java.lang.Object
com.smartgwt.client.core.JsObject
com.smartgwt.client.core.DataClass
com.smartgwt.client.core.RefDataClass
com.smartgwt.client.data.Field
com.smartgwt.client.widgets.form.fields.FormItem

All Implemented Interfaces:
  `HasHandlers`, `HasBlurHandlers`, `HasChangedHandlers`, `HasChangeHandlers`, `HasClickHandlers`, `HasDoubleClickHandlers`, `HasEditorEnterHandlers`, `HasEditorExitHandlers`, `HasFocusHandlers`, `HasIconClickHandlers`, `HasIconKeyPressHandlers`, `HasItemHoverHandlers`, `HasKeyDownHandlers`, `HasKeyPressHandlers`, `HasKeyUpHandlers`, `HasPendingStatusChangedHandlers`, `HasPickerIconClickHandlers`, `HasShowContextMenuHandlers`, `HasTitleClickHandlers`, `HasTitleDoubleClickHandlers`, `HasTitleHoverHandlers`, `HasValueHoverHandlers`, `HasValueIconClickHandlers`

Direct Known Subclasses:
  `BlurbItem`, `CanvasItem`, `CheckboxItem`, `DateItem`, `HeaderItem`, `HiddenItem`, `NativeCheckboxItem`, `RadioGroupItem`, `SelectItem`, `SpacerItem`, `StaticTextItem`, `TextAreaItem`, `TextItem`, `TimeItem`

public class FormItem extends Field implements HasBlurHandlers, HasChangeHandlers, HasChangedHandlers, HasClickHandlers, HasDoubleClickHandlers, HasEditorEnterHandlers, HasEditorExitHandlers, HasFocusHandlers, HasIconClickHandlers, HasIconKeyPressHandlers, HasItemHoverHandlers, HasKeyDownHandlers, HasKeyPressHandlers, HasKeyUpHandlers, HasPendingStatusChangedHandlers, HasPickerIconClickHandlers, HasShowContextMenuHandlers, HasTitleClickHandlers, HasTitleDoubleClickHandlers, HasTitleHoverHandlers, HasValueHoverHandlers, HasValueIconClickHandlers
A UI component that can participate in a DynamicForm, allowing editing or display of one of the `values tracked by the form`.

FormItems do not render themselves, instead, they are provided to a `DynamicForm` via `DynamicForm.setItems()`

See the `DynamicForm` documentation for details and sample code.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static interface`
  `FormItem.CustomStateGetter`
  `static interface`
  `FormItem.StateCustomizer`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected boolean`
  `configOnly`
  `protected String`
  `scClassName`
  `protected boolean`
  `warnOnEditorTypeConversion`
  `protected static boolean`
  `warnOnEditorTypeConversionDefault`

  ### Fields inherited from class com.smartgwt.client.core.RefDataClass

  `id`

  ### Fields inherited from class com.smartgwt.client.core.DataClass

  `factoryCreated, factoryProperties`

  ### Fields inherited from class com.smartgwt.client.core.JsObject

  `jsObj`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `FormItem()`
  `FormItem(JavaScriptObject jsObj)`
  `FormItem(String name)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `_getValue()`
  `HandlerRegistration`
  `addBlurHandler(BlurHandler handler)`
  Add a blur handler.
  `HandlerRegistration`
  `addChangedHandler(ChangedHandler handler)`
  Add a changed handler.
  `HandlerRegistration`
  `addChangeHandler(ChangeHandler handler)`
  Add a change handler.
  `HandlerRegistration`
  `addClickHandler(ClickHandler handler)`
  Add a click handler.
  `HandlerRegistration`
  `addDoubleClickHandler(DoubleClickHandler handler)`
  Add a doubleClick handler.
  `HandlerRegistration`
  `addEditorEnterHandler(EditorEnterHandler handler)`
  Add a editorEnter handler.
  `HandlerRegistration`
  `addEditorExitHandler(EditorExitHandler handler)`
  Add a editorExit handler.
  `HandlerRegistration`
  `addFocusHandler(FocusHandler handler)`
  Add a focus handler.
  `FormItemIcon`
  `addIcon(FormItemIcon icon)`
  Adds a `FormItemIcon` to this item.
  `FormItemIcon`
  `addIcon(FormItemIcon icon, int index)`
  Adds a `FormItemIcon` to this item.
  `HandlerRegistration`
  `addIconClickHandler(IconClickHandler handler)`
  Add a iconClick handler.
  `HandlerRegistration`
  `addIconKeyPressHandler(IconKeyPressHandler handler)`
  Add a iconKeyPress handler.
  `HandlerRegistration`
  `addItemHoverHandler(ItemHoverHandler handler)`
  Add a itemHover handler.
  `HandlerRegistration`
  `addKeyDownHandler(KeyDownHandler handler)`
  Add a keyDown handler.
  `HandlerRegistration`
  `addKeyPressHandler(KeyPressHandler handler)`
  Add a keyPress handler.
  `HandlerRegistration`
  `addKeyUpHandler(KeyUpHandler handler)`
  Add a keyUp handler.
  `HandlerRegistration`
  `addPendingStatusChangedHandler(PendingStatusChangedHandler handler)`
  Add a pendingStatusChanged handler.
  `HandlerRegistration`
  `addPickerIconClickHandler(PickerIconClickHandler handler)`
  Add a pickerIconClick handler.
  `HandlerRegistration`
  `addShowContextMenuHandler(ShowContextMenuHandler handler)`
  Add a showContextMenu handler.
  `HandlerRegistration`
  `addTitleClickHandler(TitleClickHandler handler)`
  Add a titleClick handler.
  `HandlerRegistration`
  `addTitleDoubleClickHandler(TitleDoubleClickHandler handler)`
  Add a titleDoubleClick handler.
  `HandlerRegistration`
  `addTitleHoverHandler(TitleHoverHandler handler)`
  Add a titleHover handler.
  `HandlerRegistration`
  `addValueHoverHandler(ValueHoverHandler handler)`
  Add a valueHover handler.
  `HandlerRegistration`
  `addValueIconClickHandler(ValueIconClickHandler handler)`
  Add a valueIconClick handler.
  `void`
  `applyFormula()`
  Manually sets this FormItem to the result of `formula` or `textFormula`.
  `static <T extends RefDataClass>
  T`
  `asSGWTComponent(JavaScriptObject jsObj)`
  Returns the existing SGWT FormItem, or creates and returns one if none exist, associated with the supplied `JavaScriptObject`.
  `void`
  `blurItem()`
  Takes focus from this form item's focusable element.
  `final Boolean`
  `canEditCriterion(Criterion criterion)`
  Calls the `canEditCriterion()` method of the `FormItemCanEditCriterionPredicate` that is registered with this field.
  `static void`
  `changeAutoChildDefaults(String autoChildName, Canvas defaults)`
  Changes the defaults for Canvas AutoChildren named `autoChildName`.
  `static void`
  `changeAutoChildDefaults(String autoChildName, FormItem defaults)`
  Changes the defaults for FormItem AutoChildren named `autoChildName`.
  `static void`
  `changePickerIconDefaults(FormItemIcon defaults)`
  `static String`
  `checkFormItemType(String editorType)`
  `void`
  `clearErrors()`
  Clear all error messages for this item
  `void`
  `clearValue()`
  Clear the value for this form item.
  `void`
  `disable()`
  Set this item to be disabled at runtime.
  `void`
  `disableIcon(String icon)`
  This method will disable some icon in this item's `icons` array, if it is currently enabled.
  `void`
  `enable()`
  Set this item to be enabled at runtime.
  `void`
  `enableIcon(String icon)`
  This method will enable some icon in this item's `icons` array, if it is currently disabled.
  `protected final void`
  `error(String message)`
  `protected final void`
  `error(String attribute, String value)`
  `protected final void`
  `errorIfNotCreated(String property)`
  `void`
  `focusAfterItem(boolean forward)`
  Shifts focus to the next focusable element after this item, skipping any elements nested inside the tabbing group for this item, such as sub-elements, nested canvases in a CanvasItem, or icons.
  `void`
  `focusInItem()`
  Move the keyboard focus into this item's focusable element
  `String`
  `getAccessKey()`
  If specified this governs the HTML accessKey for the item.
  `Alignment`
  `getAlign()`
  Alignment of this item in its cell.
  `Boolean`
  `getAllowExpressions()`
  For a form that produces filter criteria (see `form.getValuesAsCriteria()`), allows the user to type in simple expressions to cause filtering with that operator.
  `Boolean`
  `getAlwaysFetchMissingValues()`
  If this form item has a specified `optionDataSource` and `fetchMissingValues` is true, when the item value changes, a fetch will be performed against the optionDataSource to retrieve the related record if `displayField` is specified and the new item value is not present in any valueMap explicitly specified on the item.
  `Boolean`
  `getAlwaysShowControlBox()`
  A formItem showing a `pickerIcon` will always write out a "control box" around the text box and picker icon.
  `boolean`
  `getApplyAlignToText()`
  If the `textAlign` is unset, should the `align` setting, if set, be used for this item's `textAlign`?
  `Boolean`
  `getApplyHeightToTextBox()`
  If `height` is specified, should it be applied to the item's text box element?
  `String`
  `getAriaRole()`
  ARIA role of this formItem.
  `String`
  `getAttribute(String attribute)`
  Returns attribute value as a String
  `Boolean`
  `getAttributeAsBoolean(String property)`
  Returns attribute value set as a Boolean.
  `Boolean`
  `getAttributeAsBoolean(String property, boolean allowNull)`
  Returns attribute value set as a Boolean.
  `Date`
  `getAttributeAsDate(String property)`
  Returns attribute value as a Date.
  `Double`
  `getAttributeAsDouble(String property)`
  Returns attribute as a Double.
  `Float`
  `getAttributeAsFloat(String property)`
  Returns attribute value as a Float.
  `Integer`
  `getAttributeAsInt(String property)`
  Returns attribute value as an Integer.
  `JavaScriptObject`
  `getAttributeAsJavaScriptObject(String property)`
  Returns attribute value as a JavaScript Object.
  `Object`
  `getAttributeAsObject(String property, JavaScriptObject convertToObject)`
  `String`
  `getAttributeAsString(String property)`
  Returns attribute value as a String.
  `AutoComplete`
  `getAutoComplete()`
  Should this item allow browser auto-completion of its value? Applies only to items based on native HTML form elements (`TextItem`, `PasswordItem`, etc), and will only have a user-visible impact for browsers where native autoComplete behavior is actually supported and enabled via user settings.
  `String[]`
  `getAutoCompleteKeywords()`
  Set of autocompletion keywords to be used with the native "autocomplete" attribute, in accordance with the HTML5 Autofill specification.
  `String`
  `getBrowserInputType()`
  Form item input type - governs which keyboard should be displayed for mobile devices (supported on iPhone / iPad)
  `Boolean`
  `getBrowserSpellCheck()`
  If this browser supports spell-checking of text editing elements, do we want this enabled for this item? If unset the property will be inherited from the containing form.
  `Boolean`
  `getCanEdit()`
  Is this form item editable (canEdit:true) or read-only (canEdit:false)? Setting the form item to non-editable causes it to render as read-only.
  `Boolean`
  `getCanEditOpaqueValues()`
  If true, indicates that this FormItem is capable of editing "opaque" values, ie, objects that are more complex than simple primitive types like numbers, strings and dates.
  `Boolean`
  `getCanFocus()`
  Is this form item focusable? Setting this property to true on an otherwise non-focusable element such as a `StaticTextItem` will cause the item to be included in the page's tab order and respond to keyboard events.
  `Boolean`
  `getCanHover()`
  Indicates whether hovers can be shown for this item.
  `boolean`
  `getCanSelectText()`
  For items showing a text value, should the user be able to select the text in this item?
  `Boolean`
  `getCanTabToIcons()`
  Should this item's `icons` and `picker icon` be included in the page's tab order by default? If not explicitly set, this property will be derived from `DynamicForm.canTabToIcons`.
  `final Canvas`
  `getCanvasAutoChild(String autoChildName)`
  Returns the `Canvas` AutoChild named `autoChildName` if already created.
  `Integer`
  `getCellHeight()`
  If specified, this property will govern the height of the cell in which this form item is rendered.
  `String`
  `getCellStyle()`
  CSS style applied to the form item as a whole, including the text element, any icons, and any hint text for the item.
  `Boolean`
  `getChangeOnKeypress()`
  Should this form item fire its `change` handler (and store its value in the form) on every keypress? Set to `false` to suppress the 'change' handler firing (and the value stored) on every keypress.
  `String`
  `getClassName()`
  Returns the JavaScript class name.
  `Boolean`
  `getClipStaticValue()`
  If this item is `read-only` and is using `readOnlyDisplay` `ReadOnlyDisplayAppearance.STATIC`, should the item value be clipped if it overflows the specified size of the item? If set, overrides the form-level `DynamicForm.clipStaticValue` default.
  `Boolean`
  `getClipTitle()`
  If the title for this form item is showing, and is too large for the available space should the title be clipped?
  `JavaScriptObject`
  `getConfig()`
  Returns the FormItem's config object suitable for use in API's that set the editorType
  `Canvas`
  `getContainerWidget()`
  A Read-Only pointer to the Smart GWT canvas that holds this form item.
  `String`
  `getControlStyle()`
  Base CSS class name for a form item's "control box".
  `String`
  `getCriteriaField()`
  When using `operator`, the name of the DataSource field for the `Criterion` this FormItem generates.
  `final Criterion`
  `getCriterion()`
  Calls the `getCriterion()` method of the `FormItemCriterionGetter` that is registered with this field.
  `final Criterion`
  `getCriterion(TextMatchStyle textMatchStyle)`
  Calls the `getCriterion()` method of the `FormItemCriterionGetter` that is registered with this field.
  `Integer`
  `getCursorPosition()`
  For text-based items, this method returns the index of the start of the current selection if the item currently has the focus (if no text is selected, this equates to the current position of the text editing cursor).
  `String`
  `getCustomState(FormItemElementType elementType, String derivedState)`
  Optional method to retrieve a custom state suffix to append to the style name that is applied to some element of a formItem - see `FormItemBaseStyle` for more information on how state-based FormItem style names are derived.
  `String`
  `getDataPath()`
  dataPath for this item.
  `DateDisplayFormat`
  `getDateFormatter()`
  Display format to use for date type values within this formItem.
  `Integer`
  `getDecimalPad()`
  Applies only to fields of type "float" and enforces a minimum number of digits shown after the decimal point.
  `Integer`
  `getDecimalPrecision()`
  Applies only to fields of type "float" and affects how many significant digits are shown.
  `String`
  `getDefaultIconSrc()`
  Default icon image source.
  `OperatorId`
  `getDefaultOperator()`
  The default search-operator for this item when it or its form allow `filter-expressions`.
  `Object`
  `getDefaultValue()`
  Value used when no value is provided for this item.
  `Boolean`
  `getDestroyed()`
  The destroyed attribute will be set to true if this item has been destroyed() Note that FormItem lifecycle is managed by the DynamicForm itself.
  `Boolean`
  `getDisabled()`
  Deprecated.
  Do not use this API.
  `String`
  `getDisabledHover()`
  This text is shown as a tooltip prompt when the cursor hovers over this item and the item is `disabled` or `read-only` with `readOnlyDisplay:disabled`.
  `Boolean`
  `getDisableIconsOnReadOnly()`
  If `canEdit` is set to false, should `icons` be disabled by default?
  `String`
  `getDisplayField()`
  If set, this item will display a value from another field to the user instead of showing the underlying data value for the `field name`.
  `String`
  `getDisplayFieldName()`
  Returns the `displayField` for this item.
  `String`
  `getDisplayValue()`
  Returns this item's value with any valueMap applied to it - the value as currently displayed to the user.
  `String`
  `getDisplayValue(String value)`
  Returns this item's value with any valueMap applied to it - the value as currently displayed to the user.
  `JavaScriptObject`
  `getEditorTypeConfig()`
  `String`
  `getEditPendingCSSText()`
  Custom CSS text to be applied to cells with pending edits that have not yet been submitted.
  `String`
  `getEditProxyConstructor()`
  Default class used to construct the `EditProxy` for this component when the component is `first placed into edit mode`.
  `String`
  `getEmptyDisplayValue()`
  Text to display when this form item has a null or undefined value.
  `String`
  `getEmptyValueIcon()`
  This property allows the developer to specify an icon to display when this item has no value.
  `Boolean`
  `getEndRow()`
  Whether this item should end the row it's in in the form layout
  `int`
  `getErrorIconHeight()`
  Height of the error icon, if we're showing icons when validation errors occur.
  `FormItemIcon`
  `getErrorIconProperties()`
  `Icon-properties` to apply to the `error-icon` when `showErrorIconInline` is true.
  `String`
  `getErrorIconSrc()`
  URL of the image to show as an error icon, if we're showing icons when validation errors occur.
  `int`
  `getErrorIconWidth()`
  Height of the error icon, if we're showing icons when validation errors occur.
  `int`
  `getErrorMessageWidth()`
  When `DynamicForm.showInlineErrors` and `showErrorText` are both true and `errorOrientation` is "left" or "right", errorMessageWidth is the amount to reduce the width of the editor to accommodate the error message and icon.
  `String[]`
  `getErrors()`
  Returns any validation errors for this field.
  `Boolean`
  `getEscapeHTML()`
  Controls whether HTML item value(s) should be rendered or shown as HTML source.
  `String`
  `getExportFormat()`
  `FormatString` used during exports for numeric or date formatting.
  `String`
  `getExtraControlTableCSS()`
  Additional CSS-text that overrides the item's `controlStyle`, applying arbitrary custom styling to the outer control-table that contains both textBox and icons.
  `String`
  `getExtraTextBoxCSS()`
  Additional CSS-text that overrides the item's `textBoxStyle`, applying arbitrary custom styling to the textBox.
  `Boolean`
  `getFetchMissingValues()`
  If this form item has a specified `optionDataSource`, should the item ever perform a fetch against this dataSource to retrieve the related record.
  `String`
  `getFieldName()`
  Return the name for the this formItem.
  `Boolean`
  `getFilterLocally()`
  If this form item is mapping data values to a display value by fetching records from a dataSource (see `optionDataSource`, `displayField` and `fetchMissingValues`), setting this property to true ensures that when the form item value is set, entire data-set from the dataSource is loaded at once and used as a valueMap, rather than just loading the display value for the current value.
  `String`
  `getForeignDisplayField()`
  For items with an `optionDataSource`, this property specifies an explicit display field for records within the option dataSource.
  `DynamicForm`
  `getForm()`
  A reference to the FormItem's DynamicForm.
  `String`
  `getFormat()`
  `FormatString` for numeric or date formatting.
  `final FormItem`
  `getFormItemAutoChild(String autoChildName)`
  Returns the `FormItem` AutoChild named `autoChildName` if already created.
  `UserFormula`
  `getFormula()`
  Formula to be used to calculate the numeric value of this FormItem.
  `String`
  `getFullDataPath()`
  Return the fully-qualified dataPath for the this formItem (ie, the dataPath expressed in absolute terms from the root of the hierarchy, rather than relative to the item's parent form).
  `Integer`
  `getGlobalTabIndex()`
  TabIndex for the form item within the page.
  `Integer`
  `getGridColNum()`
  If this formItem is part of a `ListGrid`'s `inline edit form`, returns the number of the grid column this formItem is responsible for editing, but only if a row is currently being edited.
  `Integer`
  `getGridRowNum()`
  If this formItem is part of a `ListGrid`'s `inline edit form`, returns the number of the row currently being edited.
  `int`
  `getHeight()`
  Height of the FormItem.
  `String`
  `getHeightAsString()`
  Height of the FormItem.
  `Boolean`
  `getHidden()`
  Should this form item be hidden? Setting this property to `true` on an item configuration will have the same effect as having a `showIf()` implementation which returns `false`.
  `String`
  `getHint()`
  Specifies "hint" string to show next to the form item to indicate something to the user.
  `String`
  `getHintStyle()`
  CSS class for the "hint" string.
  `Alignment`
  `getHoverAlign()`
  Text alignment for text displayed in this item's hover canvas, if shown.
  `Integer`
  `getHoverDelay()`
  If specified, this is the number of milliseconds to wait between the user rolling over this form item, and triggering any hover action for it.
  If not specified `this.form.itemHoverDelay` will be used instead.
  `String`
  `getHoverFocusKey()`
  This attribute gives users a way to pin this item's hover in place so they can interact with it (scroll it, click embedded links, etc).
  `Integer`
  `getHoverHeight()`
  Option to specify a height for any hover shown for this item.
  `String`
  `getHoverHeightAsString()`
  Option to specify a height for any hover shown for this item.
  `Integer`
  `getHoverOpacity()`
  Opacity for any hover shown for this item
  `HoverPersistMode`
  `getHoverPersist()`
  Allows interaction with hovers when the cursor is positioned over them.
  `String`
  `getHoverStyle()`
  Explicit CSS Style for any hover shown for this item.
  `VerticalAlignment`
  `getHoverVAlign()`
  Vertical text alignment for text displayed in this item's hover canvas, if shown.
  `Integer`
  `getHoverWidth()`
  Option to specify a width for any hover shown for this item.
  `String`
  `getHoverWidthAsString()`
  Option to specify a width for any hover shown for this item.
  `FormItemIcon`
  `getIcon(String name)`
  Given a `FormItemIcon.name`, returns the `FormItemIcon` object.
  `String`
  `getIconBaseStyle()`
  Fallback base CSS class to apply to this item's `icons` if they don't specify a `baseStyle` or provide a sprite-based `src string` that specifies a `cssClass`.
  `int`
  `getIconHeight()`
  Default height for form item icons.
  `int`
  `getIconHSpace()`
  Horizontal space (in px) to leave between form item icons.
  `Rectangle`
  `getIconPageRect(FormItemIcon icon)`
  `String`
  `getIconPrompt()`
  Default prompt (and tooltip-text) for icons.
  `Rectangle`
  `getIconRect(FormItemIcon icon)`
  `FormItemIcon[]`
  `getIcons()`
  An array of descriptor objects for icons to display in a line after this form item.
  `Integer`
  `getIconTabPosition()`
  Returns the desired tab-position of some icon with respect to other focusable sub-elements for this formItem.
  `VerticalAlignment`
  `getIconVAlign()`
  How should icons be aligned vertically for this form item.
  `int`
  `getIconWidth()`
  Default width for form item icons.
  `String`
  `getID()`
  Global identifier for referring to the formItem in JavaScript.
  `String`
  `getImageURLPrefix()`
  Prefix to apply to the beginning of any `valueIcons` when determining the URL for the image.
  `String`
  `getImageURLSuffix()`
  Suffix to apply to the end of any `valueIcons` when determining the URL for the image.
  `Boolean`
  `getImplicitSave()`
  When true, indicates that changes to this item will cause an automatic save on a `delay`, as well as when the entire form is submitted.
  `Boolean`
  `getImplicitSaveOnBlur()`
  If set to true, this item's value will be saved immediately when its "editorExit" handler is fired.
  `String`
  `getInputFormat()`
  For fields of type `"date"`, if this is an editable field such as a `TextItem`, this property allows you to specify the `inputFormat` applied to the item.
  `int`
  `getLeft()`
  Left coordinate of this item in pixels.
  `int`
  `getLinearColSpan()`
  Specifies a column span for an item in `linearMode`, overriding the default value of "*" in that mode.
  `String`
  `getLinearColSpanAsString()`
  Specifies a column span for an item in `linearMode`, overriding the default value of "*" in that mode.
  `int`
  `getLinearEndRow()`
  Specifies `endRow` for an item in `linearMode`, overriding the default of `true` in that mode.
  `String`
  `getLinearEndRowAsString()`
  Specifies `endRow` for an item in `linearMode`, overriding the default of `true` in that mode.
  `int`
  `getLinearStartRow()`
  Specifies `startRow` for an item in `linearMode`, overriding the default of `false` in that mode.
  `String`
  `getLinearStartRowAsString()`
  Specifies `startRow` for an item in `linearMode`, overriding the default of `false` in that mode.
  `int`
  `getLinearWidth()`
  Specifies a width for an item in `linearMode`, overriding the default width of "*" in that mode.
  `String`
  `getLinearWidthAsString()`
  Specifies a width for an item in `linearMode`, overriding the default width of "*" in that mode.
  `ListGrid`
  `getListGrid()`
  If this item is being used to edit cells in a ListGrid (see `isInGrid()`), this method returns the grid in question.
  `String`
  `getLoadingDisplayValue()`
  Value shown in field when `fetchMissingValues` is active and a fetch is pending.
  `String`
  `getLocateItemBy()`
  When `AutoTest.getElement()` is used to parse locator strings generated by `AutoTest.getLocator()` for this form item, should the item be identified? If the locator has a specified `name`, it is considered to definitely locate the item and no fallback approach will be used.
  `Integer`
  `getMinHintWidth()`
  If this item is showing a `hint`, this setting specifies how much horizontal space is made available for rendering the hint text by default.
  `Boolean`
  `getMultiple()`
  If true, multiple values may be selected.
  `String`
  `getMultipleValueSeparator()`
  If this item is displaying multiple values, this property will be the string that separates those values for display purposes.
  `String`
  `getName()`
  Name for this form field.
  `String`
  `getNullOriginalValueText()`
  Text shown as the value in the `originalValueMessage` when `showOldValueInHover` is enabled, and when the value has been modified but was originally unset.
  `OperatorId`
  `getOperator()`
  `OperatorId` to be used when `DynamicForm.getValuesAsCriteria()` is called.
  `Criteria`
  `getOptionCriteria()`
  If this item has a specified `optionDataSource`, and this property may be used&#010 to specify criteria to pass to the datasource when&#010 performing the fetch operation on the dataSource to obtain a data-value to display-value&#010 mapping
  `DataSource`
  `getOptionDataSource()`
  If set, this FormItem will map stored values to display values as though a `com.smartgwt.client.types.ValueMap` were specified, by fetching records from the specified `optionDataSource` and extracting the `valueField` and `displayField` in loaded records, to derive one valueMap entry per record loaded from the optionDataSource.
  `String`
  `getOptionDataSourceAsString()`
  If set, this FormItem will map stored values to display values as though a `com.smartgwt.client.types.ValueMap` were specified, by fetching records from the specified `optionDataSource` and extracting the `valueField` and `displayField` in loaded records, to derive one valueMap entry per record loaded from the optionDataSource.
  `RPCRequest`
  `getOptionFilterContext()`
  If this item has a specified `optionDataSource`, and this property is&#010 not null, this will be passed to the datasource as `RPCRequest` properties when&#010 performing the fetch operation on the dataSource to obtain a data-value to display-value&#010 mapping
  `String`
  `getOptionOperationId()`
  If this item has a specified `optionDataSource`, this attribute may be set to specify an explicit `DSRequest.operationId` when performing a fetch against the option dataSource to pick up display value mapping.
  `TextMatchStyle`
  `getOptionTextMatchStyle()`
  If this item has a specified `optionDataSource`, this property determines the textMatchStyle to use when interpretating any `optionCriteria` during the fetch to map valueField values to displayField values.
  `static FormItem`
  `getOrCreateRef(JavaScriptObject jsObj)`
  `String`
  `getOriginalValueMessage()`
  Message shown when `showOldValueInHover` is enabled and the value has been modified.
  `int`
  `getPageLeft()`
  Returns the drawn page-left coordinate of this form item in pixels.
  `Rectangle`
  `getPageRect()`
  Return the page-level coordinates of this object.
  `int`
  `getPageTop()`
  Returns the drawn page-top coordinate of this form item in pixels.
  `Map`
  `getPaletteDefaults()`
  This method returns a Map of config properties suitable for use as the "defaults" attribute of a `PaletteNode`.
  `Canvas`
  `getPicker()`
  The component that will be displayed when `showPicker()` is called due to a click on the `picker icon`.
  `static FormItemIcon`
  `getPickerIcon(PickerIconName pickerName)`
  Returns a `FormItemIcon` for a standard picker with skin-specific settings.
  `static FormItemIcon`
  `getPickerIcon(PickerIconName pickerName, FormItemIcon properties)`
  Returns a `FormItemIcon` for a standard picker with skin-specific settings.
  `Integer`
  `getPickerIconHeight()`
  If `showPickerIcon` is true for this item, this property governs the size of the picker icon.
  `String`
  `getPickerIconName()`
  If `showPickerIcon` is true, this attribute specifies the `FormItemIcon.name` applied to the picker icon
  `String`
  `getPickerIconPrompt()`
  Prompt to show when the user hovers the mouse over the picker icon.
  `FormItemIcon`
  `getPickerIconProperties()`
  If `showPickerIcon` is true for this item, this block of properties will be applied to the pickerIcon.
  `String`
  `getPickerIconSrc()`
  If `showPickerIcon` is true for this item, this property governs the `src` of the picker icon image to be displayed.
  `String`
  `getPickerIconStyle()`
  Base CSS class name for a form item's picker icon cell.
  `Integer`
  `getPickerIconTabPosition()`
  Returns the desired tab-position of the picker icon with respect to other focusable sub-elements for this formItem.
  `Integer`
  `getPickerIconWidth()`
  If `showPickerIcon` is true for this item, this property governs the size of the picker icon.
  `int`
  `getPixelHeight()`
  Returns the specified `height` of this formItem in pixels.
  `int`
  `getPixelWidth()`
  Returns the specified `width` of this formItem in pixels.
  `String`
  `getPrintReadOnlyTextBoxStyle()`
  CSS class name to apply to the print view of an item's text box if the item is `canEdit:false`, with `readOnlyDisplay:static`.
  `String`
  `getPrintTextBoxStyle()`
  Base CSS class name for a form item's text box element when getting printable HTML for the form.
  `String`
  `getPrintTitleStyle()`
  Base CSS stylename for a form item's title when generating print HTML for the item.
  `String`
  `getPrompt()`
  This text is shown as a tooltip prompt when the cursor hovers over this item.
  `ReadOnlyDisplayAppearance[]`
  `getReadOnlyCanSelectText()`
  For items showing a text value with `canEdit` set to false, should the user be able to select the text in the item?
  `String`
  `getReadOnlyControlStyle()`
  Modified `control style` to apply when this item is `read-only` and is using `readOnlyDisplay` `ReadOnlyDisplayAppearance.STATIC`.
  `ReadOnlyDisplayAppearance`
  `getReadOnlyDisplay()`
  If this item is `read-only`, how should this item be displayed to the user? If set, overrides the form-level `DynamicForm.readOnlyDisplay` default.
  `String`
  `getReadOnlyHover()`
  This text is shown as a tooltip prompt when the cursor hovers over this item and the item is `read-only`.
  `String`
  `getReadOnlyTextBoxStyle()`
  Base text box style to apply when this item is `read-only` and is using `readOnlyDisplay` `ReadOnlyDisplayAppearance.STATIC`.
  `AdvancedCriteria`
  `getReadOnlyWhen()`
  Criteria to be evaluated to determine whether this FormItem should be made `read-only`.
  `Rectangle`
  `getRect()`
  Return the coordinates of this object.
  `Boolean`
  `getRedrawOnChange()`
  If true, this item will cause the entire form to be redrawn when the item's "elementChanged" event is done firing
  `Boolean`
  `getRejectInvalidValueOnChange()`
  If validateOnChange is true, and validation fails for this item on change, with no suggested value, should we revert to the previous value, or continue to display the bad value entered by the user.
  `Boolean`
  `getRequired()`
  Whether a non-empty value is required for this field to pass validation.
  `String`
  `getRequiredMessage()`
  The required message for required field errors.
  `String`
  `getRequiredRightTitlePrefix()`
  The string prepended to this item's title if it is required and the `TitleOrientation` property is set to "right".
  `String`
  `getRequiredRightTitleSuffix()`
  The string appended to this item's title if it is required and the `TitleOrientation` property is set to "right".
  `String`
  `getRequiredTitlePrefix()`
  The string prepended to this item's title if it is required.
  `String`
  `getRequiredTitleSuffix()`
  The string appended to this item's title if it is required.
  `Criteria`
  `getRequiredWhen()`
  Criteria to be evaluated to determine whether this FormItem should be `required`.
  `String`
  `getRightTitlePrefix()`
  The string prepended to this item's title when its titleOrientation is set to "right".
  `String`
  `getRightTitleSuffix()`
  The string appended to this item's title when its titleOrientation is set to "right".
  `int`
  `getRowSpan()`
  Number of rows that this item spans
  `Boolean`
  `getSaveOnEnter()`
  Set this to true to allow the parent form to save it's data when 'Enter' is pressed on this formItem and `saveOnEnter` is true on the parent form.
  `String`
  `getScClassName()`
  Get the name of the underlying SmartClient class
  `ListGridRecord`
  `getSelectedRecord()`
  Get the record returned from the `optionDataSource` when `fetchMissingValues` is true, and the missing value is fetched.
  `Boolean`
  `getSelectOnClick()`
  Allows the `selectOnClick` behavior to be configured on a per-FormItem basis.
  `Boolean`
  `getSelectOnFocus()`
  Allows the `selectOnFocus` behavior to be configured on a per-FormItem basis.
  `Boolean`
  `getShouldSaveValue()`
  Should this item's value be saved in the form's values and hence returned from `form.getValues()`?
  `boolean`
  `getShowClippedTitleOnHover()`
  If true and the title is clipped, then a hover containing the full title of this item is enabled.
  `Boolean`
  `getShowClippedValueOnHover()`
  If true and the value is clipped, then a hover containing the full value of this item is enabled.
  `Boolean`
  `getShowDeletions()`
  For items that support `multiple values`, this causes distinct CSS styling to be applied to values that the user has unselected.
  `Boolean`
  `getShowDisabled()`
  When this item is disabled, should it be re-styled to indicate its disabled state?
  `Boolean`
  `getShowDisabledIconsOnFocus()`
  If `showIconsOnFocus` is true, should icons marked as disabled be shown on focus?
  `Boolean`
  `getShowDisabledPickerIconOnFocus()`
  If `showPickerIconOnFocus` is true, should the picker icon be shown on focus if it is disabled (as in a read-only item, for example?)
  `Boolean`
  `getShowErrorIcon()`
  `showErrorIcons`, `showErrorText`, `errorOrientation`, and `showErrorStyle` control how validation errors are displayed when they are displayed inline in the form (next to the form item where there is a validation error).
  `Boolean`
  `getShowErrorIconInline()`
  When set to true, this attribute renders the `error-icon` `inline` in the FormItem, next to other icons, instead of in a separate error-element outside of the item's main editor.
  `Boolean`
  `getShowErrorStyle()`
  `showErrorIcons`, `showErrorText`, `errorOrientation`, and `showErrorStyle` control how validation errors are displayed when they are displayed inline in the form (next to the form item where there is a validation error).
  `Boolean`
  `getShowErrorText()`
  `showErrorIcons`, `showErrorText`, `errorOrientation`, and `showErrorStyle` control how validation errors are displayed when they are displayed inline in the form (next to the form item where there is a validation error).
  `Boolean`
  `getShowFocused()`
  When this item receives focus, should it be re-styled to indicate it has focus?
  `Boolean`
  `getShowFocusedErrorState()`
  If set to true, when an item has errors and is focused, an "ErrorFocused" suffix will appear on the stylename.
  `Boolean`
  `getShowFocusedIcons()`
  If we're showing icons, should we change their image source to the appropriate focused source when this item has focus? Can be overridden on a per icon basis by the formItemIcon `showFocused` property.
  `Boolean`
  `getShowFocusedPickerIcon()`
  If `showPickerIcon` is true for this item, should the picker icon show a focused image when the form item has focus?
  `Boolean`
  `getShowHint()`
  If a hint is defined for this form item, should it be shown?
  `Boolean`
  `getShowIcons()`
  Set to false to suppress writing out any `icons` for this item.
  `Boolean`
  `getShowIconsOnFocus()`
  Show the `icons` when the item gets focus, and hide them when it loses focus.
  `Boolean`
  `getShowImageAsURL()`
  For fields of `type:"image"`, if the field is non editable, and being displayed with `readOnlyDisplay:"static"`, should the value (URL) be displayed as text, or should an image be rendered?
  `Boolean`
  `getShowOldValueInHover()`
  Causes the original value to be shown to the end user when the user hovers over the FormItem as such (when the `FormItem.itemHover()` event would fire).
  `boolean`
  `getShowOver()`
  When the user rolls over this item, should it be re-styled to indicate it has focus?
  `Boolean`
  `getShowOverIcons()`
  If we're showing icons, should we change their image source to the appropriate over source when the user rolls over (or puts focus onto) them? Can be overridden on a per icon basis by the formItemIcon `showOver` property.
  `Boolean`
  `getShowPending()`
  When set to `true`, this property adds the optional "Pending" suffix to the CSS styles applied to the widget if the current value of the item differs from the value that would be restored by invoking `DynamicForm.resetValues()`.
  `Boolean`
  `getShowPickerIcon()`
  Should we show a special 'picker' `icon` for this form item? Picker icons are customizable via `pickerIconProperties`.
  `Boolean`
  `getShowPickerIconOnFocus()`
  Show the picker icon when the item gets focus, and hide it when it loses focus.
  `boolean`
  `getShowRTL()`
  When this item is in RTL mode, should its style name include an "RTL" suffix?
  `Boolean`
  `getShowTitle()`
  Should we show a title cell for this formItem?
  `Boolean`
  `getShowValueIconOnly()`
  If `valueIcons` is set, this property may be set to show the valueIcon only and prevent the standard form item element or text from displaying
  `Boolean`
  `getShowVoiceAssistIcon()`
  When true, automatically adds an inline VoiceAssist icon to this item's `icons` array.
  `Boolean`
  `getStartRow()`
  Whether this item should always start a new row in the form layout.
  `Integer`
  `getStaticHeight()`
  Height of the FormItem when `canEdit` is false and `readOnlyDisplay` is "static".
  `Boolean`
  `getStopOnError()`
  Indicates that if validation fails, the user should not be allowed to exit the field - focus will be forced back into the field until the error is corrected.
  `Boolean`
  `getStoreDisplayValues()`
  If specified, this overrides the `DynamicForm.storeDisplayValues` property for this field.
  `boolean`
  `getSupportsCutPasteEvents()`
  Does the current formItem support native cut and paste events?
  `Boolean`
  `getSuppressValueIcon()`
  If `valueIcons` is set, this property may be set to prevent the value icons from showing up next to the form items value
  `Boolean`
  `getSynchronousValidation()`
  If enabled, whenever validation is triggered and a request to the server is required, user interactivity will be blocked until the request returns.
  `Integer`
  `getTabIndex()`
  TabIndex for the form item within the form, which controls the order in which controls are visited when the user hits the tab or shift-tab keys to navigate between items.
  `Alignment`
  `getTextAlign()`
  Alignment of the text / content within this form item.
  `String`
  `getTextBoxStyle()`
  Base CSS class name for a form item's text box element.
  `UserSummary`
  `getTextFormula()`
  Formula to be used to calculate the text value of this FormItem.
  `TimeDisplayFormat`
  `getTimeFormatter()`
  Time-format to apply to date type values within this formItem.
  `String`
  `getTitle()`
  User visible title for this form item.
  `Alignment`
  `getTitleAlign()`
  Alignment of this item's title in its cell.
  `int`
  `getTitleColSpan()`
  Number of columns that this item's title spans.
  `TitleOrientation`
  `getTitleOrientation()`
  On which side of this item should the title be placed.
  `String`
  `getTitlePrefix()`
  The string prepended to this item's title.
  `String`
  `getTitleStyle()`
  Base CSS class name for a regular form-item's title.
  `String`
  `getTitleSuffix()`
  The string appended to this item's title.
  `VerticalAlignment`
  `getTitleVAlign()`
  Vertical alignment of this item's title in its cell.
  `String`
  `getTooltip()`
  This text is shown as a tooltip prompt when the cursor hovers over this item.
  `int`
  `getTop()`
  Top coordinate of this item in pixels.
  `String`
  `getType()`
  The DynamicForm picks a field renderer based on the type of the field (and sometimes other attributes of the field).
  `Boolean`
  `getUpdateControlOnOver()`
  If `showOver` is true, setting this property to false will explicitly disable showing the "Over" state for the control table element of this item (if present).
  `Boolean`
  `getUpdatePickerIconOnOver()`
  If `showOver` is true, setting this property to false will explicitly disable showing the "Over" state for the PickerIcon of this item (if present)
  `Boolean`
  `getUpdateTextBoxOnOver()`
  If `showOver` is true, setting this property to false will explicitly disable showing the "Over" state for the TextBox element of this item.
  `Boolean`
  `getUseAdvancedCriteria()`
  Should this form item always produce an `AdvancedCriteria` sub criterion object? When set to true, causes `hasAdvancedCriteria` to return true.
  `Boolean`
  `getUseDisabledHintStyleForReadOnly()`
  By default, `read-only` fields use the same style name as editable fields for in-field hints, unless they are `disabled` or configured to use a disabled `ReadOnlyDisplayAppearance`.
  `Boolean`
  `getUseLocalDisplayFieldValue()`
  If `displayField` is specified for a field, should the display value for the field be picked up from the `record currently being edited`?
  `Boolean`
  `getValidateOnChange()`
  If true, form items will be validated when each item's "change" handler is fired as well as when the entire form is submitted or validated.
  `Boolean`
  `getValidateOnExit()`
  If true, form items will be validated when each item's "editorExit" handler is fired as well as when the entire form is submitted or validated.
  `OperatorId[]`
  `getValidOperators()`
  Array of valid filtering operators (eg "greaterThan") that are legal for this FormItem.
  `VerticalAlignment`
  `getVAlign()`
  Vertical alignment of this item within its cell.
  `Object`
  `getValue()`
  Return the value tracked by this form item.
  `Float`
  `getValueAsFloat()`
  Return the value tracked by this form item as a Float.
  `Integer`
  `getValueAsInteger()`
  Return the value tracked by this form item as an Integer.
  `Long`
  `getValueAsLong()`
  Return the value tracked by this form item as a Long.
  `RecordList`
  `getValueAsRecordList()`
  `String`
  `getValueDeselectedCSSText()`
  Custom CSS text to be applied to values that have been deleted, when `showDeletions` is enabled.
  `String`
  `getValueField()`
  If this form item maps data values to display values by retrieving the `displayField` values from an `optionDataSource`, this property denotes the the field to use as the underlying data value in records from the optionDataSource.
  If not explicitly supplied, the valueField name will be derived as described in `getValueFieldName()`.
  `String`
  `getValueFieldName()`
  Getter method to retrieve the `valueField` for this item.
  `Integer`
  `getValueIconHeight()`
  If `valueIcons` is specified, use this property to specify a height for the value icon written out.
  `int`
  `getValueIconLeftPadding()`
  If we're showing a value icon, this attribute governs the amount of space between the icon and the start edge of the form item cell.
  `int`
  `getValueIconRightPadding()`
  If we're showing a value icon, this attribute governs the amount of space between the icon and the value text.
  `int`
  `getValueIconSize()`
  If `valueIcons` is specified, this property may be used to specify both the width and height of the icon written out.
  `Integer`
  `getValueIconWidth()`
  If `valueIcons` is specified, use this property to specify a width for the value icon written out.
  `Map`
  `getValueMap()`
  In a form, valueMaps are used for FormItem types that allow the user to pick from a limited set of values, such as a `SelectItem`.
  `String[]`
  `getValueMapAsArray()`
  See also `getValueMap()`
  `Boolean`
  `getVisible()`
  Whether this item is currently visible.
  `int`
  `getVisibleHeight()`
  Output the drawn height for this item in pixels.
  `int`
  `getVisibleTitleWidth(Boolean labelOnly)`
  Returns the visible width of this item's title in px.
  `AdvancedCriteria`
  `getVisibleWhen()`
  Criteria to be evaluated to determine whether this FormItem should be visible.
  `int`
  `getVisibleWidth()`
  Output the drawn width for this item in pixels.
  `boolean`
  `getWarnOnEditorTypeConversion()`
  Gets whether a warning will be logged if the Framework replaces this SmartGWT FormItem (that wraps the SmartClient item instance) to more closely match the underlying item's type.
  `static boolean`
  `getWarnOnEditorTypeConversionDefault()`
  Gets whether, by default, a warning will be logged if the Framework replaces a SmartGWT FormItem (that wraps the SmartClient item instance) to more closely match the underlying item's type.
  `int`
  `getWidth()`
  Width of the FormItem.
  `String`
  `getWidthAsString()`
  Width of the FormItem.
  `Boolean`
  `getWrapHintText()`
  If this item is showing a `hint`, should the hint text be allowed to wrap? Setting this property to `false` will render the hint on a single line without wrapping, expanding the width required to render the item if necessary.
  `Boolean`
  `getWrapStaticValue()`
  If this item is `read-only` and is using `readOnlyDisplay` `ReadOnlyDisplayAppearance.STATIC`, should the item value wrap?
  `Boolean`
  `getWrapTitle()`
  If specified determines whether this items title should wrap.
  `void`
  `handleWarnOnEditorTypeConversion(FormItem oldItem, FormItem newItem)`
  `Boolean`
  `hasAdvancedCriteria()`
  Does this form item produce an `AdvancedCriteria` sub criterion object? If this method returns true, `DynamicForm.getValuesAsCriteria()` on the form containing this item will always return an `AdvancedCriteria` object, calling `FormItemCriterionGetter.getCriterion()` on each item to retrieve the individual criteria.
  `boolean`
  `hasErrors()`
  Return whether this item currently has any validation errors as a result of a previous validation pass.
  `void`
  `hide()`
  Hide this form item.
  `void`
  `hideIcon(String icon)`
  This method will hide some icon in this item's `icons` array, if it is currently visible.
  `void`
  `invalidateDisplayValueCache()`
  If this item has a specified `displayField`, the value displayed to the user for this item may be derived from another field.
  `static boolean`
  `isAssignableFrom(Class<?> scClass)`
  Whether the supplied class is a subclass of `com.smartgwt.client.form.fields.FormItem`.
  `boolean`
  `isConfigOnly()`
  `final boolean`
  `isCreated()`
  `boolean`
  `isCutEvent()`
  Is the user performing a native "cut" event to modify the value of a freeform text field? This method may be invoked during change notification flow methods including `FormItem.change()`, `FormItem.changed()` and `FormItem.transformInput()`.
  `Boolean`
  `isDisabled()`
  Is this item disabled?
  `Boolean`
  `isDrawn()`
  Returns true if this item has been written out into the DOM.
  `Boolean`
  `isFocused()`
  Returns true if this formItem has the keyboard focus.
  `Boolean`
  `isInGrid()`
  Returns true if this item's `containerWidget` is a `GridRenderer` or GridRenderer subclass
  `boolean`
  `isPasteEvent()`
  Is the user performing a native "paste" event to modify the value of a freeform text field? This method may be invoked during change notification flow methods including `FormItem.change()`, `FormItem.changed()` and `FormItem.transformInput()`.
  `Boolean`
  `isVisible()`
  Return true if the form item is currently visible.
  `void`
  `linkToInstanceUponCreate()`
  `Object`
  `mapDisplayToValue(String value)`
  Given a display value for this FormItem, return the underlying data value.
  `String`
  `mapValueToDisplay(JavaScriptObject value)`
  `String`
  `mapValueToDisplay(Object value)`
  `String`
  `mapValueToDisplay(Map value)`
  Given a value for this FormItem, return the value to be displayed.
  `void`
  `redraw()`
  Redraw this form item.
  `void`
  `redraw(String reason)`
  Redraw this form item.
  `boolean`
  `removeIcon(String icon)`
  Given an icon's `name`, remove it from this item.
  `void`
  `selectedRecordChanged(ListGridRecord record)`
  Notification method fired for `data bound items` with `fetchMissingValues` enabled when the `selected record` is updated as a result of the value changing or a fetch for a new record completing.
  Note that a formItem with an optionDataSource may avoid fetching an associated record altogether in some cases.
  `FormItem`
  `setAccessKey(String accessKey)`
  If specified this governs the HTML accessKey for the item.
  `FormItem`
  `setAlign(Alignment align)`
  Alignment of this item in its cell.
  `FormItem`
  `setAllowExpressions(Boolean allowExpressions)`
  For a form that produces filter criteria (see `form.getValuesAsCriteria()`), allows the user to type in simple expressions to cause filtering with that operator.
  `FormItem`
  `setAlwaysFetchMissingValues(Boolean alwaysFetchMissingValues)`
  If this form item has a specified `optionDataSource` and `fetchMissingValues` is true, when the item value changes, a fetch will be performed against the optionDataSource to retrieve the related record if `displayField` is specified and the new item value is not present in any valueMap explicitly specified on the item.
  `FormItem`
  `setAlwaysShowControlBox(Boolean alwaysShowControlBox)`
  A formItem showing a `pickerIcon` will always write out a "control box" around the text box and picker icon.
  `FormItem`
  `setApplyAlignToText(boolean applyAlignToText)`
  If the `textAlign` is unset, should the `align` setting, if set, be used for this item's `textAlign`?
  `FormItem`
  `setApplyHeightToTextBox(Boolean applyHeightToTextBox)`
  If `height` is specified, should it be applied to the item's text box element?
  `FormItem`
  `setAriaRole(String ariaRole)`
  ARIA role of this formItem.
  `void`
  `setAriaState(String stateName, Object stateValue)`
  Set a specific ARIA state mapping for this form item.
  `FormItem`
  `setAttribute(String attribute, boolean value)`
  Set attribute value to a boolean.
  `FormItem`
  `setAttribute(String attribute, double value)`
  Set attribute value to a double.
  `FormItem`
  `setAttribute(String attribute, double[] value)`
  Set attribute value to a double array.
  `FormItem`
  `setAttribute(String attribute, int value)`
  Set attribute value to an int.
  `FormItem`
  `setAttribute(String attribute, int[] value)`
  Set attribute value to an int array.
  `FormItem`
  `setAttribute(String attribute, long value)`
  Set attribute value to a long.
  `FormItem`
  `setAttribute(String attribute, JavaScriptObject value)`
  Set attribute value to a JavaScriptObject.
  `FormItem`
  `setAttribute(String attribute, BaseClass value)`
  Set attribute value to a BaseClass.
  `FormItem`
  `setAttribute(String attribute, BaseClass[] value)`
  Set attribute value to a BaseClass array.
  `FormItem`
  `setAttribute(String attribute, DataClass value)`
  Set attribute value to a DataClass.
  `FormItem`
  `setAttribute(String attribute, DataClass[] value)`
  Set attribute value to a DataClass array.
  `FormItem`
  `setAttribute(String attribute, ValueEnum[] value)`
  Set attribute value to a ValueEnum array.
  `FormItem`
  `setAttribute(String attribute, Boolean value)`
  Set attribute value to a Boolean.
  `FormItem`
  `setAttribute(String attribute, Double value)`
  Set attribute value to a Double.
  `FormItem`
  `setAttribute(String attribute, Float value)`
  Set attribute value to a Float.
  `FormItem`
  `setAttribute(String attribute, Integer value)`
  Set attribute value to an Integer.
  `FormItem`
  `setAttribute(String attribute, Integer[] value)`
  Set attribute value to an Integer array.
  `FormItem`
  `setAttribute(String attribute, String value)`
  Set attribute value to a String
  `FormItem`
  `setAttribute(String attribute, String[] value)`
  Set attribute value to a String array.
  `FormItem`
  `setAttribute(String attribute, Date value)`
  Set attribute value to a Date.
  `FormItem`
  `setAttribute(String attribute, Map value)`
  Set attribute value to a Map.
  `void`
  `setAutoChildConstructor(String autoChildName, String className)`
  Sets the SmartClient constructor for the AutoChild named `autoChildName`.
  `void`
  `setAutoChildProperties(String autoChildName, EditProxy properties)`
  Sets the properties for creating an AutoChild named `autoChildName`.
  `void`
  `setAutoChildProperties(String autoChildName, Canvas properties)`
  Sets the properties for creating a `Canvas` AutoChild named `autoChildName`.
  `void`
  `setAutoChildProperties(String autoChildName, FormItem properties)`
  Sets the properties for creating a `FormItem` AutoChild named `autoChildName`.
  `void`
  `setAutoChildVisibility(String autoChildName, boolean visible)`
  Sets whether to create and show the AutoChild named `autoChildName`.
  `FormItem`
  `setAutoComplete(AutoComplete autoComplete)`
  Should this item allow browser auto-completion of its value? Applies only to items based on native HTML form elements (`TextItem`, `PasswordItem`, etc), and will only have a user-visible impact for browsers where native autoComplete behavior is actually supported and enabled via user settings.
  `FormItem`
  `setAutoCompleteKeywords(String... autoCompleteKeywords)`
  Set of autocompletion keywords to be used with the native "autocomplete" attribute, in accordance with the HTML5 Autofill specification.
  `FormItem`
  `setBrowserInputType(String browserInputType)`
  Form item input type - governs which keyboard should be displayed for mobile devices (supported on iPhone / iPad)
  `FormItem`
  `setBrowserSpellCheck(Boolean browserSpellCheck)`
  If this browser supports spell-checking of text editing elements, do we want this enabled for this item? If unset the property will be inherited from the containing form.
  `FormItem`
  `setCanEdit(Boolean canEdit)`
  Is this form item editable (canEdit:true) or read-only (canEdit:false)? Setting the form item to non-editable causes it to render as read-only.
  `void`
  `setCanEditCriterionPredicate(FormItemCanEditCriterionPredicate predicate)`
  When a dynamic form is editing an advanced criteria object via `DynamicForm.setValuesAsCriteria`, this predicate is used to determine which sub-criteria apply to which form item(s).
  `FormItem`
  `setCanEditOpaqueValues(Boolean canEditOpaqueValues)`
  If true, indicates that this FormItem is capable of editing "opaque" values, ie, objects that are more complex than simple primitive types like numbers, strings and dates.
  `FormItem`
  `setCanFocus(Boolean canFocus)`
  Is this form item focusable? Setting this property to true on an otherwise non-focusable element such as a `StaticTextItem` will cause the item to be included in the page's tab order and respond to keyboard events.
  `FormItem`
  `setCanHover(Boolean canHover)`
  Indicates whether hovers can be shown for this item.
  `FormItem`
  `setCanSelectText(boolean canSelectText)`
  For items showing a text value, should the user be able to select the text in this item?
  `FormItem`
  `setCanTabToIcons(Boolean canTabToIcons)`
  Should this item's `icons` and `picker icon` be included in the page's tab order by default? If not explicitly set, this property will be derived from `DynamicForm.canTabToIcons`.
  `FormItem`
  `setCellHeight(Integer cellHeight)`
  If specified, this property will govern the height of the cell in which this form item is rendered.
  `FormItem`
  `setCellStyle(String cellStyle)`
  CSS style applied to the form item as a whole, including the text element, any icons, and any hint text for the item.
  `FormItem`
  `setChangeOnKeypress(Boolean changeOnKeypress)`
  Should this form item fire its `change` handler (and store its value in the form) on every keypress? Set to `false` to suppress the 'change' handler firing (and the value stored) on every keypress.
  `FormItem`
  `setClipStaticValue(Boolean clipStaticValue)`
  If this item is `read-only` and is using `readOnlyDisplay` `ReadOnlyDisplayAppearance.STATIC`, should the item value be clipped if it overflows the specified size of the item? If set, overrides the form-level `DynamicForm.clipStaticValue` default.
  `FormItem`
  `setClipTitle(Boolean clipTitle)`
  If the title for this form item is showing, and is too large for the available space should the title be clipped?
  `FormItem`
  `setColSpan(int colSpan)`
  Number of columns that this item spans.
  `FormItem`
  `setColSpan(String colSpan)`
  Number of columns that this item spans.
  `void`
  `setConfigOnly(boolean configOnly)`
  `FormItem`
  `setControlStyle(String controlStyle)`
  Base CSS class name for a form item's "control box".
  `FormItem`
  `setCriteriaField(String criteriaField)`
  When using `operator`, the name of the DataSource field for the `Criterion` this FormItem generates.
  `final void`
  `setCriterion(Criterion criterion)`
  Calls the `setCriterion()` method of the `FormItemCriterionSetter` that is registered with this field.
  `void`
  `setCriterionGetter(FormItemCriterionGetter getter)`
  Provides a specialized criterion from this formItem when creating an AdvancedCriteria via `DynamicForm.getValuesAsCriteria`.
  `void`
  `setCriterionSetter(FormItemCriterionSetter setter)`
  Set the method to update this form item to reflect a criterion object from within an AdvancedCriteria.
  `void`
  `setCustomStateGetter(FormItem.CustomStateGetter getter)`
  Deprecated.
  Do not use CustomStateGetter; use `com.smartgwt.client.widgets.form.fields.FormItem.setStateCustomizer` instead
  `FormItem`
  `setDataPath(String dataPath)`
  dataPath for this item.
  `FormItem`
  `setDateFormatter(DateDisplayFormat dateFormatter)`
  Display format to use for date type values within this formItem.
  `FormItem`
  `setDecimalPad(Integer decimalPad)`
  Applies only to fields of type "float" and enforces a minimum number of digits shown after the decimal point.
  `FormItem`
  `setDecimalPrecision(Integer decimalPrecision)`
  Applies only to fields of type "float" and affects how many significant digits are shown.
  `FormItem`
  `setDefaultIconSrc(String defaultIconSrc)`
  Default icon image source.
  `FormItem`
  `setDefaultOperator(OperatorId defaultOperator)`
  The default search-operator for this item when it or its form allow `filter-expressions`.
  `static void`
  `setDefaultProperties(FormItem formItemProperties)`
  Class level method to set the default properties of this class.
  `FormItem`
  `setDefaultValue(Boolean defaultValue)`
  Value used when no value is provided for this item.
  `FormItem`
  `setDefaultValue(Double defaultValue)`
  Value used when no value is provided for this item.
  `FormItem`
  `setDefaultValue(Float defaultValue)`
  Value used when no value is provided for this item.
  `FormItem`
  `setDefaultValue(Integer defaultValue)`
  Value used when no value is provided for this item.
  `void`
  `setDefaultValue(Object value)`
  `FormItem`
  `setDefaultValue(String defaultValue)`
  Value used when no value is provided for this item.
  `FormItem`
  `setDefaultValue(Date defaultValue)`
  Value used when no value is provided for this item.
  `FormItem`
  `setDisabled(Boolean disabled)`
  Whether this item is disabled.
  `FormItem`
  `setDisabledHover(String disabledHover)`
  This text is shown as a tooltip prompt when the cursor hovers over this item and the item is `disabled` or `read-only` with `readOnlyDisplay:disabled`.
  `FormItem`
  `setDisableIconsOnReadOnly(Boolean disableIconsOnReadOnly)`
  If `canEdit` is set to false, should `icons` be disabled by default?
  `FormItem`
  `setDisplayField(String displayField)`
  If set, this item will display a value from another field to the user instead of showing the underlying data value for the `field name`.
  `FormItem`
  `setDisplayFormat(DateDisplayFormat displayFormat)`
  Fields of type `"date"` or `"time"` will be edited using a `DateItem` or `TimeItem` by default.
  `void`
  `setDisplayFormat(TimeFormatter displayFormat)`
  Fields of type `"date"` or `"time"` will be edited using a `DateItem` or `TimeItem` by default.
  `void`
  `setEditorProperties(FormItem editorProperties)`
  Set the default `FormItem` properties to be used whenever this field is edited.
  `void`
  `setEditorType(FormItem editorType)`
  Deprecated.
  Renamed to `setEditorProperties(FormItem)`.
  `void`
  `setEditorType(Class<? extends FormItem> editorType)`
  Set the FormItem subclass to use when editing.
  `void`
  `setEditorType(String editorType)`
  Set the FormItem subclass to use when editing.
  `void`
  `setEditorValueFormatter(FormItemValueFormatter formatter)`
  An optional `FormItemValueFormatter` to map this item's current data value to a display value.
  `void`
  `setEditorValueParser(FormItemValueParser valueParser)`
  An optional `FormItemValueParser` to map a user-entered display value to a data value for storage.
  `FormItem`
  `setEditPendingCSSText(String editPendingCSSText)`
  Custom CSS text to be applied to cells with pending edits that have not yet been submitted.
  `FormItem`
  `setEditProxyConstructor(String editProxyConstructor)`
  Default class used to construct the `EditProxy` for this component when the component is `first placed into edit mode`.
  `FormItem`
  `setEmptyDisplayValue(String emptyDisplayValue)`
  Text to display when this form item has a null or undefined value.
  `FormItem`
  `setEmptyValueIcon(String emptyValueIcon)`
  This property allows the developer to specify an icon to display when this item has no value.
  `FormItem`
  `setEndRow(Boolean endRow)`
  Whether this item should end the row it's in in the form layout
  `void`
  `setErrorFormatter(FormItemErrorFormatter errorFormatter)`
  Register a custom error formatter for this FormItem.
  `FormItem`
  `setErrorIconHeight(int errorIconHeight)`
  Height of the error icon, if we're showing icons when validation errors occur.
  `FormItem`
  `setErrorIconProperties(FormItemIcon errorIconProperties)`
  `Icon-properties` to apply to the `error-icon` when `showErrorIconInline` is true.
  `FormItem`
  `setErrorIconSrc(String errorIconSrc)`
  URL of the image to show as an error icon, if we're showing icons when validation errors occur.
  `FormItem`
  `setErrorIconWidth(int errorIconWidth)`
  Height of the error icon, if we're showing icons when validation errors occur.
  `FormItem`
  `setErrorMessageWidth(int errorMessageWidth)`
  When `DynamicForm.showInlineErrors` and `showErrorText` are both true and `errorOrientation` is "left" or "right", errorMessageWidth is the amount to reduce the width of the editor to accommodate the error message and icon.
  `void`
  `setErrorOrientation(FormErrorOrientation errorOrientation)`
  If `showInlineErrors` is true, where should the error icon and text appear relative to the form item itself.
  `void`
  `setErrors(String error)`
  Sets a validation error message for this field.
  `void`
  `setErrors(String[] errors)`
  Sets multiple validation error messages for this field.
  `FormItem`
  `setEscapeHTML(Boolean escapeHTML)`
  Controls whether HTML item value(s) should be rendered or shown as HTML source.
  `FormItem`
  `setExportFormat(String exportFormat)`
  `FormatString` used during exports for numeric or date formatting.
  `FormItem`
  `setExtraControlTableCSS(String extraControlTableCSS)`
  Additional CSS-text that overrides the item's `controlStyle`, applying arbitrary custom styling to the outer control-table that contains both textBox and icons.
  `FormItem`
  `setExtraTextBoxCSS(String extraTextBoxCSS)`
  Additional CSS-text that overrides the item's `textBoxStyle`, applying arbitrary custom styling to the textBox.
  `FormItem`
  `setFetchMissingValues(Boolean fetchMissingValues)`
  If this form item has a specified `optionDataSource`, should the item ever perform a fetch against this dataSource to retrieve the related record.
  `FormItem`
  `setFilterLocally(Boolean filterLocally)`
  If this form item is mapping data values to a display value by fetching records from a dataSource (see `optionDataSource`, `displayField` and `fetchMissingValues`), setting this property to true ensures that when the form item value is set, entire data-set from the dataSource is loaded at once and used as a valueMap, rather than just loading the display value for the current value.
  `FormItem`
  `setForeignDisplayField(String foreignDisplayField)`
  For items with an `optionDataSource`, this property specifies an explicit display field for records within the option dataSource.
  `FormItem`
  `setFormat(String format)`
  `FormatString` for numeric or date formatting.
  `FormItem`
  `setFormula(UserFormula formula)`
  Formula to be used to calculate the numeric value of this FormItem.
  `FormItem`
  `setGlobalTabIndex(Integer globalTabIndex)`
  TabIndex for the form item within the page.
  `FormItem`
  `setHeight(int height)`
  Height of the FormItem.
  `FormItem`
  `setHeight(String height)`
  Height of the FormItem.
  `FormItem`
  `setHidden(Boolean hidden)`
  Should this form item be hidden? Setting this property to `true` on an item configuration will have the same effect as having a `showIf()` implementation which returns `false`.
  `FormItem`
  `setHint(String hint)`
  Specifies "hint" string to show next to the form item to indicate something to the user.
  `FormItem`
  `setHintStyle(String hintStyle)`
  CSS class for the "hint" string.
  `FormItem`
  `setHoverAlign(Alignment hoverAlign)`
  Text alignment for text displayed in this item's hover canvas, if shown.
  `FormItem`
  `setHoverDelay(Integer hoverDelay)`
  If specified, this is the number of milliseconds to wait between the user rolling over this form item, and triggering any hover action for it.
  If not specified `this.form.itemHoverDelay` will be used instead.
  `FormItem`
  `setHoverFocusKey(String hoverFocusKey)`
  This attribute gives users a way to pin this item's hover in place so they can interact with it (scroll it, click embedded links, etc).
  `FormItem`
  `setHoverHeight(Integer hoverHeight)`
  Option to specify a height for any hover shown for this item.
  `FormItem`
  `setHoverHeight(String hoverHeight)`
  Option to specify a height for any hover shown for this item.
  `FormItem`
  `setHoverOpacity(Integer hoverOpacity)`
  Opacity for any hover shown for this item
  `FormItem`
  `setHoverPersist(HoverPersistMode hoverPersist)`
  Allows interaction with hovers when the cursor is positioned over them.
  `FormItem`
  `setHoverStyle(String hoverStyle)`
  Explicit CSS Style for any hover shown for this item.
  `FormItem`
  `setHoverVAlign(VerticalAlignment hoverVAlign)`
  Vertical text alignment for text displayed in this item's hover canvas, if shown.
  `FormItem`
  `setHoverWidth(Integer hoverWidth)`
  Option to specify a width for any hover shown for this item.
  `FormItem`
  `setHoverWidth(String hoverWidth)`
  Option to specify a width for any hover shown for this item.
  `FormItem`
  `setIconBaseStyle(String iconBaseStyle)`
  Fallback base CSS class to apply to this item's `icons` if they don't specify a `baseStyle` or provide a sprite-based `src string` that specifies a `cssClass`.
  `void`
  `setIconDisabled(String icon, boolean disabled)`
  Set an icon as enabled or disabled at runtime.
  `FormItem`
  `setIconHeight(int iconHeight)`
  Default height for form item icons.
  `FormItem`
  `setIconHSpace(int iconHSpace)`
  Horizontal space (in px) to leave between form item icons.
  `FormItem`
  `setIconPrompt(String iconPrompt)`
  Default prompt (and tooltip-text) for icons.
  `FormItem`
  `setIcons(FormItemIcon... icons)`
  An array of descriptor objects for icons to display in a line after this form item.
  `void`
  `setIconShowOnFocus(String icon, Boolean showOnFocus)`
  Sets `FormItemIcon.showOnFocus` for the supplied icon, and causes that icon's visibility to be updated and the item redrawn as appropriate.
  `FormItem`
  `setIconVAlign(VerticalAlignment iconVAlign)`
  How should icons be aligned vertically for this form item.
  `FormItem`
  `setIconWidth(int iconWidth)`
  Default width for form item icons.
  `FormItem`
  `setID(String ID)`
  Global identifier for referring to the formItem in JavaScript.
  `FormItem`
  `setImageURLPrefix(String imageURLPrefix)`
  Prefix to apply to the beginning of any `valueIcons` when determining the URL for the image.
  `FormItem`
  `setImageURLSuffix(String imageURLSuffix)`
  Suffix to apply to the end of any `valueIcons` when determining the URL for the image.
  `FormItem`
  `setImplicitSave(Boolean implicitSave)`
  When true, indicates that changes to this item will cause an automatic save on a `delay`, as well as when the entire form is submitted.
  `FormItem`
  `setImplicitSaveOnBlur(Boolean implicitSaveOnBlur)`
  If set to true, this item's value will be saved immediately when its "editorExit" handler is fired.
  `void`
  `setInitHandler(FormItemInitHandler initHandler)`
  Specify a notification method to fire when this formItem is initialized in JavaScript.
  `FormItem`
  `setInputFormat(String inputFormat)`
  For fields of type `"date"`, if this is an editable field such as a `TextItem`, this property allows you to specify the `inputFormat` applied to the item.
  `void`
  `setInputTransformer(FormItemInputTransformer inputTransformer)`
  The transformer is called when a FormItem's value is about to change as the result of user interaction.
  `void`
  `setItemHoverFormatter(FormItemHoverFormatter hoverFormatter)`
  The FormItemHoverFormatter should return the HTML to display in a hover canvas when the user holds the mousepointer over this item.
  `void`
  `setItemTitleHoverFormatter(FormItemHoverFormatter hoverFormatter)`
  The `FormItemHoverFormatter` should return the HTML to display in a hover canvas when the user holds the mouse pointer over this item's title and the title is clipped.
  `void`
  `setItemValueHoverFormatter(FormItemHoverFormatter hoverFormatter)`
  The `FormItemHoverFormatter` should return the HTML to display in a hover canvas when the user holds the mouse pointer over this item's value and the value is clipped.
  `final void`
  `setJavaScriptObject(JavaScriptObject jsObj)`
  `FormItem`
  `setLeft(int left)`
  Left coordinate of this item in pixels.
  `FormItem`
  `setLinearColSpan(int linearColSpan)`
  Specifies a column span for an item in `linearMode`, overriding the default value of "*" in that mode.
  `FormItem`
  `setLinearColSpan(String linearColSpan)`
  Specifies a column span for an item in `linearMode`, overriding the default value of "*" in that mode.
  `FormItem`
  `setLinearEndRow(int linearEndRow)`
  Specifies `endRow` for an item in `linearMode`, overriding the default of `true` in that mode.
  `FormItem`
  `setLinearEndRow(String linearEndRow)`
  Specifies `endRow` for an item in `linearMode`, overriding the default of `true` in that mode.
  `FormItem`
  `setLinearStartRow(int linearStartRow)`
  Specifies `startRow` for an item in `linearMode`, overriding the default of `false` in that mode.
  `FormItem`
  `setLinearStartRow(String linearStartRow)`
  Specifies `startRow` for an item in `linearMode`, overriding the default of `false` in that mode.
  `FormItem`
  `setLinearWidth(int linearWidth)`
  Specifies a width for an item in `linearMode`, overriding the default width of "*" in that mode.
  `FormItem`
  `setLinearWidth(String linearWidth)`
  Specifies a width for an item in `linearMode`, overriding the default width of "*" in that mode.
  `FormItem`
  `setLoadingDisplayValue(String loadingDisplayValue)`
  Value shown in field when `fetchMissingValues` is active and a fetch is pending.
  `FormItem`
  `setLocateItemBy(String locateItemBy)`
  When `AutoTest.getElement()` is used to parse locator strings generated by `AutoTest.getLocator()` for this form item, should the item be identified? If the locator has a specified `name`, it is considered to definitely locate the item and no fallback approach will be used.
  `FormItem`
  `setMinHintWidth(Integer minHintWidth)`
  If this item is showing a `hint`, this setting specifies how much horizontal space is made available for rendering the hint text by default.
  `FormItem`
  `setMultiple(Boolean multiple)`
  If true, multiple values may be selected.
  `FormItem`
  `setMultipleValueSeparator(String multipleValueSeparator)`
  If this item is displaying multiple values, this property will be the string that separates those values for display purposes.
  `FormItem`
  `setName(String name)`
  Name for this form field.
  `FormItem`
  `setNullOriginalValueText(String nullOriginalValueText)`
  Text shown as the value in the `originalValueMessage` when `showOldValueInHover` is enabled, and when the value has been modified but was originally unset.
  `void`
  `setNullProperty(String property)`
  `FormItem`
  `setOperator(OperatorId operator)`
  `OperatorId` to be used when `DynamicForm.getValuesAsCriteria()` is called.
  `void`
  `setOptionCriteria(Criteria optionCriteria)`
  If this item has a specified `optionDataSource`, and this property may be used&#010 to specify criteria to pass to the datasource when&#010 performing the fetch operation on the dataSource to obtain a data-value to display-value&#010 mapping
  `FormItem`
  `setOptionDataSource(DataSource optionDataSource)`
  If set, this FormItem will map stored values to display values as though a `com.smartgwt.client.types.ValueMap` were specified, by fetching records from the specified `optionDataSource` and extracting the `valueField` and `displayField` in loaded records, to derive one valueMap entry per record loaded from the optionDataSource.
  `FormItem`
  `setOptionDataSource(String optionDataSource)`
  If set, this FormItem will map stored values to display values as though a `com.smartgwt.client.types.ValueMap` were specified, by fetching records from the specified `optionDataSource` and extracting the `valueField` and `displayField` in loaded records, to derive one valueMap entry per record loaded from the optionDataSource.
  `void`
  `setOptionFilterContext(RPCRequest rpcRequestProperties)`
  If this item has a specified `optionDataSource`, and this property is&#010 not null, this will be passed to the datasource as `RPCRequest` properties when&#010 performing the fetch operation on the dataSource to obtain a data-value to display-value&#010 mapping
  `FormItem`
  `setOptionOperationId(String optionOperationId)`
  If this item has a specified `optionDataSource`, this attribute may be set to specify an explicit `DSRequest.operationId` when performing a fetch against the option dataSource to pick up display value mapping.
  `FormItem`
  `setOptionTextMatchStyle(TextMatchStyle optionTextMatchStyle)`
  If this item has a specified `optionDataSource`, this property determines the textMatchStyle to use when interpretating any `optionCriteria` during the fetch to map valueField values to displayField values.
  `FormItem`
  `setOriginalValueMessage(String originalValueMessage)`
  Message shown when `showOldValueInHover` is enabled and the value has been modified.
  `FormItem`
  `setPickerIconHeight(Integer pickerIconHeight)`
  If `showPickerIcon` is true for this item, this property governs the size of the picker icon.
  `FormItem`
  `setPickerIconName(String pickerIconName)`
  If `showPickerIcon` is true, this attribute specifies the `FormItemIcon.name` applied to the picker icon
  `FormItem`
  `setPickerIconPrompt(String pickerIconPrompt)`
  Prompt to show when the user hovers the mouse over the picker icon.
  `FormItem`
  `setPickerIconProperties(FormItemIcon pickerIconProperties)`
  If `showPickerIcon` is true for this item, this block of properties will be applied to the pickerIcon.
  `FormItem`
  `setPickerIconSrc(String pickerIconSrc)`
  If `showPickerIcon` is true for this item, this property governs the `src` of the picker icon image to be displayed.
  `FormItem`
  `setPickerIconStyle(String pickerIconStyle)`
  Base CSS class name for a form item's picker icon cell.
  `FormItem`
  `setPickerIconWidth(Integer pickerIconWidth)`
  If `showPickerIcon` is true for this item, this property governs the size of the picker icon.
  `FormItem`
  `setPrintReadOnlyTextBoxStyle(String printReadOnlyTextBoxStyle)`
  CSS class name to apply to the print view of an item's text box if the item is `canEdit:false`, with `readOnlyDisplay:static`.
  `FormItem`
  `setPrintTextBoxStyle(String printTextBoxStyle)`
  Base CSS class name for a form item's text box element when getting printable HTML for the form.
  `FormItem`
  `setPrintTitleStyle(String printTitleStyle)`
  Base CSS stylename for a form item's title when generating print HTML for the item.
  `FormItem`
  `setPrompt(String prompt)`
  This text is shown as a tooltip prompt when the cursor hovers over this item.
  `void`
  `setProperty(String property, boolean value)`
  `void`
  `setProperty(String property, double value)`
  `void`
  `setProperty(String property, int value)`
  `void`
  `setProperty(String property, JavaScriptObject value)`
  `void`
  `setProperty(String property, String value)`
  `FormItem`
  `setReadOnlyCanSelectText(ReadOnlyDisplayAppearance... readOnlyCanSelectText)`
  For items showing a text value with `canEdit` set to false, should the user be able to select the text in the item?
  `FormItem`
  `setReadOnlyControlStyle(String readOnlyControlStyle)`
  Modified `control style` to apply when this item is `read-only` and is using `readOnlyDisplay` `ReadOnlyDisplayAppearance.STATIC`.
  `FormItem`
  `setReadOnlyDisplay(ReadOnlyDisplayAppearance readOnlyDisplay)`
  If this item is `read-only`, how should this item be displayed to the user? If set, overrides the form-level `DynamicForm.readOnlyDisplay` default.
  `FormItem`
  `setReadOnlyHover(String readOnlyHover)`
  This text is shown as a tooltip prompt when the cursor hovers over this item and the item is `read-only`.
  `FormItem`
  `setReadOnlyTextBoxStyle(String readOnlyTextBoxStyle)`
  Base text box style to apply when this item is `read-only` and is using `readOnlyDisplay` `ReadOnlyDisplayAppearance.STATIC`.
  `FormItem`
  `setReadOnlyWhen(AdvancedCriteria readOnlyWhen)`
  Criteria to be evaluated to determine whether this FormItem should be made `read-only`.
  `FormItem`
  `setRedrawOnChange(Boolean redrawOnChange)`
  If true, this item will cause the entire form to be redrawn when the item's "elementChanged" event is done firing
  `FormItem`
  `setRejectInvalidValueOnChange(Boolean rejectInvalidValueOnChange)`
  If validateOnChange is true, and validation fails for this item on change, with no suggested value, should we revert to the previous value, or continue to display the bad value entered by the user.
  `FormItem`
  `setRequired(Boolean required)`
  Whether a non-empty value is required for this field to pass validation.
  `FormItem`
  `setRequiredMessage(String requiredMessage)`
  The required message for required field errors.
  `FormItem`
  `setRequiredRightTitlePrefix(String requiredRightTitlePrefix)`
  The string prepended to this item's title if it is required and the `TitleOrientation` property is set to "right".
  `FormItem`
  `setRequiredRightTitleSuffix(String requiredRightTitleSuffix)`
  The string appended to this item's title if it is required and the `TitleOrientation` property is set to "right".
  `FormItem`
  `setRequiredTitlePrefix(String requiredTitlePrefix)`
  The string prepended to this item's title if it is required.
  `FormItem`
  `setRequiredTitleSuffix(String requiredTitleSuffix)`
  The string appended to this item's title if it is required.
  `FormItem`
  `setRequiredWhen(Criteria requiredWhen)`
  Criteria to be evaluated to determine whether this FormItem should be `required`.
  `FormItem`
  `setRightTitlePrefix(String rightTitlePrefix)`
  The string prepended to this item's title when its titleOrientation is set to "right".
  `FormItem`
  `setRightTitleSuffix(String rightTitleSuffix)`
  The string appended to this item's title when its titleOrientation is set to "right".
  `FormItem`
  `setRowSpan(int rowSpan)`
  Number of rows that this item spans
  `FormItem`
  `setSaveOnEnter(Boolean saveOnEnter)`
  Set this to true to allow the parent form to save it's data when 'Enter' is pressed on this formItem and `saveOnEnter` is true on the parent form.
  `void`
  `setScClassName(String scClassName)`
  Set the name of the underlying SmartClient class.
  `FormItem`
  `setSelectOnClick(Boolean selectOnClick)`
  Allows the `selectOnClick` behavior to be configured on a per-FormItem basis.
  `FormItem`
  `setSelectOnFocus(Boolean selectOnFocus)`
  Allows the `selectOnFocus` behavior to be configured on a per-FormItem basis.
  `FormItem`
  `setShouldSaveValue(Boolean shouldSaveValue)`
  Should this item's value be saved in the form's values and hence returned from `form.getValues()`?
  `FormItem`
  `setShowClippedTitleOnHover(boolean showClippedTitleOnHover)`
  If true and the title is clipped, then a hover containing the full title of this item is enabled.
  `FormItem`
  `setShowClippedValueOnHover(Boolean showClippedValueOnHover)`
  If true and the value is clipped, then a hover containing the full value of this item is enabled.
  `FormItem`
  `setShowDeletions(Boolean showDeletions)`
  For items that support `multiple values`, this causes distinct CSS styling to be applied to values that the user has unselected.
  `FormItem`
  `setShowDisabled(Boolean showDisabled)`
  When this item is disabled, should it be re-styled to indicate its disabled state?
  `FormItem`
  `setShowDisabledIconsOnFocus(Boolean showDisabledIconsOnFocus)`
  If `showIconsOnFocus` is true, should icons marked as disabled be shown on focus?
  `FormItem`
  `setShowDisabledPickerIconOnFocus(Boolean showDisabledPickerIconOnFocus)`
  If `showPickerIconOnFocus` is true, should the picker icon be shown on focus if it is disabled (as in a read-only item, for example?)
  `FormItem`
  `setShowErrorIcon(Boolean showErrorIcon)`
  `showErrorIcons`, `showErrorText`, `errorOrientation`, and `showErrorStyle` control how validation errors are displayed when they are displayed inline in the form (next to the form item where there is a validation error).
  `FormItem`
  `setShowErrorIconInline(Boolean showErrorIconInline)`
  When set to true, this attribute renders the `error-icon` `inline` in the FormItem, next to other icons, instead of in a separate error-element outside of the item's main editor.
  `FormItem`
  `setShowErrorStyle(Boolean showErrorStyle)`
  `showErrorIcons`, `showErrorText`, `errorOrientation`, and `showErrorStyle` control how validation errors are displayed when they are displayed inline in the form (next to the form item where there is a validation error).
  `FormItem`
  `setShowErrorText(Boolean showErrorText)`
  `showErrorIcons`, `showErrorText`, `errorOrientation`, and `showErrorStyle` control how validation errors are displayed when they are displayed inline in the form (next to the form item where there is a validation error).
  `FormItem`
  `setShowFocused(Boolean showFocused)`
  When this item receives focus, should it be re-styled to indicate it has focus?
  `FormItem`
  `setShowFocusedErrorState(Boolean showFocusedErrorState)`
  If set to true, when an item has errors and is focused, an "ErrorFocused" suffix will appear on the stylename.
  `FormItem`
  `setShowFocusedIcons(Boolean showFocusedIcons)`
  If we're showing icons, should we change their image source to the appropriate focused source when this item has focus? Can be overridden on a per icon basis by the formItemIcon `showFocused` property.
  `FormItem`
  `setShowFocusedPickerIcon(Boolean showFocusedPickerIcon)`
  If `showPickerIcon` is true for this item, should the picker icon show a focused image when the form item has focus?
  `FormItem`
  `setShowHint(Boolean showHint)`
  If a hint is defined for this form item, should it be shown?
  `FormItem`
  `setShowIcons(Boolean showIcons)`
  Set to false to suppress writing out any `icons` for this item.
  `FormItem`
  `setShowIconsOnFocus(Boolean showIconsOnFocus)`
  Show the `icons` when the item gets focus, and hide them when it loses focus.
  `void`
  `setShowIfCondition(FormItemIfFunction showIf)`
  Expression that's evaluated to see if an item should be dynamically hidden.
  `FormItem`
  `setShowImageAsURL(Boolean showImageAsURL)`
  For fields of `type:"image"`, if the field is non editable, and being displayed with `readOnlyDisplay:"static"`, should the value (URL) be displayed as text, or should an image be rendered?
  `FormItem`
  `setShowOldValueInHover(Boolean showOldValueInHover)`
  Causes the original value to be shown to the end user when the user hovers over the FormItem as such (when the `FormItem.itemHover()` event would fire).
  `FormItem`
  `setShowOver(boolean showOver)`
  When the user rolls over this item, should it be re-styled to indicate it has focus?
  `FormItem`
  `setShowOverIcons(Boolean showOverIcons)`
  If we're showing icons, should we change their image source to the appropriate over source when the user rolls over (or puts focus onto) them? Can be overridden on a per icon basis by the formItemIcon `showOver` property.
  `FormItem`
  `setShowPending(Boolean showPending)`
  When set to `true`, this property adds the optional "Pending" suffix to the CSS styles applied to the widget if the current value of the item differs from the value that would be restored by invoking `DynamicForm.resetValues()`.
  `FormItem`
  `setShowPickerIcon(Boolean showPickerIcon)`
  Should we show a special 'picker' `icon` for this form item? Picker icons are customizable via `pickerIconProperties`.
  `FormItem`
  `setShowPickerIconOnFocus(Boolean showPickerIconOnFocus)`
  Show the picker icon when the item gets focus, and hide it when it loses focus.
  `FormItem`
  `setShowRTL(boolean showRTL)`
  When this item is in RTL mode, should its style name include an "RTL" suffix?
  `FormItem`
  `setShowTitle(Boolean showTitle)`
  Should we show a title cell for this formItem?
  `FormItem`
  `setShowValueIconOnly(Boolean showValueIconOnly)`
  If `valueIcons` is set, this property may be set to show the valueIcon only and prevent the standard form item element or text from displaying
  `FormItem`
  `setShowVoiceAssistIcon(Boolean showVoiceAssistIcon)`
  When true, automatically adds an inline VoiceAssist icon to this item's `icons` array.
  `FormItem`
  `setStartRow(Boolean startRow)`
  Whether this item should always start a new row in the form layout.
  `void`
  `setStateCustomizer(FormItem.StateCustomizer customizer)`
  Specify a StateCustomizer to use for this formItem.
  `FormItem`
  `setStaticHeight(Integer staticHeight)`
  Height of the FormItem when `canEdit` is false and `readOnlyDisplay` is "static".
  `FormItem`
  `setStopOnError(Boolean stopOnError)`
  Indicates that if validation fails, the user should not be allowed to exit the field - focus will be forced back into the field until the error is corrected.
  `FormItem`
  `setStoreDisplayValues(Boolean storeDisplayValues)`
  If specified, this overrides the `DynamicForm.storeDisplayValues` property for this field.
  `FormItem`
  `setSupportsCutPasteEvents(boolean supportsCutPasteEvents)`
  Does the current formItem support native cut and paste events?
  `FormItem`
  `setSuppressValueIcon(Boolean suppressValueIcon)`
  If `valueIcons` is set, this property may be set to prevent the value icons from showing up next to the form items value
  `FormItem`
  `setSynchronousValidation(Boolean synchronousValidation)`
  If enabled, whenever validation is triggered and a request to the server is required, user interactivity will be blocked until the request returns.
  `FormItem`
  `setTabIndex(Integer tabIndex)`
  TabIndex for the form item within the form, which controls the order in which controls are visited when the user hits the tab or shift-tab keys to navigate between items.
  `FormItem`
  `setTextAlign(Alignment textAlign)`
  Alignment of the text / content within this form item.
  `FormItem`
  `setTextBoxStyle(String textBoxStyle)`
  Base CSS class name for a form item's text box element.
  `FormItem`
  `setTextFormula(UserSummary textFormula)`
  Formula to be used to calculate the text value of this FormItem.
  `FormItem`
  `setTimeFormatter(TimeDisplayFormat timeFormatter)`
  Time-format to apply to date type values within this formItem.
  `FormItem`
  `setTitle(String title)`
  User visible title for this form item.
  `FormItem`
  `setTitleAlign(Alignment titleAlign)`
  Alignment of this item's title in its cell.
  `FormItem`
  `setTitleColSpan(int titleColSpan)`
  Number of columns that this item's title spans.
  `void`
  `setTitleHoverFormatter(FormItemHoverFormatter hoverFormatter)`
  Synonym for `setItemTitleHoverFormatter(FormItemHoverFormatter)`.
  `FormItem`
  `setTitleOrientation(TitleOrientation titleOrientation)`
  On which side of this item should the title be placed.
  `FormItem`
  `setTitlePrefix(String titlePrefix)`
  The string prepended to this item's title.
  `FormItem`
  `setTitleStyle(String titleStyle)`
  Base CSS class name for a regular form-item's title.
  `FormItem`
  `setTitleSuffix(String titleSuffix)`
  The string appended to this item's title.
  `FormItem`
  `setTitleVAlign(VerticalAlignment titleVAlign)`
  Vertical alignment of this item's title in its cell.
  `void`
  `setTooltip(String tooltip)`
  This text is shown as a tooltip prompt when the cursor hovers over this item.
  `FormItem`
  `setTop(int top)`
  Top coordinate of this item in pixels.
  `void`
  `setType(String type)`
  The DynamicForm picks a field renderer based on the type of the field (and sometimes other attributes of the field).
  `FormItem`
  `setUpdateControlOnOver(Boolean updateControlOnOver)`
  If `showOver` is true, setting this property to false will explicitly disable showing the "Over" state for the control table element of this item (if present).
  `FormItem`
  `setUpdatePickerIconOnOver(Boolean updatePickerIconOnOver)`
  If `showOver` is true, setting this property to false will explicitly disable showing the "Over" state for the PickerIcon of this item (if present)
  `FormItem`
  `setUpdateTextBoxOnOver(Boolean updateTextBoxOnOver)`
  If `showOver` is true, setting this property to false will explicitly disable showing the "Over" state for the TextBox element of this item.
  `FormItem`
  `setUseAdvancedCriteria(Boolean useAdvancedCriteria)`
  Should this form item always produce an `AdvancedCriteria` sub criterion object? When set to true, causes `hasAdvancedCriteria` to return true.
  `FormItem`
  `setUseDisabledHintStyleForReadOnly(Boolean useDisabledHintStyleForReadOnly)`
  By default, `read-only` fields use the same style name as editable fields for in-field hints, unless they are `disabled` or configured to use a disabled `ReadOnlyDisplayAppearance`.
  `FormItem`
  `setUseLocalDisplayFieldValue(Boolean useLocalDisplayFieldValue)`
  If `displayField` is specified for a field, should the display value for the field be picked up from the `record currently being edited`?
  `static void`
  `setUseObjectFactoryForTypeFallback(boolean useFallback)`
  Configures whether we use `ObjectFactory` as a fallback for resolving editorType class names for `setEditorType(java.lang.String)` if Reflection is not available for the type.
  `FormItem`
  `setValidateOnChange(Boolean validateOnChange)`
  If true, form items will be validated when each item's "change" handler is fired as well as when the entire form is submitted or validated.
  `FormItem`
  `setValidateOnExit(Boolean validateOnExit)`
  If true, form items will be validated when each item's "editorExit" handler is fired as well as when the entire form is submitted or validated.
  `FormItem`
  `setValidators(Validator... validators)`
  Validators for this form item.
  `FormItem`
  `setValidOperators(OperatorId... validOperators)`
  Array of valid filtering operators (eg "greaterThan") that are legal for this FormItem.
  `FormItem`
  `setVAlign(VerticalAlignment vAlign)`
  Vertical alignment of this item within its cell.
  `void`
  `setValue(boolean value)`
  Set the value of the form item.
  `void`
  `setValue(double value)`
  Set the value of the form item.
  `void`
  `setValue(int value)`
  Set the value of the form item.
  `void`
  `setValue(Object value)`
  Set the value of the form item as an object.
  `void`
  `setValue(String value)`
  Set the value of the form item.
  `void`
  `setValue(Date value)`
  Set the value of the form item.
  `FormItem`
  `setValueDeselectedCSSText(String valueDeselectedCSSText)`
  Custom CSS text to be applied to values that have been deleted, when `showDeletions` is enabled.
  `FormItem`
  `setValueField(String valueField)`
  If this form item maps data values to display values by retrieving the `displayField` values from an `optionDataSource`, this property denotes the the field to use as the underlying data value in records from the optionDataSource.
  If not explicitly supplied, the valueField name will be derived as described in `getValueFieldName()`.
  `void`
  `setValueFormatter(FormItemValueFormatter formatter)`
  Optional `FormItemValueFormatter`, if provided, is evaluated to get the display value to show for this form items underlying data value.
  `void`
  `setValueHoverFormatter(FormItemHoverFormatter hoverFormatter)`
  Synonym for `setItemValueHoverFormatter(FormItemHoverFormatter)`.
  `FormItem`
  `setValueIconHeight(Integer valueIconHeight)`
  If `valueIcons` is specified, use this property to specify a height for the value icon written out.
  `FormItem`
  `setValueIconLeftPadding(int valueIconLeftPadding)`
  If we're showing a value icon, this attribute governs the amount of space between the icon and the start edge of the form item cell.
  `void`
  `setValueIconMapper(ValueIconMapper valueIconMapper)`
  Set the FormItem Value Icon mapper that allows the developer to specify the image source for an icon to be displayed for the current form item value.
  `FormItem`
  `setValueIconRightPadding(int valueIconRightPadding)`
  If we're showing a value icon, this attribute governs the amount of space between the icon and the value text.
  `void`
  `setValueIcons(Map valueIcons)`
  Set the valueIcons for this item.
  `FormItem`
  `setValueIconSize(int valueIconSize)`
  If `valueIcons` is specified, this property may be used to specify both the width and height of the icon written out.
  `FormItem`
  `setValueIconWidth(Integer valueIconWidth)`
  If `valueIcons` is specified, use this property to specify a width for the value icon written out.
  `FormItem`
  `setValueMap(String... valueMap)`
  Set the valueMap for this item.
  `FormItem`
  `setValueMap(Map valueMap)`
  Set the valueMap for this item.
  `FormItem`
  `setVisible(Boolean visible)`
  Whether this item is currently visible.
  `FormItem`
  `setVisibleWhen(AdvancedCriteria visibleWhen)`
  Criteria to be evaluated to determine whether this FormItem should be visible.
  `void`
  `setWarnOnEditorTypeConversion(boolean warn)`
  Sets whether a warning will be logged if the Framework replaces this SmartGwt FormItem (that wraps the SmartClient item instance) to more closely match the underlying item's type when `getOrCreateRef()` is called.
  `static void`
  `setWarnOnEditorTypeConversionDefault(boolean warn)`
  Sets whether, by default, a warning will be logged if the Framework replaces a SmartGWT FormItem (that wraps the SmartClient item instance) to more closely match the underlying item's type.
  `FormItem`
  `setWidth(int width)`
  Width of the FormItem.
  `FormItem`
  `setWidth(String width)`
  Width of the FormItem.
  `FormItem`
  `setWrapHintText(Boolean wrapHintText)`
  If this item is showing a `hint`, should the hint text be allowed to wrap? Setting this property to `false` will render the hint on a single line without wrapping, expanding the width required to render the item if necessary.
  `FormItem`
  `setWrapStaticValue(Boolean wrapStaticValue)`
  If this item is `read-only` and is using `readOnlyDisplay` `ReadOnlyDisplayAppearance.STATIC`, should the item value wrap?
  `FormItem`
  `setWrapTitle(Boolean wrapTitle)`
  If specified determines whether this items title should wrap.
  `boolean`
  `shouldApplyHeightToTextBox()`
  If `height` is specified, should it be applied to the item's text box element? If this method returns false, the text box will not have an explicit height applied, though the containing cell will be sized to accommodate any specified height.
  `Boolean`
  `shouldFetchMissingValue(Object newValue)`
  If this field has a specified `optionDataSource`, should we perform a fetch against that dataSource to find the record that matches this field's value?
  `Boolean`
  `shouldSaveOnEnter()`
  Returns true if 'Enter' key presses in this formItem should allow a saveOnEnter: true parent form to save it's data.
  `boolean`
  `shouldStopKeyPressBubbling(String keyName, int characterValue)`
  Should some keypress event on this item be prevented from bubbling (such that the containing form and ancestors do not receive the event).
  `void`
  `show()`
  Show this form item.
  `void`
  `showIcon(String icon)`
  This method will show some icon in this item's `icons` array, if it is not already visible.
  `void`
  `showPicker()`
  Method to show a picker for this item.
  `void`
  `stopHover()`
  This method is fired when the user rolls off this item (or the title for this item) and will clear any hover canvas shown by the item.
  `void`
  `storeValue(Object value)`
  Store (and optionally show) a value for this form item.
  `void`
  `storeValue(Object value, Boolean showValue)`
  Store (and optionally show) a value for this form item.
  `void`
  `updateState()`
  Update the visual state of a FormItem to reflect any changes in state or any changes in style settings (e.g.
  `Boolean`
  `validate()`
  Validate this item.
  `boolean`
  `valueClipped()`
  Is the value clipped?

  ### Methods inherited from class com.smartgwt.client.data.Field

  `getCanExport, getExportTitle, getPrimaryKey, getSortByField, setCanExport, setExportTitle, setPrimaryKey, setSortByField`

  ### Methods inherited from class com.smartgwt.client.core.RefDataClass

  `getRef, getRef, internalSetID`

  ### Methods inherited from class com.smartgwt.client.core.DataClass

  `applyFactoryProperties, doAddHandler, fireEvent, getAttributeAsDoubleArray, getAttributeAsElement, getAttributeAsIntArray, getAttributeAsLong, getAttributeAsMap, getAttributeAsObject, getAttributeAsRecord, getAttributeAsStringArray, getAttributes, getHandlerCount, isFactoryCreated, setAttribute, setAttribute, setAttribute, setAttributeAsJavaObject, setFactoryCreated`

  ### Methods inherited from class com.smartgwt.client.core.JsObject

  `equals, getJsObj, hashCode, setJsObj`

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface com.google.gwt.event.shared.HasHandlers

  `fireEvent`

- ## Field Details

  - ### scClassName

    protected String scClassName

  - ### configOnly

    protected boolean configOnly

  - ### warnOnEditorTypeConversionDefault

    protected static boolean warnOnEditorTypeConversionDefault

  - ### warnOnEditorTypeConversion

    protected boolean warnOnEditorTypeConversion

- ## Constructor Details

  - ### FormItem

    public FormItem()

  - ### FormItem

    public FormItem(JavaScriptObject jsObj)

  - ### FormItem

    public FormItem(String name)

- ## Method Details

  - ### getOrCreateRef

    public static FormItem getOrCreateRef(JavaScriptObject jsObj)

  - ### getPaletteDefaults

    public Map getPaletteDefaults()
    This method returns a Map of config properties suitable for use as the "defaults" attribute of a `PaletteNode`. Use it when you need to work with PaletteNodes indirectly, such when setting up `TileRecord`s that will be used in a `TilePalette`. See `the dev tools overview` for examples of how to assemble and acquire a suitable defaults object when you are creating a PaletteNode indirectly

  - ### changeAutoChildDefaults

    public static void changeAutoChildDefaults(String autoChildName, Canvas defaults)
    Changes the defaults for Canvas AutoChildren named `autoChildName`.
    Parameters:
      `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. For usage tips on this param, see `SGWTProperties`.
    See Also:
      - `AutoChildUsage`

  - ### changeAutoChildDefaults

    public static void changeAutoChildDefaults(String autoChildName, FormItem defaults)
    Changes the defaults for FormItem AutoChildren named `autoChildName`.
    Parameters:
      `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. For usage tips on this param, see `SGWTProperties`.
    See Also:
      - `AutoChildUsage`

  - ### changePickerIconDefaults

    public static void changePickerIconDefaults(FormItemIcon defaults)

  - ### setAccessKey

    public FormItem setAccessKey(String accessKey)
    If specified this governs the HTML accessKey for the item.

    This should be set to a character - when a user hits the html accessKey modifier for the browser, plus this character, focus will be given to the item. The accessKey modifier can vary by browser and platform.

    The following list of default behavior is for reference only, developers should also consult browser documentation for additional information.

    - Internet Explorer (all platforms): `Alt` + accessKey
    - Mozilla Firefox (Windows, Unix): `Alt+Shift` + accessKey
    - Mozilla Firefox (Mac): `Ctrl+Opt` + accessKey
    - Chrome and Safari (Windows, Unix): `Alt` + accessKey
    - Chrome and Safari (Mac): `Ctrl+Opt` + accessKey
    Parameters:
      `accessKey` - New accessKey value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Focus`

  - ### getAccessKey

    public String getAccessKey()
    If specified this governs the HTML accessKey for the item.

    This should be set to a character - when a user hits the html accessKey modifier for the browser, plus this character, focus will be given to the item. The accessKey modifier can vary by browser and platform.

    The following list of default behavior is for reference only, developers should also consult browser documentation for additional information.

    - Internet Explorer (all platforms): `Alt` + accessKey
    - Mozilla Firefox (Windows, Unix): `Alt+Shift` + accessKey
    - Mozilla Firefox (Mac): `Ctrl+Opt` + accessKey
    - Chrome and Safari (Windows, Unix): `Alt` + accessKey
    - Chrome and Safari (Mac): `Ctrl+Opt` + accessKey
    Returns:
      Current accessKey value. Default value is null
    See Also:
      - `Focus`

  - ### setAlign

    public FormItem setAlign(Alignment align)
    Alignment of this item in its cell. Note that the alignment of text / content within this item is controlled separately via `textAlign` (typically `textAlign` applies to items showing a "textBox", such as a `TextItem` or `SelectItem`, as well as text-only form item types such as `StaticTextItem` and `HeaderItem`). If `applyAlignToText` is true, then the `textAlign` setting, if unset, will default to the `align` setting if set.
    Parameters:
      `align` - New align value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setApplyAlignToText(boolean)`
      - `Appearance overview and related methods`

  - ### getAlign

    public Alignment getAlign()
    Alignment of this item in its cell. Note that the alignment of text / content within this item is controlled separately via `textAlign` (typically `textAlign` applies to items showing a "textBox", such as a `TextItem` or `SelectItem`, as well as text-only form item types such as `StaticTextItem` and `HeaderItem`). If `applyAlignToText` is true, then the `textAlign` setting, if unset, will default to the `align` setting if set.
    Returns:
      Current align value. Default value is null
    See Also:
      - `getApplyAlignToText()`
      - `Appearance overview and related methods`

  - ### setAllowExpressions

    public FormItem setAllowExpressions(Boolean allowExpressions)
    For a form that produces filter criteria (see `form.getValuesAsCriteria()`), allows the user to type in simple expressions to cause filtering with that operator. For example, entering ">5" means values greater than 5, and ">0 and <5" means values between 0 and 5.

    The following table lists character sequences that can be entered as a prefix to a value, and the corresponding `operator` that will be used.

    Prefix | Operator
    < | lessThan
    > | greaterThan
    <= | lessThanOrEqual
    >= | greaterThanOrEqual
    someValue...someValue | betweenInclusive
    ! | notEqual
    ^ | startsWith
    | | endsWith
    !^ | notStartsWith plus logical not
    !@ | notEndsWith plus logical not
    ~ | contains
    !~ | notContains
    $ | isBlank
    !$ | notBlank
    # | isNull
    !# | isNotNull
    == | exact match (for fields where 'contains' is the default)

    Two further special notations are allowed:

    - /regex/ means the value is taken as a regular expression and applied via the "regexp" operator
    - =.fieldName means the value should match the value of another field. Either the user-visible title of the field (field.title) or the field's name (field.name) may be used.

    In all cases, if an operator is disallowed for the field (via `field.validOperators` at either the dataSource or field level), the operator character is ignored (treated as part of a literal value).

    By default, the case-insensitive version of the operator is used (eg, startsWith will actually use "iStartsWith"). To avoid this, explicitly set item.operator (the default operator) to any case sensitive operator (eg "equals" or "contains") and case sensitive operators will be used for user-entered expressions.

    Compound expressions (including "and" and "or") are allowed only for numeric or date/time types.

    Note that if the user does not type a prefix or use other special notation as described above, the operator specified via `operator` is used, or if `formItem.operator` is unspecified, a default operator chosen as described under `operator`.

    Also note that whatever you enter will be used literally, including any whitespace characters. For example if you input '== China ' then ' China ' will be the value.

    The `allowExpression` behavior can be enabled for every field in a form via `DynamicForm.allowExpressions`.

    Finally, note that, like `operator`, enabling `allowExpressions:true` causes `form.getValuesAsCriteria()`) to return `AdvancedCriteria`.

    Parameters:
      `allowExpressions` - New allowExpressions value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Advanced Filtering`

  - ### getAllowExpressions

    public Boolean getAllowExpressions()
    For a form that produces filter criteria (see `form.getValuesAsCriteria()`), allows the user to type in simple expressions to cause filtering with that operator. For example, entering ">5" means values greater than 5, and ">0 and <5" means values between 0 and 5.

    The following table lists character sequences that can be entered as a prefix to a value, and the corresponding `operator` that will be used.

    Prefix | Operator
    < | lessThan
    > | greaterThan
    <= | lessThanOrEqual
    >= | greaterThanOrEqual
    someValue...someValue | betweenInclusive
    ! | notEqual
    ^ | startsWith
    | | endsWith
    !^ | notStartsWith plus logical not
    !@ | notEndsWith plus logical not
    ~ | contains
    !~ | notContains
    $ | isBlank
    !$ | notBlank
    # | isNull
    !# | isNotNull
    == | exact match (for fields where 'contains' is the default)

    Two further special notations are allowed:

    - /regex/ means the value is taken as a regular expression and applied via the "regexp" operator
    - =.fieldName means the value should match the value of another field. Either the user-visible title of the field (field.title) or the field's name (field.name) may be used.

    In all cases, if an operator is disallowed for the field (via `field.validOperators` at either the dataSource or field level), the operator character is ignored (treated as part of a literal value).

    By default, the case-insensitive version of the operator is used (eg, startsWith will actually use "iStartsWith"). To avoid this, explicitly set item.operator (the default operator) to any case sensitive operator (eg "equals" or "contains") and case sensitive operators will be used for user-entered expressions.

    Compound expressions (including "and" and "or") are allowed only for numeric or date/time types.

    Note that if the user does not type a prefix or use other special notation as described above, the operator specified via `operator` is used, or if `formItem.operator` is unspecified, a default operator chosen as described under `operator`.

    Also note that whatever you enter will be used literally, including any whitespace characters. For example if you input '== China ' then ' China ' will be the value.

    The `allowExpression` behavior can be enabled for every field in a form via `DynamicForm.allowExpressions`.

    Finally, note that, like `operator`, enabling `allowExpressions:true` causes `form.getValuesAsCriteria()`) to return `AdvancedCriteria`.

    Returns:
      Current allowExpressions value. Default value is null
    See Also:
      - `Advanced Filtering`

  - ### setAlwaysFetchMissingValues

    public FormItem setAlwaysFetchMissingValues(Boolean alwaysFetchMissingValues)
    If this form item has a specified `optionDataSource` and `fetchMissingValues` is true, when the item value changes, a fetch will be performed against the optionDataSource to retrieve the related record if `displayField` is specified and the new item value is not present in any valueMap explicitly specified on the item.

    Setting this property to true means that a fetch will occur against the optionDataSource to retrieve the related record even if `displayField` is unset, or the item has a valueMap which explicitly contains this field's value.

    An example of a use case where this might be set would be if `formatValue()` or `formatEditorValue()` were written to display properties from the `selected record`.

    Note - for efficiency we cache the associated record once a fetch has been performed, meaning if the value changes, then reverts to a previously seen value, we do not kick off an additional fetch even if this property is true. If necessary this cache may be explicitly invalidated via a call to `invalidateDisplayValueCache()`

    Note : This is an advanced setting

    Parameters:
      `alwaysFetchMissingValues` - New alwaysFetchMissingValues value. Default value is false
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getAlwaysFetchMissingValues

    public Boolean getAlwaysFetchMissingValues()
    If this form item has a specified `optionDataSource` and `fetchMissingValues` is true, when the item value changes, a fetch will be performed against the optionDataSource to retrieve the related record if `displayField` is specified and the new item value is not present in any valueMap explicitly specified on the item.

    Setting this property to true means that a fetch will occur against the optionDataSource to retrieve the related record even if `displayField` is unset, or the item has a valueMap which explicitly contains this field's value.

    An example of a use case where this might be set would be if `formatValue()` or `formatEditorValue()` were written to display properties from the `selected record`.

    Note - for efficiency we cache the associated record once a fetch has been performed, meaning if the value changes, then reverts to a previously seen value, we do not kick off an additional fetch even if this property is true. If necessary this cache may be explicitly invalidated via a call to `invalidateDisplayValueCache()`

    Returns:
      Current alwaysFetchMissingValues value. Default value is false

  - ### setAlwaysShowControlBox

    public FormItem setAlwaysShowControlBox(Boolean alwaysShowControlBox)
    A formItem showing a `pickerIcon` will always write out a "control box" around the text box and picker icon. This is an HTML element styled using the specified `controlStyle`.

    This attribute controls whether the control box should be written out even if the picker icon is not being shown. If unset, default behavior will write out a control table if `showPickerIcon` is true and the icon is not suppressed via `FormItemIcon.showIf()`. This means the control table can be written out with no visible picker if `showPickerIconOnFocus` is true and the item does not have focus.

    This attribute is useful for developers who wish to rely on styling specified via the `controlStyle` even while the picker icon is not visible.

    See the `form item styling overview` for details of the control table and other styling options.

    Note : This is an advanced setting

    Parameters:
      `alwaysShowControlBox` - New alwaysShowControlBox value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getAlwaysShowControlBox

    public Boolean getAlwaysShowControlBox()
    A formItem showing a `pickerIcon` will always write out a "control box" around the text box and picker icon. This is an HTML element styled using the specified `controlStyle`.

    This attribute controls whether the control box should be written out even if the picker icon is not being shown. If unset, default behavior will write out a control table if `showPickerIcon` is true and the icon is not suppressed via `FormItemIcon.showIf()`. This means the control table can be written out with no visible picker if `showPickerIconOnFocus` is true and the item does not have focus.

    This attribute is useful for developers who wish to rely on styling specified via the `controlStyle` even while the picker icon is not visible.

    See the `form item styling overview` for details of the control table and other styling options.

    Returns:
      Current alwaysShowControlBox value. Default value is null

  - ### setApplyAlignToText

    public FormItem setApplyAlignToText(boolean applyAlignToText)
    If the `textAlign` is unset, should the `align` setting, if set, be used for this item's `textAlign`?

    `applyAlignToText` defaults to false for most form item types. It defaults to true for `StaticTextItem` and `HeaderItem`, which are text-based form item types that do not have a natural distinction between the item and its cell.

    Note : This is an advanced setting

    Parameters:
      `applyAlignToText` - New applyAlignToText value. Default value is false
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Appearance overview and related methods`

  - ### getApplyAlignToText

    public boolean getApplyAlignToText()
    If the `textAlign` is unset, should the `align` setting, if set, be used for this item's `textAlign`?

    `applyAlignToText` defaults to false for most form item types. It defaults to true for `StaticTextItem` and `HeaderItem`, which are text-based form item types that do not have a natural distinction between the item and its cell.

    Returns:
      Current applyAlignToText value. Default value is false
    See Also:
      - `Appearance overview and related methods`

  - ### setApplyHeightToTextBox

    public FormItem setApplyHeightToTextBox(Boolean applyHeightToTextBox)
    If `height` is specified, should it be applied to the item's text box element?

    If unset, behavior is determined as described in `shouldApplyHeightToTextBox()`

    Note : This is an advanced setting

    Parameters:
      `applyHeightToTextBox` - New applyHeightToTextBox value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getApplyHeightToTextBox

    public Boolean getApplyHeightToTextBox()
    If `height` is specified, should it be applied to the item's text box element?

    If unset, behavior is determined as described in `shouldApplyHeightToTextBox()`

    Returns:
      Current applyHeightToTextBox value. Default value is null

  - ### setAriaRole

    public FormItem setAriaRole(String ariaRole)
    ARIA role of this formItem. Usually does not need to be manually set - see `Accessibility`.

    Note : This is an advanced setting

    Parameters:
      `ariaRole` - New ariaRole value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Accessibility / Section 508 compliance`

  - ### getAriaRole

    public String getAriaRole()
    ARIA role of this formItem. Usually does not need to be manually set - see `Accessibility`.
    Returns:
      Current ariaRole value. Default value is null
    See Also:
      - `Accessibility / Section 508 compliance`

  - ### setAutoComplete

    public FormItem setAutoComplete(AutoComplete autoComplete)
    Should this item allow browser auto-completion of its value? Applies only to items based on native HTML form elements (`TextItem`, `PasswordItem`, etc), and will only have a user-visible impact for browsers where native autoComplete behavior is actually supported and enabled via user settings.

    Alternatively, `autoCompleteKeywords` can be specified, in which case this setting is ignored. If `autoCompleteKeywords` are not provided, and `autoComplete` is not set on this FormItem, the value of `DynamicForm.autoComplete` is used.

    Note that even with this value set to `"none"`, native browser auto-completion may occur for log in forms (forms containing username and `password` fields). This behavior varies by browser, and is a result of an intentional change by some browser developers to disregard the HTML setting autocomplete=off for password items or log-in forms.

    In some browsers any form redraw (including a redraw from a call to `DynamicForm.setValues()`) will re-populate the form with the natively remembered login credentials. This can make it very difficult to control the values displayed to the user, as a call to 'setValues()' may appear to be ignored. While behavior varies by browser we have specifically observed this behavior in Safari. Moreover in this browser, if the user asks the browser to remember login credentials for a URL, any form with a password item and a text item may be auto-filled with the remembered login credentials, even if the form's configuration and field names differ from those on the login form.

    If an application has both an initial log in form, and a separate form within the application which makes contains a Password item (a use case might be an interface for a user with manager privileges for modifying other users' passwords), this will cause the second form to autofill with unexpected values.

    Should this arise, developers can avoid this by making the initial log in interface into a separate log in page from the main application page. This is often good practice in any case for reasons outlined in the "Authentication" section of the Quick Start guide.

    Parameters:
      `autoComplete` - New autoComplete value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `DynamicForm.setAutoComplete(com.smartgwt.client.types.AutoComplete)`

  - ### getAutoComplete

    public AutoComplete getAutoComplete()
    Should this item allow browser auto-completion of its value? Applies only to items based on native HTML form elements (`TextItem`, `PasswordItem`, etc), and will only have a user-visible impact for browsers where native autoComplete behavior is actually supported and enabled via user settings.

    Alternatively, `autoCompleteKeywords` can be specified, in which case this setting is ignored. If `autoCompleteKeywords` are not provided, and `autoComplete` is not set on this FormItem, the value of `DynamicForm.autoComplete` is used.

    Note that even with this value set to `"none"`, native browser auto-completion may occur for log in forms (forms containing username and `password` fields). This behavior varies by browser, and is a result of an intentional change by some browser developers to disregard the HTML setting autocomplete=off for password items or log-in forms.

    In some browsers any form redraw (including a redraw from a call to `DynamicForm.setValues()`) will re-populate the form with the natively remembered login credentials. This can make it very difficult to control the values displayed to the user, as a call to 'setValues()' may appear to be ignored. While behavior varies by browser we have specifically observed this behavior in Safari. Moreover in this browser, if the user asks the browser to remember login credentials for a URL, any form with a password item and a text item may be auto-filled with the remembered login credentials, even if the form's configuration and field names differ from those on the login form.

    If an application has both an initial log in form, and a separate form within the application which makes contains a Password item (a use case might be an interface for a user with manager privileges for modifying other users' passwords), this will cause the second form to autofill with unexpected values.

    Should this arise, developers can avoid this by making the initial log in interface into a separate log in page from the main application page. This is often good practice in any case for reasons outlined in the "Authentication" section of the Quick Start guide.

    Returns:
      Current autoComplete value. Default value is null
    See Also:
      - `DynamicForm.getAutoComplete()`

  - ### setAutoCompleteKeywords

    public FormItem setAutoCompleteKeywords(String... autoCompleteKeywords)
    Set of autocompletion keywords to be used with the native "autocomplete" attribute, in accordance with the HTML5 Autofill specification.

    When autoCompleteKeywords are provided, the `autoComplete` setting is ignored.

    Parameters:
      `autoCompleteKeywords` - New autoCompleteKeywords value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getAutoCompleteKeywords

    public String[] getAutoCompleteKeywords()
    Set of autocompletion keywords to be used with the native "autocomplete" attribute, in accordance with the HTML5 Autofill specification.

    When autoCompleteKeywords are provided, the `autoComplete` setting is ignored.

    Returns:
      Current autoCompleteKeywords value. Default value is null

  - ### setBrowserInputType

    public FormItem setBrowserInputType(String browserInputType)
    Form item input type - governs which keyboard should be displayed for mobile devices (supported on iPhone / iPad)

    Note : This is an advanced setting

    Parameters:
      `browserInputType` - New browserInputType value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getBrowserInputType

    public String getBrowserInputType()
    Form item input type - governs which keyboard should be displayed for mobile devices (supported on iPhone / iPad)
    Returns:
      Current browserInputType value. Default value is null

  - ### setBrowserSpellCheck

    public FormItem setBrowserSpellCheck(Boolean browserSpellCheck)
    If this browser supports spell-checking of text editing elements, do we want this enabled for this item? If unset the property will be inherited from the containing form.

    Notes:
    - this property only applies to text based items such as TextItem and TextAreaItem.
    - this property is not supported on all browsers.

    Note : This is an advanced setting

    Parameters:
      `browserSpellCheck` - New browserSpellCheck value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `DynamicForm.setBrowserSpellCheck(java.lang.Boolean)`

  - ### getBrowserSpellCheck

    public Boolean getBrowserSpellCheck()
    If this browser supports spell-checking of text editing elements, do we want this enabled for this item? If unset the property will be inherited from the containing form.

    Notes:
    - this property only applies to text based items such as TextItem and TextAreaItem.
    - this property is not supported on all browsers.

    Returns:
      Current browserSpellCheck value. Default value is null
    See Also:
      - `DynamicForm.getBrowserSpellCheck()`

  - ### setCanEdit

    public FormItem setCanEdit(Boolean canEdit)
    Is this form item editable (canEdit:true) or read-only (canEdit:false)? Setting the form item to non-editable causes it to render as read-only. Can be updated at runtime via the `setCanEdit()` method.

    Read-only appearance may be specified via `readOnlyDisplay`. The default setting for this value (`"readOnly"`) differs from the disabled state in that the form item is not rendered with disabled styling and most form items will allow copying of the contents while read-only but do not while disabled.

    Note that for forms bound to a `DataSource`, if this property is not explicitly set at the item level, its default value will match the `DynamicForm.canEditFieldAttribute` on the associated dataSource field.

    Developers should also be aware that the `readOnlyDisplay` attribute is unrelated to the `DataSourceField.readOnlyEditorType` attribute. When a DynamicForm is first bound to a dataSource, for `canEdit:false` DataSourceFields, `DataSourceField.readOnlyEditorType` will determine what `FormItemType` should be created for the field. Once created, a FormItem's type can not be changed. Setting `canEdit` at runtime will simply change the appearance of the item to allow or disallow editing of the item.

    Note that this property may validly be `null` as a distinct state from `false`. See `DynamicForm.fieldIsEditable()` for an API that will always return `true` or `false` and give a definitive answer as to whether editing is possible.
    If this method is called after the component has been drawn/initialized: Is this form item editable (canEdit:true) or read-only (canEdit:false)? Setting the form item to non-editable causes it to render as read-only, using the appearance specified via `readOnlyDisplay`.

    The default appearance for canEdit:false items (`readOnlyDisplay:"readOnly"`) differs from the disabled state in that the form item is not rendered with disabled styling and most form items will allow copying of the contents while read-only but do not while disabled.

    Overrides:
      `setCanEdit` in class `Field`
    Parameters:
      `canEdit` - Can this form item be edited?. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setCanEdit(java.lang.Boolean)`
      - `DynamicForm.setCanEdit(java.lang.Boolean)`

  - ### getCanEdit

    public Boolean getCanEdit()
    Is this form item editable (canEdit:true) or read-only (canEdit:false)? Setting the form item to non-editable causes it to render as read-only. Can be updated at runtime via the `setCanEdit()` method.

    Read-only appearance may be specified via `readOnlyDisplay`. The default setting for this value (`"readOnly"`) differs from the disabled state in that the form item is not rendered with disabled styling and most form items will allow copying of the contents while read-only but do not while disabled.

    Note that for forms bound to a `DataSource`, if this property is not explicitly set at the item level, its default value will match the `DynamicForm.canEditFieldAttribute` on the associated dataSource field.

    Developers should also be aware that the `readOnlyDisplay` attribute is unrelated to the `DataSourceField.readOnlyEditorType` attribute. When a DynamicForm is first bound to a dataSource, for `canEdit:false` DataSourceFields, `DataSourceField.readOnlyEditorType` will determine what `FormItemType` should be created for the field. Once created, a FormItem's type can not be changed. Setting `canEdit` at runtime will simply change the appearance of the item to allow or disallow editing of the item.

    Note that this property may validly be `null` as a distinct state from `false`. See `DynamicForm.fieldIsEditable()` for an API that will always return `true` or `false` and give a definitive answer as to whether editing is possible.

    Overrides:
      `getCanEdit` in class `Field`
    Returns:
      Is this form item editable or read-only?

      This setting differs from the enabled/disabled state in that most form items will allow copying of the contents while read-only but do not while disabled.

      Important note: this method is not intended as an override point to make an item conditionally read-only. It is not called at the appropriate times to serve as a dynamic control over editability. Developers may instead use `readOnlyWhen rules` to dynamically control editability of items. Default value is null

    See Also:
      - `setCanEdit(java.lang.Boolean)`
      - `DynamicForm.setCanEdit(java.lang.Boolean)`

  - ### setCanEditOpaqueValues

    public FormItem setCanEditOpaqueValues(Boolean canEditOpaqueValues)
    If true, indicates that this FormItem is capable of editing "opaque" values, ie, objects that are more complex than simple primitive types like numbers, strings and dates. Ordinarily, you use the `SimpleType system` to convert these opaque values into "atomic" values that can be edited by the built-in editors like `TextItem`. However, sometimes you to create a custom editor that knows how to edit a particular opaque type in a domain-specific way - for example, a composite custom FormItem that allows the user to edit both a number and a currency code, both of which are needed to make a proper monetary amount (for that particular application). When this value is set, the FormItem will manage the opaque value directly, rather than it being filtered through calls to `getAtomicValue()` and `updateAtomicValue()`. Note, if you set this flag on a FormItem that does not have the ability to edit an opaque value (which is something that must be custom-coded) then you will get garbage in your editor, if not an outright crash.

    Note : This is an advanced setting

    Parameters:
      `canEditOpaqueValues` - New canEditOpaqueValues value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getCanEditOpaqueValues

    public Boolean getCanEditOpaqueValues()
    If true, indicates that this FormItem is capable of editing "opaque" values, ie, objects that are more complex than simple primitive types like numbers, strings and dates. Ordinarily, you use the `SimpleType system` to convert these opaque values into "atomic" values that can be edited by the built-in editors like `TextItem`. However, sometimes you to create a custom editor that knows how to edit a particular opaque type in a domain-specific way - for example, a composite custom FormItem that allows the user to edit both a number and a currency code, both of which are needed to make a proper monetary amount (for that particular application). When this value is set, the FormItem will manage the opaque value directly, rather than it being filtered through calls to `getAtomicValue()` and `updateAtomicValue()`. Note, if you set this flag on a FormItem that does not have the ability to edit an opaque value (which is something that must be custom-coded) then you will get garbage in your editor, if not an outright crash.
    Returns:
      Current canEditOpaqueValues value. Default value is null

  - ### setCanFocus

    public FormItem setCanFocus(Boolean canFocus)
    Is this form item focusable? Setting this property to true on an otherwise non-focusable element such as a `StaticTextItem` will cause the item to be included in the page's tab order and respond to keyboard events.

    Note : This is an advanced setting

    Parameters:
      `canFocus` - New canFocus value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Focus`

  - ### getCanFocus

    public Boolean getCanFocus()
    Is this form item focusable? Setting this property to true on an otherwise non-focusable element such as a `StaticTextItem` will cause the item to be included in the page's tab order and respond to keyboard events.
    Returns:
      Returns true for items that can accept keyboard focus such as data items (`TextItems`, `TextAreaItems`, etc), `CanvasItems` with a focusable canvas, or items where `canFocus` was explicitly set to true. Default value is null
    See Also:
      - `Focus`

  - ### setCanHover

    public FormItem setCanHover(Boolean canHover)
    Indicates whether hovers can be shown for this item. When set to false, suppresses all hovers, including those for the `item in general`, or for its `value` or `title`.

    For finer control over suppressing hovers, see `itemHover`, `titleHover` and `valueHover`.

    Parameters:
      `canHover` - New canHover value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setPrompt(java.lang.String)`
      - `ItemHoverEvent`
      - `TitleHoverEvent`
      - `ValueHoverEvent`

  - ### getCanHover

    public Boolean getCanHover()
    Indicates whether hovers can be shown for this item. When set to false, suppresses all hovers, including those for the `item in general`, or for its `value` or `title`.

    For finer control over suppressing hovers, see `itemHover`, `titleHover` and `valueHover`.

    Returns:
      Current canHover value. Default value is null
    See Also:
      - `getPrompt()`
      - `ItemHoverEvent`
      - `TitleHoverEvent`
      - `ValueHoverEvent`

  - ### setCanSelectText

    public FormItem setCanSelectText(boolean canSelectText)
    For items showing a text value, should the user be able to select the text in this item?

    For `canEdit:false` items, see `readOnlyCanSelectText`

    Parameters:
      `canSelectText` - New canSelectText value. Default value is true
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getCanSelectText

    public boolean getCanSelectText()
    For items showing a text value, should the user be able to select the text in this item?

    For `canEdit:false` items, see `readOnlyCanSelectText`

    Returns:
      Current canSelectText value. Default value is true

  - ### setCanTabToIcons

    public FormItem setCanTabToIcons(Boolean canTabToIcons)
    Should this item's `icons` and `picker icon` be included in the page's tab order by default? If not explicitly set, this property will be derived from `DynamicForm.canTabToIcons`.

    Developers may also suppress tabbing to individual icons by setting `FormItemIcon.tabIndex` to `-1`.

    Note that if this form item has tabIndex -1, neither the form item nor the icons will be included in the page's tab order.

    Note : This is an advanced setting

    Parameters:
      `canTabToIcons` - New canTabToIcons value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getCanTabToIcons

    public Boolean getCanTabToIcons()
    Should this item's `icons` and `picker icon` be included in the page's tab order by default? If not explicitly set, this property will be derived from `DynamicForm.canTabToIcons`.

    Developers may also suppress tabbing to individual icons by setting `FormItemIcon.tabIndex` to `-1`.

    Note that if this form item has tabIndex -1, neither the form item nor the icons will be included in the page's tab order.

    Returns:
      Current canTabToIcons value. Default value is null

  - ### setCellHeight

    public FormItem setCellHeight(Integer cellHeight)
    If specified, this property will govern the height of the cell in which this form item is rendered. Will not apply when the containing DynamicForm sets `itemLayout:"absolute"`.
    Parameters:
      `cellHeight` - New cellHeight value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `FormItem Styling`

  - ### getCellHeight

    public Integer getCellHeight()
    If specified, this property will govern the height of the cell in which this form item is rendered. Will not apply when the containing DynamicForm sets `itemLayout:"absolute"`.
    Returns:
      Current cellHeight value. Default value is null
    See Also:
      - `FormItem Styling`

  - ### setCellStyle

    public FormItem setCellStyle(String cellStyle)
    CSS style applied to the form item as a whole, including the text element, any icons, and any hint text for the item. Applied to the cell containing the form item.

    See `FormItemStyling` for an overview of formItem styling, and the `CompoundFormItem_skinning` discussion for special skinning considerations.
    If this method is called after the component has been drawn/initialized: Setter for `cellStyle`.

    Parameters:
      `cellStyle` - the new `cellStyle` value. Default value is "formCell"
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `FormItemBaseStyle`
      - `FormItem Styling`

  - ### getCellStyle

    public String getCellStyle()
    CSS style applied to the form item as a whole, including the text element, any icons, and any hint text for the item. Applied to the cell containing the form item.

    See `FormItemStyling` for an overview of formItem styling, and the `CompoundFormItem_skinning` discussion for special skinning considerations.

    Returns:
      Current cellStyle value. Default value is "formCell"
    See Also:
      - `FormItemBaseStyle`
      - `FormItem Styling`

  - ### setChangeOnKeypress

    public FormItem setChangeOnKeypress(Boolean changeOnKeypress)
    Should this form item fire its `change` handler (and store its value in the form) on every keypress? Set to `false` to suppress the 'change' handler firing (and the value stored) on every keypress.

    Note: If `false`, the value returned by `getValue` will not reflect the value displayed in the form item element as long as focus is in the form item element.

    Parameters:
      `changeOnKeypress` - New changeOnKeypress value. Default value is true
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getChangeOnKeypress

    public Boolean getChangeOnKeypress()
    Should this form item fire its `change` handler (and store its value in the form) on every keypress? Set to `false` to suppress the 'change' handler firing (and the value stored) on every keypress.

    Note: If `false`, the value returned by `getValue` will not reflect the value displayed in the form item element as long as focus is in the form item element.

    Returns:
      Current changeOnKeypress value. Default value is true

  - ### setClipStaticValue

    public FormItem setClipStaticValue(Boolean clipStaticValue)
    If this item is `read-only` and is using `readOnlyDisplay` `ReadOnlyDisplayAppearance.STATIC`, should the item value be clipped if it overflows the specified size of the item? If set, overrides the form-level `DynamicForm.clipStaticValue` default.
    Parameters:
      `clipStaticValue` - New clipStaticValue value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `DynamicForm.setClipStaticValue(java.lang.Boolean)`

  - ### getClipStaticValue

    public Boolean getClipStaticValue()
    If this item is `read-only` and is using `readOnlyDisplay` `ReadOnlyDisplayAppearance.STATIC`, should the item value be clipped if it overflows the specified size of the item? If set, overrides the form-level `DynamicForm.clipStaticValue` default.
    Returns:
      Current clipStaticValue value. Default value is null
    See Also:
      - `DynamicForm.getClipStaticValue()`

  - ### setClipTitle

    public FormItem setClipTitle(Boolean clipTitle)
    If the title for this form item is showing, and is too large for the available space should the title be clipped?

    Null by default - if set to true or false, overrides `DynamicForm.clipItemTitles`.

    Parameters:
      `clipTitle` - New clipTitle value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getClipTitle

    public Boolean getClipTitle()
    If the title for this form item is showing, and is too large for the available space should the title be clipped?

    Null by default - if set to true or false, overrides `DynamicForm.clipItemTitles`.

    Returns:
      Current clipTitle value. Default value is null

  - ### getContainerWidget

    public Canvas getContainerWidget()
    A Read-Only pointer to the Smart GWT canvas that holds this form item. In most cases this will be the `DynamicForm` containing the item but in some cases editable components handle writing out form items directly. An example of this is `Grid Editing` - when a listGrid shows per-field editors, the `containerWidget` for each item will be the listGrid body.

    Note that even if the `containerWidget` is not a DynamicForm, a DynamicForm will still exist for the item (available as `form`), allowing access to standard APIs such as `DynamicForm.getValues()`

    Returns:
      Current containerWidget value. Default value is null

  - ### setControlStyle

    public FormItem setControlStyle(String controlStyle)
    Base CSS class name for a form item's "control box". This is an HTML element which contains the text box and picker icon for the item.

    See `alwaysShowControlBox` for details on when the control box is written out.

    See `FormItemStyling` for an overview of formItem styling, and the `CompoundFormItem_skinning` discussion for special skinning considerations.

    Parameters:
      `controlStyle` - New controlStyle value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setCellStyle(java.lang.String)`
      - `FormItemBaseStyle`
      - `FormItem Styling`

  - ### getControlStyle

    public String getControlStyle()
    Base CSS class name for a form item's "control box". This is an HTML element which contains the text box and picker icon for the item.

    See `alwaysShowControlBox` for details on when the control box is written out.

    See `FormItemStyling` for an overview of formItem styling, and the `CompoundFormItem_skinning` discussion for special skinning considerations.

    Returns:
      Current controlStyle value. Default value is null
    See Also:
      - `getCellStyle()`
      - `FormItemBaseStyle`
      - `FormItem Styling`

  - ### setCriteriaField

    public FormItem setCriteriaField(String criteriaField)
    When using `operator`, the name of the DataSource field for the `Criterion` this FormItem generates. If not specified, defaults to `name`.

    Generally, because `criteriaField` defaults to `item.name`, you don't need to specify it. However, if more than one FormItem specifies criteria for the same DataSource field, they will need unique values for `name` but should set `criteriaField` to the name of DataSource field they both target.

    For example, if two DateItems are used to provide a min and max date for a single field called "joinDate", set `criteriaField` to "joinDate" on both fields but give the fields distinct names (eg "minDate" and "maxDate") and use those names for any programmatic access, such as `DynamicForm.setValue()`.

    Parameters:
      `criteriaField` - New criteriaField value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `FieldName`

  - ### getCriteriaField

    public String getCriteriaField()
    When using `operator`, the name of the DataSource field for the `Criterion` this FormItem generates. If not specified, defaults to `name`.

    Generally, because `criteriaField` defaults to `item.name`, you don't need to specify it. However, if more than one FormItem specifies criteria for the same DataSource field, they will need unique values for `name` but should set `criteriaField` to the name of DataSource field they both target.

    For example, if two DateItems are used to provide a min and max date for a single field called "joinDate", set `criteriaField` to "joinDate" on both fields but give the fields distinct names (eg "minDate" and "maxDate") and use those names for any programmatic access, such as `DynamicForm.setValue()`.

    Returns:
      Current criteriaField value. Default value is null
    See Also:
      - `FieldName`

  - ### setDataPath

    public FormItem setDataPath(String dataPath)
    dataPath for this item. Allows the user to edit details nested data structures in a flat set of form fields

    NOTE: the dataPath feature is intended to help certain legacy architectures, such as systems that work in terms of exchanging large messages with several different entity types in one message, and are incapable of providing separate access to each entity type.
    See the `DataPath overview` for more information.

    Note that an item must have a valid dataPath or `name` in order for its value to be validated and/or saved.

    Parameters:
      `dataPath` - New dataPath value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `DataPath`

  - ### getDataPath

    public String getDataPath()
    dataPath for this item. Allows the user to edit details nested data structures in a flat set of form fields

    NOTE: the dataPath feature is intended to help certain legacy architectures, such as systems that work in terms of exchanging large messages with several different entity types in one message, and are incapable of providing separate access to each entity type.
    See the `DataPath overview` for more information.

    Note that an item must have a valid dataPath or `name` in order for its value to be validated and/or saved.

    Returns:
      Return the dataPath for the this formItem. Default value is null
    See Also:
      - `DataPath`

  - ### setDateFormatter

    public FormItem setDateFormatter(DateDisplayFormat dateFormatter)
    Display format to use for date type values within this formItem.

    Note that Fields of type `"date"`, `"datetime"` or `"time"` will be edited using a `DateItem` or `TimeItem` by default, but this can be overridden - for `canEdit:false` fields, a `StaticTextItem` is used by default, and the developer can always specify a custom `editorType` as well as `data type`.

    The `timeFormatter` may also be used to format underlying Date values as times (ommitting the date part entirely). If both `dateFormatter` and `timeFormatter` are specified on an item, for fields specified as `type "time"` the `timeFormatter` will be used, otherwise the `dateFormatter`

    If `item.dateFormatter` and `item.timeFormatter` is unspecified, date display format may be defined at the component level via `DynamicForm.dateFormatter`, or for fields of type `"datetime"` `DynamicForm.datetimeFormatter`. Otherwise the default is to use the system-wide default short date format, configured via `DateUtil.setShortDisplayFormat()`. Specify any valid `DateDisplayFormat` to change the format used by this item.

    Note that if this is a freeform editable field, such a `TextItem`, with type specified as `"date"` or `"datetime"` the system will automatically attempt to parse user entered values back to a Date value, assuming the entered string matches the date format for the field. Developers may further customize this via an explicit `inputFormat` or via entirely custom `setEditorValueFormatter` and `setEditorValueParser` methods.

    Note : This is an advanced setting

    Parameters:
      `dateFormatter` - New dateFormatter value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setTimeFormatter(com.smartgwt.client.types.TimeDisplayFormat)`
      - `setFormat(java.lang.String)`
      - `Appearance overview and related methods`

  - ### getDateFormatter

    public DateDisplayFormat getDateFormatter()
    Display format to use for date type values within this formItem.

    Note that Fields of type `"date"`, `"datetime"` or `"time"` will be edited using a `DateItem` or `TimeItem` by default, but this can be overridden - for `canEdit:false` fields, a `StaticTextItem` is used by default, and the developer can always specify a custom `editorType` as well as `data type`.

    The `timeFormatter` may also be used to format underlying Date values as times (ommitting the date part entirely). If both `dateFormatter` and `timeFormatter` are specified on an item, for fields specified as `type "time"` the `timeFormatter` will be used, otherwise the `dateFormatter`

    If `item.dateFormatter` and `item.timeFormatter` is unspecified, date display format may be defined at the component level via `DynamicForm.dateFormatter`, or for fields of type `"datetime"` `DynamicForm.datetimeFormatter`. Otherwise the default is to use the system-wide default short date format, configured via `DateUtil.setShortDisplayFormat()`. Specify any valid `DateDisplayFormat` to change the format used by this item.

    Note that if this is a freeform editable field, such a `TextItem`, with type specified as `"date"` or `"datetime"` the system will automatically attempt to parse user entered values back to a Date value, assuming the entered string matches the date format for the field. Developers may further customize this via an explicit `inputFormat` or via entirely custom `setEditorValueFormatter` and `setEditorValueParser` methods.

    Returns:
      Current dateFormatter value. Default value is null
    See Also:
      - `getTimeFormatter()`
      - `getFormat()`
      - `Appearance overview and related methods`

  - ### setDecimalPad

    public FormItem setDecimalPad(Integer decimalPad)
    Applies only to fields of type "float" and enforces a minimum number of digits shown after the decimal point.

    For example, a field value of 343.1, 343.104 and 343.09872677 would all be shown as 343.10 if decimalPad is 2.

    The original unpadded value is always shown when the value is edited.

    Parameters:
      `decimalPad` - New decimalPad value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Appearance overview and related methods`

  - ### getDecimalPad

    public Integer getDecimalPad()
    Applies only to fields of type "float" and enforces a minimum number of digits shown after the decimal point.

    For example, a field value of 343.1, 343.104 and 343.09872677 would all be shown as 343.10 if decimalPad is 2.

    The original unpadded value is always shown when the value is edited.

    Returns:
      Current decimalPad value. Default value is null
    See Also:
      - `Appearance overview and related methods`

  - ### setDecimalPrecision

    public FormItem setDecimalPrecision(Integer decimalPrecision)
    Applies only to fields of type "float" and affects how many significant digits are shown.

    For example, with decimalPrecision 3, if the field value is 343.672677, 343.673 is shown.

    If the value is 125.2, 125.2 is shown - decimalPrecision will not cause extra zeros to be added. Use `DataSourceField.decimalPad` for this.

    A number is always shown with its original precision when edited.

    Parameters:
      `decimalPrecision` - New decimalPrecision value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Appearance overview and related methods`

  - ### getDecimalPrecision

    public Integer getDecimalPrecision()
    Applies only to fields of type "float" and affects how many significant digits are shown.

    For example, with decimalPrecision 3, if the field value is 343.672677, 343.673 is shown.

    If the value is 125.2, 125.2 is shown - decimalPrecision will not cause extra zeros to be added. Use `DataSourceField.decimalPad` for this.

    A number is always shown with its original precision when edited.

    Returns:
      Current decimalPrecision value. Default value is null
    See Also:
      - `Appearance overview and related methods`

  - ### setDefaultIconSrc

    public FormItem setDefaultIconSrc(String defaultIconSrc)
    Default icon image source. Specify as the partial URL to an image, relative to the imgDir of this component. To specify image source for a specific icon use the `icon.src` property.
    If this item is drawn in the disabled state, the url will be modified by adding "_Disabled" to get a disabled state image for the icon. If `icon.showOver` is true, this url will be modified by adding "_Over" to get an over state image for the icon.

    `Spriting` can be used for this image, by setting this property to a `SCSpriteConfig` formatted string.

    Note : This is an advanced setting

    Parameters:
      `defaultIconSrc` - New defaultIconSrc value. Default value is "[SKIN]/DynamicForm/default_formItem_icon.gif"
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `SCImgURL`

  - ### getDefaultIconSrc

    public String getDefaultIconSrc()
    Default icon image source. Specify as the partial URL to an image, relative to the imgDir of this component. To specify image source for a specific icon use the `icon.src` property.
    If this item is drawn in the disabled state, the url will be modified by adding "_Disabled" to get a disabled state image for the icon. If `icon.showOver` is true, this url will be modified by adding "_Over" to get an over state image for the icon.

    `Spriting` can be used for this image, by setting this property to a `SCSpriteConfig` formatted string.

    Returns:
      Current defaultIconSrc value. Default value is "[SKIN]/DynamicForm/default_formItem_icon.gif"
    See Also:
      - `SCImgURL`

  - ### setDefaultOperator

    public FormItem setDefaultOperator(OperatorId defaultOperator)
    The default search-operator for this item when it or its form allow `filter-expressions`.
    Parameters:
      `defaultOperator` - New defaultOperator value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Advanced Filtering`

  - ### getDefaultOperator

    public OperatorId getDefaultOperator()
    The default search-operator for this item when it or its form allow `filter-expressions`.
    Returns:
      Current defaultOperator value. Default value is null
    See Also:
      - `Advanced Filtering`

  - ### getDefaultValue

    public Object getDefaultValue()
    Value used when no value is provided for this item. Note that whenever this item's value is cleared programmatically (for example via `item.clearValue()` or `item.setValue(null)`), it will be reverted to the `defaultValue`.

    Developers should use the `DynamicForm.values` object if their intention is to provide an initial value for a field in a form rather than a value to use in place of `null`.

    Developers looking to provide a 'hint' or placeholder value for an empty item may wish to use `hint` (possibly in conjunction with `TextItem.showHintInField`), or `prompt`.

    Note: Some items provide a user interface allowing the user to explicitly clear them - for example a standard TextItem. If such an item has a defaultValue specified, and the user explicitly clears that value, the value of the item will be (correctly) reported as null, and will remain null over form item redraw()s. However any programmatic call to set the value to null (including, but not limited to `item.clearValue()`, `item.setValue(null)`, `dynamicForm.setValues(...)` with a null value for this field, etc) will reset the item value to its default.

    Returns:
      Current defaultValue value. Default value is null
    See Also:
      - `com.smartgwt.client.widgets.form.fields.FormItem#defaultDynamicValue`
      - Enable & Disable Example

  - ### getDestroyed

    public Boolean getDestroyed()
    The destroyed attribute will be set to true if this item has been destroyed() Note that FormItem lifecycle is managed by the DynamicForm itself. FormItem instances are created and destroyed automatically when new fields are added to the form.
    Returns:
      Current destroyed value. Default value is null

  - ### setDisabled

    public FormItem setDisabled(Boolean disabled)
    Whether this item is disabled. Can be updated at runtime via the `setDisabled()` method. Note that if the widget containing this formItem is disabled, the formItem will behave in a disabled manner regardless of the setting of the item.disabled property.

    Note that not all items can be disabled, and not all browsers show an obvious disabled style for native form elements.
    If this method is called after the component has been drawn/initialized: Set this item to be enabled or disabled at runtime.

    Parameters:
      `disabled` - true if this item should be disabled. Default value is false
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setDisabled(java.lang.Boolean)`
      - `Appearance overview and related methods`
      - Enable & Disable Example

  - ### setDisabledHover

    public FormItem setDisabledHover(String disabledHover)
    This text is shown as a tooltip prompt when the cursor hovers over this item and the item is `disabled` or `read-only` with `readOnlyDisplay:disabled`.

    You can also override `itemHoverHTML` on the item to show a custom hover, whether or not the item is disabled.

    Note that when the form is `disabled`, or when this item `suppresses hovers`, nothing will be shown.

    Parameters:
      `disabledHover` - New disabledHover value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `HTMLString`

  - ### getDisabledHover

    public String getDisabledHover()
    This text is shown as a tooltip prompt when the cursor hovers over this item and the item is `disabled` or `read-only` with `readOnlyDisplay:disabled`.

    You can also override `itemHoverHTML` on the item to show a custom hover, whether or not the item is disabled.

    Note that when the form is `disabled`, or when this item `suppresses hovers`, nothing will be shown.

    Returns:
      Current disabledHover value. Default value is null
    See Also:
      - `HTMLString`

  - ### setDisableIconsOnReadOnly

    public FormItem setDisableIconsOnReadOnly(Boolean disableIconsOnReadOnly)
    If `canEdit` is set to false, should `icons` be disabled by default?

    This may also be specified at the icon level. See `FormItemIcon.disableOnReadOnly`.

    Parameters:
      `disableIconsOnReadOnly` - New disableIconsOnReadOnly value. Default value is true
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getDisableIconsOnReadOnly

    public Boolean getDisableIconsOnReadOnly()
    If `canEdit` is set to false, should `icons` be disabled by default?

    This may also be specified at the icon level. See `FormItemIcon.disableOnReadOnly`.

    Returns:
      Current disableIconsOnReadOnly value. Default value is true

  - ### setDisplayField

    public FormItem setDisplayField(String displayField)
    If set, this item will display a value from another field to the user instead of showing the underlying data value for the `field name`.

    This property is used in two ways:

    The item will display the displayField value from the `record currently being edited` if `useLocalDisplayFieldValue` is true, (or if unset and the conditions outlined in the documentation for that property are met).

    If this field has an `optionDataSource`, this property is used by default to identify which value to use as a display value in records from this related dataSource. In this usage the specified displayField must be explicitly defined in the optionDataSource to be used - see `getDisplayFieldName()` for more on this behavior.
    If not using `local display values`, the display value for this item will be derived by performing a fetch against the `option dataSource` to find a record where the `value field` matches this item's value, and use the `displayField` value from that record.
    In addition to this, PickList-based form items that provide a list of possible options such as the `SelectItem` or `ComboBoxItem` will show the `displayField` values to the user by default, allowing them to choose a new data value (see `valueField`) from a list of user-friendly display values.

    This essentially allows the specified `optionDataSource` to be used as a server based `valueMap`.

    If `local display values` are being used and `storeDisplayValues` is true, selecting a new value will update both the value for this field and the associated display-field value on the record being edited.

    Note: Developers may specify the `foreignDisplayField` property in addition to `displayField`. This is useful for cases where the display field name in the local dataSource differs from the display field name in the optionDataSource. See the documentation for `DataSourceField.foreignDisplayField` for more on this.
    If a foreignDisplayField is specified, as with just displayField, if `local display values` are being used and `storeDisplayValues` is true, when the user chooses a value the associated display-field value on the record being edited will be updated. In this case it would be set to the foreignDisplayField value from the related record. This means foreignDisplayField is always expected to be set to the equivalent field in the related dataSources.
    Developers looking to display some other arbitrary field(s) from the related dataSource during editing should consider using custom PickList.pickListFields instead of setting a foreignDisplayField.

    Note that if `optionDataSource` is set and no valid display field is specified, `getDisplayFieldName()` will return the dataSource title field by default.

    If a displayField is specified for a freeform text based item (such as a `ComboBoxItem`), any user-entered value will be treated as a display value. In this scenario, items will derive the data value for the item from the first record where the displayField value matches the user-entered value. To avoid ambiguity, developers may wish to avoid this usage if display values are not unique.

    Parameters:
      `displayField` - New displayField value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `getDisplayFieldName()`
      - `invalidateDisplayValueCache()`
      - `DataBinding`

  - ### getDisplayField

    public String getDisplayField()
    If set, this item will display a value from another field to the user instead of showing the underlying data value for the `field name`.

    This property is used in two ways:

    The item will display the displayField value from the `record currently being edited` if `useLocalDisplayFieldValue` is true, (or if unset and the conditions outlined in the documentation for that property are met).

    If this field has an `optionDataSource`, this property is used by default to identify which value to use as a display value in records from this related dataSource. In this usage the specified displayField must be explicitly defined in the optionDataSource to be used - see `getDisplayFieldName()` for more on this behavior.
    If not using `local display values`, the display value for this item will be derived by performing a fetch against the `option dataSource` to find a record where the `value field` matches this item's value, and use the `displayField` value from that record.
    In addition to this, PickList-based form items that provide a list of possible options such as the `SelectItem` or `ComboBoxItem` will show the `displayField` values to the user by default, allowing them to choose a new data value (see `valueField`) from a list of user-friendly display values.

    This essentially allows the specified `optionDataSource` to be used as a server based `valueMap`.

    If `local display values` are being used and `storeDisplayValues` is true, selecting a new value will update both the value for this field and the associated display-field value on the record being edited.

    Note: Developers may specify the `foreignDisplayField` property in addition to `displayField`. This is useful for cases where the display field name in the local dataSource differs from the display field name in the optionDataSource. See the documentation for `DataSourceField.foreignDisplayField` for more on this.
    If a foreignDisplayField is specified, as with just displayField, if `local display values` are being used and `storeDisplayValues` is true, when the user chooses a value the associated display-field value on the record being edited will be updated. In this case it would be set to the foreignDisplayField value from the related record. This means foreignDisplayField is always expected to be set to the equivalent field in the related dataSources.
    Developers looking to display some other arbitrary field(s) from the related dataSource during editing should consider using custom PickList.pickListFields instead of setting a foreignDisplayField.

    Note that if `optionDataSource` is set and no valid display field is specified, `getDisplayFieldName()` will return the dataSource title field by default.

    If a displayField is specified for a freeform text based item (such as a `ComboBoxItem`), any user-entered value will be treated as a display value. In this scenario, items will derive the data value for the item from the first record where the displayField value matches the user-entered value. To avoid ambiguity, developers may wish to avoid this usage if display values are not unique.

    Returns:
      Returns the `displayField` for this item.

      Behavior varies based on the configuration of this item, as follows:

      - If this item has an `optionDataSource` and an explicit `foreignDisplayField` is specified, this will be returned.
      - Otherwise if an explicit `displayField` is specified it will be returned by default. If the `displayField` was specified on the underlying dataSource field, and no matching field is present in the `optionDataSource` for the item, we avoid returning the specified displayField value and instead return the title field of the option DataSource. We do this to avoid confusion for the case where the displayField is intended as a display-field value for showing another field value within the same record in the underlying dataSource only.
      - If no explicit foreignDisplay or displayField specification was found, and the `valueField` for this item is hidden in the `optionDataSource`, this method will return the title field for the `optionDataSource`.
      . Default value is null
    See Also:
      - `getDisplayFieldName()`
      - `invalidateDisplayValueCache()`
      - `DataBinding`

  - ### setEditPendingCSSText

    public FormItem setEditPendingCSSText(String editPendingCSSText)
    Custom CSS text to be applied to cells with pending edits that have not yet been submitted.

    Note : This is an advanced setting

    Parameters:
      `editPendingCSSText` - New editPendingCSSText value. Default value is "color:#0066CC;"
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `CSSText`
      - `Appearance overview and related methods`

  - ### getEditPendingCSSText

    public String getEditPendingCSSText()
    Custom CSS text to be applied to cells with pending edits that have not yet been submitted.
    Returns:
      Current editPendingCSSText value. Default value is "color:#0066CC;"
    See Also:
      - `CSSText`
      - `Appearance overview and related methods`

  - ### setEditProxyConstructor

    public FormItem setEditProxyConstructor(String editProxyConstructor)
    Default class used to construct the `EditProxy` for this component when the component is `first placed into edit mode`.
    Parameters:
      `editProxyConstructor` - New editProxyConstructor value. Default value is "FormItemEditProxy"
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `SCClassName`

  - ### getEditProxyConstructor

    public String getEditProxyConstructor()
    Default class used to construct the `EditProxy` for this component when the component is `first placed into edit mode`.
    Returns:
      Current editProxyConstructor value. Default value is "FormItemEditProxy"
    See Also:
      - `SCClassName`

  - ### setEmptyDisplayValue

    public FormItem setEmptyDisplayValue(String emptyDisplayValue)
    Text to display when this form item has a null or undefined value.

    If the formItem has a databound pickList, and its `displayField` or `valueField` (if the former isn't set) has an undefined `emptyCellValue` setting, that field's `emptyCellValue` will automatically be set to the `emptyDisplayValue`.

    Parameters:
      `emptyDisplayValue` - New emptyDisplayValue value. Default value is ""
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getEmptyDisplayValue

    public String getEmptyDisplayValue()
    Text to display when this form item has a null or undefined value.

    If the formItem has a databound pickList, and its `displayField` or `valueField` (if the former isn't set) has an undefined `emptyCellValue` setting, that field's `emptyCellValue` will automatically be set to the `emptyDisplayValue`.

    Returns:
      Current emptyDisplayValue value. Default value is ""

  - ### setEmptyValueIcon

    public FormItem setEmptyValueIcon(String emptyValueIcon)
    This property allows the developer to specify an icon to display when this item has no value. It is configured in the same way as any other valueIcon (see `valueIcons`)
    Parameters:
      `emptyValueIcon` - New emptyValueIcon value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getEmptyValueIcon

    public String getEmptyValueIcon()
    This property allows the developer to specify an icon to display when this item has no value. It is configured in the same way as any other valueIcon (see `valueIcons`)
    Returns:
      Current emptyValueIcon value. Default value is null

  - ### setEndRow

    public FormItem setEndRow(Boolean endRow)
    Whether this item should end the row it's in in the form layout
    Parameters:
      `endRow` - New endRow value. Default value is false
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setLinearEndRow(int)`
      - `Form Layout`

  - ### getEndRow

    public Boolean getEndRow()
    Whether this item should end the row it's in in the form layout
    Returns:
      Current endRow value. Default value is false
    See Also:
      - `getLinearEndRow()`
      - `Form Layout`

  - ### setErrorIconHeight

    public FormItem setErrorIconHeight(int errorIconHeight)
    Height of the error icon, if we're showing icons when validation errors occur.
    Parameters:
      `errorIconHeight` - New errorIconHeight value. Default value is 16
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setShowErrorIcon(java.lang.Boolean)`

  - ### getErrorIconHeight

    public int getErrorIconHeight()
    Height of the error icon, if we're showing icons when validation errors occur.
    Returns:
      Current errorIconHeight value. Default value is 16
    See Also:
      - `getShowErrorIcon()`

  - ### setErrorIconProperties

    public FormItem setErrorIconProperties(FormItemIcon errorIconProperties)
    `Icon-properties` to apply to the `error-icon` when `showErrorIconInline` is true.

    Note : This is an advanced setting

    Parameters:
      `errorIconProperties` - New errorIconProperties value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getErrorIconProperties

    public FormItemIcon getErrorIconProperties()
    `Icon-properties` to apply to the `error-icon` when `showErrorIconInline` is true.
    Returns:
      Current errorIconProperties value. Default value is null

  - ### setErrorIconSrc

    public FormItem setErrorIconSrc(String errorIconSrc)
    URL of the image to show as an error icon, if we're showing icons when validation errors occur.
    Parameters:
      `errorIconSrc` - New errorIconSrc value. Default value is "[SKIN]/DynamicForm/validation_error_icon.png"
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setShowErrorIcon(java.lang.Boolean)`
      - `SCImgURL`

  - ### getErrorIconSrc

    public String getErrorIconSrc()
    URL of the image to show as an error icon, if we're showing icons when validation errors occur.
    Returns:
      Current errorIconSrc value. Default value is "[SKIN]/DynamicForm/validation_error_icon.png"
    See Also:
      - `getShowErrorIcon()`
      - `SCImgURL`

  - ### setErrorIconWidth

    public FormItem setErrorIconWidth(int errorIconWidth)
    Height of the error icon, if we're showing icons when validation errors occur.
    Parameters:
      `errorIconWidth` - New errorIconWidth value. Default value is 16
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setShowErrorIcon(java.lang.Boolean)`

  - ### getErrorIconWidth

    public int getErrorIconWidth()
    Height of the error icon, if we're showing icons when validation errors occur.
    Returns:
      Current errorIconWidth value. Default value is 16
    See Also:
      - `getShowErrorIcon()`

  - ### setErrorMessageWidth

    public FormItem setErrorMessageWidth(int errorMessageWidth)
    When `DynamicForm.showInlineErrors` and `showErrorText` are both true and `errorOrientation` is "left" or "right", errorMessageWidth is the amount to reduce the width of the editor to accommodate the error message and icon.
    Parameters:
      `errorMessageWidth` - New errorMessageWidth value. Default value is 80
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Validation overview and related methods`

  - ### getErrorMessageWidth

    public int getErrorMessageWidth()
    When `DynamicForm.showInlineErrors` and `showErrorText` are both true and `errorOrientation` is "left" or "right", errorMessageWidth is the amount to reduce the width of the editor to accommodate the error message and icon.
    Returns:
      Current errorMessageWidth value. Default value is 80
    See Also:
      - `Validation overview and related methods`

  - ### setEscapeHTML

    public FormItem setEscapeHTML(Boolean escapeHTML)
    Controls whether HTML item value(s) should be rendered or shown as HTML source.

    This property is supported by specific formItem sub-types (e.g. `TextItem`), and has no effect in others. To understand the effects, look at the documentation for the specific formItem sub-type in question.

    Overrides:
      `setEscapeHTML` in class `Field`
    Parameters:
      `escapeHTML` - New escapeHTML value. Default value is varies
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Appearance overview and related methods`

  - ### getEscapeHTML

    public Boolean getEscapeHTML()
    Controls whether HTML item value(s) should be rendered or shown as HTML source.

    This property is supported by specific formItem sub-types (e.g. `TextItem`), and has no effect in others. To understand the effects, look at the documentation for the specific formItem sub-type in question.

    Overrides:
      `getEscapeHTML` in class `Field`
    Returns:
      Current escapeHTML value. Default value is varies
    See Also:
      - `Appearance overview and related methods`

  - ### setExportFormat

    public FormItem setExportFormat(String exportFormat)
    `FormatString` used during exports for numeric or date formatting. See `DataSourceField.exportFormat`.
    Parameters:
      `exportFormat` - New exportFormat value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `FormatString`
      - `Exports & Formatting`

  - ### getExportFormat

    public String getExportFormat()
    `FormatString` used during exports for numeric or date formatting. See `DataSourceField.exportFormat`.
    Returns:
      Current exportFormat value. Default value is null
    See Also:
      - `FormatString`
      - `Exports & Formatting`

  - ### setExtraControlTableCSS

    public FormItem setExtraControlTableCSS(String extraControlTableCSS)
    Additional CSS-text that overrides the item's `controlStyle`, applying arbitrary custom styling to the outer control-table that contains both textBox and icons.

    This is an advanced attribute - while it can be used to modify many properties, such as colors, font-style and border-radius, it should not be used to modify any property that may affect element-size, such as height, padding/margin or overflow.

    Note : This is an advanced setting

    Parameters:
      `extraControlTableCSS` - New extraControlTableCSS value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getExtraControlTableCSS

    public String getExtraControlTableCSS()
    Additional CSS-text that overrides the item's `controlStyle`, applying arbitrary custom styling to the outer control-table that contains both textBox and icons.

    This is an advanced attribute - while it can be used to modify many properties, such as colors, font-style and border-radius, it should not be used to modify any property that may affect element-size, such as height, padding/margin or overflow.

    Returns:
      Current extraControlTableCSS value. Default value is null

  - ### setExtraTextBoxCSS

    public FormItem setExtraTextBoxCSS(String extraTextBoxCSS)
    Additional CSS-text that overrides the item's `textBoxStyle`, applying arbitrary custom styling to the textBox.

    This is an advanced attribute - while it can be used to modify many properties, such as colors, font-style and border-radius, it should not be used to modify any property that may affect element-size, such as height, padding/margin or overflow.

    Note : This is an advanced setting

    Parameters:
      `extraTextBoxCSS` - New extraTextBoxCSS value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getExtraTextBoxCSS

    public String getExtraTextBoxCSS()
    Additional CSS-text that overrides the item's `textBoxStyle`, applying arbitrary custom styling to the textBox.

    This is an advanced attribute - while it can be used to modify many properties, such as colors, font-style and border-radius, it should not be used to modify any property that may affect element-size, such as height, padding/margin or overflow.

    Returns:
      Current extraTextBoxCSS value. Default value is null

  - ### setFetchMissingValues

    public FormItem setFetchMissingValues(Boolean fetchMissingValues)
    If this form item has a specified `optionDataSource`, should the item ever perform a fetch against this dataSource to retrieve the related record.

    The fetch occurs if the item value is non null on initial draw of the form or whenever setValue() is called. Once the fetch completes, the returned record is available via the `getSelectedRecord()` api.

    By default, a fetch will only occur if `displayField` is specified, and the item does not have an explicit `valueMap` containing the data value as a key.
    However you can also set `alwaysFetchMissingValues` to have a fetch occur even if no `displayField` is specified. This ensures `getSelectedRecord()` will return a record if possible - useful for custom formatter functions, etc.

    Note - for efficiency we cache the associated record once a fetch has been performed, meaning if the value changes, then reverts to a previously seen value, we do not kick off an additional fetch to pick up the display value for the previously seen data value. If necessary this cache may be explicitly invalidated via a call to `invalidateDisplayValueCache()`

    Note : This is an advanced setting

    Parameters:
      `fetchMissingValues` - New fetchMissingValues value. Default value is true
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setOptionDataSource(com.smartgwt.client.data.DataSource)`
      - `getSelectedRecord()`
      - `setFilterLocally(java.lang.Boolean)`

  - ### getFetchMissingValues

    public Boolean getFetchMissingValues()
    If this form item has a specified `optionDataSource`, should the item ever perform a fetch against this dataSource to retrieve the related record.

    The fetch occurs if the item value is non null on initial draw of the form or whenever setValue() is called. Once the fetch completes, the returned record is available via the `getSelectedRecord()` api.

    By default, a fetch will only occur if `displayField` is specified, and the item does not have an explicit `valueMap` containing the data value as a key.
    However you can also set `alwaysFetchMissingValues` to have a fetch occur even if no `displayField` is specified. This ensures `getSelectedRecord()` will return a record if possible - useful for custom formatter functions, etc.

    Note - for efficiency we cache the associated record once a fetch has been performed, meaning if the value changes, then reverts to a previously seen value, we do not kick off an additional fetch to pick up the display value for the previously seen data value. If necessary this cache may be explicitly invalidated via a call to `invalidateDisplayValueCache()`

    Returns:
      Current fetchMissingValues value. Default value is true
    See Also:
      - `getOptionDataSource()`
      - `getSelectedRecord()`
      - `getFilterLocally()`

  - ### setFilterLocally

    public FormItem setFilterLocally(Boolean filterLocally)
    If this form item is mapping data values to a display value by fetching records from a dataSource (see `optionDataSource`, `displayField` and `fetchMissingValues`), setting this property to true ensures that when the form item value is set, entire data-set from the dataSource is loaded at once and used as a valueMap, rather than just loading the display value for the current value. This avoids the need to perform fetches each time setValue() is called with a new value.

    See also PickList.filterLocally for behavior on form items such as SelectItems that show pick-lists.

    Note : This is an advanced setting

    Parameters:
      `filterLocally` - New filterLocally value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getFilterLocally

    public Boolean getFilterLocally()
    If this form item is mapping data values to a display value by fetching records from a dataSource (see `optionDataSource`, `displayField` and `fetchMissingValues`), setting this property to true ensures that when the form item value is set, entire data-set from the dataSource is loaded at once and used as a valueMap, rather than just loading the display value for the current value. This avoids the need to perform fetches each time setValue() is called with a new value.

    See also PickList.filterLocally for behavior on form items such as SelectItems that show pick-lists.

    Returns:
      Current filterLocally value. Default value is null

  - ### setForeignDisplayField

    public FormItem setForeignDisplayField(String foreignDisplayField)
    For items with an `optionDataSource`, this property specifies an explicit display field for records within the option dataSource. Typically this property will be set in conjunction with `displayField` in the case where the name of the displayField within the record being edited differs from the displayField in the optionDataSource.

    See `DataSourceField.foreignDisplayField` for additional details.

    Parameters:
      `foreignDisplayField` - New foreignDisplayField value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `getDisplayFieldName()`

  - ### getForeignDisplayField

    public String getForeignDisplayField()
    For items with an `optionDataSource`, this property specifies an explicit display field for records within the option dataSource. Typically this property will be set in conjunction with `displayField` in the case where the name of the displayField within the record being edited differs from the displayField in the optionDataSource.

    See `DataSourceField.foreignDisplayField` for additional details.

    Returns:
      Current foreignDisplayField value. Default value is null
    See Also:
      - `getDisplayFieldName()`

  - ### setFormat

    public FormItem setFormat(String format)
    `FormatString` for numeric or date formatting. See `DataSourceField.format`.
    Parameters:
      `format` - New format value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `FormatString`
      - `Appearance overview and related methods`

  - ### getFormat

    public String getFormat()
    `FormatString` for numeric or date formatting. See `DataSourceField.format`.
    Returns:
      Current format value. Default value is null
    See Also:
      - `FormatString`
      - `Appearance overview and related methods`

  - ### setFormula

    public FormItem setFormula(UserFormula formula)
    Formula to be used to calculate the numeric value of this FormItem. For a field of type "text" (or subtypes) `textFormula` is used instead.

    Available fields for use in the formula are the current `rule context`. The formula is re-evaluated every time the rule context changes.

    Values calculated by the formula will always replace the current value of a non-editable field. For an editable field, the current value will be replaced if the end user has not changed the value since the last time it was computed by the formula, or if the value of the field is invalid according to declared `validators`.

    Note: A FormItem using a formula must have a `name` defined. `shouldSaveValue` can be set to `false` to prevent the formula field from storing the calculated value into the form's values.

    Parameters:
      `formula` - New formula value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `FormulaFields overview and related methods`

  - ### getFormula

    public UserFormula getFormula()
    Formula to be used to calculate the numeric value of this FormItem. For a field of type "text" (or subtypes) `textFormula` is used instead.

    Available fields for use in the formula are the current `rule context`. The formula is re-evaluated every time the rule context changes.

    Values calculated by the formula will always replace the current value of a non-editable field. For an editable field, the current value will be replaced if the end user has not changed the value since the last time it was computed by the formula, or if the value of the field is invalid according to declared `validators`.

    Note: A FormItem using a formula must have a `name` defined. `shouldSaveValue` can be set to `false` to prevent the formula field from storing the calculated value into the form's values.

    Returns:
      Current formula value. Default value is null
    See Also:
      - `FormulaFields overview and related methods`

  - ### setGlobalTabIndex

    public FormItem setGlobalTabIndex(Integer globalTabIndex)
    TabIndex for the form item within the page. Takes precedence over any local tab index specified as `item.tabIndex`.

    Use of this API is extremely advanced and essentially implies taking over management of tab index assignment for all components on the page.

    Note : This is an advanced setting

    Parameters:
      `globalTabIndex` - New globalTabIndex value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Focus`

  - ### getGlobalTabIndex

    public Integer getGlobalTabIndex()
    TabIndex for the form item within the page. Takes precedence over any local tab index specified as `item.tabIndex`.

    Use of this API is extremely advanced and essentially implies taking over management of tab index assignment for all components on the page.

    Returns:
      Current globalTabIndex value. Default value is null
    See Also:
      - `Focus`

  - ### setHeight

    public FormItem setHeight(int height)
    Height of the FormItem. Can be either a number indicating a fixed height in pixels, a percentage indicating a percentage of the overall form's height, or "*" indicating take whatever remaining space is available. See the `FormLayout` overview for details.

    If height is specified as a String, getHeight() will return -1. Use getHeightAsString.() in this case.

    For form items having a `picker icon` (e.g. `SelectItem`, `ComboBoxItem`) and `SpinnerItem`s, if there is no explicit `pickerIconHeight`, the pickerIcon will be sized to match the available space based on the specified item height.
    Note that if spriting is being used, and the image to be displayed in these icons is specified using css properties such as `background-image`, `background-size`, changing this value may result in an unexpected appearance as the image will not scale.
    Scaleable spriting can be achieved using the `SCSpriteConfig` format. See the section on spriting in the `skinning overview` for further information.
    Alternatively, the `pickerIconStyle` could be changed to a custom CSS style name, and in the case of `SpinnerItem`s, the `baseStyle` and `src` of the `SpinnerItem.increaseIcon` and `SpinnerItem.decreaseIcon` AutoChildren could be customized.

    Note that when FormItem is rendered as read-only with `readOnlyDisplay` as "static" the property `staticHeight` is used instead.

    Parameters:
      `height` - New height value. Default value is 20
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setWidth(int)`
      - `DynamicForm.setItemLayout(com.smartgwt.client.types.FormLayoutType)`
      - `Form Layout`
      - Filling Example

  - ### getHeight

    public int getHeight()
    Height of the FormItem. Can be either a number indicating a fixed height in pixels, a percentage indicating a percentage of the overall form's height, or "*" indicating take whatever remaining space is available. See the `FormLayout` overview for details.

    If height is specified as a String, getHeight() will return -1. Use getHeightAsString.() in this case.

    For form items having a `picker icon` (e.g. `SelectItem`, `ComboBoxItem`) and `SpinnerItem`s, if there is no explicit `pickerIconHeight`, the pickerIcon will be sized to match the available space based on the specified item height.
    Note that if spriting is being used, and the image to be displayed in these icons is specified using css properties such as `background-image`, `background-size`, changing this value may result in an unexpected appearance as the image will not scale.
    Scaleable spriting can be achieved using the `SCSpriteConfig` format. See the section on spriting in the `skinning overview` for further information.
    Alternatively, the `pickerIconStyle` could be changed to a custom CSS style name, and in the case of `SpinnerItem`s, the `baseStyle` and `src` of the `SpinnerItem.increaseIcon` and `SpinnerItem.decreaseIcon` AutoChildren could be customized.

    Note that when FormItem is rendered as read-only with `readOnlyDisplay` as "static" the property `staticHeight` is used instead.

    Note : This method will return -1 if the underlying SmartClient JavaScript attribute value cannot be expressed as a(n) int. In that case, other getters, similarly-named but ending in `AsString`, `AsCanvas`, etc., may be provided.

    Returns:
      Current height value. Default value is 20
    See Also:
      - `getWidth()`
      - `DynamicForm.getItemLayout()`
      - `Form Layout`
      - Filling Example

  - ### setHeight

    public FormItem setHeight(String height)
    Height of the FormItem. Can be either a number indicating a fixed height in pixels, a percentage indicating a percentage of the overall form's height, or "*" indicating take whatever remaining space is available. See the `FormLayout` overview for details.

    If height is specified as a String, getHeight() will return -1. Use getHeightAsString.() in this case.

    For form items having a `picker icon` (e.g. `SelectItem`, `ComboBoxItem`) and `SpinnerItem`s, if there is no explicit `pickerIconHeight`, the pickerIcon will be sized to match the available space based on the specified item height.
    Note that if spriting is being used, and the image to be displayed in these icons is specified using css properties such as `background-image`, `background-size`, changing this value may result in an unexpected appearance as the image will not scale.
    Scaleable spriting can be achieved using the `SCSpriteConfig` format. See the section on spriting in the `skinning overview` for further information.
    Alternatively, the `pickerIconStyle` could be changed to a custom CSS style name, and in the case of `SpinnerItem`s, the `baseStyle` and `src` of the `SpinnerItem.increaseIcon` and `SpinnerItem.decreaseIcon` AutoChildren could be customized.

    Note that when FormItem is rendered as read-only with `readOnlyDisplay` as "static" the property `staticHeight` is used instead.

    Parameters:
      `height` - New height value. Default value is 20
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setWidth(int)`
      - `DynamicForm.setItemLayout(com.smartgwt.client.types.FormLayoutType)`
      - `Form Layout`
      - Filling Example

  - ### getHeightAsString

    public String getHeightAsString()
    Height of the FormItem. Can be either a number indicating a fixed height in pixels, a percentage indicating a percentage of the overall form's height, or "*" indicating take whatever remaining space is available. See the `FormLayout` overview for details.

    If height is specified as a String, getHeight() will return -1. Use getHeightAsString.() in this case.

    For form items having a `picker icon` (e.g. `SelectItem`, `ComboBoxItem`) and `SpinnerItem`s, if there is no explicit `pickerIconHeight`, the pickerIcon will be sized to match the available space based on the specified item height.
    Note that if spriting is being used, and the image to be displayed in these icons is specified using css properties such as `background-image`, `background-size`, changing this value may result in an unexpected appearance as the image will not scale.
    Scaleable spriting can be achieved using the `SCSpriteConfig` format. See the section on spriting in the `skinning overview` for further information.
    Alternatively, the `pickerIconStyle` could be changed to a custom CSS style name, and in the case of `SpinnerItem`s, the `baseStyle` and `src` of the `SpinnerItem.increaseIcon` and `SpinnerItem.decreaseIcon` AutoChildren could be customized.

    Note that when FormItem is rendered as read-only with `readOnlyDisplay` as "static" the property `staticHeight` is used instead.

    Returns:
      Current height value. Default value is 20
    See Also:
      - `getWidth()`
      - `DynamicForm.getItemLayout()`
      - `Form Layout`
      - Filling Example

  - ### setHidden

    public FormItem setHidden(Boolean hidden)
    Should this form item be hidden? Setting this property to `true` on an item configuration will have the same effect as having a `showIf()` implementation which returns `false`.

    Note this differs slightly from `DataSourceField.hidden`. That property will cause the field in question to be omitted entirely from databound components by default. A dataSourceField with `hidden` set to `true` can still be displayed in a DynamicForm either by being explicitly included in the specified `items array`, or by having `DataBoundComponent.showHiddenFields` set to true. In this case, this property will not be inherited onto the FormItem instance, meaning the item will be visible in the form even though the `hidden` property was set to true on the dataSourceField configuration object.

    Parameters:
      `hidden` - New hidden value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getHidden

    public Boolean getHidden()
    Should this form item be hidden? Setting this property to `true` on an item configuration will have the same effect as having a `showIf()` implementation which returns `false`.

    Note this differs slightly from `DataSourceField.hidden`. That property will cause the field in question to be omitted entirely from databound components by default. A dataSourceField with `hidden` set to `true` can still be displayed in a DynamicForm either by being explicitly included in the specified `items array`, or by having `DataBoundComponent.showHiddenFields` set to true. In this case, this property will not be inherited onto the FormItem instance, meaning the item will be visible in the form even though the `hidden` property was set to true on the dataSourceField configuration object.

    Returns:
      Current hidden value. Default value is null

  - ### setHint

    public FormItem setHint(String hint)
    Specifies "hint" string to show next to the form item to indicate something to the user. This string generally appears to the right of the form item.
    If this method is called after the component has been drawn/initialized: Sets the `hint` for this item.
    Parameters:
      `hint` - new hint for the item. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setHintStyle(java.lang.String)`
      - `HTMLString`
      - `Appearance overview and related methods`
      - Hints Example

  - ### getHint

    public String getHint()
    Specifies "hint" string to show next to the form item to indicate something to the user. This string generally appears to the right of the form item.
    Returns:
      Current hint value. Default value is null
    See Also:
      - `getHintStyle()`
      - `HTMLString`
      - `Appearance overview and related methods`
      - Hints Example

  - ### setHintStyle

    public FormItem setHintStyle(String hintStyle)
    CSS class for the "hint" string. For items that support `TextItem.showHintInField`, this only applies when showHintInField is false.
    If this method is called after the component has been drawn/initialized: Set the hintStyle for this item
    Parameters:
      `hintStyle` - new style for hint text. Default value is "formHint"
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setHint(java.lang.String)`
      - `CSSStyleName`
      - `FormItem Styling`

  - ### getHintStyle

    public String getHintStyle()
    CSS class for the "hint" string. For items that support `TextItem.showHintInField`, this only applies when showHintInField is false.
    Returns:
      Current hintStyle value. Default value is "formHint"
    See Also:
      - `getHint()`
      - `CSSStyleName`
      - `FormItem Styling`

  - ### setHoverAlign

    public FormItem setHoverAlign(Alignment hoverAlign)
    Text alignment for text displayed in this item's hover canvas, if shown.
    Parameters:
      `hoverAlign` - New hoverAlign value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `DynamicForm.setItemHoverAlign(com.smartgwt.client.types.Alignment)`

  - ### getHoverAlign

    public Alignment getHoverAlign()
    Text alignment for text displayed in this item's hover canvas, if shown.
    Returns:
      Current hoverAlign value. Default value is null
    See Also:
      - `DynamicForm.getItemHoverAlign()`

  - ### setHoverDelay

    public FormItem setHoverDelay(Integer hoverDelay)
    If specified, this is the number of milliseconds to wait between the user rolling over this form item, and triggering any hover action for it.
    If not specified `this.form.itemHoverDelay` will be used instead.

    Note : This is an advanced setting

    Parameters:
      `hoverDelay` - New hoverDelay value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getHoverDelay

    public Integer getHoverDelay()
    If specified, this is the number of milliseconds to wait between the user rolling over this form item, and triggering any hover action for it.
    If not specified `this.form.itemHoverDelay` will be used instead.
    Returns:
      Current hoverDelay value. Default value is null

  - ### setHoverFocusKey

    public FormItem setHoverFocusKey(String hoverFocusKey)
    This attribute gives users a way to pin this item's hover in place so they can interact with it (scroll it, click embedded links, etc).

    Overrides the `same attribute` on the parent form.

    Parameters:
      `hoverFocusKey` - New hoverFocusKey value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setHoverPersist(com.smartgwt.client.types.HoverPersistMode)`
      - `KeyName`

  - ### getHoverFocusKey

    public String getHoverFocusKey()
    This attribute gives users a way to pin this item's hover in place so they can interact with it (scroll it, click embedded links, etc).

    Overrides the `same attribute` on the parent form.

    Returns:
      Current hoverFocusKey value. Default value is null
    See Also:
      - `getHoverPersist()`
      - `KeyName`

  - ### setHoverHeight

    public FormItem setHoverHeight(Integer hoverHeight)
    Option to specify a height for any hover shown for this item.
    Parameters:
      `hoverHeight` - New hoverHeight value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `DynamicForm.setItemHoverHeight(java.lang.Integer)`

  - ### getHoverHeight

    public Integer getHoverHeight()
    Option to specify a height for any hover shown for this item.
    Returns:
      Current hoverHeight value. Default value is null
    See Also:
      - `DynamicForm.getItemHoverHeight()`

  - ### setHoverHeight

    public FormItem setHoverHeight(String hoverHeight)
    Option to specify a height for any hover shown for this item.
    Parameters:
      `hoverHeight` - New hoverHeight value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `DynamicForm.setItemHoverHeight(java.lang.Integer)`

  - ### getHoverHeightAsString

    public String getHoverHeightAsString()
    Option to specify a height for any hover shown for this item.
    Returns:
      Current hoverHeight value. Default value is null
    See Also:
      - `DynamicForm.getItemHoverHeight()`

  - ### setHoverOpacity

    public FormItem setHoverOpacity(Integer hoverOpacity)
    Opacity for any hover shown for this item
    Parameters:
      `hoverOpacity` - New hoverOpacity value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `DynamicForm.setItemHoverOpacity(java.lang.Integer)`

  - ### getHoverOpacity

    public Integer getHoverOpacity()
    Opacity for any hover shown for this item
    Returns:
      Current hoverOpacity value. Default value is null
    See Also:
      - `DynamicForm.getItemHoverOpacity()`

  - ### setHoverPersist

    public FormItem setHoverPersist(HoverPersistMode hoverPersist)
    Allows interaction with hovers when the cursor is positioned over them.

    Overrides the `same attribute` on the parent form.

    Parameters:
      `hoverPersist` - New hoverPersist value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setHoverFocusKey(java.lang.String)`

  - ### getHoverPersist

    public HoverPersistMode getHoverPersist()
    Allows interaction with hovers when the cursor is positioned over them.

    Overrides the `same attribute` on the parent form.

    Returns:
      Current hoverPersist value. Default value is null
    See Also:
      - `getHoverFocusKey()`

  - ### setHoverStyle

    public FormItem setHoverStyle(String hoverStyle)
    Explicit CSS Style for any hover shown for this item.
    Parameters:
      `hoverStyle` - New hoverStyle value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `DynamicForm.setItemHoverStyle(java.lang.String)`
      - `CSSStyleName`

  - ### getHoverStyle

    public String getHoverStyle()
    Explicit CSS Style for any hover shown for this item.
    Returns:
      Current hoverStyle value. Default value is null
    See Also:
      - `DynamicForm.getItemHoverStyle()`
      - `CSSStyleName`

  - ### setHoverVAlign

    public FormItem setHoverVAlign(VerticalAlignment hoverVAlign)
    Vertical text alignment for text displayed in this item's hover canvas, if shown.
    Parameters:
      `hoverVAlign` - New hoverVAlign value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `DynamicForm.setItemHoverVAlign(java.lang.Integer)`

  - ### getHoverVAlign

    public VerticalAlignment getHoverVAlign()
    Vertical text alignment for text displayed in this item's hover canvas, if shown.
    Returns:
      Current hoverVAlign value. Default value is null
    See Also:
      - `DynamicForm.getItemHoverVAlign()`

  - ### setHoverWidth

    public FormItem setHoverWidth(Integer hoverWidth)
    Option to specify a width for any hover shown for this item.
    Parameters:
      `hoverWidth` - New hoverWidth value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `DynamicForm.setItemHoverWidth(java.lang.Integer)`

  - ### getHoverWidth

    public Integer getHoverWidth()
    Option to specify a width for any hover shown for this item.
    Returns:
      Current hoverWidth value. Default value is null
    See Also:
      - `DynamicForm.getItemHoverWidth()`

  - ### setHoverWidth

    public FormItem setHoverWidth(String hoverWidth)
    Option to specify a width for any hover shown for this item.
    Parameters:
      `hoverWidth` - New hoverWidth value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `DynamicForm.setItemHoverWidth(java.lang.Integer)`

  - ### getHoverWidthAsString

    public String getHoverWidthAsString()
    Option to specify a width for any hover shown for this item.
    Returns:
      Current hoverWidth value. Default value is null
    See Also:
      - `DynamicForm.getItemHoverWidth()`

  - ### setIconBaseStyle

    public FormItem setIconBaseStyle(String iconBaseStyle)
    Fallback base CSS class to apply to this item's `icons` if they don't specify a `baseStyle` or provide a sprite-based `src string` that specifies a `cssClass`.
    Parameters:
      `iconBaseStyle` - New iconBaseStyle value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `CSSStyleName`
      - `FormItem Styling`

  - ### getIconBaseStyle

    public String getIconBaseStyle()
    Fallback base CSS class to apply to this item's `icons` if they don't specify a `baseStyle` or provide a sprite-based `src string` that specifies a `cssClass`.
    Returns:
      Current iconBaseStyle value. Default value is null
    See Also:
      - `CSSStyleName`
      - `FormItem Styling`

  - ### setIconHeight

    public FormItem setIconHeight(int iconHeight)
    Default height for form item icons. May be overridden at the icon level by `FormItemIcon.height`.

    Note : This is an advanced setting

    Parameters:
      `iconHeight` - New iconHeight value. Default value is 20
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getIconHeight

    public int getIconHeight()
    Default height for form item icons. May be overridden at the icon level by `FormItemIcon.height`.
    Returns:
      Takes an icon definition object, and returns the height for that icon in px. Default value is 20

  - ### setIconHSpace

    public FormItem setIconHSpace(int iconHSpace)
    Horizontal space (in px) to leave between form item icons. The space appears either on the left or right of each icon. May be overridden at the icon level via `FormItemIcon.hspace`. Must be non-negative.
    Parameters:
      `iconHSpace` - New iconHSpace value. Default value is 3
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getIconHSpace

    public int getIconHSpace()
    Horizontal space (in px) to leave between form item icons. The space appears either on the left or right of each icon. May be overridden at the icon level via `FormItemIcon.hspace`. Must be non-negative.
    Returns:
      Current iconHSpace value. Default value is 3

  - ### setIconPrompt

    public FormItem setIconPrompt(String iconPrompt)
    Default prompt (and tooltip-text) for icons.

    If `canHover` is set to false, this prompt will not be shown.

    Note : This is an advanced setting

    Parameters:
      `iconPrompt` - New iconPrompt value. Default value is ""
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `HTMLString`

  - ### getIconPrompt

    public String getIconPrompt()
    Default prompt (and tooltip-text) for icons.

    If `canHover` is set to false, this prompt will not be shown.

    Returns:
      Current iconPrompt value. Default value is ""
    See Also:
      - `HTMLString`

  - ### setIcons

    public FormItem setIcons(FormItemIcon... icons)
    An array of descriptor objects for icons to display in a line after this form item. These icons are clickable images, often used to display some kind of helper for populating a form item.

    In addition to FormItemIcon property objects, this array may contain plain strings that reference named default icons registered in `defaultIcons`. For example, including `"voiceAssist"` adds an inline VoiceAssist icon that shows on focus and triggers value-dictation.

    Parameters:
      `icons` - New icons value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `FormItemIcon`
      - Icons Example

  - ### getIcons

    public FormItemIcon[] getIcons()
    An array of descriptor objects for icons to display in a line after this form item. These icons are clickable images, often used to display some kind of helper for populating a form item.

    In addition to FormItemIcon property objects, this array may contain plain strings that reference named default icons registered in `defaultIcons`. For example, including `"voiceAssist"` adds an inline VoiceAssist icon that shows on focus and triggers value-dictation.

    Returns:
      Current icons value. Default value is null
    See Also:
      - `FormItemIcon`
      - Icons Example

  - ### setIconVAlign

    public FormItem setIconVAlign(VerticalAlignment iconVAlign)
    How should icons be aligned vertically for this form item.

    Note : This is an advanced setting

    Parameters:
      `iconVAlign` - New iconVAlign value. Default value is "bottom"
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getIconVAlign

    public VerticalAlignment getIconVAlign()
    How should icons be aligned vertically for this form item.
    Returns:
      Current iconVAlign value. Default value is "bottom"

  - ### setIconWidth

    public FormItem setIconWidth(int iconWidth)
    Default width for form item icons. May be overridden at the icon level by `FormItemIcon.width`.

    Note : This is an advanced setting

    Parameters:
      `iconWidth` - New iconWidth value. Default value is 20
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getIconWidth

    public int getIconWidth()
    Default width for form item icons. May be overridden at the icon level by `FormItemIcon.width`.
    Returns:
      Takes an icon definition object, and returns the width for that icon in px. Default value is 20

  - ### setID

    public FormItem setID(String ID)
    Global identifier for referring to the formItem in JavaScript. The ID property is optional if you do not need to refer to the widget from JavaScript, or can refer to it indirectly (for example, via `form.getItem("itemName")`).

    An internal, unique ID will automatically be created upon instantiation for any formItem where one is not provided.

    Parameters:
      `ID` - New ID value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `GlobalId`

  - ### getID

    public String getID()
    Global identifier for referring to the formItem in JavaScript. The ID property is optional if you do not need to refer to the widget from JavaScript, or can refer to it indirectly (for example, via `form.getItem("itemName")`).

    An internal, unique ID will automatically be created upon instantiation for any formItem where one is not provided.

    Returns:
      Current ID value. Default value is null
    See Also:
      - `GlobalId`

  - ### setImageURLPrefix

    public FormItem setImageURLPrefix(String imageURLPrefix)
    Prefix to apply to the beginning of any `valueIcons` when determining the URL for the image. Will not be applied if the `valueIcon` URL is absolute.

    Note : This is an advanced setting

    Parameters:
      `imageURLPrefix` - New imageURLPrefix value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getImageURLPrefix

    public String getImageURLPrefix()
    Prefix to apply to the beginning of any `valueIcons` when determining the URL for the image. Will not be applied if the `valueIcon` URL is absolute.
    Returns:
      Current imageURLPrefix value. Default value is null

  - ### setImageURLSuffix

    public FormItem setImageURLSuffix(String imageURLSuffix)
    Suffix to apply to the end of any `valueIcons` when determining the URL for the image. A common usage would be to specify a suffix of `".gif"` in which case the `valueIcons` property would map values to the names of images without the `".gif"` extension.

    Note : This is an advanced setting

    Parameters:
      `imageURLSuffix` - New imageURLSuffix value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getImageURLSuffix

    public String getImageURLSuffix()
    Suffix to apply to the end of any `valueIcons` when determining the URL for the image. A common usage would be to specify a suffix of `".gif"` in which case the `valueIcons` property would map values to the names of images without the `".gif"` extension.
    Returns:
      Current imageURLSuffix value. Default value is null

  - ### setImplicitSave

    public FormItem setImplicitSave(Boolean implicitSave)
    When true, indicates that changes to this item will cause an automatic save on a `delay`, as well as when the entire form is submitted. If implicitSaveOnBlur is set to true on either this `formItem` or it's `form`, changes will also be automatically saved immediately on editorExit.
    Parameters:
      `implicitSave` - New implicitSave value. Default value is false
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getImplicitSave

    public Boolean getImplicitSave()
    When true, indicates that changes to this item will cause an automatic save on a `delay`, as well as when the entire form is submitted. If implicitSaveOnBlur is set to true on either this `formItem` or it's `form`, changes will also be automatically saved immediately on editorExit.
    Returns:
      Current implicitSave value. Default value is false

  - ### setImplicitSaveOnBlur

    public FormItem setImplicitSaveOnBlur(Boolean implicitSaveOnBlur)
    If set to true, this item's value will be saved immediately when its "editorExit" handler is fired. This attribute works separately from `implicitSave`, which causes saves during editing, after a `short delay`, and when the entire form is submitted.
    Parameters:
      `implicitSaveOnBlur` - New implicitSaveOnBlur value. Default value is false
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getImplicitSaveOnBlur

    public Boolean getImplicitSaveOnBlur()
    If set to true, this item's value will be saved immediately when its "editorExit" handler is fired. This attribute works separately from `implicitSave`, which causes saves during editing, after a `short delay`, and when the entire form is submitted.
    Returns:
      Current implicitSaveOnBlur value. Default value is false

  - ### setInputFormat

    public FormItem setInputFormat(String inputFormat)
    For fields of type `"date"`, if this is an editable field such as a `TextItem`, this property allows you to specify the `inputFormat` applied to the item.

    Note : This is an advanced setting

    Parameters:
      `inputFormat` - New inputFormat value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setDateFormatter(com.smartgwt.client.types.DateDisplayFormat)`
      - `DateInputFormat`

  - ### getInputFormat

    public String getInputFormat()
    For fields of type `"date"`, if this is an editable field such as a `TextItem`, this property allows you to specify the `inputFormat` applied to the item.
    Returns:
      Current inputFormat value. Default value is null
    See Also:
      - `getDateFormatter()`
      - `DateInputFormat`

  - ### setLeft

    public FormItem setLeft(int left)
    Left coordinate of this item in pixels. Applies only when the containing DynamicForm sets `itemLayout:"absolute"`.
    If this method is called after the component has been drawn/initialized: For a form with `itemLayout`:"absolute" only, set the left coordinate of this form item.

    Causes the form to redraw.

    Note : This is an advanced setting

    Parameters:
      `left` - New left value. Default value is 0
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getLeft

    public int getLeft()
    Left coordinate of this item in pixels. Applies only when the containing DynamicForm sets `itemLayout:"absolute"`.
    Returns:
      Returns the left coordinate of this form item in pixels. Note that this method is only reliable after the item has been drawn. Default value is 0

  - ### setLinearColSpan

    public FormItem setLinearColSpan(int linearColSpan)
    Specifies a column span for an item in `linearMode`, overriding the default value of "*" in that mode.
    Parameters:
      `linearColSpan` - New linearColSpan value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setColSpan(java.lang.String)`
      - `Form Layout`

  - ### getLinearColSpan

    public int getLinearColSpan()
    Specifies a column span for an item in `linearMode`, overriding the default value of "*" in that mode.

    Note : This method will return -1 if the underlying SmartClient JavaScript attribute value cannot be expressed as a(n) int. In that case, other getters, similarly-named but ending in `AsString`, `AsCanvas`, etc., may be provided.

    Returns:
      Current linearColSpan value. Default value is null
    See Also:
      - `com.smartgwt.client.widgets.form.fields.FormItem#getColSpan`
      - `Form Layout`

  - ### setLinearColSpan

    public FormItem setLinearColSpan(String linearColSpan)
    Specifies a column span for an item in `linearMode`, overriding the default value of "*" in that mode.
    Parameters:
      `linearColSpan` - New linearColSpan value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setColSpan(java.lang.String)`
      - `Form Layout`

  - ### getLinearColSpanAsString

    public String getLinearColSpanAsString()
    Specifies a column span for an item in `linearMode`, overriding the default value of "*" in that mode.
    Returns:
      Current linearColSpan value. Default value is null
    See Also:
      - `com.smartgwt.client.widgets.form.fields.FormItem#getColSpan`
      - `Form Layout`

  - ### setLinearEndRow

    public FormItem setLinearEndRow(int linearEndRow)
    Specifies `endRow` for an item in `linearMode`, overriding the default of `true` in that mode.
    Parameters:
      `linearEndRow` - New linearEndRow value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Form Layout`

  - ### getLinearEndRow

    public int getLinearEndRow()
    Specifies `endRow` for an item in `linearMode`, overriding the default of `true` in that mode.

    Note : This method will return -1 if the underlying SmartClient JavaScript attribute value cannot be expressed as a(n) int. In that case, other getters, similarly-named but ending in `AsString`, `AsCanvas`, etc., may be provided.

    Returns:
      Current linearEndRow value. Default value is null
    See Also:
      - `Form Layout`

  - ### setLinearEndRow

    public FormItem setLinearEndRow(String linearEndRow)
    Specifies `endRow` for an item in `linearMode`, overriding the default of `true` in that mode.
    Parameters:
      `linearEndRow` - New linearEndRow value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Form Layout`

  - ### getLinearEndRowAsString

    public String getLinearEndRowAsString()
    Specifies `endRow` for an item in `linearMode`, overriding the default of `true` in that mode.
    Returns:
      Current linearEndRow value. Default value is null
    See Also:
      - `Form Layout`

  - ### setLinearStartRow

    public FormItem setLinearStartRow(int linearStartRow)
    Specifies `startRow` for an item in `linearMode`, overriding the default of `false` in that mode.
    Parameters:
      `linearStartRow` - New linearStartRow value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Form Layout`

  - ### getLinearStartRow

    public int getLinearStartRow()
    Specifies `startRow` for an item in `linearMode`, overriding the default of `false` in that mode.

    Note : This method will return -1 if the underlying SmartClient JavaScript attribute value cannot be expressed as a(n) int. In that case, other getters, similarly-named but ending in `AsString`, `AsCanvas`, etc., may be provided.

    Returns:
      Current linearStartRow value. Default value is null
    See Also:
      - `Form Layout`

  - ### setLinearStartRow

    public FormItem setLinearStartRow(String linearStartRow)
    Specifies `startRow` for an item in `linearMode`, overriding the default of `false` in that mode.
    Parameters:
      `linearStartRow` - New linearStartRow value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Form Layout`

  - ### getLinearStartRowAsString

    public String getLinearStartRowAsString()
    Specifies `startRow` for an item in `linearMode`, overriding the default of `false` in that mode.
    Returns:
      Current linearStartRow value. Default value is null
    See Also:
      - `Form Layout`

  - ### setLinearWidth

    public FormItem setLinearWidth(int linearWidth)
    Specifies a width for an item in `linearMode`, overriding the default width of "*" in that mode.
    Parameters:
      `linearWidth` - New linearWidth value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setWidth(int)`
      - `Form Layout`

  - ### getLinearWidth

    public int getLinearWidth()
    Specifies a width for an item in `linearMode`, overriding the default width of "*" in that mode.

    Note : This method will return -1 if the underlying SmartClient JavaScript attribute value cannot be expressed as a(n) int. In that case, other getters, similarly-named but ending in `AsString`, `AsCanvas`, etc., may be provided.

    Returns:
      Current linearWidth value. Default value is null
    See Also:
      - `getWidth()`
      - `Form Layout`

  - ### setLinearWidth

    public FormItem setLinearWidth(String linearWidth)
    Specifies a width for an item in `linearMode`, overriding the default width of "*" in that mode.
    Parameters:
      `linearWidth` - New linearWidth value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setWidth(int)`
      - `Form Layout`

  - ### getLinearWidthAsString

    public String getLinearWidthAsString()
    Specifies a width for an item in `linearMode`, overriding the default width of "*" in that mode.
    Returns:
      Current linearWidth value. Default value is null
    See Also:
      - `getWidth()`
      - `Form Layout`

  - ### setLoadingDisplayValue

    public FormItem setLoadingDisplayValue(String loadingDisplayValue)
    Value shown in field when `fetchMissingValues` is active and a fetch is pending. The field is read-only while a fetch is pending.

    Set to `null` to show actual value until display value is loaded.

    Parameters:
      `loadingDisplayValue` - New loadingDisplayValue value. Default value is "Loading..."
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getLoadingDisplayValue

    public String getLoadingDisplayValue()
    Value shown in field when `fetchMissingValues` is active and a fetch is pending. The field is read-only while a fetch is pending.

    Set to `null` to show actual value until display value is loaded.

    Returns:
      Current loadingDisplayValue value. Default value is "Loading..."

  - ### setLocateItemBy

    public FormItem setLocateItemBy(String locateItemBy)
    When `AutoTest.getElement()` is used to parse locator strings generated by `AutoTest.getLocator()` for this form item, should the item be identified? If the locator has a specified `name`, it is considered to definitely locate the item and no fallback approach will be used.

    Otherwise, the following options are available:

    - `"title"` use the title as an identifier within this form
    - `"value"` use the value of the item to identify it (often used for items with a static defaultValue such as HeaderItems
    - `"index"` use the index within the form's items array.

    If unset, and the locator has no specified name, default behavior is to identify by title (if available), then value (if available), otherwise by index.

    Note : This is an advanced setting

    Parameters:
      `locateItemBy` - New locateItemBy value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `LocatorStrategy`

  - ### getLocateItemBy

    public String getLocateItemBy()
    When `AutoTest.getElement()` is used to parse locator strings generated by `AutoTest.getLocator()` for this form item, should the item be identified? If the locator has a specified `name`, it is considered to definitely locate the item and no fallback approach will be used.

    Otherwise, the following options are available:

    - `"title"` use the title as an identifier within this form
    - `"value"` use the value of the item to identify it (often used for items with a static defaultValue such as HeaderItems
    - `"index"` use the index within the form's items array.

    If unset, and the locator has no specified name, default behavior is to identify by title (if available), then value (if available), otherwise by index.

    Returns:
      Current locateItemBy value. Default value is null
    See Also:
      - `LocatorStrategy`

  - ### setMinHintWidth

    public FormItem setMinHintWidth(Integer minHintWidth)
    If this item is showing a `hint`, this setting specifies how much horizontal space is made available for rendering the hint text by default. Typically this reflects how much space the hint text takes up before it wraps.

    Note that the presence of a hint may cause a form item to expand horizontally past its specified `width`. This property value acts as a minimum - if the hint text can not wrap within this width (either due to `wrapHintText` being set to `false`, or due to it containing long, un-wrappable content), it will further expand to take up the space it needs.

    If unset this property will be picked up from the `DynamicForm.minHintWidth` setting.

    This setting does not apply to hints that are `shown in field`.

    Parameters:
      `minHintWidth` - New minHintWidth value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setWrapHintText(java.lang.Boolean)`

  - ### getMinHintWidth

    public Integer getMinHintWidth()
    If this item is showing a `hint`, this setting specifies how much horizontal space is made available for rendering the hint text by default. Typically this reflects how much space the hint text takes up before it wraps.

    Note that the presence of a hint may cause a form item to expand horizontally past its specified `width`. This property value acts as a minimum - if the hint text can not wrap within this width (either due to `wrapHintText` being set to `false`, or due to it containing long, un-wrappable content), it will further expand to take up the space it needs.

    If unset this property will be picked up from the `DynamicForm.minHintWidth` setting.

    This setting does not apply to hints that are `shown in field`.

    Returns:
      Current minHintWidth value. Default value is null
    See Also:
      - `getWrapHintText()`

  - ### setMultiple

    public FormItem setMultiple(Boolean multiple)
    If true, multiple values may be selected.

    Only certain FormItems that support both singular and multiple values actually use this setting, such as `SelectItem`. Other FormItems such as `MultiComboBoxItem` are always effectively multiple:true, even if multiple:true is not set.

    Overrides:
      `setMultiple` in class `Field`
    Parameters:
      `multiple` - New multiple value. Default value is false
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Appearance overview and related methods`

  - ### getMultiple

    public Boolean getMultiple()
    If true, multiple values may be selected.

    Only certain FormItems that support both singular and multiple values actually use this setting, such as `SelectItem`. Other FormItems such as `MultiComboBoxItem` are always effectively multiple:true, even if multiple:true is not set.

    Overrides:
      `getMultiple` in class `Field`
    Returns:
      Current multiple value. Default value is false
    See Also:
      - `Appearance overview and related methods`

  - ### setMultipleValueSeparator

    public FormItem setMultipleValueSeparator(String multipleValueSeparator)
    If this item is displaying multiple values, this property will be the string that separates those values for display purposes.
    Parameters:
      `multipleValueSeparator` - New multipleValueSeparator value. Default value is ', '
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getMultipleValueSeparator

    public String getMultipleValueSeparator()
    If this item is displaying multiple values, this property will be the string that separates those values for display purposes.
    Returns:
      Current multipleValueSeparator value. Default value is ', '

  - ### getName

    public String getName()
    Name for this form field. Must be unique within the form as well as a valid JavaScript identifier - see `FieldName` for details and how to check for validity.

    The FormItem's name determines the name of the property it edits within the form.

    Note that an item must have a valid name or `dataPath` in order for its value to be validated and/or saved.

    Overrides:
      `getName` in class `Field`
    Returns:
      Current name value. Default value is null
    See Also:
      - `FieldName`

  - ### setNullOriginalValueText

    public FormItem setNullOriginalValueText(String nullOriginalValueText)
    Text shown as the value in the `originalValueMessage` when `showOldValueInHover` is enabled, and when the value has been modified but was originally unset.

    Note : This is an advanced setting

    Parameters:
      `nullOriginalValueText` - New nullOriginalValueText value. Default value is "None"
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `HTMLString`

  - ### getNullOriginalValueText

    public String getNullOriginalValueText()
    Text shown as the value in the `originalValueMessage` when `showOldValueInHover` is enabled, and when the value has been modified but was originally unset.
    Returns:
      Current nullOriginalValueText value. Default value is "None"
    See Also:
      - `HTMLString`

  - ### setOperator

    public FormItem setOperator(OperatorId operator)
    `OperatorId` to be used when `DynamicForm.getValuesAsCriteria()` is called.

    `item.operator` can be used to create a form that offers search functions such as numeric range filtering, without the more advanced user interface of the `FilterBuilder`. For example, two SpinnerItems could be created with `formItem.operator` set to "greaterThan" and "lessThan" respectively to enable filtering by a numeric range.

    When `item.operator` is set for any FormItem in a form, `form.getValuesAsCriteria()` will return an `AdvancedCriteria` object instead of a normal `Criteria` object. Each FormItem will produce one `Criterion` affecting the DataSource field specified by `criteriaField`. The criteria produced by the FormItems will be grouped under the logical operator provided by `DynamicForm.operator`.

    If `operator` is set for some fields but not others, the default operator is "equals" for fields with a valueMap or an optionDataSource, and for fields of type "enum" (or of a type that inherits from "enum"). The default operator for all other fields is controlled by `DynamicForm.defaultSearchOperator`.

    Note: `formItem.operator` is only supported for a form that has a `dataSource`. In a form with no DataSource, setting `formItem.operator` will have no effect.

    Parameters:
      `operator` - New operator value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Criteria Editing`

  - ### getOperator

    public OperatorId getOperator()
    `OperatorId` to be used when `DynamicForm.getValuesAsCriteria()` is called.

    `item.operator` can be used to create a form that offers search functions such as numeric range filtering, without the more advanced user interface of the `FilterBuilder`. For example, two SpinnerItems could be created with `formItem.operator` set to "greaterThan" and "lessThan" respectively to enable filtering by a numeric range.

    When `item.operator` is set for any FormItem in a form, `form.getValuesAsCriteria()` will return an `AdvancedCriteria` object instead of a normal `Criteria` object. Each FormItem will produce one `Criterion` affecting the DataSource field specified by `criteriaField`. The criteria produced by the FormItems will be grouped under the logical operator provided by `DynamicForm.operator`.

    If `operator` is set for some fields but not others, the default operator is "equals" for fields with a valueMap or an optionDataSource, and for fields of type "enum" (or of a type that inherits from "enum"). The default operator for all other fields is controlled by `DynamicForm.defaultSearchOperator`.

    Note: `formItem.operator` is only supported for a form that has a `dataSource`. In a form with no DataSource, setting `formItem.operator` will have no effect.

    Returns:
      Current operator value. Default value is null
    See Also:
      - `Criteria Editing`

  - ### setOptionDataSource

    public FormItem setOptionDataSource(DataSource optionDataSource)
    If set, this FormItem will map stored values to display values as though a `com.smartgwt.client.types.ValueMap` were specified, by fetching records from the specified `optionDataSource` and extracting the `valueField` and `displayField` in loaded records, to derive one valueMap entry per record loaded from the optionDataSource.

    With the default setting of `fetchMissingValues`, fetches will be initiated against the optionDataSource any time the FormItem has a non-null value and no corresponding display value is available. This includes when the form is first initialized, as well as any subsequent calls to `setValue()`, such as may happen when `DynamicForm.editRecord()` is called. Retrieved values are automatically cached by the FormItem.

    Note that if a normal, static `valueMap` is also specified for the field (either directly in the form item or as part of the field definition in the dataSource), it will be preferred to the data derived from the optionDataSource for whatever mappings are present.

    In a databound form, if `displayField` is specified for a FormItem and `optionDataSource` is unset, `optionDataSource` will default to the form's current DataSource
    If this method is called after the component has been drawn/initialized: Method to set the `optionDataSource` at runtime

    Parameters:
      `optionDataSource` - new optionDatasource. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `invalidateDisplayValueCache()`
      - List - Combo Box Example

  - ### getOptionDataSource

    public DataSource getOptionDataSource()
    If set, this FormItem will map stored values to display values as though a `com.smartgwt.client.types.ValueMap` were specified, by fetching records from the specified `optionDataSource` and extracting the `valueField` and `displayField` in loaded records, to derive one valueMap entry per record loaded from the optionDataSource.

    With the default setting of `fetchMissingValues`, fetches will be initiated against the optionDataSource any time the FormItem has a non-null value and no corresponding display value is available. This includes when the form is first initialized, as well as any subsequent calls to `setValue()`, such as may happen when `DynamicForm.editRecord()` is called. Retrieved values are automatically cached by the FormItem.

    Note that if a normal, static `valueMap` is also specified for the field (either directly in the form item or as part of the field definition in the dataSource), it will be preferred to the data derived from the optionDataSource for whatever mappings are present.

    In a databound form, if `displayField` is specified for a FormItem and `optionDataSource` is unset, `optionDataSource` will default to the form's current DataSource

    Returns:
      Returns the `optionDataSource` for this item.

      Always uses `item.optionDataSource` if specified. Otherwise, if `DataSourceField.foreignKey` was specified, uses the target DataSource. Otherwise, uses the DataSource of this item's form (if one is configured). Default value is null

    See Also:
      - `invalidateDisplayValueCache()`
      - List - Combo Box Example

  - ### setOptionDataSource

    public FormItem setOptionDataSource(String optionDataSource)
    If set, this FormItem will map stored values to display values as though a `com.smartgwt.client.types.ValueMap` were specified, by fetching records from the specified `optionDataSource` and extracting the `valueField` and `displayField` in loaded records, to derive one valueMap entry per record loaded from the optionDataSource.

    With the default setting of `fetchMissingValues`, fetches will be initiated against the optionDataSource any time the FormItem has a non-null value and no corresponding display value is available. This includes when the form is first initialized, as well as any subsequent calls to `setValue()`, such as may happen when `DynamicForm.editRecord()` is called. Retrieved values are automatically cached by the FormItem.

    Note that if a normal, static `valueMap` is also specified for the field (either directly in the form item or as part of the field definition in the dataSource), it will be preferred to the data derived from the optionDataSource for whatever mappings are present.

    In a databound form, if `displayField` is specified for a FormItem and `optionDataSource` is unset, `optionDataSource` will default to the form's current DataSource
    If this method is called after the component has been drawn/initialized: Method to set the `optionDataSource` at runtime

    Parameters:
      `optionDataSource` - new optionDatasource. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `invalidateDisplayValueCache()`
      - List - Combo Box Example

  - ### getOptionDataSourceAsString

    public String getOptionDataSourceAsString()
    If set, this FormItem will map stored values to display values as though a `com.smartgwt.client.types.ValueMap` were specified, by fetching records from the specified `optionDataSource` and extracting the `valueField` and `displayField` in loaded records, to derive one valueMap entry per record loaded from the optionDataSource.

    With the default setting of `fetchMissingValues`, fetches will be initiated against the optionDataSource any time the FormItem has a non-null value and no corresponding display value is available. This includes when the form is first initialized, as well as any subsequent calls to `setValue()`, such as may happen when `DynamicForm.editRecord()` is called. Retrieved values are automatically cached by the FormItem.

    Note that if a normal, static `valueMap` is also specified for the field (either directly in the form item or as part of the field definition in the dataSource), it will be preferred to the data derived from the optionDataSource for whatever mappings are present.

    In a databound form, if `displayField` is specified for a FormItem and `optionDataSource` is unset, `optionDataSource` will default to the form's current DataSource

    Returns:
      Returns the `optionDataSource` for this item.

      Always uses `item.optionDataSource` if specified. Otherwise, if `DataSourceField.foreignKey` was specified, uses the target DataSource. Otherwise, uses the DataSource of this item's form (if one is configured). Default value is null

    See Also:
      - `invalidateDisplayValueCache()`
      - List - Combo Box Example

  - ### setOptionOperationId

    public FormItem setOptionOperationId(String optionOperationId)
    If this item has a specified `optionDataSource`, this attribute may be set to specify an explicit `DSRequest.operationId` when performing a fetch against the option dataSource to pick up display value mapping.

    Note : This is an advanced setting

    Parameters:
      `optionOperationId` - New optionOperationId value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `DataBinding`

  - ### getOptionOperationId

    public String getOptionOperationId()
    If this item has a specified `optionDataSource`, this attribute may be set to specify an explicit `DSRequest.operationId` when performing a fetch against the option dataSource to pick up display value mapping.
    Returns:
      Current optionOperationId value. Default value is null
    See Also:
      - `DataBinding`

  - ### setOptionTextMatchStyle

    public FormItem setOptionTextMatchStyle(TextMatchStyle optionTextMatchStyle)
    If this item has a specified `optionDataSource`, this property determines the textMatchStyle to use when interpretating any `optionCriteria` during the fetch to map valueField values to displayField values.

    Note : This is an advanced setting

    Parameters:
      `optionTextMatchStyle` - New optionTextMatchStyle value. Default value is "exact"
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `DataBinding`

  - ### getOptionTextMatchStyle

    public TextMatchStyle getOptionTextMatchStyle()
    If this item has a specified `optionDataSource`, this property determines the textMatchStyle to use when interpretating any `optionCriteria` during the fetch to map valueField values to displayField values.
    Returns:
      Current optionTextMatchStyle value. Default value is "exact"
    See Also:
      - `DataBinding`

  - ### setOriginalValueMessage

    public FormItem setOriginalValueMessage(String originalValueMessage)
    Message shown when `showOldValueInHover` is enabled and the value has been modified.

    If unset, defaults to the form's `DynamicForm.originalValueMessage`. Otherwise, overrides the form-default `originalValueMessage` for this item.

    Note : This is an advanced setting

    Parameters:
      `originalValueMessage` - New originalValueMessage value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `HTMLString`

  - ### getOriginalValueMessage

    public String getOriginalValueMessage()
    Message shown when `showOldValueInHover` is enabled and the value has been modified.

    If unset, defaults to the form's `DynamicForm.originalValueMessage`. Otherwise, overrides the form-default `originalValueMessage` for this item.

    Returns:
      Current originalValueMessage value. Default value is null
    See Also:
      - `HTMLString`

  - ### getPicker

    public Canvas getPicker()
    The component that will be displayed when `showPicker()` is called due to a click on the `picker icon`.

    Can be specified directly as a Canvas, or created automatically via the `com.smartgwt.client.types.AutoChild` pattern. The default autoChild configuration for the picker is a Canvas with backgroundColor set and no other modifications.

    Note that the picker is not automatically destroyed with the FormItem that uses it, in order to allow recycling of picker components. To destroy a single-use picker, override `Canvas.destroy()`.

    This component is an AutoChild named "picker". For an overview of how to use and configure AutoChildren, see `Using AutoChildren`.

    Returns:
      Current picker value. Default value is null

  - ### setPickerIconHeight

    public FormItem setPickerIconHeight(Integer pickerIconHeight)
    If `showPickerIcon` is true for this item, this property governs the size of the picker icon. If unset, the picker icon will be sized as a square to fit in the available height for the icon.

    Note that if spriting is being used, and the image to be displayed is specified using css properties such as `background-image`, `background-size`, changing this value may result in an unexpected appearance as the image will not scale.
    Scaleable spriting can be achieved using the `SCSpriteConfig` format. See the section on spriting in the `skinning overview` for further information.

    Note : This is an advanced setting

    Parameters:
      `pickerIconHeight` - New pickerIconHeight value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getPickerIconHeight

    public Integer getPickerIconHeight()
    If `showPickerIcon` is true for this item, this property governs the size of the picker icon. If unset, the picker icon will be sized as a square to fit in the available height for the icon.

    Note that if spriting is being used, and the image to be displayed is specified using css properties such as `background-image`, `background-size`, changing this value may result in an unexpected appearance as the image will not scale.
    Scaleable spriting can be achieved using the `SCSpriteConfig` format. See the section on spriting in the `skinning overview` for further information.

    Returns:
      Current pickerIconHeight value. Default value is null

  - ### setPickerIconName

    public FormItem setPickerIconName(String pickerIconName)
    If `showPickerIcon` is true, this attribute specifies the `FormItemIcon.name` applied to the picker icon

    Note : This is an advanced setting

    Parameters:
      `pickerIconName` - New pickerIconName value. Default value is "picker"
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Identifier`

  - ### getPickerIconName

    public String getPickerIconName()
    If `showPickerIcon` is true, this attribute specifies the `FormItemIcon.name` applied to the picker icon
    Returns:
      Current pickerIconName value. Default value is "picker"
    See Also:
      - `Identifier`

  - ### setPickerIconPrompt

    public FormItem setPickerIconPrompt(String pickerIconPrompt)
    Prompt to show when the user hovers the mouse over the picker icon.
    Parameters:
      `pickerIconPrompt` - New pickerIconPrompt value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `HTMLString`

  - ### getPickerIconPrompt

    public String getPickerIconPrompt()
    Prompt to show when the user hovers the mouse over the picker icon.
    Returns:
      Current pickerIconPrompt value. Default value is null
    See Also:
      - `HTMLString`

  - ### setPickerIconProperties

    public FormItem setPickerIconProperties(FormItemIcon pickerIconProperties)
    If `showPickerIcon` is true for this item, this block of properties will be applied to the pickerIcon. Allows for advanced customization of this icon.

    Note : This is an advanced setting

    Parameters:
      `pickerIconProperties` - New pickerIconProperties value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getPickerIconProperties

    public FormItemIcon getPickerIconProperties()
    If `showPickerIcon` is true for this item, this block of properties will be applied to the pickerIcon. Allows for advanced customization of this icon.
    Returns:
      Current pickerIconProperties value. Default value is null

  - ### setPickerIconSrc

    public FormItem setPickerIconSrc(String pickerIconSrc)
    If `showPickerIcon` is true for this item, this property governs the `src` of the picker icon image to be displayed.

    `Spriting` can be used for this image, by setting this property to a `SCSpriteConfig` formatted string.

    Note : This is an advanced setting

    Parameters:
      `pickerIconSrc` - New pickerIconSrc value. Default value is ""
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `SCImgURL`

  - ### getPickerIconSrc

    public String getPickerIconSrc()
    If `showPickerIcon` is true for this item, this property governs the `src` of the picker icon image to be displayed.

    `Spriting` can be used for this image, by setting this property to a `SCSpriteConfig` formatted string.

    Returns:
      Current pickerIconSrc value. Default value is ""
    See Also:
      - `SCImgURL`

  - ### setPickerIconStyle

    public FormItem setPickerIconStyle(String pickerIconStyle)
    Base CSS class name for a form item's picker icon cell. If unset, inherits from this item's `controlStyle`.
    Parameters:
      `pickerIconStyle` - New pickerIconStyle value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setCellStyle(java.lang.String)`
      - `FormItemBaseStyle`
      - `FormItem Styling`

  - ### getPickerIconStyle

    public String getPickerIconStyle()
    Base CSS class name for a form item's picker icon cell. If unset, inherits from this item's `controlStyle`.
    Returns:
      Current pickerIconStyle value. Default value is null
    See Also:
      - `getCellStyle()`
      - `FormItemBaseStyle`
      - `FormItem Styling`

  - ### setPickerIconWidth

    public FormItem setPickerIconWidth(Integer pickerIconWidth)
    If `showPickerIcon` is true for this item, this property governs the size of the picker icon. If unset, the picker icon will be sized as a square to fit in the available height for the icon.

    Note that if spriting is being used, and the image to be displayed is specified using css properties such as `background-image`, `background-size`, changing this value may result in an unexpected appearance as the image will not scale.
    Scaleable spriting can be achieved using the `SCSpriteConfig` format. See the section on spriting in the `skinning overview` for further information.

    Note : This is an advanced setting

    Parameters:
      `pickerIconWidth` - New pickerIconWidth value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getPickerIconWidth

    public Integer getPickerIconWidth()
    If `showPickerIcon` is true for this item, this property governs the size of the picker icon. If unset, the picker icon will be sized as a square to fit in the available height for the icon.

    Note that if spriting is being used, and the image to be displayed is specified using css properties such as `background-image`, `background-size`, changing this value may result in an unexpected appearance as the image will not scale.
    Scaleable spriting can be achieved using the `SCSpriteConfig` format. See the section on spriting in the `skinning overview` for further information.

    Returns:
      Current pickerIconWidth value. Default value is null

  - ### setPrintReadOnlyTextBoxStyle

    public FormItem setPrintReadOnlyTextBoxStyle(String printReadOnlyTextBoxStyle)
    CSS class name to apply to the print view of an item's text box if the item is `canEdit:false`, with `readOnlyDisplay:static`.

    If specified this will take precedence over `printTextBoxStyle` for static readonly items.

    Parameters:
      `printReadOnlyTextBoxStyle` - New printReadOnlyTextBoxStyle value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `FormItemBaseStyle`
      - `Printing`

  - ### getPrintReadOnlyTextBoxStyle

    public String getPrintReadOnlyTextBoxStyle()
    CSS class name to apply to the print view of an item's text box if the item is `canEdit:false`, with `readOnlyDisplay:static`.

    If specified this will take precedence over `printTextBoxStyle` for static readonly items.

    Returns:
      Current printReadOnlyTextBoxStyle value. Default value is null
    See Also:
      - `FormItemBaseStyle`
      - `Printing`

  - ### setPrintTextBoxStyle

    public FormItem setPrintTextBoxStyle(String printTextBoxStyle)
    Base CSS class name for a form item's text box element when getting printable HTML for the form. If unset `textBoxStyle` will be used instead. Note that focused styling will never be displayed while printing, though error and disabled styling will.

    By default this style will be used for printHTML for the item even if the item is `canEdit:false` with `readOnlyDisplay:static`.
    To override this behavior, developers may also specify a custom print style for this state via the `printReadOnlyTextBoxStyle`.

    Parameters:
      `printTextBoxStyle` - New printTextBoxStyle value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `FormItemBaseStyle`
      - `Printing`

  - ### getPrintTextBoxStyle

    public String getPrintTextBoxStyle()
    Base CSS class name for a form item's text box element when getting printable HTML for the form. If unset `textBoxStyle` will be used instead. Note that focused styling will never be displayed while printing, though error and disabled styling will.

    By default this style will be used for printHTML for the item even if the item is `canEdit:false` with `readOnlyDisplay:static`.
    To override this behavior, developers may also specify a custom print style for this state via the `printReadOnlyTextBoxStyle`.

    Returns:
      Current printTextBoxStyle value. Default value is null
    See Also:
      - `FormItemBaseStyle`
      - `Printing`

  - ### setPrintTitleStyle

    public FormItem setPrintTitleStyle(String printTitleStyle)
    Base CSS stylename for a form item's title when generating print HTML for the item. If unset `titleStyle` will be used instead.
    Parameters:
      `printTitleStyle` - New printTitleStyle value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `FormItemBaseStyle`
      - `Printing`

  - ### getPrintTitleStyle

    public String getPrintTitleStyle()
    Base CSS stylename for a form item's title when generating print HTML for the item. If unset `titleStyle` will be used instead.
    Returns:
      Current printTitleStyle value. Default value is null
    See Also:
      - `FormItemBaseStyle`
      - `Printing`

  - ### setPrompt

    public FormItem setPrompt(String prompt)
    This text is shown as a tooltip prompt when the cursor hovers over this item.

    When the item is `read-only` a different hover can be shown with `readOnlyHover`. Or, when the item is `disabled` or read-only with `readOnlyDisplay:disabled` a different hover can be shown with `disabledHover`.

    Note that when the form is `disabled`, or when this item `suppresses hovers`, this prompt will not be shown.
    If this method is called after the component has been drawn/initialized: Sets the `prompt` for this item.

    Parameters:
      `prompt` - new prompt for the item. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `HTMLString`

  - ### getPrompt

    public String getPrompt()
    This text is shown as a tooltip prompt when the cursor hovers over this item.

    When the item is `read-only` a different hover can be shown with `readOnlyHover`. Or, when the item is `disabled` or read-only with `readOnlyDisplay:disabled` a different hover can be shown with `disabledHover`.

    Note that when the form is `disabled`, or when this item `suppresses hovers`, this prompt will not be shown.

    Returns:
      Current prompt value. Default value is null
    See Also:
      - `HTMLString`

  - ### setReadOnlyCanSelectText

    public FormItem setReadOnlyCanSelectText(ReadOnlyDisplayAppearance... readOnlyCanSelectText)
    For items showing a text value with `canEdit` set to false, should the user be able to select the text in the item?

    Default behavior allows selection if `readOnlyDisplay` is `"static"` or `"readOnly"` [but not `"disabled"`]. Developers may add or remove ReadOnlyDisplayAppearance values to change this behavior.

    Note that this does not apply to `disabled items`, where text selection is never enabled

    Parameters:
      `readOnlyCanSelectText` - New readOnlyCanSelectText value. Default value is ["static", "readOnly"]
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getReadOnlyCanSelectText

    public ReadOnlyDisplayAppearance[] getReadOnlyCanSelectText()
    For items showing a text value with `canEdit` set to false, should the user be able to select the text in the item?

    Default behavior allows selection if `readOnlyDisplay` is `"static"` or `"readOnly"` [but not `"disabled"`]. Developers may add or remove ReadOnlyDisplayAppearance values to change this behavior.

    Note that this does not apply to `disabled items`, where text selection is never enabled

    Returns:
      Current readOnlyCanSelectText value. Default value is ["static", "readOnly"]

  - ### setReadOnlyControlStyle

    public FormItem setReadOnlyControlStyle(String readOnlyControlStyle)
    Modified `control style` to apply when this item is `read-only` and is using `readOnlyDisplay` `ReadOnlyDisplayAppearance.STATIC`.
    Parameters:
      `readOnlyControlStyle` - New readOnlyControlStyle value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `FormItemBaseStyle`

  - ### getReadOnlyControlStyle

    public String getReadOnlyControlStyle()
    Modified `control style` to apply when this item is `read-only` and is using `readOnlyDisplay` `ReadOnlyDisplayAppearance.STATIC`.
    Returns:
      Current readOnlyControlStyle value. Default value is null
    See Also:
      - `FormItemBaseStyle`

  - ### setReadOnlyDisplay

    public FormItem setReadOnlyDisplay(ReadOnlyDisplayAppearance readOnlyDisplay)
    If this item is `read-only`, how should this item be displayed to the user? If set, overrides the form-level `DynamicForm.readOnlyDisplay` default.
    If this method is called after the component has been drawn/initialized: Setter for `readOnlyDisplay`.

    Note that calling this method for a `ButtonItem` with `ButtonItem.enableWhen` set is an error, since `readOnlyDisplay` is then considered to always be "disabled".

    Parameters:
      `readOnlyDisplay` - new `readOnlyDisplay` value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `DynamicForm.setReadOnlyDisplay(com.smartgwt.client.types.ReadOnlyDisplayAppearance)`
      - `Appearance overview and related methods`

  - ### getReadOnlyDisplay

    public ReadOnlyDisplayAppearance getReadOnlyDisplay()
    If this item is `read-only`, how should this item be displayed to the user? If set, overrides the form-level `DynamicForm.readOnlyDisplay` default.
    Returns:
      Current readOnlyDisplay value. Default value is null
    See Also:
      - `DynamicForm.getReadOnlyDisplay()`
      - `Appearance overview and related methods`

  - ### setReadOnlyHover

    public FormItem setReadOnlyHover(String readOnlyHover)
    This text is shown as a tooltip prompt when the cursor hovers over this item and the item is `read-only`.

    Note that when the form is `disabled`, or when this item `suppresses hovers`, nothing will be shown.

    Parameters:
      `readOnlyHover` - New readOnlyHover value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `HTMLString`

  - ### getReadOnlyHover

    public String getReadOnlyHover()
    This text is shown as a tooltip prompt when the cursor hovers over this item and the item is `read-only`.

    Note that when the form is `disabled`, or when this item `suppresses hovers`, nothing will be shown.

    Returns:
      Current readOnlyHover value. Default value is null
    See Also:
      - `HTMLString`

  - ### setReadOnlyTextBoxStyle

    public FormItem setReadOnlyTextBoxStyle(String readOnlyTextBoxStyle)
    Base text box style to apply when this item is `read-only` and is using `readOnlyDisplay` `ReadOnlyDisplayAppearance.STATIC`. If set, overrides the form-level `DynamicForm.readOnlyTextBoxStyle` default.
    Parameters:
      `readOnlyTextBoxStyle` - New readOnlyTextBoxStyle value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `DynamicForm.setReadOnlyTextBoxStyle(java.lang.String)`
      - `FormItemBaseStyle`

  - ### getReadOnlyTextBoxStyle

    public String getReadOnlyTextBoxStyle()
    Base text box style to apply when this item is `read-only` and is using `readOnlyDisplay` `ReadOnlyDisplayAppearance.STATIC`. If set, overrides the form-level `DynamicForm.readOnlyTextBoxStyle` default.
    Returns:
      Current readOnlyTextBoxStyle value. Default value is null
    See Also:
      - `DynamicForm.getReadOnlyTextBoxStyle()`
      - `FormItemBaseStyle`

  - ### setReadOnlyWhen

    public FormItem setReadOnlyWhen(AdvancedCriteria readOnlyWhen)
    Criteria to be evaluated to determine whether this FormItem should be made `read-only`. Appearance when read-only is determined by `readOnlyDisplay`.

    Criteria are evaluated against the `form's current values` as well as the current `rule context`. Criteria are re-evaluated every time form values or the rule context changes, whether by end user action or by programmatic calls.

    A basic criteria uses textMatchStyle:"exact". When specified in `Component XML` this property allows `shorthand formats` for defining criteria.

    Note: A FormItem using readOnlyWhen must have a `name` defined. `shouldSaveValue` can be set to `false` to prevent the field from storing its value into the form's values.

    Parameters:
      `readOnlyWhen` - New readOnlyWhen value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Dynamic Rules`

  - ### getReadOnlyWhen

    public AdvancedCriteria getReadOnlyWhen()
    Criteria to be evaluated to determine whether this FormItem should be made `read-only`. Appearance when read-only is determined by `readOnlyDisplay`.

    Criteria are evaluated against the `form's current values` as well as the current `rule context`. Criteria are re-evaluated every time form values or the rule context changes, whether by end user action or by programmatic calls.

    A basic criteria uses textMatchStyle:"exact". When specified in `Component XML` this property allows `shorthand formats` for defining criteria.

    Note: A FormItem using readOnlyWhen must have a `name` defined. `shouldSaveValue` can be set to `false` to prevent the field from storing its value into the form's values.

    Returns:
      Current readOnlyWhen value. Default value is null
    See Also:
      - `Dynamic Rules`

  - ### setRedrawOnChange

    public FormItem setRedrawOnChange(Boolean redrawOnChange)
    If true, this item will cause the entire form to be redrawn when the item's "elementChanged" event is done firing
    Parameters:
      `redrawOnChange` - New redrawOnChange value. Default value is false
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getRedrawOnChange

    public Boolean getRedrawOnChange()
    If true, this item will cause the entire form to be redrawn when the item's "elementChanged" event is done firing
    Returns:
      Current redrawOnChange value. Default value is false

  - ### setRejectInvalidValueOnChange

    public FormItem setRejectInvalidValueOnChange(Boolean rejectInvalidValueOnChange)
    If validateOnChange is true, and validation fails for this item on change, with no suggested value, should we revert to the previous value, or continue to display the bad value entered by the user. May be set at the item or form level.

    Note : This is an advanced setting

    Parameters:
      `rejectInvalidValueOnChange` - New rejectInvalidValueOnChange value. Default value is false
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getRejectInvalidValueOnChange

    public Boolean getRejectInvalidValueOnChange()
    If validateOnChange is true, and validation fails for this item on change, with no suggested value, should we revert to the previous value, or continue to display the bad value entered by the user. May be set at the item or form level.
    Returns:
      Current rejectInvalidValueOnChange value. Default value is false

  - ### setRequired

    public FormItem setRequired(Boolean required)
    Whether a non-empty value is required for this field to pass validation.

    If the user does not fill in the required field, the error message to be shown will be taken from these properties in the following order: `requiredMessage`, `DynamicForm.requiredMessage`, `DataSource.requiredMessage`, `requiredField`.

    Note: if specified on a FormItem, `required` is only enforced on the client. `required` should generally be specified on a `DataSourceField`.
    If this method is called after the component has been drawn/initialized: Setter to mark this formItem as `required`, or not required at runtime. Note that an alternative approach to updating the `required` flag directly would be to simply use a `requiredIf` type validator.

    Note that this method will not re-validate this item by default or clear any existing validation errors. If desired, this may be achieved by calling `validate()` or `DynamicForm.clearErrors()`.

    Overrides:
      `setRequired` in class `Field`
    Parameters:
      `required` - new `required` value. Default value is false
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Validation overview and related methods`
      - Show & Hide Example

  - ### getRequired

    public Boolean getRequired()
    Whether a non-empty value is required for this field to pass validation.

    If the user does not fill in the required field, the error message to be shown will be taken from these properties in the following order: `requiredMessage`, `DynamicForm.requiredMessage`, `DataSource.requiredMessage`, `requiredField`.

    Note: if specified on a FormItem, `required` is only enforced on the client. `required` should generally be specified on a `DataSourceField`.

    Returns:
      Current required value. Default value is false
    See Also:
      - `Validation overview and related methods`
      - Show & Hide Example

  - ### setRequiredMessage

    public FormItem setRequiredMessage(String requiredMessage)
    The required message for required field errors.
    Parameters:
      `requiredMessage` - New requiredMessage value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `HTMLString`
      - `Validation overview and related methods`

  - ### getRequiredMessage

    public String getRequiredMessage()
    The required message for required field errors.
    Returns:
      Current requiredMessage value. Default value is null
    See Also:
      - `HTMLString`
      - `Validation overview and related methods`

  - ### setRequiredRightTitlePrefix

    public FormItem setRequiredRightTitlePrefix(String requiredRightTitlePrefix)
    The string prepended to this item's title if it is required and the `TitleOrientation` property is set to "right". The `DynamicForm.requiredRightTitlePrefix` is used by default.
    Parameters:
      `requiredRightTitlePrefix` - New requiredRightTitlePrefix value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setRequiredRightTitleSuffix(java.lang.String)`
      - `HTMLString`

  - ### getRequiredRightTitlePrefix

    public String getRequiredRightTitlePrefix()
    The string prepended to this item's title if it is required and the `TitleOrientation` property is set to "right". The `DynamicForm.requiredRightTitlePrefix` is used by default.
    Returns:
      Current requiredRightTitlePrefix value. Default value is null
    See Also:
      - `getRequiredRightTitleSuffix()`
      - `HTMLString`

  - ### setRequiredRightTitleSuffix

    public FormItem setRequiredRightTitleSuffix(String requiredRightTitleSuffix)
    The string appended to this item's title if it is required and the `TitleOrientation` property is set to "right". The `DynamicForm.requiredRightTitleSuffix` is used by default.
    Parameters:
      `requiredRightTitleSuffix` - New requiredRightTitleSuffix value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setRequiredRightTitlePrefix(java.lang.String)`
      - `HTMLString`

  - ### getRequiredRightTitleSuffix

    public String getRequiredRightTitleSuffix()
    The string appended to this item's title if it is required and the `TitleOrientation` property is set to "right". The `DynamicForm.requiredRightTitleSuffix` is used by default.
    Returns:
      Current requiredRightTitleSuffix value. Default value is null
    See Also:
      - `getRequiredRightTitlePrefix()`
      - `HTMLString`

  - ### setRequiredTitlePrefix

    public FormItem setRequiredTitlePrefix(String requiredTitlePrefix)
    The string prepended to this item's title if it is required. The `DynamicForm.requiredTitlePrefix` is used by default.
    Parameters:
      `requiredTitlePrefix` - New requiredTitlePrefix value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setRequiredTitleSuffix(java.lang.String)`
      - `HTMLString`

  - ### getRequiredTitlePrefix

    public String getRequiredTitlePrefix()
    The string prepended to this item's title if it is required. The `DynamicForm.requiredTitlePrefix` is used by default.
    Returns:
      Current requiredTitlePrefix value. Default value is null
    See Also:
      - `getRequiredTitleSuffix()`
      - `HTMLString`

  - ### setRequiredTitleSuffix

    public FormItem setRequiredTitleSuffix(String requiredTitleSuffix)
    The string appended to this item's title if it is required. The `DynamicForm.requiredTitleSuffix` is used by default.
    Parameters:
      `requiredTitleSuffix` - New requiredTitleSuffix value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setRequiredTitlePrefix(java.lang.String)`
      - `HTMLString`

  - ### getRequiredTitleSuffix

    public String getRequiredTitleSuffix()
    The string appended to this item's title if it is required. The `DynamicForm.requiredTitleSuffix` is used by default.
    Returns:
      Current requiredTitleSuffix value. Default value is null
    See Also:
      - `getRequiredTitlePrefix()`
      - `HTMLString`

  - ### setRequiredWhen

    public FormItem setRequiredWhen(Criteria requiredWhen)
    Criteria to be evaluated to determine whether this FormItem should be `required`.

    Criteria are evaluated against the `form's current values` as well as the current `rule context`. Criteria are re-evaluated every time form values or the rule context changes, whether by end user action or by programmatic calls.

    A basic criteria uses textMatchStyle:"exact". When specified in `Component XML` this property allows `shorthand formats` for defining criteria.

    Note: A FormItem using requiredWhen must have a `name` defined.

    Parameters:
      `requiredWhen` - New requiredWhen value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Dynamic Rules`

  - ### getRequiredWhen

    public Criteria getRequiredWhen()
    Criteria to be evaluated to determine whether this FormItem should be `required`.

    Criteria are evaluated against the `form's current values` as well as the current `rule context`. Criteria are re-evaluated every time form values or the rule context changes, whether by end user action or by programmatic calls.

    A basic criteria uses textMatchStyle:"exact". When specified in `Component XML` this property allows `shorthand formats` for defining criteria.

    Note: A FormItem using requiredWhen must have a `name` defined.

    Returns:
      Current requiredWhen value. Default value is null
    See Also:
      - `Dynamic Rules`

  - ### setRightTitlePrefix

    public FormItem setRightTitlePrefix(String rightTitlePrefix)
    The string prepended to this item's title when its titleOrientation is set to "right". The `DynamicForm.rightTitlePrefix` is used by default.
    Parameters:
      `rightTitlePrefix` - New rightTitlePrefix value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setRightTitleSuffix(java.lang.String)`
      - `HTMLString`

  - ### getRightTitlePrefix

    public String getRightTitlePrefix()
    The string prepended to this item's title when its titleOrientation is set to "right". The `DynamicForm.rightTitlePrefix` is used by default.
    Returns:
      Current rightTitlePrefix value. Default value is null
    See Also:
      - `getRightTitleSuffix()`
      - `HTMLString`

  - ### setRightTitleSuffix

    public FormItem setRightTitleSuffix(String rightTitleSuffix)
    The string appended to this item's title when its titleOrientation is set to "right". The `DynamicForm.rightTitleSuffix` is used by default.
    Parameters:
      `rightTitleSuffix` - New rightTitleSuffix value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setRightTitlePrefix(java.lang.String)`
      - `HTMLString`

  - ### getRightTitleSuffix

    public String getRightTitleSuffix()
    The string appended to this item's title when its titleOrientation is set to "right". The `DynamicForm.rightTitleSuffix` is used by default.
    Returns:
      Current rightTitleSuffix value. Default value is null
    See Also:
      - `getRightTitlePrefix()`
      - `HTMLString`

  - ### setRowSpan

    public FormItem setRowSpan(int rowSpan)
    Number of rows that this item spans
    Parameters:
      `rowSpan` - New rowSpan value. Default value is 1
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Form Layout`

  - ### getRowSpan

    public int getRowSpan()
    Number of rows that this item spans
    Returns:
      Current rowSpan value. Default value is 1
    See Also:
      - `Form Layout`

  - ### setSaveOnEnter

    public FormItem setSaveOnEnter(Boolean saveOnEnter)
    Set this to true to allow the parent form to save it's data when 'Enter' is pressed on this formItem and `saveOnEnter` is true on the parent form.
    Parameters:
      `saveOnEnter` - New saveOnEnter value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getSaveOnEnter

    public Boolean getSaveOnEnter()
    Set this to true to allow the parent form to save it's data when 'Enter' is pressed on this formItem and `saveOnEnter` is true on the parent form.
    Returns:
      Current saveOnEnter value. Default value is null

  - ### setSelectOnClick

    public FormItem setSelectOnClick(Boolean selectOnClick)
    Allows the `selectOnClick` behavior to be configured on a per-FormItem basis. Normally all items in a form default to the value of `DynamicForm.selectOnClick`.
    Parameters:
      `selectOnClick` - New selectOnClick value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Focus`

  - ### getSelectOnClick

    public Boolean getSelectOnClick()
    Allows the `selectOnClick` behavior to be configured on a per-FormItem basis. Normally all items in a form default to the value of `DynamicForm.selectOnClick`.
    Returns:
      Current selectOnClick value. Default value is null
    See Also:
      - `Focus`

  - ### setSelectOnFocus

    public FormItem setSelectOnFocus(Boolean selectOnFocus)
    Allows the `selectOnFocus` behavior to be configured on a per-FormItem basis. Normally all items in a form default to the value of `DynamicForm.selectOnFocus`.
    Parameters:
      `selectOnFocus` - New selectOnFocus value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Focus`

  - ### getSelectOnFocus

    public Boolean getSelectOnFocus()
    Allows the `selectOnFocus` behavior to be configured on a per-FormItem basis. Normally all items in a form default to the value of `DynamicForm.selectOnFocus`.
    Returns:
      Current selectOnFocus value. Default value is null
    See Also:
      - `Focus`

  - ### setShouldSaveValue

    public FormItem setShouldSaveValue(Boolean shouldSaveValue)
    Should this item's value be saved in the form's values and hence returned from `form.getValues()`?

    `shouldSaveValue:false` is used to mark formItems which do not correspond to the underlying data model and should not save a value into the form's `values`. Example includes visual separators, password re-type fields, or checkboxes used to show/hide other form items.

    A `shouldSaveValue:false` item should be given a value either via `defaultValue` or by calling `form.setValue(item, value)` or `formItem.setValue(value)`. Providing a value via `form.values` or `form.setValues()` will automatically switch the item to `shouldSaveValue:true`.

    Note that

    - if an item is shouldSaveValue true, but has no name, a warning is logged, and shouldSaveValue will be set to false.
    Parameters:
      `shouldSaveValue` - New shouldSaveValue value. Default value is true
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getShouldSaveValue

    public Boolean getShouldSaveValue()
    Should this item's value be saved in the form's values and hence returned from `form.getValues()`?

    `shouldSaveValue:false` is used to mark formItems which do not correspond to the underlying data model and should not save a value into the form's `values`. Example includes visual separators, password re-type fields, or checkboxes used to show/hide other form items.

    A `shouldSaveValue:false` item should be given a value either via `defaultValue` or by calling `form.setValue(item, value)` or `formItem.setValue(value)`. Providing a value via `form.values` or `form.setValues()` will automatically switch the item to `shouldSaveValue:true`.

    Note that

    - if an item is shouldSaveValue true, but has no name, a warning is logged, and shouldSaveValue will be set to false.
    Returns:
      Current shouldSaveValue value. Default value is true

  - ### setShowClippedTitleOnHover

    public FormItem setShowClippedTitleOnHover(boolean showClippedTitleOnHover)
    If true and the title is clipped, then a hover containing the full title of this item is enabled.

    A `TitleHoverEvent` is fired before the hover is displayed, allowing the hover to be canceled if desired. The HTML shown in the hover can be customized by setting a `FormItemHoverFormatter` on either this `FormItem` or the `DynamicForm`. See `setItemTitleHoverFormatter()`.

    If the item `suppresses hovers`, nothing will be shown.

    Parameters:
      `showClippedTitleOnHover` - New showClippedTitleOnHover value. Default value is true
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getShowClippedTitleOnHover

    public boolean getShowClippedTitleOnHover()
    If true and the title is clipped, then a hover containing the full title of this item is enabled.

    A `TitleHoverEvent` is fired before the hover is displayed, allowing the hover to be canceled if desired. The HTML shown in the hover can be customized by setting a `FormItemHoverFormatter` on either this `FormItem` or the `DynamicForm`. See `setItemTitleHoverFormatter()`.

    If the item `suppresses hovers`, nothing will be shown.

    Returns:
      Current showClippedTitleOnHover value. Default value is true

  - ### setShowClippedValueOnHover

    public FormItem setShowClippedValueOnHover(Boolean showClippedValueOnHover)
    If true and the value is clipped, then a hover containing the full value of this item is enabled.

    A `ValueHoverEvent` is fired before the hover is displayed, allowing the hover to be canceled if desired. The HTML shown in the hover can be customized by setting a `FormItemHoverFormatter` on either this `FormItem` or the `DynamicForm`. See `setItemValueHoverFormatter()`.

    If the item `suppresses hovers`, nothing will be shown.

    Parameters:
      `showClippedValueOnHover` - New showClippedValueOnHover value. Default value is true
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getShowClippedValueOnHover

    public Boolean getShowClippedValueOnHover()
    If true and the value is clipped, then a hover containing the full value of this item is enabled.

    A `ValueHoverEvent` is fired before the hover is displayed, allowing the hover to be canceled if desired. The HTML shown in the hover can be customized by setting a `FormItemHoverFormatter` on either this `FormItem` or the `DynamicForm`. See `setItemValueHoverFormatter()`.

    If the item `suppresses hovers`, nothing will be shown.

    Returns:
      Current showClippedValueOnHover value. Default value is true

  - ### setShowDeletions

    public FormItem setShowDeletions(Boolean showDeletions)
    For items that support `multiple values`, this causes distinct CSS styling to be applied to values that the user has unselected.

    Only allowed when `showPending` is `true`. Defaults to the form-level `DynamicForm.showDeletions` setting if set; otherwise, to the value of `showPending`.

    Only supported for `MultiComboBoxItem` and for `SelectItem` when `multiple:true` is set. The specific default behaviors are:

    - For `MultiComboBoxItem`, buttons corresponding to deleted values (also called "deselected buttons") will be disabled and have their `Button.baseStyle` set to `MultiComboBoxItem.deselectedButtonStyle`.
    - For a multiple `SelectItem`, `valueDeselectedCSSText` is applied to any deleted value in the text box. In addition, "Deselected" is appended to the cells' `ListGrid.baseStyle` for cells in the pickList menu corresponding to deleted values.

    NOTE: When a value is shown as deleted, this is not reflected to screen readers, and screen readers are instructed to ignore the deleted value. Therefore, it is not advisable to design a UI where it is necessary for the user to know whether a value is shown as deleted in order to work with the form.

    Note : This is an advanced setting

    Parameters:
      `showDeletions` - New showDeletions value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `DynamicForm.setShowDeletions(java.lang.Boolean)`

  - ### getShowDeletions

    public Boolean getShowDeletions()
    For items that support `multiple values`, this causes distinct CSS styling to be applied to values that the user has unselected.

    Only allowed when `showPending` is `true`. Defaults to the form-level `DynamicForm.showDeletions` setting if set; otherwise, to the value of `showPending`.

    Only supported for `MultiComboBoxItem` and for `SelectItem` when `multiple:true` is set. The specific default behaviors are:

    - For `MultiComboBoxItem`, buttons corresponding to deleted values (also called "deselected buttons") will be disabled and have their `Button.baseStyle` set to `MultiComboBoxItem.deselectedButtonStyle`.
    - For a multiple `SelectItem`, `valueDeselectedCSSText` is applied to any deleted value in the text box. In addition, "Deselected" is appended to the cells' `ListGrid.baseStyle` for cells in the pickList menu corresponding to deleted values.

    NOTE: When a value is shown as deleted, this is not reflected to screen readers, and screen readers are instructed to ignore the deleted value. Therefore, it is not advisable to design a UI where it is necessary for the user to know whether a value is shown as deleted in order to work with the form.

    Returns:
      Current showDeletions value. Default value is null
    See Also:
      - `DynamicForm.getShowDeletions()`

  - ### setShowDisabled

    public FormItem setShowDisabled(Boolean showDisabled)
    When this item is disabled, should it be re-styled to indicate its disabled state?

    See `FormItemStyling` for more details on formItem styling.
    If this method is called after the component has been drawn/initialized: Setter method for `showDisabled`

    Note : This is an advanced setting

    Parameters:
      `showDisabled` - new showDisabled setting. Default value is true
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setCellStyle(java.lang.String)`
      - `FormItem Styling`

  - ### getShowDisabled

    public Boolean getShowDisabled()
    When this item is disabled, should it be re-styled to indicate its disabled state?

    See `FormItemStyling` for more details on formItem styling.

    Returns:
      Current showDisabled value. Default value is true
    See Also:
      - `getCellStyle()`
      - `FormItem Styling`

  - ### setShowDisabledIconsOnFocus

    public FormItem setShowDisabledIconsOnFocus(Boolean showDisabledIconsOnFocus)
    If `showIconsOnFocus` is true, should icons marked as disabled be shown on focus?

    Default setting is `false` - it is not commonly desirable to present a user with a disabled icon on focus.

    Can be overridden at the icon level by `FormItemIcon.showDisabledOnFocus`

    Note : This is an advanced setting

    Parameters:
      `showDisabledIconsOnFocus` - New showDisabledIconsOnFocus value. Default value is false
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getShowDisabledIconsOnFocus

    public Boolean getShowDisabledIconsOnFocus()
    If `showIconsOnFocus` is true, should icons marked as disabled be shown on focus?

    Default setting is `false` - it is not commonly desirable to present a user with a disabled icon on focus.

    Can be overridden at the icon level by `FormItemIcon.showDisabledOnFocus`

    Returns:
      Current showDisabledIconsOnFocus value. Default value is false

  - ### setShowDisabledPickerIconOnFocus

    public FormItem setShowDisabledPickerIconOnFocus(Boolean showDisabledPickerIconOnFocus)
    If `showPickerIconOnFocus` is true, should the picker icon be shown on focus if it is disabled (as in a read-only item, for example?)

    Default setting is `false` - it is not commonly desirable to present a user with a disabled icon on focus.

    Can be overridden at the icon level by `FormItemIcon.showDisabledOnFocus`

    Note : This is an advanced setting

    Parameters:
      `showDisabledPickerIconOnFocus` - New showDisabledPickerIconOnFocus value. Default value is false
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getShowDisabledPickerIconOnFocus

    public Boolean getShowDisabledPickerIconOnFocus()
    If `showPickerIconOnFocus` is true, should the picker icon be shown on focus if it is disabled (as in a read-only item, for example?)

    Default setting is `false` - it is not commonly desirable to present a user with a disabled icon on focus.

    Can be overridden at the icon level by `FormItemIcon.showDisabledOnFocus`

    Returns:
      Current showDisabledPickerIconOnFocus value. Default value is false

  - ### setShowErrorIcon

    public FormItem setShowErrorIcon(Boolean showErrorIcon)
    `showErrorIcons`, `showErrorText`, `errorOrientation`, and `showErrorStyle` control how validation errors are displayed when they are displayed inline in the form (next to the form item where there is a validation error). To instead display all errors at the top of the form, set `showInlineErrors`:false.

    `showErrorIcons`, `showErrorText`, `errorOrientation` and `showErrorStyle` are all boolean properties, and can be set on a DynamicForm to control the behavior form-wide, or set on individual FormItems.

    The HTML displayed next to a form item with errors is generated by `getErrorHTML()`. The default implementation of that method respects `showErrorIcons` and `showErrorText` as follows:

    `showErrorIcons`, or `showErrorIcon` at the FormItem level controls whether an error icon should appear next to fields which have validation errors. The icon's appearance is governed by `errorIconSrc`, `errorIconWidth` and `errorIconHeight`

    `showErrorText` determines whether the text of the validation error should be displayed next to fields which have validation errors. The attribute `DynamicForm.showTitlesWithErrorMessages` may be set to prefix error messages with the form item's title + `":"` (may be desired if the item has `showTitle` set to false).
    If `showErrorText` is unset, the error text will be shown if `DynamicForm.linearMode` is true (or `DynamicForm.linearOnMobile` is true for mobile devices), otherwise it will not be shown.

    In addition to this:

    `DynamicForm.errorOrientation` controls where the error HTML should appear relative to form items. Therefore the combination of `showErrorText``:false` and `errorOrientation``:"left"` creates a compact validation error display consisting of just an icon, to the left of the item with the error message available via a hover (similar appearance to ListGrid validation error display).
    If `errorOrientation` is unset, the error orientation will default to "top" if `DynamicForm.linearMode` is enabled (or `DynamicForm.linearOnMobile` is true for mobile devices) and error text is not showing, "left" otherwise.

    `showErrorStyle` determines whether fields with validation errors should have special styling applied to them. Error styling is achieved by applying suffixes to existing styling applied to various parts of the form item. See `FormItemBaseStyle` for more on this.

    Parameters:
      `showErrorIcon` - New showErrorIcon value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Appearance overview and related methods`

  - ### getShowErrorIcon

    public Boolean getShowErrorIcon()
    `showErrorIcons`, `showErrorText`, `errorOrientation`, and `showErrorStyle` control how validation errors are displayed when they are displayed inline in the form (next to the form item where there is a validation error). To instead display all errors at the top of the form, set `showInlineErrors`:false.

    `showErrorIcons`, `showErrorText`, `errorOrientation` and `showErrorStyle` are all boolean properties, and can be set on a DynamicForm to control the behavior form-wide, or set on individual FormItems.

    The HTML displayed next to a form item with errors is generated by `getErrorHTML()`. The default implementation of that method respects `showErrorIcons` and `showErrorText` as follows:

    `showErrorIcons`, or `showErrorIcon` at the FormItem level controls whether an error icon should appear next to fields which have validation errors. The icon's appearance is governed by `errorIconSrc`, `errorIconWidth` and `errorIconHeight`

    `showErrorText` determines whether the text of the validation error should be displayed next to fields which have validation errors. The attribute `DynamicForm.showTitlesWithErrorMessages` may be set to prefix error messages with the form item's title + `":"` (may be desired if the item has `showTitle` set to false).
    If `showErrorText` is unset, the error text will be shown if `DynamicForm.linearMode` is true (or `DynamicForm.linearOnMobile` is true for mobile devices), otherwise it will not be shown.

    In addition to this:

    `DynamicForm.errorOrientation` controls where the error HTML should appear relative to form items. Therefore the combination of `showErrorText``:false` and `errorOrientation``:"left"` creates a compact validation error display consisting of just an icon, to the left of the item with the error message available via a hover (similar appearance to ListGrid validation error display).
    If `errorOrientation` is unset, the error orientation will default to "top" if `DynamicForm.linearMode` is enabled (or `DynamicForm.linearOnMobile` is true for mobile devices) and error text is not showing, "left" otherwise.

    `showErrorStyle` determines whether fields with validation errors should have special styling applied to them. Error styling is achieved by applying suffixes to existing styling applied to various parts of the form item. See `FormItemBaseStyle` for more on this.

    Returns:
      Current showErrorIcon value. Default value is null
    See Also:
      - `Appearance overview and related methods`

  - ### setShowErrorIconInline

    public FormItem setShowErrorIconInline(Boolean showErrorIconInline)
    When set to true, this attribute renders the `error-icon` `inline` in the FormItem, next to other icons, instead of in a separate error-element outside of the item's main editor. When rendering the error-icon inline, the `error-text` is not displayed but is available in the icon's hover.

    `Icon-properties` can be applied to the error-icon via `errorIconProperties`.

    Note : This is an advanced setting

    Parameters:
      `showErrorIconInline` - New showErrorIconInline value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getShowErrorIconInline

    public Boolean getShowErrorIconInline()
    When set to true, this attribute renders the `error-icon` `inline` in the FormItem, next to other icons, instead of in a separate error-element outside of the item's main editor. When rendering the error-icon inline, the `error-text` is not displayed but is available in the icon's hover.

    `Icon-properties` can be applied to the error-icon via `errorIconProperties`.

    Returns:
      Current showErrorIconInline value. Default value is null

  - ### setShowErrorStyle

    public FormItem setShowErrorStyle(Boolean showErrorStyle)
    `showErrorIcons`, `showErrorText`, `errorOrientation`, and `showErrorStyle` control how validation errors are displayed when they are displayed inline in the form (next to the form item where there is a validation error). To instead display all errors at the top of the form, set `showInlineErrors`:false.

    `showErrorIcons`, `showErrorText`, `errorOrientation` and `showErrorStyle` are all boolean properties, and can be set on a DynamicForm to control the behavior form-wide, or set on individual FormItems.

    The HTML displayed next to a form item with errors is generated by `getErrorHTML()`. The default implementation of that method respects `showErrorIcons` and `showErrorText` as follows:

    `showErrorIcons`, or `showErrorIcon` at the FormItem level controls whether an error icon should appear next to fields which have validation errors. The icon's appearance is governed by `errorIconSrc`, `errorIconWidth` and `errorIconHeight`

    `showErrorText` determines whether the text of the validation error should be displayed next to fields which have validation errors. The attribute `DynamicForm.showTitlesWithErrorMessages` may be set to prefix error messages with the form item's title + `":"` (may be desired if the item has `showTitle` set to false).
    If `showErrorText` is unset, the error text will be shown if `DynamicForm.linearMode` is true (or `DynamicForm.linearOnMobile` is true for mobile devices), otherwise it will not be shown.

    In addition to this:

    `DynamicForm.errorOrientation` controls where the error HTML should appear relative to form items. Therefore the combination of `showErrorText``:false` and `errorOrientation``:"left"` creates a compact validation error display consisting of just an icon, to the left of the item with the error message available via a hover (similar appearance to ListGrid validation error display).
    If `errorOrientation` is unset, the error orientation will default to "top" if `DynamicForm.linearMode` is enabled (or `DynamicForm.linearOnMobile` is true for mobile devices) and error text is not showing, "left" otherwise.

    `showErrorStyle` determines whether fields with validation errors should have special styling applied to them. Error styling is achieved by applying suffixes to existing styling applied to various parts of the form item. See `FormItemBaseStyle` for more on this.

    Parameters:
      `showErrorStyle` - New showErrorStyle value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setCellStyle(java.lang.String)`
      - `Appearance overview and related methods`

  - ### getShowErrorStyle

    public Boolean getShowErrorStyle()
    `showErrorIcons`, `showErrorText`, `errorOrientation`, and `showErrorStyle` control how validation errors are displayed when they are displayed inline in the form (next to the form item where there is a validation error). To instead display all errors at the top of the form, set `showInlineErrors`:false.

    `showErrorIcons`, `showErrorText`, `errorOrientation` and `showErrorStyle` are all boolean properties, and can be set on a DynamicForm to control the behavior form-wide, or set on individual FormItems.

    The HTML displayed next to a form item with errors is generated by `getErrorHTML()`. The default implementation of that method respects `showErrorIcons` and `showErrorText` as follows:

    `showErrorIcons`, or `showErrorIcon` at the FormItem level controls whether an error icon should appear next to fields which have validation errors. The icon's appearance is governed by `errorIconSrc`, `errorIconWidth` and `errorIconHeight`

    `showErrorText` determines whether the text of the validation error should be displayed next to fields which have validation errors. The attribute `DynamicForm.showTitlesWithErrorMessages` may be set to prefix error messages with the form item's title + `":"` (may be desired if the item has `showTitle` set to false).
    If `showErrorText` is unset, the error text will be shown if `DynamicForm.linearMode` is true (or `DynamicForm.linearOnMobile` is true for mobile devices), otherwise it will not be shown.

    In addition to this:

    `DynamicForm.errorOrientation` controls where the error HTML should appear relative to form items. Therefore the combination of `showErrorText``:false` and `errorOrientation``:"left"` creates a compact validation error display consisting of just an icon, to the left of the item with the error message available via a hover (similar appearance to ListGrid validation error display).
    If `errorOrientation` is unset, the error orientation will default to "top" if `DynamicForm.linearMode` is enabled (or `DynamicForm.linearOnMobile` is true for mobile devices) and error text is not showing, "left" otherwise.

    `showErrorStyle` determines whether fields with validation errors should have special styling applied to them. Error styling is achieved by applying suffixes to existing styling applied to various parts of the form item. See `FormItemBaseStyle` for more on this.

    Returns:
      Current showErrorStyle value. Default value is null
    See Also:
      - `getCellStyle()`
      - `Appearance overview and related methods`

  - ### setShowErrorText

    public FormItem setShowErrorText(Boolean showErrorText)
    `showErrorIcons`, `showErrorText`, `errorOrientation`, and `showErrorStyle` control how validation errors are displayed when they are displayed inline in the form (next to the form item where there is a validation error). To instead display all errors at the top of the form, set `showInlineErrors`:false.

    `showErrorIcons`, `showErrorText`, `errorOrientation` and `showErrorStyle` are all boolean properties, and can be set on a DynamicForm to control the behavior form-wide, or set on individual FormItems.

    The HTML displayed next to a form item with errors is generated by `getErrorHTML()`. The default implementation of that method respects `showErrorIcons` and `showErrorText` as follows:

    `showErrorIcons`, or `showErrorIcon` at the FormItem level controls whether an error icon should appear next to fields which have validation errors. The icon's appearance is governed by `errorIconSrc`, `errorIconWidth` and `errorIconHeight`

    `showErrorText` determines whether the text of the validation error should be displayed next to fields which have validation errors. The attribute `DynamicForm.showTitlesWithErrorMessages` may be set to prefix error messages with the form item's title + `":"` (may be desired if the item has `showTitle` set to false).
    If `showErrorText` is unset, the error text will be shown if `DynamicForm.linearMode` is true (or `DynamicForm.linearOnMobile` is true for mobile devices), otherwise it will not be shown.

    In addition to this:

    `DynamicForm.errorOrientation` controls where the error HTML should appear relative to form items. Therefore the combination of `showErrorText``:false` and `errorOrientation``:"left"` creates a compact validation error display consisting of just an icon, to the left of the item with the error message available via a hover (similar appearance to ListGrid validation error display).
    If `errorOrientation` is unset, the error orientation will default to "top" if `DynamicForm.linearMode` is enabled (or `DynamicForm.linearOnMobile` is true for mobile devices) and error text is not showing, "left" otherwise.

    `showErrorStyle` determines whether fields with validation errors should have special styling applied to them. Error styling is achieved by applying suffixes to existing styling applied to various parts of the form item. See `FormItemBaseStyle` for more on this.

    Parameters:
      `showErrorText` - New showErrorText value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Appearance overview and related methods`

  - ### getShowErrorText

    public Boolean getShowErrorText()
    `showErrorIcons`, `showErrorText`, `errorOrientation`, and `showErrorStyle` control how validation errors are displayed when they are displayed inline in the form (next to the form item where there is a validation error). To instead display all errors at the top of the form, set `showInlineErrors`:false.

    `showErrorIcons`, `showErrorText`, `errorOrientation` and `showErrorStyle` are all boolean properties, and can be set on a DynamicForm to control the behavior form-wide, or set on individual FormItems.

    The HTML displayed next to a form item with errors is generated by `getErrorHTML()`. The default implementation of that method respects `showErrorIcons` and `showErrorText` as follows:

    `showErrorIcons`, or `showErrorIcon` at the FormItem level controls whether an error icon should appear next to fields which have validation errors. The icon's appearance is governed by `errorIconSrc`, `errorIconWidth` and `errorIconHeight`

    `showErrorText` determines whether the text of the validation error should be displayed next to fields which have validation errors. The attribute `DynamicForm.showTitlesWithErrorMessages` may be set to prefix error messages with the form item's title + `":"` (may be desired if the item has `showTitle` set to false).
    If `showErrorText` is unset, the error text will be shown if `DynamicForm.linearMode` is true (or `DynamicForm.linearOnMobile` is true for mobile devices), otherwise it will not be shown.

    In addition to this:

    `DynamicForm.errorOrientation` controls where the error HTML should appear relative to form items. Therefore the combination of `showErrorText``:false` and `errorOrientation``:"left"` creates a compact validation error display consisting of just an icon, to the left of the item with the error message available via a hover (similar appearance to ListGrid validation error display).
    If `errorOrientation` is unset, the error orientation will default to "top" if `DynamicForm.linearMode` is enabled (or `DynamicForm.linearOnMobile` is true for mobile devices) and error text is not showing, "left" otherwise.

    `showErrorStyle` determines whether fields with validation errors should have special styling applied to them. Error styling is achieved by applying suffixes to existing styling applied to various parts of the form item. See `FormItemBaseStyle` for more on this.

    Returns:
      Current showErrorText value. Default value is null
    See Also:
      - `Appearance overview and related methods`

  - ### setShowFocused

    public FormItem setShowFocused(Boolean showFocused)
    When this item receives focus, should it be re-styled to indicate it has focus?

    See `FormItemStyling` for more details on formItem styling.

    Note : This is an advanced setting

    Parameters:
      `showFocused` - New showFocused value. Default value is false
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setCellStyle(java.lang.String)`
      - `FormItem Styling`

  - ### getShowFocused

    public Boolean getShowFocused()
    When this item receives focus, should it be re-styled to indicate it has focus?

    See `FormItemStyling` for more details on formItem styling.

    Returns:
      Current showFocused value. Default value is false
    See Also:
      - `getCellStyle()`
      - `FormItem Styling`

  - ### setShowFocusedErrorState

    public FormItem setShowFocusedErrorState(Boolean showFocusedErrorState)
    If set to true, when an item has errors and is focused, an "ErrorFocused" suffix will appear on the stylename.

    Note : This is an advanced setting

    Parameters:
      `showFocusedErrorState` - New showFocusedErrorState value. Default value is false
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setCellStyle(java.lang.String)`
      - `Appearance overview and related methods`

  - ### getShowFocusedErrorState

    public Boolean getShowFocusedErrorState()
    If set to true, when an item has errors and is focused, an "ErrorFocused" suffix will appear on the stylename.
    Returns:
      Current showFocusedErrorState value. Default value is false
    See Also:
      - `getCellStyle()`
      - `Appearance overview and related methods`

  - ### setShowFocusedIcons

    public FormItem setShowFocusedIcons(Boolean showFocusedIcons)
    If we're showing icons, should we change their image source to the appropriate focused source when this item has focus? Can be overridden on a per icon basis by the formItemIcon `showFocused` property.

    Note : This is an advanced setting

    Parameters:
      `showFocusedIcons` - New showFocusedIcons value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getShowFocusedIcons

    public Boolean getShowFocusedIcons()
    If we're showing icons, should we change their image source to the appropriate focused source when this item has focus? Can be overridden on a per icon basis by the formItemIcon `showFocused` property.
    Returns:
      Current showFocusedIcons value. Default value is null

  - ### setShowFocusedPickerIcon

    public FormItem setShowFocusedPickerIcon(Boolean showFocusedPickerIcon)
    If `showPickerIcon` is true for this item, should the picker icon show a focused image when the form item has focus?
    Parameters:
      `showFocusedPickerIcon` - New showFocusedPickerIcon value. Default value is false
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getShowFocusedPickerIcon

    public Boolean getShowFocusedPickerIcon()
    If `showPickerIcon` is true for this item, should the picker icon show a focused image when the form item has focus?
    Returns:
      Current showFocusedPickerIcon value. Default value is false

  - ### setShowHint

    public FormItem setShowHint(Boolean showHint)
    If a hint is defined for this form item, should it be shown?

    Note : This is an advanced setting

    Parameters:
      `showHint` - New showHint value. Default value is true
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Appearance overview and related methods`

  - ### getShowHint

    public Boolean getShowHint()
    If a hint is defined for this form item, should it be shown?
    Returns:
      Current showHint value. Default value is true
    See Also:
      - `Appearance overview and related methods`

  - ### setShowIcons

    public FormItem setShowIcons(Boolean showIcons)
    Set to false to suppress writing out any `icons` for this item.

    Note : This is an advanced setting

    Parameters:
      `showIcons` - New showIcons value. Default value is true
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getShowIcons

    public Boolean getShowIcons()
    Set to false to suppress writing out any `icons` for this item.
    Returns:
      Current showIcons value. Default value is true

  - ### setShowIconsOnFocus

    public FormItem setShowIconsOnFocus(Boolean showIconsOnFocus)
    Show the `icons` when the item gets focus, and hide them when it loses focus. Can be overridden at the icon level by `FormItemIcon.showOnFocus`.

    Note that icons marked as disabled will not be shown on focus even if this flag is true by default. This may be overridden by `showDisabledIconsOnFocus`.
    If this method is called after the component has been drawn/initialized: Sets `showIconsOnFocus` and causes the visibility of all `icons` to be updated and the item redrawn as appropriate.

    Note : This is an advanced setting

    Parameters:
      `showIconsOnFocus` - new value of `showIconsOnFocus`. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getShowIconsOnFocus

    public Boolean getShowIconsOnFocus()
    Show the `icons` when the item gets focus, and hide them when it loses focus. Can be overridden at the icon level by `FormItemIcon.showOnFocus`.

    Note that icons marked as disabled will not be shown on focus even if this flag is true by default. This may be overridden by `showDisabledIconsOnFocus`.

    Returns:
      Current showIconsOnFocus value. Default value is null

  - ### setShowImageAsURL

    public FormItem setShowImageAsURL(Boolean showImageAsURL)
    For fields of `type:"image"`, if the field is non editable, and being displayed with `readOnlyDisplay:"static"`, should the value (URL) be displayed as text, or should an image be rendered?

    If unset, `DynamicForm.showImageAsURL` will be consulted instead.

    Parameters:
      `showImageAsURL` - New showImageAsURL value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getShowImageAsURL

    public Boolean getShowImageAsURL()
    For fields of `type:"image"`, if the field is non editable, and being displayed with `readOnlyDisplay:"static"`, should the value (URL) be displayed as text, or should an image be rendered?

    If unset, `DynamicForm.showImageAsURL` will be consulted instead.

    Returns:
      Current showImageAsURL value. Default value is null

  - ### setShowOldValueInHover

    public FormItem setShowOldValueInHover(Boolean showOldValueInHover)
    Causes the original value to be shown to the end user when the user hovers over the FormItem as such (when the `FormItem.itemHover()` event would fire).

    When `showOldValueInHover` and the form's `DynamicForm.showOldValueInHover` are both unset, defaults to the value of `showPending`.

    The message shown is controlled by `originalValueMessage`, unless the item is `disabled` and `disabledHover` is set - in this case, the hover shows the `disabledHover` HTML.

    If the item `suppresses hovers`, nothing will be shown.

    Note : This is an advanced setting

    Parameters:
      `showOldValueInHover` - New showOldValueInHover value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getShowOldValueInHover

    public Boolean getShowOldValueInHover()
    Causes the original value to be shown to the end user when the user hovers over the FormItem as such (when the `FormItem.itemHover()` event would fire).

    When `showOldValueInHover` and the form's `DynamicForm.showOldValueInHover` are both unset, defaults to the value of `showPending`.

    The message shown is controlled by `originalValueMessage`, unless the item is `disabled` and `disabledHover` is set - in this case, the hover shows the `disabledHover` HTML.

    If the item `suppresses hovers`, nothing will be shown.

    Returns:
      Current showOldValueInHover value. Default value is null

  - ### setShowOver

    public FormItem setShowOver(boolean showOver)
    When the user rolls over this item, should it be re-styled to indicate it has focus?

    When enabled, the "Over" styling is applied to the text box, control table (if present), and pickerIcon (if present), and any icons where `FormItemIcon.showOver` is true and `FormItemIcon.showOverWhen` is set to "textBox".
    These behaviors can be disabled piecemeal via `updateTextBoxOnOver`, `updateControlOnOver` and `updatePickerIconOnOver` properties.

    Developers may also show rollover styling for other icons (see `showOverIcons` and `FormItemIcon.showOverWhen`).

    See `FormItemStyling` for more details on formItem styling.

    Note : This is an advanced setting

    Parameters:
      `showOver` - New showOver value. Default value is false
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `FormItem Styling`

  - ### getShowOver

    public boolean getShowOver()
    When the user rolls over this item, should it be re-styled to indicate it has focus?

    When enabled, the "Over" styling is applied to the text box, control table (if present), and pickerIcon (if present), and any icons where `FormItemIcon.showOver` is true and `FormItemIcon.showOverWhen` is set to "textBox".
    These behaviors can be disabled piecemeal via `updateTextBoxOnOver`, `updateControlOnOver` and `updatePickerIconOnOver` properties.

    Developers may also show rollover styling for other icons (see `showOverIcons` and `FormItemIcon.showOverWhen`).

    See `FormItemStyling` for more details on formItem styling.

    Returns:
      Current showOver value. Default value is false
    See Also:
      - `FormItem Styling`

  - ### setShowOverIcons

    public FormItem setShowOverIcons(Boolean showOverIcons)
    If we're showing icons, should we change their image source to the appropriate over source when the user rolls over (or puts focus onto) them? Can be overridden on a per icon basis by the formItemIcon `showOver` property.

    Note : This is an advanced setting

    Parameters:
      `showOverIcons` - New showOverIcons value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getShowOverIcons

    public Boolean getShowOverIcons()
    If we're showing icons, should we change their image source to the appropriate over source when the user rolls over (or puts focus onto) them? Can be overridden on a per icon basis by the formItemIcon `showOver` property.
    Returns:
      Current showOverIcons value. Default value is null

  - ### setShowPending

    public FormItem setShowPending(Boolean showPending)
    When set to `true`, this property adds the optional "Pending" suffix to the CSS styles applied to the widget if the current value of the item differs from the value that would be restored by invoking `DynamicForm.resetValues()`. See `FormItemBaseStyle` for details.

    `shouldSaveValue` must be `true` for this setting to have an effect.

    Styling of the value is updated only after the `FormItem.change()` event is processed, so depending on the value of `changeOnKeypress`, styling may be updated immediately on keystroke or only when the user leaves the field.

    Default styling is provided for the Enterprise, EnterpriseBlue, and Graphite skins only. `showPending` should not be enabled for an item when using a skin without default styling unless the default `FormItem.pendingStatusChanged()` behavior is canceled and a custom pending visual state is implemented by the item.

    On the other hand, when set to `true` and if `canHover` is also true, a hover will appear, displaying the old value and controlled by `showOldValueInHover`, `originalValueMessage` and `nullOriginalValueText`. Additionally, if the new value is `clipped`, it will be shown in the hover as well.

    NOTE: Whether an item is shown as pending is not reflected to screen readers. Therefore, it is not advisable to design a UI where it is necessary for the user to know whether an item is shown as pending in order to work with the form.

    Note : This is an advanced setting

    Parameters:
      `showPending` - New showPending value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `PendingStatusChangedEvent`
      - Pending Values Example

  - ### getShowPending

    public Boolean getShowPending()
    When set to `true`, this property adds the optional "Pending" suffix to the CSS styles applied to the widget if the current value of the item differs from the value that would be restored by invoking `DynamicForm.resetValues()`. See `FormItemBaseStyle` for details.

    `shouldSaveValue` must be `true` for this setting to have an effect.

    Styling of the value is updated only after the `FormItem.change()` event is processed, so depending on the value of `changeOnKeypress`, styling may be updated immediately on keystroke or only when the user leaves the field.

    Default styling is provided for the Enterprise, EnterpriseBlue, and Graphite skins only. `showPending` should not be enabled for an item when using a skin without default styling unless the default `FormItem.pendingStatusChanged()` behavior is canceled and a custom pending visual state is implemented by the item.

    On the other hand, when set to `true` and if `canHover` is also true, a hover will appear, displaying the old value and controlled by `showOldValueInHover`, `originalValueMessage` and `nullOriginalValueText`. Additionally, if the new value is `clipped`, it will be shown in the hover as well.

    NOTE: Whether an item is shown as pending is not reflected to screen readers. Therefore, it is not advisable to design a UI where it is necessary for the user to know whether an item is shown as pending in order to work with the form.

    Returns:
      Current showPending value. Default value is null
    See Also:
      - `PendingStatusChangedEvent`
      - Pending Values Example

  - ### setShowPickerIcon

    public FormItem setShowPickerIcon(Boolean showPickerIcon)
    Should we show a special 'picker' `icon` for this form item? Picker icons are customizable via `pickerIconProperties`. By default they will be rendered inside the form item's `"control box"` area. By default clicking the pickerIcon will call `showPicker()`.
    Parameters:
      `showPickerIcon` - New showPickerIcon value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getShowPickerIcon

    public Boolean getShowPickerIcon()
    Should we show a special 'picker' `icon` for this form item? Picker icons are customizable via `pickerIconProperties`. By default they will be rendered inside the form item's `"control box"` area. By default clicking the pickerIcon will call `showPicker()`.
    Returns:
      Current showPickerIcon value. Default value is null

  - ### setShowPickerIconOnFocus

    public FormItem setShowPickerIconOnFocus(Boolean showPickerIconOnFocus)
    Show the picker icon when the item gets focus, and hide it when it loses focus. Can be overridden at the icon level by `FormItemIcon.showOnFocus`.

    Note that a pickerIcon marked as disabled will not be shown on focus even if this flag is true by default. This may be overridden by `showDisabledIconsOnFocus`.
    If this method is called after the component has been drawn/initialized: Sets `showPickerIconOnFocus` and causes the visibility of the picker icon to be updated and the item redrawn as appropriate.

    Note : This is an advanced setting

    Parameters:
      `showPickerIconOnFocus` - new value of `showPickerIconOnFocus`. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getShowPickerIconOnFocus

    public Boolean getShowPickerIconOnFocus()
    Show the picker icon when the item gets focus, and hide it when it loses focus. Can be overridden at the icon level by `FormItemIcon.showOnFocus`.

    Note that a pickerIcon marked as disabled will not be shown on focus even if this flag is true by default. This may be overridden by `showDisabledIconsOnFocus`.

    Returns:
      Current showPickerIconOnFocus value. Default value is null

  - ### setShowRTL

    public FormItem setShowRTL(boolean showRTL)
    When this item is in RTL mode, should its style name include an "RTL" suffix?

    Note : This is an advanced setting

    Parameters:
      `showRTL` - New showRTL value. Default value is false
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setCellStyle(java.lang.String)`
      - `Appearance overview and related methods`

  - ### getShowRTL

    public boolean getShowRTL()
    When this item is in RTL mode, should its style name include an "RTL" suffix?
    Returns:
      Current showRTL value. Default value is false
    See Also:
      - `getCellStyle()`
      - `Appearance overview and related methods`

  - ### setShowTitle

    public FormItem setShowTitle(Boolean showTitle)
    Should we show a title cell for this formItem?

    Note: the default value of this attribute is overridden by some subclasses.

    Parameters:
      `showTitle` - New showTitle value. Default value is true
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getShowTitle

    public Boolean getShowTitle()
    Should we show a title cell for this formItem?

    Note: the default value of this attribute is overridden by some subclasses.

    Returns:
      Current showTitle value. Default value is true

  - ### setShowValueIconOnly

    public FormItem setShowValueIconOnly(Boolean showValueIconOnly)
    If `valueIcons` is set, this property may be set to show the valueIcon only and prevent the standard form item element or text from displaying
    Parameters:
      `showValueIconOnly` - New showValueIconOnly value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getShowValueIconOnly

    public Boolean getShowValueIconOnly()
    If `valueIcons` is set, this property may be set to show the valueIcon only and prevent the standard form item element or text from displaying
    Returns:
      Current showValueIconOnly value. Default value is null

  - ### setShowVoiceAssistIcon

    public FormItem setShowVoiceAssistIcon(Boolean showVoiceAssistIcon)
    When true, automatically adds an inline VoiceAssist icon to this item's `icons` array. The icon appears when the item has focus and, when activated, begins value-dictation so the user can speak a new value for the field.

    If unset, the value is inherited from `DynamicForm.showVoiceAssistIcon`.

    Only effective on items where `supportsValueDictation()` returns true (currently `TextItem` and `TextAreaItem`). On items that do not support value-dictation, this property is ignored. Also has no effect unless VoiceAssist has been enabled.

    The same icon can also be added manually by including the string `"voiceAssist"` in the `icons` array.

    Note : This is an advanced setting

    Parameters:
      `showVoiceAssistIcon` - New showVoiceAssistIcon value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getShowVoiceAssistIcon

    public Boolean getShowVoiceAssistIcon()
    When true, automatically adds an inline VoiceAssist icon to this item's `icons` array. The icon appears when the item has focus and, when activated, begins value-dictation so the user can speak a new value for the field.

    If unset, the value is inherited from `DynamicForm.showVoiceAssistIcon`.

    Only effective on items where `supportsValueDictation()` returns true (currently `TextItem` and `TextAreaItem`). On items that do not support value-dictation, this property is ignored. Also has no effect unless VoiceAssist has been enabled.

    The same icon can also be added manually by including the string `"voiceAssist"` in the `icons` array.

    Returns:
      Current showVoiceAssistIcon value. Default value is null

  - ### setStartRow

    public FormItem setStartRow(Boolean startRow)
    Whether this item should always start a new row in the form layout.
    Parameters:
      `startRow` - New startRow value. Default value is false
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setLinearStartRow(int)`
      - `Form Layout`

  - ### getStartRow

    public Boolean getStartRow()
    Whether this item should always start a new row in the form layout.
    Returns:
      Current startRow value. Default value is false
    See Also:
      - `getLinearStartRow()`
      - `Form Layout`

  - ### setStaticHeight

    public FormItem setStaticHeight(Integer staticHeight)
    Height of the FormItem when `canEdit` is false and `readOnlyDisplay` is "static". The normal `height` is used if this property is not set.
    Parameters:
      `staticHeight` - New staticHeight value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setHeight(int)`
      - `Form Layout`

  - ### getStaticHeight

    public Integer getStaticHeight()
    Height of the FormItem when `canEdit` is false and `readOnlyDisplay` is "static". The normal `height` is used if this property is not set.
    Returns:
      Current staticHeight value. Default value is null
    See Also:
      - `getHeight()`
      - `Form Layout`

  - ### setStopOnError

    public FormItem setStopOnError(Boolean stopOnError)
    Indicates that if validation fails, the user should not be allowed to exit the field - focus will be forced back into the field until the error is corrected.

    This property defaults to `DynamicForm.stopOnError` if unset.

    Enabling this property also implies `validateOnExit` is automatically enabled. If there are server-based validators on this item, setting this property also implies that `synchronousValidation` is forced on.

    Parameters:
      `stopOnError` - New stopOnError value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getStopOnError

    public Boolean getStopOnError()
    Indicates that if validation fails, the user should not be allowed to exit the field - focus will be forced back into the field until the error is corrected.

    This property defaults to `DynamicForm.stopOnError` if unset.

    Enabling this property also implies `validateOnExit` is automatically enabled. If there are server-based validators on this item, setting this property also implies that `synchronousValidation` is forced on.

    Returns:
      Current stopOnError value. Default value is null

  - ### setStoreDisplayValues

    public FormItem setStoreDisplayValues(Boolean storeDisplayValues)
    If specified, this overrides the `DynamicForm.storeDisplayValues` property for this field.

    Note : This is an advanced setting

    Parameters:
      `storeDisplayValues` - New storeDisplayValues value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getStoreDisplayValues

    public Boolean getStoreDisplayValues()
    If specified, this overrides the `DynamicForm.storeDisplayValues` property for this field.
    Returns:
      Current storeDisplayValues value. Default value is null

  - ### setSupportsCutPasteEvents

    public FormItem setSupportsCutPasteEvents(boolean supportsCutPasteEvents)
    Does the current formItem support native cut and paste events?

    This attribute only applies to freeform text entry fields such as `TextItem` and `TextAreaItem`, and only if `changeOnKeypress` is true. If true, developers can detect the user editing the value via cut or paste interactions (triggered from keyboard shortcuts or the native browser menu options) using the `isCutEvent()` and `isPasteEvent()` methods. This allows custom cut/paste handling to be added to the various change notification flow methods including `FormItem.change()`, and `FormItem.transformInput()`.

    Parameters:
      `supportsCutPasteEvents` - New supportsCutPasteEvents value. Default value is false
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getSupportsCutPasteEvents

    public boolean getSupportsCutPasteEvents()
    Does the current formItem support native cut and paste events?

    This attribute only applies to freeform text entry fields such as `TextItem` and `TextAreaItem`, and only if `changeOnKeypress` is true. If true, developers can detect the user editing the value via cut or paste interactions (triggered from keyboard shortcuts or the native browser menu options) using the `isCutEvent()` and `isPasteEvent()` methods. This allows custom cut/paste handling to be added to the various change notification flow methods including `FormItem.change()`, and `FormItem.transformInput()`.

    Returns:
      Current supportsCutPasteEvents value. Default value is false

  - ### setSuppressValueIcon

    public FormItem setSuppressValueIcon(Boolean suppressValueIcon)
    If `valueIcons` is set, this property may be set to prevent the value icons from showing up next to the form items value

    Note : This is an advanced setting

    Parameters:
      `suppressValueIcon` - New suppressValueIcon value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getSuppressValueIcon

    public Boolean getSuppressValueIcon()
    If `valueIcons` is set, this property may be set to prevent the value icons from showing up next to the form items value
    Returns:
      Current suppressValueIcon value. Default value is null

  - ### setSynchronousValidation

    public FormItem setSynchronousValidation(Boolean synchronousValidation)
    If enabled, whenever validation is triggered and a request to the server is required, user interactivity will be blocked until the request returns. Can be set for the entire form or individual FormItems.

    If false, the form will try to avoid blocking user interaction until it is strictly required. That is until the user attempts to use a FormItem whose state could be affected by a server request that has not yet returned.

    Parameters:
      `synchronousValidation` - New synchronousValidation value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getSynchronousValidation

    public Boolean getSynchronousValidation()
    If enabled, whenever validation is triggered and a request to the server is required, user interactivity will be blocked until the request returns. Can be set for the entire form or individual FormItems.

    If false, the form will try to avoid blocking user interaction until it is strictly required. That is until the user attempts to use a FormItem whose state could be affected by a server request that has not yet returned.

    Returns:
      Current synchronousValidation value. Default value is null

  - ### setTabIndex

    public FormItem setTabIndex(Integer tabIndex)
    TabIndex for the form item within the form, which controls the order in which controls are visited when the user hits the tab or shift-tab keys to navigate between items.

    tabIndex is automatically assigned as the order that items appear in the `DynamicForm.items` list.

    To specify the tabindex of an item within the page as a whole (not just this form), use `globalTabIndex` instead.
    If this method is called after the component has been drawn/initialized: Setter for `tabIndex`.

    Parameters:
      `tabIndex` - new tabIndex for the item. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Focus`

  - ### getTabIndex

    public Integer getTabIndex()
    TabIndex for the form item within the form, which controls the order in which controls are visited when the user hits the tab or shift-tab keys to navigate between items.

    tabIndex is automatically assigned as the order that items appear in the `DynamicForm.items` list.

    To specify the tabindex of an item within the page as a whole (not just this form), use `globalTabIndex` instead.

    Returns:
      Current tabIndex value. Default value is null
    See Also:
      - `Focus`

  - ### setTextAlign

    public FormItem setTextAlign(Alignment textAlign)
    Alignment of the text / content within this form item. Note that `align` may be used to control alignment of the entire form item within its cell. `textAlign` does not apply to all form item types; typically it applies only to items showing a "textBox", such as a `TextItem` or `SelectItem`, as well as text-only form item types such as `StaticTextItem` and `HeaderItem`.

    If `applyAlignToText` is true, then `textAlign` will default to the `align` setting if set. Otherwise, if this item has `icons`, then `textAlign` will default to `Alignment.LEFT` (`Alignment.RIGHT` in `RTL mode`).

    Parameters:
      `textAlign` - New textAlign value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setApplyAlignToText(boolean)`
      - `Appearance overview and related methods`

  - ### getTextAlign

    public Alignment getTextAlign()
    Alignment of the text / content within this form item. Note that `align` may be used to control alignment of the entire form item within its cell. `textAlign` does not apply to all form item types; typically it applies only to items showing a "textBox", such as a `TextItem` or `SelectItem`, as well as text-only form item types such as `StaticTextItem` and `HeaderItem`.

    If `applyAlignToText` is true, then `textAlign` will default to the `align` setting if set. Otherwise, if this item has `icons`, then `textAlign` will default to `Alignment.LEFT` (`Alignment.RIGHT` in `RTL mode`).

    Returns:
      Current textAlign value. Default value is null
    See Also:
      - `getApplyAlignToText()`
      - `Appearance overview and related methods`

  - ### setTextBoxStyle

    public FormItem setTextBoxStyle(String textBoxStyle)
    Base CSS class name for a form item's text box element.

    See `FormItemStyling` for an overview of formItem styling, and the `CompoundFormItem_skinning` discussion for special skinning considerations.

    If the `textBoxStyle` is changed at runtime, `updateState()` must be called to update the visual state of this item.

    Parameters:
      `textBoxStyle` - New textBoxStyle value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setCellStyle(java.lang.String)`
      - `FormItemBaseStyle`
      - `FormItem Styling`

  - ### getTextBoxStyle

    public String getTextBoxStyle()
    Base CSS class name for a form item's text box element.

    See `FormItemStyling` for an overview of formItem styling, and the `CompoundFormItem_skinning` discussion for special skinning considerations.

    If the `textBoxStyle` is changed at runtime, `updateState()` must be called to update the visual state of this item.

    Returns:
      Current textBoxStyle value. Default value is null
    See Also:
      - `getCellStyle()`
      - `FormItemBaseStyle`
      - `FormItem Styling`

  - ### setTextFormula

    public FormItem setTextFormula(UserSummary textFormula)
    Formula to be used to calculate the text value of this FormItem. For a numeric field `formula` is used instead.

    Available fields for use in the formula are the current `rule context`. The formula is re-evaluated every time the rule context changes.

    See `formula` for details on available fields for the formula and when the formula is calculated.

    Note: A FormItem using a textFormula must have a `name` defined. `shouldSaveValue` can be set to `false` to prevent the formula field from storing the calculated value into the form's values.

    Parameters:
      `textFormula` - New textFormula value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `FormulaFields overview and related methods`

  - ### getTextFormula

    public UserSummary getTextFormula()
    Formula to be used to calculate the text value of this FormItem. For a numeric field `formula` is used instead.

    Available fields for use in the formula are the current `rule context`. The formula is re-evaluated every time the rule context changes.

    See `formula` for details on available fields for the formula and when the formula is calculated.

    Note: A FormItem using a textFormula must have a `name` defined. `shouldSaveValue` can be set to `false` to prevent the formula field from storing the calculated value into the form's values.

    Returns:
      Current textFormula value. Default value is null
    See Also:
      - `FormulaFields overview and related methods`

  - ### setTimeFormatter

    public FormItem setTimeFormatter(TimeDisplayFormat timeFormatter)
    Time-format to apply to date type values within this formItem. If specified, any dates displayed in this item will be formatted as times using the appropriate format. This is most commonly only applied to fields specified as type `"time"` though if no explicit `dateFormatter` is specified it will be respected for other fields as well.

    If unspecified, a timeFormatter may be defined `at the component level` and will be respected by fields of type `"time"`.

    Note : This is an advanced setting

    Parameters:
      `timeFormatter` - New timeFormatter value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setFormat(java.lang.String)`
      - `Appearance overview and related methods`

  - ### getTimeFormatter

    public TimeDisplayFormat getTimeFormatter()
    Time-format to apply to date type values within this formItem. If specified, any dates displayed in this item will be formatted as times using the appropriate format. This is most commonly only applied to fields specified as type `"time"` though if no explicit `dateFormatter` is specified it will be respected for other fields as well.

    If unspecified, a timeFormatter may be defined `at the component level` and will be respected by fields of type `"time"`.

    Returns:
      Current timeFormatter value. Default value is null
    See Also:
      - `getFormat()`
      - `Appearance overview and related methods`

  - ### setTitle

    public FormItem setTitle(String title)
    User visible title for this form item.
    Overrides:
      `setTitle` in class `Field`
    Parameters:
      `title` - New title value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `HTMLString`

  - ### getTitle

    public String getTitle()
    User visible title for this form item.
    Overrides:
      `getTitle` in class `Field`
    Returns:
      Returns the title HTML for this item. Default value is null
    See Also:
      - `HTMLString`

  - ### setTitleAlign

    public FormItem setTitleAlign(Alignment titleAlign)
    Alignment of this item's title in its cell.

    If null, dynamically set according to text direction.

    Parameters:
      `titleAlign` - New titleAlign value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getTitleAlign

    public Alignment getTitleAlign()
    Alignment of this item's title in its cell.

    If null, dynamically set according to text direction.

    Returns:
      Current titleAlign value. Default value is null

  - ### setTitleColSpan

    public FormItem setTitleColSpan(int titleColSpan)
    Number of columns that this item's title spans.

    This setting only applies for items that are showing a title and whose `TitleOrientation` is either "left" or "right".

    Parameters:
      `titleColSpan` - New titleColSpan value. Default value is 1
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Form Layout`

  - ### getTitleColSpan

    public int getTitleColSpan()
    Number of columns that this item's title spans.

    This setting only applies for items that are showing a title and whose `TitleOrientation` is either "left" or "right".

    Returns:
      Current titleColSpan value. Default value is 1
    See Also:
      - `Form Layout`

  - ### setTitleOrientation

    public FormItem setTitleOrientation(TitleOrientation titleOrientation)
    On which side of this item should the title be placed. `TitleOrientation` lists valid options.

    Note that titles on the left or right take up a cell in tabular `form layouts`, but titles on top do not.

    Parameters:
      `titleOrientation` - New titleOrientation value. Default value is Canvas.LEFT
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `DynamicForm.setTitleOrientation(com.smartgwt.client.types.TitleOrientation)`

  - ### getTitleOrientation

    public TitleOrientation getTitleOrientation()
    On which side of this item should the title be placed. `TitleOrientation` lists valid options.

    Note that titles on the left or right take up a cell in tabular `form layouts`, but titles on top do not.

    Returns:
      Current titleOrientation value. Default value is Canvas.LEFT
    See Also:
      - `DynamicForm.getTitleOrientation()`

  - ### setTitlePrefix

    public FormItem setTitlePrefix(String titlePrefix)
    The string prepended to this item's title. The `DynamicForm.titlePrefix` is used by default.
    Parameters:
      `titlePrefix` - New titlePrefix value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setTitleSuffix(java.lang.String)`
      - `HTMLString`

  - ### getTitlePrefix

    public String getTitlePrefix()
    The string prepended to this item's title. The `DynamicForm.titlePrefix` is used by default.
    Returns:
      Current titlePrefix value. Default value is null
    See Also:
      - `getTitleSuffix()`
      - `HTMLString`

  - ### setTitleStyle

    public FormItem setTitleStyle(String titleStyle)
    Base CSS class name for a regular form-item's title. Note that this is a `FormItemBaseStyle` so will pick up stateful suffixes on focus, disabled state change etc. by default.

    When the `title` is shown `above` the item, the title element is given the `verticalTitleStyle` if it's set, as it is in some skins - otherwise, it will fall back to `titleStyle`.

    Note the appearance of the title is also affected by `DynamicForm.titlePrefix`/`titleSuffix` and `DynamicForm.requiredTitlePrefix`/`requiredTitleSuffix`.

    Parameters:
      `titleStyle` - New titleStyle value. Default value is "formTitle"
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setCellStyle(java.lang.String)`
      - `FormItemBaseStyle`
      - `FormItem Styling`

  - ### getTitleStyle

    public String getTitleStyle()
    Base CSS class name for a regular form-item's title. Note that this is a `FormItemBaseStyle` so will pick up stateful suffixes on focus, disabled state change etc. by default.

    When the `title` is shown `above` the item, the title element is given the `verticalTitleStyle` if it's set, as it is in some skins - otherwise, it will fall back to `titleStyle`.

    Note the appearance of the title is also affected by `DynamicForm.titlePrefix`/`titleSuffix` and `DynamicForm.requiredTitlePrefix`/`requiredTitleSuffix`.

    Returns:
      Current titleStyle value. Default value is "formTitle"
    See Also:
      - `getCellStyle()`
      - `FormItemBaseStyle`
      - `FormItem Styling`

  - ### setTitleSuffix

    public FormItem setTitleSuffix(String titleSuffix)
    The string appended to this item's title. The `DynamicForm.titleSuffix` is used by default.
    Parameters:
      `titleSuffix` - New titleSuffix value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setRequiredTitleSuffix(java.lang.String)`
      - `HTMLString`

  - ### getTitleSuffix

    public String getTitleSuffix()
    The string appended to this item's title. The `DynamicForm.titleSuffix` is used by default.
    Returns:
      Current titleSuffix value. Default value is null
    See Also:
      - `getRequiredTitleSuffix()`
      - `HTMLString`

  - ### setTitleVAlign

    public FormItem setTitleVAlign(VerticalAlignment titleVAlign)
    Vertical alignment of this item's title in its cell. Only applies when `titleOrientation` is `"left"` or `"right"`.
    Parameters:
      `titleVAlign` - New titleVAlign value. Default value is Canvas.CENTER
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getTitleVAlign

    public VerticalAlignment getTitleVAlign()
    Vertical alignment of this item's title in its cell. Only applies when `titleOrientation` is `"left"` or `"right"`.
    Returns:
      Current titleVAlign value. Default value is Canvas.CENTER

  - ### setTop

    public FormItem setTop(int top)
    Top coordinate of this item in pixels. Applies only when the containing DynamicForm sets `itemLayout:"absolute"`.
    If this method is called after the component has been drawn/initialized: For a form with `itemLayout`:"absolute" only, set the top coordinate of this form item.

    Causes the form to redraw.

    Note : This is an advanced setting

    Parameters:
      `top` - New top value. Default value is 0
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getTop

    public int getTop()
    Top coordinate of this item in pixels. Applies only when the containing DynamicForm sets `itemLayout:"absolute"`.
    Returns:
      Returns the top coordinate of the form item in pixels. Note that this method is only reliable after the item has been drawn out. Default value is 0

  - ### setUpdateControlOnOver

    public FormItem setUpdateControlOnOver(Boolean updateControlOnOver)
    If `showOver` is true, setting this property to false will explicitly disable showing the "Over" state for the control table element of this item (if present).

    Note : This is an advanced setting

    Parameters:
      `updateControlOnOver` - New updateControlOnOver value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setShowOver(boolean)`
      - `FormItem Styling`

  - ### getUpdateControlOnOver

    public Boolean getUpdateControlOnOver()
    If `showOver` is true, setting this property to false will explicitly disable showing the "Over" state for the control table element of this item (if present).
    Returns:
      Current updateControlOnOver value. Default value is null
    See Also:
      - `getShowOver()`
      - `FormItem Styling`

  - ### setUpdatePickerIconOnOver

    public FormItem setUpdatePickerIconOnOver(Boolean updatePickerIconOnOver)
    If `showOver` is true, setting this property to false will explicitly disable showing the "Over" state for the PickerIcon of this item (if present)

    Note : This is an advanced setting

    Parameters:
      `updatePickerIconOnOver` - New updatePickerIconOnOver value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setShowOver(boolean)`
      - `FormItem Styling`

  - ### getUpdatePickerIconOnOver

    public Boolean getUpdatePickerIconOnOver()
    If `showOver` is true, setting this property to false will explicitly disable showing the "Over" state for the PickerIcon of this item (if present)
    Returns:
      Current updatePickerIconOnOver value. Default value is null
    See Also:
      - `getShowOver()`
      - `FormItem Styling`

  - ### setUpdateTextBoxOnOver

    public FormItem setUpdateTextBoxOnOver(Boolean updateTextBoxOnOver)
    If `showOver` is true, setting this property to false will explicitly disable showing the "Over" state for the TextBox element of this item.

    Note : This is an advanced setting

    Parameters:
      `updateTextBoxOnOver` - New updateTextBoxOnOver value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setShowOver(boolean)`
      - `FormItem Styling`

  - ### getUpdateTextBoxOnOver

    public Boolean getUpdateTextBoxOnOver()
    If `showOver` is true, setting this property to false will explicitly disable showing the "Over" state for the TextBox element of this item.
    Returns:
      Current updateTextBoxOnOver value. Default value is null
    See Also:
      - `getShowOver()`
      - `FormItem Styling`

  - ### setUseAdvancedCriteria

    public FormItem setUseAdvancedCriteria(Boolean useAdvancedCriteria)
    Should this form item always produce an `AdvancedCriteria` sub criterion object? When set to true, causes `hasAdvancedCriteria` to return true. Can also be set at the `ListGrid` level.
    Parameters:
      `useAdvancedCriteria` - New useAdvancedCriteria value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Criteria Editing`

  - ### getUseAdvancedCriteria

    public Boolean getUseAdvancedCriteria()
    Should this form item always produce an `AdvancedCriteria` sub criterion object? When set to true, causes `hasAdvancedCriteria` to return true. Can also be set at the `ListGrid` level.
    Returns:
      Current useAdvancedCriteria value. Default value is null
    See Also:
      - `Criteria Editing`

  - ### setUseDisabledHintStyleForReadOnly

    public FormItem setUseDisabledHintStyleForReadOnly(Boolean useDisabledHintStyleForReadOnly)
    By default, `read-only` fields use the same style name as editable fields for in-field hints, unless they are `disabled` or configured to use a disabled `ReadOnlyDisplayAppearance`. This is described under `TextItem.showHintInField`

    If `useDisabledHintStyleForReadOnly` is set, the "HintDisabled" style will be used for read-only fields regardless of their `ReadOnlyDisplayAppearance`. This allows you to use a different in-field hint style for read-only fields without having to use a general disabled appearance for those fields

    Parameters:
      `useDisabledHintStyleForReadOnly` - New useDisabledHintStyleForReadOnly value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Appearance overview and related methods`

  - ### getUseDisabledHintStyleForReadOnly

    public Boolean getUseDisabledHintStyleForReadOnly()
    By default, `read-only` fields use the same style name as editable fields for in-field hints, unless they are `disabled` or configured to use a disabled `ReadOnlyDisplayAppearance`. This is described under `TextItem.showHintInField`

    If `useDisabledHintStyleForReadOnly` is set, the "HintDisabled" style will be used for read-only fields regardless of their `ReadOnlyDisplayAppearance`. This allows you to use a different in-field hint style for read-only fields without having to use a general disabled appearance for those fields

    Returns:
      Current useDisabledHintStyleForReadOnly value. Default value is null
    See Also:
      - `Appearance overview and related methods`

  - ### setUseLocalDisplayFieldValue

    public FormItem setUseLocalDisplayFieldValue(Boolean useLocalDisplayFieldValue)
    If `displayField` is specified for a field, should the display value for the field be picked up from the `record currently being edited`?

    This behavior is typically valuable for dataBound components where the displayField is specified at the DataSourceField level. See `DataSourceField.displayField` for more on this.

    Note that for DataSources backed by the `Smart GWT server`, fields with a specified `DataSourceField.foreignKey` and `DataSourceField.displayField` will automatically have this property set to true if not explicitly set to false in the dataSource configuration.

    Otherwise, if not explicitly set, local display value will be used unless:

    - This item has an explicitly specified optionDataSource, rather than deriving its optionDataSource from a specified `DataSourceField.foreignKey` specification
    - The `name` differs from the `valueField` for the item
    Parameters:
      `useLocalDisplayFieldValue` - New useLocalDisplayFieldValue value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getUseLocalDisplayFieldValue

    public Boolean getUseLocalDisplayFieldValue()
    If `displayField` is specified for a field, should the display value for the field be picked up from the `record currently being edited`?

    This behavior is typically valuable for dataBound components where the displayField is specified at the DataSourceField level. See `DataSourceField.displayField` for more on this.

    Note that for DataSources backed by the `Smart GWT server`, fields with a specified `DataSourceField.foreignKey` and `DataSourceField.displayField` will automatically have this property set to true if not explicitly set to false in the dataSource configuration.

    Otherwise, if not explicitly set, local display value will be used unless:

    - This item has an explicitly specified optionDataSource, rather than deriving its optionDataSource from a specified `DataSourceField.foreignKey` specification
    - The `name` differs from the `valueField` for the item
    Returns:
      Current useLocalDisplayFieldValue value. Default value is null

  - ### setValidateOnChange

    public FormItem setValidateOnChange(Boolean validateOnChange)
    If true, form items will be validated when each item's "change" handler is fired as well as when the entire form is submitted or validated.

    Note that this property can also be set at the form level or on each validator; If true at the form or field level, validators not explicitly set with `validateOnChange:false` will be fired on change - displaying errors and rejecting the change on validation failure.

    Parameters:
      `validateOnChange` - New validateOnChange value. Default value is false
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `DynamicForm.setValidateOnChange(java.lang.Boolean)`

  - ### getValidateOnChange

    public Boolean getValidateOnChange()
    If true, form items will be validated when each item's "change" handler is fired as well as when the entire form is submitted or validated.

    Note that this property can also be set at the form level or on each validator; If true at the form or field level, validators not explicitly set with `validateOnChange:false` will be fired on change - displaying errors and rejecting the change on validation failure.

    Returns:
      Current validateOnChange value. Default value is false
    See Also:
      - `DynamicForm.getValidateOnChange()`

  - ### setValidateOnExit

    public FormItem setValidateOnExit(Boolean validateOnExit)
    If true, form items will be validated when each item's "editorExit" handler is fired as well as when the entire form is submitted or validated.

    Note that this property can also be set at the form level. If true at either level the validator will be fired on editorExit.

    Parameters:
      `validateOnExit` - New validateOnExit value. Default value is false
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `DynamicForm.setValidateOnExit(java.lang.Boolean)`

  - ### getValidateOnExit

    public Boolean getValidateOnExit()
    If true, form items will be validated when each item's "editorExit" handler is fired as well as when the entire form is submitted or validated.

    Note that this property can also be set at the form level. If true at either level the validator will be fired on editorExit.

    Returns:
      Current validateOnExit value. Default value is false
    See Also:
      - `DynamicForm.getValidateOnExit()`

  - ### setValidators

    public FormItem setValidators(Validator... validators)
    Validators for this form item.

    Note: these validators will only be run on the client; to do real client-server validation, validators must be specified via `DataSourceField.validators`.

    Parameters:
      `validators` - New validators value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### setValidOperators

    public FormItem setValidOperators(OperatorId... validOperators)
    Array of valid filtering operators (eg "greaterThan") that are legal for this FormItem.

    Applies only to form/formItem when `allowExpressions` is true, allowing the user to input expressions.

    Parameters:
      `validOperators` - New validOperators value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Advanced Filtering`

  - ### getValidOperators

    public OperatorId[] getValidOperators()
    Array of valid filtering operators (eg "greaterThan") that are legal for this FormItem.

    Applies only to form/formItem when `allowExpressions` is true, allowing the user to input expressions.

    Returns:
      Current validOperators value. Default value is null
    See Also:
      - `Advanced Filtering`

  - ### setVAlign

    public FormItem setVAlign(VerticalAlignment vAlign)
    Vertical alignment of this item within its cell. This property governs the position of the item's text box within the cell (not the content within the text box). If `shouldApplyHeightToTextBox()` is true, for this to have a visible effect, the cell height must exceed the specified height of the item, either due to an explicit `cellHeight` specification, or due to the row being expanded by another taller item.

    Has no effect if `DynamicForm.itemLayout` is set to `"absolute"` for the form.

    Parameters:
      `vAlign` - New vAlign value. Default value is Canvas.CENTER
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getVAlign

    public VerticalAlignment getVAlign()
    Vertical alignment of this item within its cell. This property governs the position of the item's text box within the cell (not the content within the text box). If `shouldApplyHeightToTextBox()` is true, for this to have a visible effect, the cell height must exceed the specified height of the item, either due to an explicit `cellHeight` specification, or due to the row being expanded by another taller item.

    Has no effect if `DynamicForm.itemLayout` is set to `"absolute"` for the form.

    Returns:
      Returns the vertical-alignment for this item within its cell. By default, when `titleOrientation` is "top", this method will return "top", so that items of varying height are top-aligned, beneath their titles. Default value is Canvas.CENTER

  - ### setValueDeselectedCSSText

    public FormItem setValueDeselectedCSSText(String valueDeselectedCSSText)
    Custom CSS text to be applied to values that have been deleted, when `showDeletions` is enabled.

    Note : This is an advanced setting

    Parameters:
      `valueDeselectedCSSText` - New valueDeselectedCSSText value. Default value is "color:#A8A8A8;text-decoration:line-through;"
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `CSSText`

  - ### getValueDeselectedCSSText

    public String getValueDeselectedCSSText()
    Custom CSS text to be applied to values that have been deleted, when `showDeletions` is enabled.
    Returns:
      Current valueDeselectedCSSText value. Default value is "color:#A8A8A8;text-decoration:line-through;"
    See Also:
      - `CSSText`

  - ### setValueField

    public FormItem setValueField(String valueField)
    If this form item maps data values to display values by retrieving the `displayField` values from an `optionDataSource`, this property denotes the the field to use as the underlying data value in records from the optionDataSource.
    If not explicitly supplied, the valueField name will be derived as described in `getValueFieldName()`.
    Parameters:
      `valueField` - New valueField value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `DataBinding`

  - ### getValueField

    public String getValueField()
    If this form item maps data values to display values by retrieving the `displayField` values from an `optionDataSource`, this property denotes the the field to use as the underlying data value in records from the optionDataSource.
    If not explicitly supplied, the valueField name will be derived as described in `getValueFieldName()`.
    Returns:
      Getter method to retrieve the `valueField` for this item. For items with a specified `optionDataSource`, this determines which field in that dataSource corresponds to the value for this item.

      If unset, if a `foreignKey relationship` exists between this field and the optionDataSource, this will be used, otherwise default behavior will return the `name` of this field. Default value is null

    See Also:
      - `DataBinding`

  - ### setValueIconHeight

    public FormItem setValueIconHeight(Integer valueIconHeight)
    If `valueIcons` is specified, use this property to specify a height for the value icon written out.
    Parameters:
      `valueIconHeight` - New valueIconHeight value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setValueIconWidth(java.lang.Integer)`
      - `setValueIconSize(int)`

  - ### getValueIconHeight

    public Integer getValueIconHeight()
    If `valueIcons` is specified, use this property to specify a height for the value icon written out.
    Returns:
      Current valueIconHeight value. Default value is null
    See Also:
      - `getValueIconWidth()`
      - `getValueIconSize()`

  - ### setValueIconLeftPadding

    public FormItem setValueIconLeftPadding(int valueIconLeftPadding)
    If we're showing a value icon, this attribute governs the amount of space between the icon and the start edge of the form item cell.

    NOTE: In RTL mode, the valueIconLeftPadding is applied to the right of the value icon.

    Parameters:
      `valueIconLeftPadding` - New valueIconLeftPadding value. Default value is 0
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setValueIcons(java.util.Map)`

  - ### getValueIconLeftPadding

    public int getValueIconLeftPadding()
    If we're showing a value icon, this attribute governs the amount of space between the icon and the start edge of the form item cell.

    NOTE: In RTL mode, the valueIconLeftPadding is applied to the right of the value icon.

    Returns:
      Current valueIconLeftPadding value. Default value is 0
    See Also:
      - `com.smartgwt.client.widgets.form.fields.FormItem#getValueIcons`

  - ### setValueIconRightPadding

    public FormItem setValueIconRightPadding(int valueIconRightPadding)
    If we're showing a value icon, this attribute governs the amount of space between the icon and the value text.

    NOTE: In RTL mode, the valueIconRightPadding is applied to the left of the value icon.

    Parameters:
      `valueIconRightPadding` - New valueIconRightPadding value. Default value is 3
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setValueIcons(java.util.Map)`

  - ### getValueIconRightPadding

    public int getValueIconRightPadding()
    If we're showing a value icon, this attribute governs the amount of space between the icon and the value text.

    NOTE: In RTL mode, the valueIconRightPadding is applied to the left of the value icon.

    Returns:
      Current valueIconRightPadding value. Default value is 3
    See Also:
      - `com.smartgwt.client.widgets.form.fields.FormItem#getValueIcons`

  - ### setValueIconSize

    public FormItem setValueIconSize(int valueIconSize)
    If `valueIcons` is specified, this property may be used to specify both the width and height of the icon written out. Note that `valueIconWidth` and `valueIconHeight` take precedence over this value, if specified.
    Parameters:
      `valueIconSize` - New valueIconSize value. Default value is 16
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setValueIconWidth(java.lang.Integer)`
      - `setValueIconHeight(java.lang.Integer)`

  - ### getValueIconSize

    public int getValueIconSize()
    If `valueIcons` is specified, this property may be used to specify both the width and height of the icon written out. Note that `valueIconWidth` and `valueIconHeight` take precedence over this value, if specified.
    Returns:
      Current valueIconSize value. Default value is 16
    See Also:
      - `getValueIconWidth()`
      - `getValueIconHeight()`

  - ### setValueIconWidth

    public FormItem setValueIconWidth(Integer valueIconWidth)
    If `valueIcons` is specified, use this property to specify a width for the value icon written out.
    Parameters:
      `valueIconWidth` - New valueIconWidth value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setValueIconHeight(java.lang.Integer)`
      - `setValueIconSize(int)`

  - ### getValueIconWidth

    public Integer getValueIconWidth()
    If `valueIcons` is specified, use this property to specify a width for the value icon written out.
    Returns:
      Current valueIconWidth value. Default value is null
    See Also:
      - `getValueIconHeight()`
      - `getValueIconSize()`

  - ### setVisible

    public FormItem setVisible(Boolean visible)
    Whether this item is currently visible.

    `visible` can only be set on creation. After creation, use `show()` and `hide()` to manipulate visibility.

    Parameters:
      `visible` - New visible value. Default value is true
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Appearance overview and related methods`

  - ### getVisible

    public Boolean getVisible()
    Whether this item is currently visible.

    `visible` can only be set on creation. After creation, use `show()` and `hide()` to manipulate visibility.

    Returns:
      Current visible value. Default value is true
    See Also:
      - `Appearance overview and related methods`

  - ### setVisibleWhen

    public FormItem setVisibleWhen(AdvancedCriteria visibleWhen)
    Criteria to be evaluated to determine whether this FormItem should be visible.

    Criteria are evaluated against the `form's current values` as well as the current `rule context`. Criteria are re-evaluated every time form values or the rule context changes, whether by end user action or by programmatic calls.

    If both `showIf()` and `visibleWhen` are specified, `visibleWhen` is ignored.

    A basic criteria uses textMatchStyle:"exact". When specified in `Component XML` this property allows `shorthand formats` for defining criteria.

    Note: A FormItem using visibleWhen must have a `name` defined. `shouldSaveValue` can be set to `false` to prevent the field from storing its value into the form's values.

    Parameters:
      `visibleWhen` - New visibleWhen value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `Appearance overview and related methods`

  - ### getVisibleWhen

    public AdvancedCriteria getVisibleWhen()
    Criteria to be evaluated to determine whether this FormItem should be visible.

    Criteria are evaluated against the `form's current values` as well as the current `rule context`. Criteria are re-evaluated every time form values or the rule context changes, whether by end user action or by programmatic calls.

    If both `showIf()` and `visibleWhen` are specified, `visibleWhen` is ignored.

    A basic criteria uses textMatchStyle:"exact". When specified in `Component XML` this property allows `shorthand formats` for defining criteria.

    Note: A FormItem using visibleWhen must have a `name` defined. `shouldSaveValue` can be set to `false` to prevent the field from storing its value into the form's values.

    Returns:
      Current visibleWhen value. Default value is null
    See Also:
      - `Appearance overview and related methods`

  - ### setWidth

    public FormItem setWidth(int width)
    Width of the FormItem. Can be either a number indicating a fixed width in pixels, or "*" indicating the FormItem fills the space allocated to it's column (or columns, for a `column spanning` item). You may also use "100%" as a synonym for "*", but other percentages are not supported.

    Note that for "absolute" item layout rather than the default "table" layout, the rules for specifying the width are slightly different. All percent sizes are allowed, but not "*". See `DynamicForm.itemLayout` for further details.

    If width is specified as a String, getWidth() will return -1. Use getWidthAsString.() in this case.

    See the `FormLayout` overview for details.

    Parameters:
      `width` - New width value. Default value is "*"
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setLinearWidth(int)`
      - `setHeight(int)`
      - `DynamicForm.setItemLayout(com.smartgwt.client.types.FormLayoutType)`
      - `Form Layout`
      - Spanning Example

  - ### getWidth

    public int getWidth()
    Width of the FormItem. Can be either a number indicating a fixed width in pixels, or "*" indicating the FormItem fills the space allocated to it's column (or columns, for a `column spanning` item). You may also use "100%" as a synonym for "*", but other percentages are not supported.

    Note that for "absolute" item layout rather than the default "table" layout, the rules for specifying the width are slightly different. All percent sizes are allowed, but not "*". See `DynamicForm.itemLayout` for further details.

    If width is specified as a String, getWidth() will return -1. Use getWidthAsString.() in this case.

    See the `FormLayout` overview for details.

    Note : This method will return -1 if the underlying SmartClient JavaScript attribute value cannot be expressed as a(n) int. In that case, other getters, similarly-named but ending in `AsString`, `AsCanvas`, etc., may be provided.

    Returns:
      Output the width for this element. Note this returns the specified width for the element, which may be "*" or a percentage value. Use 'getVisibleWidth()' to get the drawn width in pixels. Default value is "*"
    See Also:
      - `getLinearWidth()`
      - `getHeight()`
      - `DynamicForm.getItemLayout()`
      - `Form Layout`
      - Spanning Example

  - ### setWidth

    public FormItem setWidth(String width)
    Width of the FormItem. Can be either a number indicating a fixed width in pixels, or "*" indicating the FormItem fills the space allocated to it's column (or columns, for a `column spanning` item). You may also use "100%" as a synonym for "*", but other percentages are not supported.

    Note that for "absolute" item layout rather than the default "table" layout, the rules for specifying the width are slightly different. All percent sizes are allowed, but not "*". See `DynamicForm.itemLayout` for further details.

    If width is specified as a String, getWidth() will return -1. Use getWidthAsString.() in this case.

    See the `FormLayout` overview for details.

    Parameters:
      `width` - New width value. Default value is "*"
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setLinearWidth(int)`
      - `setHeight(int)`
      - `DynamicForm.setItemLayout(com.smartgwt.client.types.FormLayoutType)`
      - `Form Layout`
      - Spanning Example

  - ### getWidthAsString

    public String getWidthAsString()
    Width of the FormItem. Can be either a number indicating a fixed width in pixels, or "*" indicating the FormItem fills the space allocated to it's column (or columns, for a `column spanning` item). You may also use "100%" as a synonym for "*", but other percentages are not supported.

    Note that for "absolute" item layout rather than the default "table" layout, the rules for specifying the width are slightly different. All percent sizes are allowed, but not "*". See `DynamicForm.itemLayout` for further details.

    If width is specified as a String, getWidth() will return -1. Use getWidthAsString.() in this case.

    See the `FormLayout` overview for details.

    Returns:
      Output the width for this element. Note this returns the specified width for the element, which may be "*" or a percentage value. Use 'getVisibleWidth()' to get the drawn width in pixels. Default value is "*"
    See Also:
      - `getLinearWidth()`
      - `getHeight()`
      - `DynamicForm.getItemLayout()`
      - `Form Layout`
      - Spanning Example

  - ### setWrapHintText

    public FormItem setWrapHintText(Boolean wrapHintText)
    If this item is showing a `hint`, should the hint text be allowed to wrap? Setting this property to `false` will render the hint on a single line without wrapping, expanding the width required to render the item if necessary.

    If unset this property will be picked up from the `DynamicForm.wrapHintText` setting.

    This setting does not apply to hints that are `shown in field`.

    Parameters:
      `wrapHintText` - New wrapHintText value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setMinHintWidth(java.lang.Integer)`

  - ### getWrapHintText

    public Boolean getWrapHintText()
    If this item is showing a `hint`, should the hint text be allowed to wrap? Setting this property to `false` will render the hint on a single line without wrapping, expanding the width required to render the item if necessary.

    If unset this property will be picked up from the `DynamicForm.wrapHintText` setting.

    This setting does not apply to hints that are `shown in field`.

    Returns:
      Current wrapHintText value. Default value is null
    See Also:
      - `getMinHintWidth()`

  - ### setWrapStaticValue

    public FormItem setWrapStaticValue(Boolean wrapStaticValue)
    If this item is `read-only` and is using `readOnlyDisplay` `ReadOnlyDisplayAppearance.STATIC`, should the item value wrap?
    Parameters:
      `wrapStaticValue` - New wrapStaticValue value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getWrapStaticValue

    public Boolean getWrapStaticValue()
    If this item is `read-only` and is using `readOnlyDisplay` `ReadOnlyDisplayAppearance.STATIC`, should the item value wrap?
    Returns:
      Current wrapStaticValue value. Default value is null

  - ### setWrapTitle

    public FormItem setWrapTitle(Boolean wrapTitle)
    If specified determines whether this items title should wrap. Overrides `wrapItemTitles` at the DynamicForm level.
    Parameters:
      `wrapTitle` - New wrapTitle value. Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getWrapTitle

    public Boolean getWrapTitle()
    If specified determines whether this items title should wrap. Overrides `wrapItemTitles` at the DynamicForm level.
    Returns:
      Current wrapTitle value. Default value is null

  - ### addIcon

    public FormItemIcon addIcon(FormItemIcon icon)
    Adds a `FormItemIcon` to this item. If the optional index parameter is not passed, the icon is added to the end of the existing `icon list`.

    If the passed icon already exists in the `icon list`, by `name`, the original icon is moved to the new index and no new icon is added.

    Parameters:
      `icon` - the icon to add
    Returns:
      the live form item icon

  - ### addIcon

    public FormItemIcon addIcon(FormItemIcon icon, int index)
    Adds a `FormItemIcon` to this item. If the optional index parameter is not passed, the icon is added to the end of the existing `icon list`.

    If the passed icon already exists in the `icon list`, by `name`, the original icon is moved to the new index and no new icon is added.

    Parameters:
      `icon` - the icon to add
      `index` - the index to add the icon at - if omitted, add the icon to the end of the current icon list
    Returns:
      the live form item icon

  - ### applyFormula

    public void applyFormula()
    Manually sets this FormItem to the result of `formula` or `textFormula`. Formulas are normally automatically recomputed and the result automatically applied to the FormItem according to the rules described under `formula`. `applyFormula()` exists to cover any rare cases where these rules are not correct.

    Calling `applyFormula()` has no effect if no `formula` or `textFormula` is configured for this FormItem.

  - ### addBlurHandler

    public HandlerRegistration addBlurHandler(BlurHandler handler)
    Add a blur handler.

    Called when this FormItem loses focus.

    Specified by:
      `addBlurHandler` in interface `HasBlurHandlers`
    Parameters:
      `handler` - the blur handler
    Returns:
      `HandlerRegistration` used to remove this handler

  - ### blurItem

    public void blurItem()
    Takes focus from this form item's focusable element.
    See Also:
      - `Focus`

  - ### addChangeHandler

    public HandlerRegistration addChangeHandler(ChangeHandler handler)
    Add a change handler.

    Called when a FormItem's value is about to change as the result of user interaction. This method fires after the user performed an action that would change the value of this field, but before the element itself is changed.

    Returning false cancels the change. Note that if what you want to do is transform the user's input, for example, automatically change separator characters to a standard separator character, you should implement `transformInput` rather than using a combination of change() and setValue() to accomplish the same thing. Returning false from `change` is intended for rejecting input entirely, such as typing invalid characters.

    Note that if you ask the form for the current value in this handler, you will get the old value because the change has not yet been committed. The new value is available as a parameter to this method.

    Change/Changed notifications vs "...When" rules: the `change` and `changed` events only fire when an end user modifies a field value. If you are trying to dynamically control the visibility or enabled state of other components in response to these events, consider instead using properties such as `Canvas.visibleWhen`, `item.readOnlyWhen`, `Canvas.enableWhen` on the target component. (Similar properties are available on `FormItem`, `Canvas`, `MenuItem` and other components).

    Specified by:
      `addChangeHandler` in interface `HasChangeHandlers`
    Parameters:
      `handler` - the change handler
    Returns:
      `HandlerRegistration` used to remove this handler

  - ### addChangedHandler

    public HandlerRegistration addChangedHandler(ChangedHandler handler)
    Add a changed handler.

    Called when a FormItem's value has been changed as the result of user interaction. This method fires after the newly specified value has been stored.

    Change/Changed notifications vs "...When" rules: the `change` and `changed` events only fire when an end user modifies a field value. If you are trying to dynamically control the visibility or enabled state of other components in response to these events, consider instead using properties such as `Canvas.visibleWhen`, `item.readOnlyWhen`, `Canvas.enableWhen` on the target component. (Similar properties are available on `FormItem`, `Canvas`, `MenuItem` and other components).

    Specified by:
      `addChangedHandler` in interface `HasChangedHandlers`
    Parameters:
      `handler` - the changed handler
    Returns:
      `HandlerRegistration` used to remove this handler

  - ### clearErrors

    public void clearErrors()
    Clear all error messages for this item
    See Also:
      - `Error Handling Overview`

  - ### clearValue

    public void clearValue()
    Clear the value for this form item.

    Note that if a default value is specified, value will be set to that default value, otherwise value will be cleared, (and removed from the containing form's values).

  - ### addClickHandler

    public HandlerRegistration addClickHandler(ClickHandler handler)
    Add a click handler.

    Called when this FormItem is clicked on.

    Note: `click()` is available on StaticTextItem, BlurbItems, ButtonItem, and derivatives. Other form items (such as HiddenItem) do not support `click()`.

    Specified by:
      `addClickHandler` in interface `HasClickHandlers`
    Parameters:
      `handler` - the click handler
    Returns:
      `HandlerRegistration` used to remove this handler

  - ### disable

    public void disable()
    Set this item to be disabled at runtime.
    See Also:
      - `getDisabled()`
      - `Enabling and Disabling`

  - ### disableIcon

    public void disableIcon(String icon)
    This method will disable some icon in this item's `icons` array, if it is currently enabled.
    Parameters:
      `icon` - `name` of the icon to be disabled. See `Identifier`
    See Also:
      - `FormItemIcon.getDisabled()`
      - `Identifier`
      - `Enabling and Disabling`

  - ### addDoubleClickHandler

    public HandlerRegistration addDoubleClickHandler(DoubleClickHandler handler)
    Add a doubleClick handler.

    Called when this FormItem is double-clicked.

    Specified by:
      `addDoubleClickHandler` in interface `HasDoubleClickHandlers`
    Parameters:
      `handler` - the doubleClick handler
    Returns:
      `HandlerRegistration` used to remove this handler

  - ### addEditorEnterHandler

    public HandlerRegistration addEditorEnterHandler(EditorEnterHandler handler)
    Add a editorEnter handler.

    Notification method fired when the user enters this formItem. Differs from `FormItem.focus()` in that while `focus` and `blur` may fire multiple as the user navigates sub elements of an item (such as interacting with a pick list), `editorEnter` will typically fire once when the user starts to edit this item as a whole, and once when the user moves onto a different item or component

    Specified by:
      `addEditorEnterHandler` in interface `HasEditorEnterHandlers`
    Parameters:
      `handler` - the editorEnter handler
    Returns:
      `HandlerRegistration` used to remove this handler

  - ### addEditorExitHandler

    public HandlerRegistration addEditorExitHandler(EditorExitHandler handler)
    Add a editorExit handler.

    Notification method fired when the user leaves this formItem. Differs from `FormItem.blur()` in that while `focus` and `blur` may fire multiple as the user navigates sub elements of an item (such as interacting with a pick list), `editorEnter` will typically fire once when the user starts to edit this item as a whole, and `editorExit` fires once when the user moves onto a different item or component

    Specified by:
      `addEditorExitHandler` in interface `HasEditorExitHandlers`
    Parameters:
      `handler` - the editorExit handler
    Returns:
      `HandlerRegistration` used to remove this handler

  - ### enable

    public void enable()
    Set this item to be enabled at runtime.
    See Also:
      - `getDisabled()`
      - `Enabling and Disabling`

  - ### enableIcon

    public void enableIcon(String icon)
    This method will enable some icon in this item's `icons` array, if it is currently disabled.
    Parameters:
      `icon` - `name` of the icon to be enabled. See `Identifier`
    See Also:
      - `FormItemIcon.getDisabled()`
      - `Identifier`
      - `Enabling and Disabling`

  - ### addFocusHandler

    public HandlerRegistration addFocusHandler(FocusHandler handler)
    Add a focus handler.

    Called when this FormItem receives focus.

    Specified by:
      `addFocusHandler` in interface `HasFocusHandlers`
    Parameters:
      `handler` - the focus handler
    Returns:
      `HandlerRegistration` used to remove this handler

  - ### focusAfterItem

    public void focusAfterItem(boolean forward)
    Shifts focus to the next focusable element after this item, skipping any elements nested inside the tabbing group for this item, such as sub-elements, nested canvases in a CanvasItem, or icons.

    This method makes use of the `TabIndexManager.shiftFocusAfterGroup()` method to request focus be changed to the next registered entry. By default standard focusable Smart GWT UI elements, including Canvases, FormItems, FormItemIcons, etc are registered with the TabIndexManager in the appropriate order, and will accept focus if `focusable`, and not `disabled` or `masked`.

    Canvases support a similar method: `Canvas.focusAfterGroup()`.

    NOTE: Focusable elements created directly in the raw HTML bootstrap or by application code will not be passed focus by this method unless they have also been explicitly registered with the TabIndexManager. See the `TabOrderOverview` for more information.

    Parameters:
      `forward` - direction to shift focus - true to move forward, false to move backwards (as with a shift+tab interaction).
    See Also:
      - `Focus`

  - ### focusInItem

    public void focusInItem()
    Move the keyboard focus into this item's focusable element
    See Also:
      - `Focus`

  - ### getCursorPosition

    public Integer getCursorPosition()
    For text-based items, this method returns the index of the start of the current selection if the item currently has the focus (if no text is selected, this equates to the current position of the text editing cursor). See `TextItem.getSelectionRange()` for details of what is returned if the item does not have the focus (note, it is important to read this documentation, because the behavior when the item does not have the focus varies by browser)
    Returns:
      Index of the current or past selection's start point

  - ### getCustomState

    public String getCustomState(FormItemElementType elementType, String derivedState)
    Optional method to retrieve a custom state suffix to append to the style name that is applied to some element of a formItem - see `FormItemBaseStyle` for more information on how state-based FormItem style names are derived.

    If this method exists on a formItem, the framework will call it, passing in the state suffix it has derived. Your `getCustomState()` implementation can make use of this derived state or ignore it. For example, if you wanted two different types of focus styling depending on some factor unrelated to focus, you would probably make use of the incoming "Focused" state and return something like "Focused1" or "Focused2". On the other hand, if you want your custom state to just override whatever the system derived, you would ignore the incoming state. Finally, if you do not wish to provide a custom style for this formItem element at this time - for example, you are only interested in providing a custom "textBox" style and this call is for a "cell" element type - your `getCustomStyle()` method should just return the state it was passed.

    This method is an advanced API, and you should only provide an implementation of it if you have specialized styling requirements. If you do implement it, note that it will be called very frequently, from rendering code: if your custom logic does significant processing, it could introduce a system-wide performance problem.

    Parameters:
      `elementType` - The element type to return a custom state for
      `derivedState` - The state suffix the system derived
    Returns:
      custom state suffix to use for the parameter elementType for this FormItem
    See Also:
      - `FormItemBaseStyle`

  - ### getDisplayFieldName

    public String getDisplayFieldName()
    Returns the `displayField` for this item.

    Behavior varies based on the configuration of this item, as follows:

    - If this item has an `optionDataSource` and an explicit `foreignDisplayField` is specified, this will be returned.
    - Otherwise if an explicit `displayField` is specified it will be returned by default. If the `displayField` was specified on the underlying dataSource field, and no matching field is present in the `optionDataSource` for the item, we avoid returning the specified displayField value and instead return the title field of the option DataSource. We do this to avoid confusion for the case where the displayField is intended as a display-field value for showing another field value within the same record in the underlying dataSource only.
    - If no explicit foreignDisplay or displayField specification was found, and the `valueField` for this item is hidden in the `optionDataSource`, this method will return the title field for the `optionDataSource`.
    Returns:
      display field name, or null if there is no separate display field to use. See `FieldName`

  - ### getFieldName

    public String getFieldName()
    Return the name for the this formItem.
    Returns:
      name for this form item
    See Also:
      - `Drawing overview and related methods`

  - ### getFullDataPath

    public String getFullDataPath()
    Return the fully-qualified dataPath for the this formItem (ie, the dataPath expressed in absolute terms from the root of the hierarchy, rather than relative to the item's parent form). Note that the item's name is substituted into the full dataPath if the item does not specify an explicit dataPath. For example, if we have a field called `name` that specifies no dataPath, on a form that specifies a dataPath of `/order/items`, this method will return `/order/items/name`
    Returns:
      Fully-qualified dataPath for this form item. See `DataPath`

  - ### getGridColNum

    public Integer getGridColNum()
    If this formItem is part of a `ListGrid`'s `inline edit form`, returns the number of the grid column this formItem is responsible for editing, but only if a row is currently being edited. If the formItem is not part of a ListGrid inline edit for any reason, this method returns null. Reasons for a formItem not being part of an inline edit include
    - The item is part of an ordinary DynamicForm, not an inline edit form
    - There is no row in the grid currently being edited
    - A row is being edited, but this formItem is not currently visible and is being excluded because of horizontal incremental rendering (where Smart GWT avoids drawing grid columns that would not be visible without scrolling)
    Returns:
      The grid column number being edited by this formItem, or null, as described above

  - ### getGridRowNum

    public Integer getGridRowNum()
    If this formItem is part of a `ListGrid`'s `inline edit form`, returns the number of the row currently being edited. If the formItem is not part of a ListGrid inline edit for any reason, this method returns null. Reasons for a formItem not being part of an inline edit include
    - The item is part of an ordinary DynamicForm, not an inline edit form
    - There is no row in the grid currently being edited
    - A row is being edited, but this formItem is not currently visible and is being excluded because of horizontal incremental rendering (where Smart GWT avoids drawing grid columns that would not be visible without scrolling)
    Returns:
      The grid row number being edited or null, as described above

  - ### getIcon

    public FormItemIcon getIcon(String name)
    Given a `FormItemIcon.name`, returns the `FormItemIcon` object.
    Parameters:
      `name` - specified `FormItemIcon.name`. See `Identifier`
    Returns:
      form item icon matching the specified name, or `null` if there is no such icon.
    See Also:
      - `Identifier`

  - ### getIconTabPosition

    public Integer getIconTabPosition()
    Returns the desired tab-position of some icon with respect to other focusable sub-elements for this formItem.

    Default implementation returns the index of the icon in the icons array, (plus one if a pickerIcon is showing) meaning users can tab through icons in order. Has no effect for non-focusable icons.

    Returns:
      desired position in the tab-order within this item's sub-elements

  - ### getListGrid

    public ListGrid getListGrid()
    If this item is being used to edit cells in a ListGrid (see `isInGrid()`), this method returns the grid in question.
    Returns:
      For listGrid edit items, the listGrid containing the item. Will return null for items that are edit items of a listGrid.

  - ### getPageLeft

    public int getPageLeft()
    Returns the drawn page-left coordinate of this form item in pixels.
    Returns:
      page-left coordinate in px
    See Also:
      - `Positioning overview and related methods`

  - ### getPageTop

    public int getPageTop()
    Returns the drawn page-top coordinate of this form item in pixels.
    Returns:
      page-top coordinate in px
    See Also:
      - `Positioning overview and related methods`

  - ### getPickerIconTabPosition

    public Integer getPickerIconTabPosition()
    Returns the desired tab-position of the picker icon with respect to other focusable sub-elements for this formItem.

    Default implementation returns zero, making the picker the first focusable element after the items text box.

    Returns:
      desired position in the tab-order within this item's sub-elements

  - ### getPixelHeight

    public int getPixelHeight()
    Returns the specified `height` of this formItem in pixels. For heights specified as a percentage value or `"*"`, the pixel height may not be available prior to the item being drawn. In cases where the height has not yet been resolved to a pixel value, this method will return `-1`.
    Returns:
      Specified height resolved to a pixel value.

  - ### getPixelWidth

    public int getPixelWidth()
    Returns the specified `width` of this formItem in pixels. For widths specified as a percentage value or `"*"`, the pixel width may not be available prior to the item being drawn. In cases where the width has not yet been resolved to a pixel value, this method will return `-1`.
    Returns:
      Specified width resolved to a pixel value.

  - ### getSelectedRecord

    public ListGridRecord getSelectedRecord()
    Get the record returned from the `optionDataSource` when `fetchMissingValues` is true, and the missing value is fetched.

    `fetchMissingValues` kicks off the fetch when the form item is initialized with a non null value or when setValue() is called on the item. Note that this method will return null before the fetch completes, or if no record is found in the optionDataSource matching the underlying value.

    Returns:
      selected record

  - ### getValueAsFloat

    public Float getValueAsFloat()
    Return the value tracked by this form item as a Float. If the value cannot be parsed to a valid float, null will be returned.
    Returns:
      value of this element
    See Also:
      - `getValue()`

  - ### getValueAsInteger

    public Integer getValueAsInteger()
    Return the value tracked by this form item as an Integer. If the value cannot be parsed to an int that matches the original value, null will be returned.
    Returns:
      value of this element
    See Also:
      - `getValue()`

  - ### getValueFieldName

    public String getValueFieldName()
    Getter method to retrieve the `valueField` for this item. For items with a specified `optionDataSource`, this determines which field in that dataSource corresponds to the value for this item.

    If unset, if a `foreignKey relationship` exists between this field and the optionDataSource, this will be used, otherwise default behavior will return the `name` of this field.

    Returns:
      fieldName to use a "value field" in records from this items `optionDataSource`

  - ### getVisibleTitleWidth

    public int getVisibleTitleWidth(Boolean labelOnly)
    Returns the visible width of this item's title in px. If that is not applicable (for example, the form item has no title) or cannot be determined (for example, the form is not drawn), returns 0.
    Parameters:
      `labelOnly` - If true, returns the visible width of the title text only; if false (the default) returns the width of the title cell
    Returns:
      width of the form item's title in px
    See Also:
      - `Sizing overview and related methods`

  - ### hasAdvancedCriteria

    public Boolean hasAdvancedCriteria()
    Does this form item produce an `AdvancedCriteria` sub criterion object? If this method returns true, `DynamicForm.getValuesAsCriteria()` on the form containing this item will always return an `AdvancedCriteria` object, calling `FormItemCriterionGetter.getCriterion()` on each item to retrieve the individual criteria.

    Default implementation will return `true` if `operator` is explicitly specified.

    Returns:
      true if this item will return an AdvancedCriteria sub-criterion.
    See Also:
      - `Criteria Editing`

  - ### hasErrors

    public boolean hasErrors()
    Return whether this item currently has any validation errors as a result of a previous validation pass.
    Returns:
      true == item currently has validation errors.
    See Also:
      - `Error Handling Overview`

  - ### hide

    public void hide()
    Hide this form item.
    This will cause the form to redraw. If this item had an item.showIf expression, it will be destroyed.

  - ### hideIcon

    public void hideIcon(String icon)
    This method will hide some icon in this item's `icons` array, if it is currently visible. Note that once this method has been called, any previously specified `FormItemIcon.showIf()` will be discarded.
    Parameters:
      `icon` - `name` of the icon to be hidden. See `Identifier`
    See Also:
      - `Identifier`

  - ### addIconClickHandler

    public HandlerRegistration addIconClickHandler(IconClickHandler handler)
    Add a iconClick handler.

    Notification method called when the user clicks on a form item icon.

    The icon's `FormItemIcon.formItemClick()` method if any is called first. Then, if the clicked icon is the `picker icon`, the `FormItem.pickerIconClick()` method is called. Then, this method is called.

    This event may be cancelled to suppress the `FormItem.click()` handler from also firing in response to the user interaction.

    Specified by:
      `addIconClickHandler` in interface `HasIconClickHandlers`
    Parameters:
      `handler` - the iconClick handler
    Returns:
      `HandlerRegistration` used to remove this handler

  - ### addIconKeyPressHandler

    public HandlerRegistration addIconKeyPressHandler(IconKeyPressHandler handler)
    Add a iconKeyPress handler.

    StringMethod. Default action to fire when an icon has keyboard focus and the user types a key. May be overridden by setting `keyPress` on the form item icon directly.

    Specified by:
      `addIconKeyPressHandler` in interface `HasIconKeyPressHandlers`
    Parameters:
      `handler` - the iconKeyPress handler
    Returns:
      `HandlerRegistration` used to remove this handler

  - ### invalidateDisplayValueCache

    public void invalidateDisplayValueCache()
    If this item has a specified `displayField`, the value displayed to the user for this item may be derived from another field.

    The display field can be either another field value in the same record or a field that must be retrieved from a related `optionDataSource` if `fetchMissingValues` is true. In this latter case, we perform a fetch against the option dataSource when the item value changes in order to determine the display value to show (and we make the associated record available via `getSelectedRecord()`).

    We cache this data on the form item, so if the item value changes to a new value, then reverts to a previously-seen value, the display value and selected record are already available without the need for an additional fetch. The cached values will also be kept in synch with the dataSource data assuming it is modified via standard add, update or delete operations.

    This method explicitly invalidates this cache of optionDataSource data, and if the item value is non null and fetchMissingValues is still true, re-fetches the data.

  - ### isCutEvent

    public boolean isCutEvent()
    Is the user performing a native "cut" event to modify the value of a freeform text field? This method may be invoked during change notification flow methods including `FormItem.change()`, `FormItem.changed()` and `FormItem.transformInput()`. See `supportsCutPasteEvents`.
    Returns:
      true if this is a cut event.

  - ### isDrawn

    public Boolean isDrawn()
    Returns true if this item has been written out into the DOM.
    Returns:
      whether this item is drawn
    See Also:
      - `Drawing overview and related methods`

  - ### isFocused

    public Boolean isFocused()
    Returns true if this formItem has the keyboard focus. Note that in Internet Explorer focus notifications can be asynchronous (see `synchronousFocusNotifications`). In this case, this method can correctly return false when, intuitively, you would expect it to return true:

              someItem.focusInItem();
              if (someItem.isFocused()) {
                  // In most browsers we would get here, but not in Internet Explorer with
                  // EventHandler.synchronousFocusNotifications disabled
              }

    Returns:
      whether this formItem has the keyboard focus

  - ### isInGrid

    public Boolean isInGrid()
    Returns true if this item's `containerWidget` is a `GridRenderer` or GridRenderer subclass
    Returns:
      whether the item's container is a GridRenderer (and thus ultimately a ListGrid)

  - ### isPasteEvent

    public boolean isPasteEvent()
    Is the user performing a native "paste" event to modify the value of a freeform text field? This method may be invoked during change notification flow methods including `FormItem.change()`, `FormItem.changed()` and `FormItem.transformInput()`. See `supportsCutPasteEvents`.
    Returns:
      true if this is a cut event.

  - ### isVisible

    public Boolean isVisible()
    Return true if the form item is currently visible. Note that like the similar `Canvas API`, it indicates visibility settings only and so will return true for an item that is not drawn.
    Returns:
      true if the form item is visible
    See Also:
      - `Visibility overview and related methods`

  - ### addItemHoverHandler

    public HandlerRegistration addItemHoverHandler(ItemHoverHandler handler)
    Add a itemHover handler.

    Optional stringMethod to fire when the user hovers over this item. Call `com.smartgwt.client.widgets.form.fields.events.ItemHoverEvent#cancel()` from within `ItemHoverHandler.onItemHover(com.smartgwt.client.widgets.form.fields.events.ItemHoverEvent)` to suppress default behavior of showing a hover canvas containing the HTML returned by `formItem.itemHoverHTML()` / `form.itemHoverHTML()`.

    If `FormItem.canHover` is set to false, this method is not called.

    Specified by:
      `addItemHoverHandler` in interface `HasItemHoverHandlers`
    Parameters:
      `handler` - the itemHover handler
    Returns:
      `HandlerRegistration` used to remove this handler

  - ### addKeyDownHandler

    public HandlerRegistration addKeyDownHandler(KeyDownHandler handler)
    Add a keyDown handler.

    StringMethod fired in response to a keydown while focused in this form item.

    Specified by:
      `addKeyDownHandler` in interface `HasKeyDownHandlers`
    Parameters:
      `handler` - the keyDown handler
    Returns:
      `HandlerRegistration` used to remove this handler

  - ### addKeyPressHandler

    public HandlerRegistration addKeyPressHandler(KeyPressHandler handler)
    Add a keyPress handler.

    StringMethod fired when the user presses a key while focused in this form item.

    Specified by:
      `addKeyPressHandler` in interface `HasKeyPressHandlers`
    Parameters:
      `handler` - the keyPress handler
    Returns:
      `HandlerRegistration` used to remove this handler

  - ### addKeyUpHandler

    public HandlerRegistration addKeyUpHandler(KeyUpHandler handler)
    Add a keyUp handler.

    StringMethod fired in response to a keyup while focused in this form item.

    Specified by:
      `addKeyUpHandler` in interface `HasKeyUpHandlers`
    Parameters:
      `handler` - the keyUp handler
    Returns:
      `HandlerRegistration` used to remove this handler

  - ### addPendingStatusChangedHandler

    public HandlerRegistration addPendingStatusChangedHandler(PendingStatusChangedHandler handler)
    Add a pendingStatusChanged handler.

    Notification method called when `showPending` is enabled and this form item should either clear or show its "Pending" visual state.

    The default behavior is that the `titleStyle` and `cellStyle` are updated to include/exclude the "Pending" suffix. Standard form item types may implement additional default behavior (see any item-specific pendingStatusChanged() documentation). Returning `false` will cancel the default behavior.

    The pendingStatusChanged() notification method is typically used by `CanvasItem`-derived form items, where a custom or supplemental pending visual state is desired.

    Specified by:
      `addPendingStatusChangedHandler` in interface `HasPendingStatusChangedHandlers`
    Parameters:
      `handler` - the pendingStatusChanged handler
    Returns:
      `HandlerRegistration` used to remove this handler

  - ### addPickerIconClickHandler

    public HandlerRegistration addPickerIconClickHandler(PickerIconClickHandler handler)
    Add a pickerIconClick handler.

    Notification method called when the `picker icon` is clicked. This method will fire after the `FormItemIcon.formItemClick()` handler for the `pickerIcon`. If the event is not cancelled, the standard `FormItem.iconClick()` will also fire.

    The default implementation will call `FormItem.showPicker()`.

    Specified by:
      `addPickerIconClickHandler` in interface `HasPickerIconClickHandlers`
    Parameters:
      `handler` - the pickerIconClick handler
    Returns:
      `HandlerRegistration` used to remove this handler

  - ### redraw

    public void redraw()
    Redraw this form item.

    Depending on the item and the `containerWidget` it's embedded in, this may redraw this particular item or require a redraw of all items in the form.

    Do not call this method unless the documentation directs you to do so. Calling `redraw()` unnecessarily has significant performance consequences.

  - ### redraw

    public void redraw(String reason)
    Redraw this form item.

    Depending on the item and the `containerWidget` it's embedded in, this may redraw this particular item or require a redraw of all items in the form.

    Do not call this method unless the documentation directs you to do so. Calling `redraw()` unnecessarily has significant performance consequences.

    Parameters:
      `reason` - optional reason for performing the redraw, which may appear in diagnostic logs if enabled

  - ### removeIcon

    public boolean removeIcon(String icon)
    Given an icon's `name`, remove it from this item.
    Parameters:
      `icon` - the name of the icon to remove. See `Identifier`
    Returns:
      true if an icon was removed, false otherwise
    See Also:
      - `Identifier`

  - ### selectedRecordChanged

    public void selectedRecordChanged(ListGridRecord record)
    Notification method fired for `data bound items` with `fetchMissingValues` enabled when the `selected record` is updated as a result of the value changing or a fetch for a new record completing.
    Note that a formItem with an optionDataSource may avoid fetching an associated record altogether in some cases. See `fetchMissingValues` and `alwaysFetchMissingValues`. Developers should also be aware that if PickList.fetchDisplayedFieldsOnly is set (or some custom `fetch operation` has been specified), the data returned from the server may include only a subset of dataSource fields rather than complete records.
    Parameters:
      `record` - new selected record. May be null if the item has been set to a value with no associated record.

  - ### setIconDisabled

    public void setIconDisabled(String icon, boolean disabled)
    Set an icon as enabled or disabled at runtime.
    Parameters:
      `icon` - `name` of the icon to be disabled/enabled. See `Identifier`
      `disabled` - true if icon should be disabled
    See Also:
      - `FormItemIcon.getDisabled()`
      - `Enabling and Disabling`

  - ### setIconShowOnFocus

    public void setIconShowOnFocus(String icon, Boolean showOnFocus)
    Sets `FormItemIcon.showOnFocus` for the supplied icon, and causes that icon's visibility to be updated and the item redrawn as appropriate.
    Parameters:
      `icon` - `name` of the icon to update. See `Identifier`
      `showOnFocus` - new value of `FormItemIcon.showOnFocus`

  - ### shouldApplyHeightToTextBox

    public boolean shouldApplyHeightToTextBox()
    If `height` is specified, should it be applied to the item's text box element? If this method returns false, the text box will not have an explicit height applied, though the containing cell will be sized to accommodate any specified height.

    This is used in cases where the text box does not have distinctive styling (for example in standard `StaticTextItem`s). As the textBox has no explicit height, it fits the content. Since the text box is not visually distinct to the user, this makes `vAlign` behave as expected with the text value of the item being vertically aligned within the cell.

    Default implementation will return `applyHeightToTextBox` if explicitly set otherwise `false` if `readOnlyDisplay` is set to `"static"` and the item is `not editable`, otherwise true.

    Returns:
      true if the height should be written into the items' text box.

  - ### shouldFetchMissingValue

    public Boolean shouldFetchMissingValue(Object newValue)
    If this field has a specified `optionDataSource`, should we perform a fetch against that dataSource to find the record that matches this field's value?

    If the value is non-null, this method is called when the item is first rendered or whenever the value is changed via a call to `setValue()`. If it returns true, a fetch will be dispatched against the optionDataSource to get the record matching the value

    When the fetch completes, if a record was found that matches the data value (and the form item value has not subsequently changed again), the item will be re-rendered to reflect any changes to the display value, and the record matching the value will be available via `this.getSelectedRecord()`.

    Default behavior will return false if `this.fetchMissingValues` is set to false. Otherwise it will return true if `this.alwaysFetchMissingValues` is set to true, or if a `displayField` is specified for this item and the item value is not already present in the item's valueMap.

    Parameters:
      `newValue` - The new data value of the item.
    Returns:
      should we fetch the record matching the new value from the item's optionDataSource?

  - ### shouldSaveOnEnter

    public Boolean shouldSaveOnEnter()
    Returns true if 'Enter' key presses in this formItem should allow a saveOnEnter: true parent form to save it's data. The default implementation returns the value of `saveOnEnter` or false if that property is unset.
    Returns:
      boolean indicating whether saving should be allowed to proceed

  - ### shouldStopKeyPressBubbling

    public boolean shouldStopKeyPressBubbling(String keyName, int characterValue)
    Should some keypress event on this item be prevented from bubbling (such that the containing form and ancestors do not receive the event).

    This method is called after standard item keypress handlers when the user presses a key while focused in this item. Returning true will suppress bubbling of the event to the containing form. This is useful to avoid having the form react to key events which "have meaning" to the focused item.

    Default implementation varies by item type. In short character keys are suppressed for all editable fields, as are keys which will modify the current state of the field ("Arrow" keys for moving around free form text editors, etc).

    Note that when this method returns true, no `keyPress` event will fire on the form for the key pressed. However developers will still receive the separate `DynamicForm.itemKeyPress()` event.

    Parameters:
      `keyName` - name of the key pressed. See `KeyName`
      `characterValue` - If this was a character key, this is the numeric value for the character
    Returns:
      return true to prevent bubbling of the pressed key.

  - ### show

    public void show()
    Show this form item.

    This will cause the form to redraw. If this item had an item.showIf expression, it will be destroyed.

  - ### addShowContextMenuHandler

    public HandlerRegistration addShowContextMenuHandler(ShowContextMenuHandler handler)
    Add a showContextMenu handler.

    Called when the mouse is right-clicked anywhere in this formItem. If the implementation returns false, default browser behavior is cancelled.

    Note that it can be bad practice to cancel this method if the mouse is over the data element for the item, because doing so would replace the builtin browser-default menus that users may expect. You can use `DynamicForm.getEventItemInfo()` to return an info object that can be used to determine which part of the item is under the mouse.

    Specified by:
      `addShowContextMenuHandler` in interface `HasShowContextMenuHandlers`
    Parameters:
      `handler` - the showContextMenu handler
    Returns:
      `HandlerRegistration` used to remove this handler

  - ### showIcon

    public void showIcon(String icon)
    This method will show some icon in this item's `icons` array, if it is not already visible. Note that once this method has been called, any previously specified `FormItemIcon.showIf()` will be discarded.

    Note that if the form item's showIcons property is set to false, no icons will be displayed for the item. In this case this method will not cause the icon to be displayed.

    Parameters:
      `icon` - `name` of the icon to be shown. See `Identifier`
    See Also:
      - `Identifier`

  - ### showPicker

    public void showPicker()
    Method to show a picker for this item. By default this method is called if the user clicks on a `pickerIcon`. May also be called programmatically.

    Default implementation lazily creates and shows the `Picker Autochild`.

    Developers wishing to show a custom picker widget can either implement a `FormItem.pickerIconClick()` handler with an entirely custom implementation (and bypass the call to `showPicker()` altogether), or use the `AutoChild pattern` to customize the automatically generated `picker autoChild`.

  - ### stopHover

    public void stopHover()
    This method is fired when the user rolls off this item (or the title for this item) and will clear any hover canvas shown by the item.

  - ### storeValue

    public void storeValue(Object value)
    Store (and optionally show) a value for this form item.

    This method will fire standard `FormItem.change()` and `DynamicForm.itemChanged()` handlers, and store the value passed in such that subsequent calls to `getValue()` or `DynamicForm.getValue()` will return the new value for this item.

    This method is intended to provide a way for custom formItems - most commonly `canvasItems` - to provide a new interface to the user, allowing them to manipulate the item's value, for example in an embedded `CanvasItem.canvas`, or a pop-up dialog launched from an `icon`, etc. Developers should call this method when the user interacts with this custom interface in order to store the changed value.

    `shouldSaveValue` for CanvasItems is false by default. Custom CanvasItems will need to override shouldSaveValue to true if the values stored via this API should be included in the form's `getValues()` and saved with the form when `saveData()` is called.

    If you cannot easily detect interactions that should change the value as the user performs them, a workaround is to call `storeValue` right before the form saves.

    Note that this method is not designed for customizing a value which is already being saved by a standard user interaction. For example you should not call this method from a `change handler`. Other APIs such as `FormItem.transformInput()` exist for this.

    Parameters:
      `value` - value to save for this item
    See Also:
      - ListGrid Item Example

  - ### storeValue

    public void storeValue(Object value, Boolean showValue)
    Store (and optionally show) a value for this form item.

    This method will fire standard `FormItem.change()` and `DynamicForm.itemChanged()` handlers, and store the value passed in such that subsequent calls to `getValue()` or `DynamicForm.getValue()` will return the new value for this item.

    This method is intended to provide a way for custom formItems - most commonly `canvasItems` - to provide a new interface to the user, allowing them to manipulate the item's value, for example in an embedded `CanvasItem.canvas`, or a pop-up dialog launched from an `icon`, etc. Developers should call this method when the user interacts with this custom interface in order to store the changed value.

    `shouldSaveValue` for CanvasItems is false by default. Custom CanvasItems will need to override shouldSaveValue to true if the values stored via this API should be included in the form's `getValues()` and saved with the form when `saveData()` is called.

    If you cannot easily detect interactions that should change the value as the user performs them, a workaround is to call `storeValue` right before the form saves.

    Note that this method is not designed for customizing a value which is already being saved by a standard user interaction. For example you should not call this method from a `change handler`. Other APIs such as `FormItem.transformInput()` exist for this.

    Parameters:
      `value` - value to save for this item
      `showValue` - Should the formItem be updated to display the new value?
    See Also:
      - ListGrid Item Example

  - ### addTitleClickHandler

    public HandlerRegistration addTitleClickHandler(TitleClickHandler handler)
    Add a titleClick handler.

    Notification method fired when the user clicks the title for this item

    Specified by:
      `addTitleClickHandler` in interface `HasTitleClickHandlers`
    Parameters:
      `handler` - the titleClick handler
    Returns:
      `HandlerRegistration` used to remove this handler

  - ### addTitleDoubleClickHandler

    public HandlerRegistration addTitleDoubleClickHandler(TitleDoubleClickHandler handler)
    Add a titleDoubleClick handler.

    Notification method fired when the user double-clicks the title for this item

    Specified by:
      `addTitleDoubleClickHandler` in interface `HasTitleDoubleClickHandlers`
    Parameters:
      `handler` - the titleDoubleClick handler
    Returns:
      `HandlerRegistration` used to remove this handler

  - ### addTitleHoverHandler

    public HandlerRegistration addTitleHoverHandler(TitleHoverHandler handler)
    Add a titleHover handler.

    Optional stringMethod to fire when the user hovers over this item's title. Call `com.smartgwt.client.widgets.form.fields.events.TitleHoverEvent#cancel()` from within `TitleHoverHandler.onTitleHover(com.smartgwt.client.widgets.form.fields.events.TitleHoverEvent)` to suppress default behavior of showing a hover canvas containing the HTML returned by `formItem.titleHoverHTML()` / `form.titleHoverHTML()`.

    If `FormItem.canHover` is set to false, this method is not called.

    Specified by:
      `addTitleHoverHandler` in interface `HasTitleHoverHandlers`
    Parameters:
      `handler` - the titleHover handler
    Returns:
      `HandlerRegistration` used to remove this handler

  - ### updateState

    public void updateState()
    Update the visual state of a FormItem to reflect any changes in state or any changes in style settings (e.g. `textBoxStyle`).

    Calls to `updateState()` normally occur automatically as a consequence of focus changes, items becoming disabled, etc. This method is advanced and intended only for use in workarounds.

  - ### validate

    public Boolean validate()
    Validate this item.
    Returns:
      returns true if validation was successful (no errors encountered), false otherwise.

  - ### valueClipped

    public boolean valueClipped()
    Is the value clipped?

    The form item must have value clipping enabled. If a form item type supports the clipValue attribute, then clipValue must be true. `TextItem`s and derivatives (e.g. `SpinnerItem`) automatically clip their values.

    Returns:
      true if the value is clipped; false otherwise.

  - ### addValueHoverHandler

    public HandlerRegistration addValueHoverHandler(ValueHoverHandler handler)
    Add a valueHover handler.

    Optional stringMethod to fire when the user hovers over this item's value. Call `com.smartgwt.client.widgets.form.fields.events.ValueHoverEvent#cancel()` from within `ValueHoverHandler.onValueHover(com.smartgwt.client.widgets.form.fields.events.ValueHoverEvent)` to suppress default behavior of showing a hover canvas containing the HTML returned by `FormItem.valueHoverHTML()` / `DynamicForm.valueHoverHTML()`.

    If `FormItem.canHover` is set to false, this method is not called.

    Specified by:
      `addValueHoverHandler` in interface `HasValueHoverHandlers`
    Parameters:
      `handler` - the valueHover handler
    Returns:
      `HandlerRegistration` used to remove this handler

  - ### addValueIconClickHandler

    public HandlerRegistration addValueIconClickHandler(ValueIconClickHandler handler)
    Add a valueIconClick handler.

    Notification method fires when the user clicks a `value icon` for this item.

    Specified by:
      `addValueIconClickHandler` in interface `HasValueIconClickHandlers`
    Parameters:
      `handler` - the valueIconClick handler
    Returns:
      `HandlerRegistration` used to remove this handler

  - ### getPickerIcon

    public static FormItemIcon getPickerIcon(PickerIconName pickerName)
    Returns a `FormItemIcon` for a standard picker with skin-specific settings.
    Parameters:
      `pickerName` - Name of picker icon
    Returns:
      the icon for picker

  - ### getPickerIcon

    public static FormItemIcon getPickerIcon(PickerIconName pickerName, FormItemIcon properties)
    Returns a `FormItemIcon` for a standard picker with skin-specific settings.
    Parameters:
      `pickerName` - Name of picker icon
      `properties` - Properties to apply to new picker icon
    Returns:
      the icon for picker

  - ### setDefaultProperties

    public static void setDefaultProperties(FormItem formItemProperties)
    Class level method to set the default properties of this class. If set, then all existing and subsequently created instances of this class will automatically have default properties corresponding to the properties of the class instance passed to this function. This is a powerful feature that eliminates the need for users to create a separate hierarchy of subclasses that only alter the default properties of this class. Can also be used for skinning / styling purposes.

    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.

    Parameters:
      `formItemProperties` - properties that should be used as new defaults when instances of this class are created
    See Also:
      - `SGWTProperties`

  - ### setUseObjectFactoryForTypeFallback

    public static void setUseObjectFactoryForTypeFallback(boolean useFallback)
    Configures whether we use `ObjectFactory` as a fallback for resolving editorType class names for `setEditorType(java.lang.String)` if Reflection is not available for the type.
    Parameters:
      `useFallback` - whether to use ObjectFactory for fallback

  - ### isAssignableFrom

    public static boolean isAssignableFrom(Class<?> scClass)
    Whether the supplied class is a subclass of `com.smartgwt.client.form.fields.FormItem`.
    Parameters:
      `scClass` - the SmartClient Framework class to check
    Returns:
      whether the supplied class isa subclass of FormItem

  - ### checkFormItemType

    public static String checkFormItemType(String editorType)

  - ### getScClassName

    public String getScClassName()
    Get the name of the underlying SmartClient class
    Returns:
      the SmartClient class name

  - ### setScClassName

    public void setScClassName(String scClassName)
    Set the name of the underlying SmartClient class. This is an advanced setting.
    Parameters:
      `scClassName` - the SmartClient class

  - ### asSGWTComponent

    public static <T extends RefDataClass> T asSGWTComponent(JavaScriptObject jsObj)
    Returns the existing SGWT FormItem, or creates and returns one if none exist, associated with the supplied `JavaScriptObject`. If the supplied object is not a SmartClient FormItem, a warning will be logged and null returned; otherwise the FormItem will be returned as the appropriate subtype of SGWT FormItem.
    Parameters:
      `jsObj` - SmartClient FormItem whose wrapper is wanted
    Returns:
      wrapping SGWT FormItem, of an appropriate subtype, or null

  - ### getClassName

    public String getClassName()
    Returns the JavaScript class name.
    Returns:

  - ### setInitHandler

    public void setInitHandler(FormItemInitHandler initHandler)
    Specify a notification method to fire when this formItem is initialized in JavaScript. This allows developers to set up form item state dynamically when the item is created.
    Parameters:
      `initHandler` -

  - ### setAttribute

    public FormItem setAttribute(String attribute, String value)
    Description copied from class: `DataClass`
    Set attribute value to a String
    Overrides:
      `setAttribute` in class `DataClass`
    Returns:
      `DataClass` instance, for chaining setter calls

  - ### setAttribute

    public FormItem setAttribute(String attribute, Map value)
    Description copied from class: `DataClass`
    Set attribute value to a Map. Value will be stored as a JavaScript Object on the underlying data object, with property/value pairs matching the keys/values specified on the Map. Note that this is a recursive conversion - each value will also be converted to the equivalent JavaScript type where appropriate.
    Overrides:
      `setAttribute` in class `DataClass`
    Returns:
      `DataClass` instance, for chaining setter calls

  - ### setAttribute

    public FormItem setAttribute(String attribute, BaseClass[] value)
    Description copied from class: `DataClass`
    Set attribute value to a BaseClass array. Value will be stored as a JavaScript Array of the underlying JavaScript objects for each entry.
    Overrides:
      `setAttribute` in class `DataClass`
    Returns:
      `DataClass` instance, for chaining setter calls

  - ### setAttribute

    public FormItem setAttribute(String attribute, DataClass[] value)
    Description copied from class: `DataClass`
    Set attribute value to a DataClass array. Value will be stored as a JavaScript Array of the underlying JavaScript objects for each entry.
    Overrides:
      `setAttribute` in class `DataClass`
    Returns:
      `DataClass` instance, for chaining setter calls

  - ### setAttribute

    public FormItem setAttribute(String attribute, Date value)
    Description copied from class: `DataClass`
    Set attribute value to a Date. Value will be stored as a JavaScript Date on the underlying data object
    Overrides:
      `setAttribute` in class `DataClass`
    Returns:
      `DataClass` instance, for chaining setter calls

  - ### setAttribute

    public FormItem setAttribute(String attribute, ValueEnum[] value)
    Description copied from class: `DataClass`
    Set attribute value to a ValueEnum array. Value will be stored as a JavaScript Array containing the each Enum value.
    Overrides:
      `setAttribute` in class `DataClass`
    Returns:
      `DataClass` instance, for chaining setter calls

  - ### setAttribute

    public FormItem setAttribute(String attribute, DataClass value)
    Description copied from class: `DataClass`
    Set attribute value to a DataClass. Value will be stored as the underlying JavaScript object for the DataClass instance passed in.
    Overrides:
      `setAttribute` in class `DataClass`
    Returns:
      `DataClass` instance, for chaining setter calls

  - ### setAttribute

    public FormItem setAttribute(String attribute, BaseClass value)
    Description copied from class: `DataClass`
    Set attribute value to a BaseClass. Value will be stored as the underlying JavaScript object for the BaseClass instance passed in.
    Overrides:
      `setAttribute` in class `DataClass`
    Returns:
      `DataClass` instance, for chaining setter calls

  - ### setAttribute

    public FormItem setAttribute(String attribute, JavaScriptObject value)
    Description copied from class: `DataClass`
    Set attribute value to a JavaScriptObject.
    Overrides:
      `setAttribute` in class `DataClass`
    Returns:
      `DataClass` instance, for chaining setter calls

  - ### setAttribute

    public FormItem setAttribute(String attribute, String[] value)
    Description copied from class: `DataClass`
    Set attribute value to a String array. Value will be stored as a JavaScript Array of Strings on the underlying data object.
    Overrides:
      `setAttribute` in class `DataClass`
    Returns:
      `DataClass` instance, for chaining setter calls

  - ### setAttribute

    public FormItem setAttribute(String attribute, boolean value)
    Description copied from class: `DataClass`
    Set attribute value to a boolean.
    Overrides:
      `setAttribute` in class `DataClass`
    Returns:
      `DataClass` instance, for chaining setter calls

  - ### setAttribute

    public FormItem setAttribute(String attribute, Boolean value)
    Description copied from class: `DataClass`
    Set attribute value to a Boolean.
    Overrides:
      `setAttribute` in class `DataClass`
    Returns:
      `DataClass` instance, for chaining setter calls

  - ### setAttribute

    public FormItem setAttribute(String attribute, int value)
    Description copied from class: `DataClass`
    Set attribute value to an int. Value will be stored as a JavaScript Number on the underlying data object
    Overrides:
      `setAttribute` in class `DataClass`
    Returns:
      `DataClass` instance, for chaining setter calls

  - ### setAttribute

    public FormItem setAttribute(String attribute, Integer value)
    Description copied from class: `DataClass`
    Set attribute value to an Integer. Value will be stored as a JavaScript Number on the underlying data object
    Overrides:
      `setAttribute` in class `DataClass`
    Returns:
      `DataClass` instance, for chaining setter calls

  - ### setAttribute

    public FormItem setAttribute(String attribute, long value)
    Description copied from class: `DataClass`
    Set attribute value to a long. Value will be stored as a JavaScript Number on the underlying data object.
    Overrides:
      `setAttribute` in class `DataClass`
    Returns:
      `DataClass` instance, for chaining setter calls

  - ### setAttribute

    public FormItem setAttribute(String attribute, Float value)
    Description copied from class: `DataClass`
    Set attribute value to a Float. Value will be stored as a JavaScript Number on the underlying data object
    Overrides:
      `setAttribute` in class `DataClass`
    Returns:
      `DataClass` instance, for chaining setter calls

  - ### setAttribute

    public FormItem setAttribute(String attribute, double value)
    Description copied from class: `DataClass`
    Set attribute value to a double. Value will be stored as a JavaScript Number on the underlying data object
    Overrides:
      `setAttribute` in class `DataClass`
    Returns:
      `DataClass` instance, for chaining setter calls

  - ### setAttribute

    public FormItem setAttribute(String attribute, Double value)
    Description copied from class: `DataClass`
    Set attribute value to a Double. Value will be stored as a JavaScript Number on the underlying data object
    Overrides:
      `setAttribute` in class `DataClass`
    Returns:
      `DataClass` instance, for chaining setter calls

  - ### setAttribute

    public FormItem setAttribute(String attribute, int[] value)
    Description copied from class: `DataClass`
    Set attribute value to an int array. Value will be stored as a JavaScript Array of Numbers on the underlying data object.
    Overrides:
      `setAttribute` in class `DataClass`
    Returns:
      `DataClass` instance, for chaining setter calls

  - ### setAttribute

    public FormItem setAttribute(String attribute, Integer[] value)
    Description copied from class: `DataClass`
    Set attribute value to an Integer array. Value will be stored as a JavaScript Array of Numbers on the underlying data object.
    Overrides:
      `setAttribute` in class `DataClass`
    Returns:
      `DataClass` instance, for chaining setter calls

  - ### setAttribute

    public FormItem setAttribute(String attribute, double[] value)
    Description copied from class: `DataClass`
    Set attribute value to a double array. Value will be stored as a JavaScript Array of Numbers on the underlying data object
    Overrides:
      `setAttribute` in class `DataClass`
    Returns:
      `DataClass` instance, for chaining setter calls

  - ### getAttribute

    public String getAttribute(String attribute)
    Description copied from class: `DataClass`
    Returns attribute value as a String
    Overrides:
      `getAttribute` in class `DataClass`
    Returns:

  - ### getAttributeAsString

    public String getAttributeAsString(String property)
    Description copied from class: `DataClass`
    Returns attribute value as a String.
    Overrides:
      `getAttributeAsString` in class `DataClass`
    Returns:

  - ### getAttributeAsDate

    public Date getAttributeAsDate(String property)
    Description copied from class: `DataClass`
    Returns attribute value as a Date. Applies to values stored as a JavaScript Date on the underlying data object.
    Overrides:
      `getAttributeAsDate` in class `DataClass`
    Returns:

  - ### getAttributeAsDouble

    public Double getAttributeAsDouble(String property)
    Description copied from class: `DataClass`
    Returns attribute as a Double. Applies to values stored as a JavaScript Number on the underlying data object.
    Overrides:
      `getAttributeAsDouble` in class `DataClass`
    Returns:

  - ### getAttributeAsJavaScriptObject

    public JavaScriptObject getAttributeAsJavaScriptObject(String property)
    Description copied from class: `DataClass`
    Returns attribute value as a JavaScript Object.
    Overrides:
      `getAttributeAsJavaScriptObject` in class `DataClass`
    Returns:

  - ### getAttributeAsInt

    public Integer getAttributeAsInt(String property)
    Description copied from class: `DataClass`
    Returns attribute value as an Integer. Applies to values stored as a JavaScript number on the underlying data object.
    Overrides:
      `getAttributeAsInt` in class `DataClass`
    Returns:

  - ### getAttributeAsFloat

    public Float getAttributeAsFloat(String property)
    Description copied from class: `DataClass`
    Returns attribute value as a Float. Applies to values stored as a JavaScript number on the underlying data object.
    Overrides:
      `getAttributeAsFloat` in class `DataClass`
    Returns:

  - ### getAttributeAsBoolean

    public Boolean getAttributeAsBoolean(String property)
    Description copied from class: `DataClass`
    Returns attribute value set as a Boolean. For convenience in checking boolean properties, `getAttributeAsBoolean` will return Boolean `false` if the attribute value is `null` or not a Boolean. Use the two parameter variant of this API `DataClass.getAttributeAsBoolean(String, boolean)` if you want `null` returned for `null` attribute values.
    Overrides:
      `getAttributeAsBoolean` in class `DataClass`
    Parameters:
      `property` - the property name
    Returns:
      the property value

  - ### getAttributeAsBoolean

    public Boolean getAttributeAsBoolean(String property, boolean allowNull)
    Description copied from class: `DataClass`
    Returns attribute value set as a Boolean. If the attribute value is `null` or not a Boolean, the return value depends upon `allowNull`. If `allowNull` is true, `null` will be returned; otherwise Boolean `false` will be returned. For a simpler approach that never returns `null`, use the one parameter variant of this API `DataClass.getAttributeAsBoolean(String)`.
    Overrides:
      `getAttributeAsBoolean` in class `DataClass`
    Parameters:
      `property` - the property name
      `allowNull` - whether to allow null
    Returns:
      the property value

  - ### getAttributeAsObject

    public Object getAttributeAsObject(String property, JavaScriptObject convertToObject)

  - ### setNullProperty

    public void setNullProperty(String property)

  - ### setProperty

    public void setProperty(String property, String value)

  - ### setProperty

    public void setProperty(String property, boolean value)

  - ### setProperty

    public void setProperty(String property, int value)

  - ### setProperty

    public void setProperty(String property, double value)

  - ### setProperty

    public void setProperty(String property, JavaScriptObject value)

  - ### setJavaScriptObject

    public final void setJavaScriptObject(JavaScriptObject jsObj)
    Overrides:
      `setJavaScriptObject` in class `JsObject`

  - ### isCreated

    public final boolean isCreated()
    Overrides:
      `isCreated` in class `JsObject`

  - ### error

    protected final void error(String attribute, String value) throws IllegalStateException
    Throws:
      `IllegalStateException`

  - ### errorIfNotCreated

    protected final void errorIfNotCreated(String property) throws IllegalStateException
    Throws:
      `IllegalStateException`

  - ### error

    protected final void error(String message) throws IllegalStateException
    Throws:
      `IllegalStateException`

  - ### setAutoChildConstructor

    public void setAutoChildConstructor(String autoChildName, String className)
    Sets the SmartClient constructor for the AutoChild named `autoChildName`.
    Parameters:
      `autoChildName` - the name of the AutoChild
      `className` - the SmartClient class name to use when constructing the AutoChild.
    See Also:
      - `AutoChildUsage`

  - ### setAutoChildProperties

    public void setAutoChildProperties(String autoChildName, Canvas properties) throws IllegalStateException
    Sets the properties for creating a `Canvas` AutoChild named `autoChildName`.

    `properties` must not have already been created (`properties.isCreated()` must be `false`).

    NOTE: Overrides at override points are not applied to AutoChildren created from `properties`; that is, if the Java `Class` of `properties` overrides a Smart GWT override point, the custom method implementation will not be called.

    Throws:
      `IllegalStateException` - if `properties` has been created.
    See Also:
      - `AutoChildUsage`

  - ### setAutoChildProperties

    public void setAutoChildProperties(String autoChildName, FormItem properties) throws IllegalStateException
    Sets the properties for creating a `FormItem` AutoChild named `autoChildName`.

    `properties` must not have already been created (`properties.isCreated()` must be `false`).

    NOTE: Overrides at override points are not applied to AutoChildren created from `properties`; that is, if the Java `Class` of `properties` overrides a Smart GWT override point, the custom method implementation will not be called.

    Throws:
      `IllegalStateException` - if `properties` has been created.
    See Also:
      - `AutoChildUsage`

  - ### setAutoChildProperties

    public void setAutoChildProperties(String autoChildName, EditProxy properties) throws IllegalStateException
    Sets the properties for creating an AutoChild named `autoChildName`.

    `properties` must not have already been created (`properties.isCreated()` must be `false`).

    Throws:
      `IllegalStateException` - if `properties` has been created.
    See Also:
      - `AutoChildUsage`

  - ### setAutoChildVisibility

    public void setAutoChildVisibility(String autoChildName, boolean visible)
    Sets whether to create and show the AutoChild named `autoChildName`.

    NOTE: This API is not valid for all AutoChildren because some AutoChildren cannot be hidden without destroying the main functions of the component.

    Parameters:
      `autoChildName` - name of an AutoChild
      `visible` - whether to show the AutoChild

  - ### getCanvasAutoChild

    public final Canvas getCanvasAutoChild(String autoChildName)
    Returns the `Canvas` AutoChild named `autoChildName` if already created.
    Parameters:
      `autoChildName` - name of an AutoChild to return.
    Throws:
      `RuntimeException` - if the AutoChild is not a SmartClient `Canvas` object.

  - ### getFormItemAutoChild

    public final FormItem getFormItemAutoChild(String autoChildName)
    Returns the `FormItem` AutoChild named `autoChildName` if already created.
    Parameters:
      `autoChildName` - name of an AutoChild to return.
    Throws:
      `RuntimeException` - if the AutoChild is not a SmartClient `FormItem` object.

  - ### setName

    public FormItem setName(String name)
    Name for this form field. Must be unique within the form as well as a valid JavaScript identifier - see `FieldName` for details and how to check for validity.

    The FormItem's name determines the name of the property it edits within the form.

    Note that an item must have a valid name or `dataPath` in order for its value to be validated and/or saved.

    Overrides:
      `setName` in class `Field`
    Parameters:
      `name` - New name value. Default value is null
    Returns:
      `Field` instance, for chaining setter calls
    See Also:
      - `FieldName`
      - `Basics overview and related methods`

  - ### setErrorOrientation

    public void setErrorOrientation(FormErrorOrientation errorOrientation)
    If `showInlineErrors` is true, where should the error icon and text appear relative to the form item itself. Valid options are `"top"`, `"bottom"`, `"left"` or `"right"`.
    If unset the orientation will be derived from `errorOrientation`.
    Parameters:
      `errorOrientation` - errorOrientation Default value is null

  - ### setType

    public void setType(String type)
    The DynamicForm picks a field renderer based on the type of the field (and sometimes other attributes of the field).
    Parameters:
      `type` - type Default value is "text"

  - ### setColSpan

    public FormItem setColSpan(String colSpan)
    Number of columns that this item spans.

    The `colSpan` setting does not include the title shown for items with `showTitle`:true, so the effective `colSpan` is one higher than this setting for items that are showing a title and whose `TitleOrientation` is either "left" or "right".

    Parameters:
      `colSpan` - colSpan Default value is 1
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### setColSpan

    public FormItem setColSpan(int colSpan)
    Number of columns that this item spans.

    The `colSpan` setting does not include the title shown for items with `showTitle` set to true, so the effective `colSpan` is one higher than this setting for items that are showing a title and whose `TitleOrientation` is either "left" or "right".

    Parameters:
      `colSpan` - colSpan Default value is 1
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### getType

    public String getType()
    The DynamicForm picks a field renderer based on the type of the field (and sometimes other attributes of the field).
    Returns:
      the type

  - ### setDefaultValue

    public FormItem setDefaultValue(String defaultValue)
    Value used when no value is provided for this item. Note that whenever this item's value is cleared by the user or set to `null` programmatically, it will be reverted to the `defaultValue`. Developers should use the `values` object if their intention is to provide an initial value for a field in a form rather than a value to use in place of `null`.
    Parameters:
      `defaultValue` - defaultValue Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### setDefaultValue

    public FormItem setDefaultValue(Integer defaultValue)
    Value used when no value is provided for this item. Note that whenever this item's value is cleared by the user or set to `null` programmatically, it will be reverted to the `defaultValue`. Developers should use the `values` object if their intention is to provide an initial value for a field in a form rather than a value to use in place of `null`.
    Parameters:
      `defaultValue` - defaultValue Default value is null

  - ### setDefaultValue

    public FormItem setDefaultValue(Date defaultValue)
    Value used when no value is provided for this item. Note that whenever this item's value is cleared by the user or set to `null` programmatically, it will be reverted to the `defaultValue`. Developers should use the `values` object if their intention is to provide an initial value for a field in a form rather than a value to use in place of `null`.
    Parameters:
      `defaultValue` - defaultValue Default value is null

  - ### setDefaultValue

    public FormItem setDefaultValue(Boolean defaultValue)
    Value used when no value is provided for this item. Note that whenever this item's value is cleared by the user or set to `null` programmatically, it will be reverted to the `defaultValue`. Developers should use the `values` object if their intention is to provide an initial value for a field in a form rather than a value to use in place of `null`.
    Parameters:
      `defaultValue` - defaultValue Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls

  - ### setDefaultValue

    public FormItem setDefaultValue(Float defaultValue)
    Value used when no value is provided for this item. Note that whenever this item's value is cleared by the user or set to `null` programmatically, it will be reverted to the `defaultValue`. Developers should use the `values` object if their intention is to provide an initial value for a field in a form rather than a value to use in place of `null`.
    Parameters:
      `defaultValue` - defaultValue Default value is null

  - ### setDefaultValue

    public FormItem setDefaultValue(Double defaultValue)
    Value used when no value is provided for this item. Note that whenever this item's value is cleared by the user or set to `null` programmatically, it will be reverted to the `defaultValue`. Developers should use the `values` object if their intention is to provide an initial value for a field in a form rather than a value to use in place of `null`.
    Parameters:
      `defaultValue` - defaultValue Default value is null

  - ### setDefaultValue

    public void setDefaultValue(Object value)

  - ### setValueMap

    public FormItem setValueMap(String... valueMap)
    Set the valueMap for this item.
    Parameters:
      `valueMap` - the value map
    See Also:
      - `getValueMapAsArray()`

  - ### setValueMap

    public FormItem setValueMap(Map valueMap)
    Set the valueMap for this item.
    Overrides:
      `setValueMap` in class `Field`
    Parameters:
      `valueMap` - the value map
    Returns:
      `Field` instance, for chaining setter calls
    See Also:
      - `getValueMap()`

  - ### setValueIcons

    public void setValueIcons(Map valueIcons)
    Set the valueIcons for this item.
    Parameters:
      `valueIcons` - mapping of logical values for this item to icon src URLs

  - ### setEditorProperties

    public void setEditorProperties(FormItem editorProperties)
    Set the default `FormItem` properties to be used whenever this field is edited.

    The type of FormItem to use for editing is normally derived automatically from `type`, which is the data type of the field, by the rules explained `here`.

    Note: The FormItem passed to setEditorProperties() is used as a "template" to create a FormItem whenever the form needs to show an interface for editing this field.

    For an overview of the template rules, reflection requirements when trying to assign an edit Formitem by type, and an understanding of how the various `setEditorProperties()` calls on different classes relate to each other in determining what configuration ultimately gets applied to the edit FormItem, see `DataSourceField.setEditorProperties(FormItem)`.

    Parameters:
      `editorProperties` - FormItem with the properties you want to set as defaults.
    See Also:
      - `setEditorType(String)`
      - `setEditorType(Class)`

  - ### setEditorType

    public void setEditorType(FormItem editorType)
    Deprecated.
    Renamed to `setEditorProperties(FormItem)`. You can also consider using `setEditorType(Class)` or `setEditorType(String)` instead.
    Synonym for `setEditorProperties(FormItem)`.
    Parameters:
      `editorType` - FormItem with the properties you want to set as defaults

  - ### setEditorType

    public void setEditorType(String editorType)
    Set the FormItem subclass to use when editing.

    The type of `FormItem` to use for editing is normally derived automatically from the `type`, which is the data type of the field, by the rules explained `here`.

    Note: The editorType must be registered for use with the `reflection mechanism`. By doing so, you avoid the limitations of `setEditorProperties(FormItem)`. If the editorType cannot be resolved via reflection, this method will still work if editorType refers to a built-in SmartGWT framework class, such as `SetFilterItem`.

    Parameters:
      `editorType` - the fully-qualified class name of a `FormItem` subclass.
    Throws:
      `IllegalArgumentException` - if the editorType class has not been registered for use with the `reflection mechanism`, and it is not a built-in framework class, or if it does not inherit from `FormItem`.

  - ### setEditorType

    public void setEditorType(Class<? extends FormItem> editorType)
    Set the FormItem subclass to use when editing.

    The type of `FormItem` to use for editing is normally derived automatically from the `type`, which is the data type of the field, by the rules explained `here`.

    Note: The editorType must be registered for use with the `reflection mechanism`. By doing so, you avoid the limitations of `setEditorProperties(FormItem)`. If the editorType cannot be resolved via reflection, this method will still work if editorType refers to a built-in SmartGWT framework class, such as `SetFilterItem`.

    Parameters:
      `editorType` - a `FormItem` subclass.
    Throws:
      `IllegalArgumentException` - if the editorType class has not been registered for use with the `reflection mechanism`, and it is not a built-in framework class, or if it does not inherit from `FormItem`.

  - ### setValue

    public void setValue(int value)
    Set the value of the form item.
    Parameters:
      `value` - the form item value

  - ### setValue

    public void setValue(double value)
    Set the value of the form item.
    Parameters:
      `value` - the form item value

  - ### setValue

    public void setValue(Date value)
    Set the value of the form item.
    Parameters:
      `value` - the form item value

  - ### setValue

    public void setValue(String value)
    Set the value of the form item.
    Parameters:
      `value` - the form item value

  - ### setValue

    public void setValue(boolean value)
    Set the value of the form item.
    Parameters:
      `value` - the form item value

  - ### setValue

    public void setValue(Object value)
    Set the value of the form item as an object. GWT objects set as FormItem values are typically used with `FormItemValueParser` and `FormItemValueFormatter` API's for custom value parsing and formatting.
    Parameters:
      `value` - the form item value

  - ### getDisplayValue

    public String getDisplayValue()
    Returns this item's value with any valueMap applied to it - the value as currently displayed to the user.
    Returns:
      value displayed to the user

  - ### getDisplayValue

    public String getDisplayValue(String value)
    Returns this item's value with any valueMap applied to it - the value as currently displayed to the user.
    Returns:
      value displayed to the user

  - ### getVisibleHeight

    public int getVisibleHeight()
    Output the drawn height for this item in pixels. Note: this is only reliable after this item has been written out into the DOM.
    Returns:
      height of the form item. returns 0 if the parent form has not been rendered.

  - ### getVisibleWidth

    public int getVisibleWidth()
    Output the drawn width for this item in pixels. Note: this is only reliable after this item has been written out into the DOM.
    Returns:
      height of the form item. returns 0 if the parent form has not been rendered.

  - ### getPageRect

    public Rectangle getPageRect()
    Return the page-level coordinates of this object.
    Returns:
      the page-level coordinates of this object

  - ### getRect

    public Rectangle getRect()
    Return the coordinates of this object.
    Returns:
      the coordinates of this object

  - ### getIconRect

    public Rectangle getIconRect(FormItemIcon icon)

  - ### getIconPageRect

    public Rectangle getIconPageRect(FormItemIcon icon)

  - ### getConfig

    public JavaScriptObject getConfig()
    Returns the FormItem's config object suitable for use in API's that set the editorType
    Returns:
      the config object

  - ### getEditorTypeConfig

    public JavaScriptObject getEditorTypeConfig()

  - ### setTooltip

    public void setTooltip(String tooltip)
    This text is shown as a tooltip prompt when the cursor hovers over this item. Alias for `setPrompt(java.lang.String)`.
    Parameters:
      `tooltip` - tooltip Default value is null

  - ### getTooltip

    public String getTooltip()
    This text is shown as a tooltip prompt when the cursor hovers over this item. Alias for `getPrompt()`
    Returns:
      String

  - ### setOptionFilterContext

    public void setOptionFilterContext(RPCRequest rpcRequestProperties)
    If this item has a specified `optionDataSource`, and this property is&#010 not null, this will be passed to the datasource as `RPCRequest` properties when&#010 performing the fetch operation on the dataSource to obtain a data-value to display-value&#010 mapping

    Note : This is an advanced setting

    Parameters:
      `rpcRequestProperties` - optionFilterContext Default value is null

  - ### getOptionFilterContext

    public RPCRequest getOptionFilterContext()
    If this item has a specified `optionDataSource`, and this property is&#010 not null, this will be passed to the datasource as `RPCRequest` properties when&#010 performing the fetch operation on the dataSource to obtain a data-value to display-value&#010 mapping
    Returns:
      RPCRequest Properties

  - ### setOptionCriteria

    public void setOptionCriteria(Criteria optionCriteria)
    If this item has a specified `optionDataSource`, and this property may be used&#010 to specify criteria to pass to the datasource when&#010 performing the fetch operation on the dataSource to obtain a data-value to display-value&#010 mapping

    Note : This is an advanced setting

    Parameters:
      `optionCriteria` - optionCriteria Default value is null

  - ### getOptionCriteria

    public Criteria getOptionCriteria()
    If this item has a specified `optionDataSource`, and this property may be used&#010 to specify criteria to pass to the datasource when&#010 performing the fetch operation on the dataSource to obtain a data-value to display-value&#010 mapping
    Returns:
      the option criteria

  - ### setShowIfCondition

    public void setShowIfCondition(FormItemIfFunction showIf)
    Expression that's evaluated to see if an item should be dynamically hidden. The showIf FormItemIfFunction is is evaluated whenever the form draws or redraws.
    Parameters:
      `showIf` - the showIf handler
    See Also:
      - `FormItem#setRedrawOnChange(boolean)`

  - ### setErrorFormatter

    public void setErrorFormatter(FormItemErrorFormatter errorFormatter)
    Register a custom error formatter for this FormItem.
    Parameters:
      `errorFormatter` - the error formatter.

  - ### setInputTransformer

    public void setInputTransformer(FormItemInputTransformer inputTransformer)
    The transformer is called when a FormItem's value is about to change as the result of user interaction. This method fires after the user performed an action that would change the value of this field, and allows the developer to modify / reformat the value before it gets validated / saved. Fires before the `change` event.
    Parameters:
      `inputTransformer` - the input transformer

  - ### setItemHoverFormatter

    public void setItemHoverFormatter(FormItemHoverFormatter hoverFormatter)
    The FormItemHoverFormatter should return the HTML to display in a hover canvas when the user holds the mousepointer over this item. Return null to suppress the hover canvas altogether.
    Parameters:
      `hoverFormatter` - the hover formatter

  - ### setItemTitleHoverFormatter

    public void setItemTitleHoverFormatter(FormItemHoverFormatter hoverFormatter)
    The `FormItemHoverFormatter` should return the HTML to display in a hover canvas when the user holds the mouse pointer over this item's title and the title is clipped. Return null to suppress the hover canvas altogether.
    Parameters:
      `hoverFormatter` - the hover formatter
    See Also:
      - `DynamicForm.titleClipped(com.smartgwt.client.widgets.form.fields.FormItem)`

  - ### setTitleHoverFormatter

    public void setTitleHoverFormatter(FormItemHoverFormatter hoverFormatter)
    Synonym for `setItemTitleHoverFormatter(FormItemHoverFormatter)`.
    Parameters:
      `hoverFormatter` - the hover formatter

  - ### setItemValueHoverFormatter

    public void setItemValueHoverFormatter(FormItemHoverFormatter hoverFormatter)
    The `FormItemHoverFormatter` should return the HTML to display in a hover canvas when the user holds the mouse pointer over this item's value and the value is clipped. Return null to suppress the hover canvas altogether.
    Parameters:
      `hoverFormatter` - the hover formatter
    See Also:
      - `valueClipped()`

  - ### setValueHoverFormatter

    public void setValueHoverFormatter(FormItemHoverFormatter hoverFormatter)
    Synonym for `setItemValueHoverFormatter(FormItemHoverFormatter)`.
    Parameters:
      `hoverFormatter` - the hover formatter

  - ### getForm

    public DynamicForm getForm()
    A reference to the FormItem's DynamicForm.

    Note that you must treat this as a read-only reference to the from

    Returns:
      the form

  - ### getValue

    public Object getValue()
    Return the value tracked by this form item. If this item has multiple:true, then either null or a `List` or `RecordList` instance is returned.

    Note that for FormItems that have a ValueMap or where a `formatter` has been defined, `getValue()` returns the underlying value of the FormItem, not the displayed value.

    Returns:
      value of this element

  - ### _getValue

    public Object _getValue()

  - ### getValueAsLong

    public Long getValueAsLong()
    Return the value tracked by this form item as a Long. If the value cannot be parsed to an int that matches the original value, null will be returned.

    This method may be preferred over `getValueAsInteger()` as an underlying JavaScript number has an integral range that is more that Java Integer but less than Java Long (see background).

    If you're actually using Long values where you might need the entire range, see `DataSourceField.stringInBrowser` for suggested approaches.

    Returns:
      value of this element
    See Also:
      - `getValue()`
      - `getValueAsInteger()`

  - ### getValueAsRecordList

    public RecordList getValueAsRecordList()

  - ### setValueFormatter

    public void setValueFormatter(FormItemValueFormatter formatter)
    Optional `FormItemValueFormatter`, if provided, is evaluated to get the display value to show for this form items underlying data value. If you are considering using this method, you should first consider using `FormItem.setFormat`, which provides for simple and flexible declarative formatting of dates, times and numbers, without the need to write formatting code.

    This provides a way to perform a more complex data to display value manipulation than a simple `valueMap`. Note that by default this formatter will only be applied to static displays such as `StaticTextItem` or `SelectItem`, and does not apply to values displayed in a freely editable text entry field (such as a `TextItem` or `TextAreaItem`), unless `TextItem.setFormatOnBlur(java.lang.Boolean)` is set to `true`, which causes this formatter to be applied while the item does not have focus, and then be cleared when the user moves focus to the text field.

    See also `setEditorValueFormatter(com.smartgwt.client.widgets.form.FormItemValueFormatter)` and `setEditorValueParser(com.smartgwt.client.widgets.form.FormItemValueParser)`.

    Parameters:
      `formatter` - the FormItemValueFormatter

  - ### setEditorValueFormatter

    public void setEditorValueFormatter(FormItemValueFormatter formatter)
    An optional `FormItemValueFormatter` to map this item's current data value to a display value.

    Note that this only applies to items which show a free-form entry area, such as a `TextItem` or `TextAreaItem`. For display values which will not be directly manipulated by the user, use `setValueFormatter(com.smartgwt.client.widgets.form.FormItemValueFormatter)` instead.

    See also `setEditorValueParser(com.smartgwt.client.widgets.form.FormItemValueParser)`.

    Parameters:
      `formatter` - the FormItemValueFormatter

  - ### setEditorValueParser

    public void setEditorValueParser(FormItemValueParser valueParser)
    An optional `FormItemValueParser` to map a user-entered display value to a data value for storage. This method only applies to form items which show a free-form text entry area, such at the `TextItem` or `TextAreaItem`.

    See also `com.smartgwt.client.widgets.form.fields.FormItem#formatEditorValue`

    Parameters:
      `valueParser` - the FormItemValueParser

  - ### setValueIconMapper

    public void setValueIconMapper(ValueIconMapper valueIconMapper)
    Set the FormItem Value Icon mapper that allows the developer to specify the image source for an icon to be displayed for the current form item value. Takes precedence over `setValueIcons(java.util.Map)`.
    Parameters:
      `valueIconMapper` - the valueIconMapper

  - ### setDisplayFormat

    public FormItem setDisplayFormat(DateDisplayFormat displayFormat)
    Fields of type `"date"` or `"time"` will be edited using a `DateItem` or `TimeItem` by default.

    However this can be overridden - for `canEdit:false` fields, a `StaticTextItem` is used by default, and the developer can always specify a custom `editorType` as well as `data type`.

    For fields of type `"date"`, set this property to a valid `DateDisplayFormat` to specify how the date should be formatted.
    For fields of type `"time"`, set this property to a valid `timeFormatter` to specify how the time should be formatted.
    Note that if `dateFormatter` or `timeFormatter` are specified they will take precedence over this setting.

    If this field is of type `"date"` and is editable, the `inputFormat` may be used to specify how user-edited date strings will be parsed.

    Note : This is an advanced setting

    Parameters:
      `displayFormat` - displayFormat Default value is null
    Returns:
      `FormItem` instance, for chaining setter calls
    See Also:
      - `setInputFormat(java.lang.String)`
      - `setDateFormatter(com.smartgwt.client.types.DateDisplayFormat)`
      - `setTimeFormatter(com.smartgwt.client.types.TimeDisplayFormat)`

  - ### setDisplayFormat

    public void setDisplayFormat(TimeFormatter displayFormat)
    Fields of type `"date"` or `"time"` will be edited using a `DateItem` or `TimeItem` by default.

    However this can be overridden - for `canEdit:false` fields, a `StaticTextItem` is used by default, and the developer can always specify a custom `editorType` as well as `data type`.

    For fields of type `"date"`, set this property to a valid `DateDisplayFormat` to specify how the date should be formatted.
    For fields of type `"time"`, set this property to a valid `timeFormatter` to specify how the time should be formatted.
    Note that if `dateFormatter` or `timeFormatter` are specified they will take precedence over this setting.

    If this field is of type `"date"` and is editable, the `inputFormat` may be used to specify how user-edited date strings will be parsed.

    Note : This is an advanced setting

    Parameters:
      `displayFormat` - displayFormat Default value is null
    See Also:
      - `setInputFormat(java.lang.String)`
      - `setDateFormatter(com.smartgwt.client.types.DateDisplayFormat)`
      - `setTimeFormatter(com.smartgwt.client.types.TimeDisplayFormat)`

  - ### setCanEditCriterionPredicate

    public void setCanEditCriterionPredicate(FormItemCanEditCriterionPredicate predicate)
    When a dynamic form is editing an advanced criteria object via `DynamicForm.setValuesAsCriteria`, this predicate is used to determine which sub-criteria apply to which form item(s).

    This method will be called on each item, and passed the sub-criterion of the AdvancedCriteria object. It should return true if the item can edit the criterion, otherwise false. If it returns true, setValuesAsCriteria() will call `FormItemCriterionSetter.setCriterion` from the registered `FormItemCriterionSetter` to actually apply the criterion to the form item, and `DynamicForm.getValuesAsCriteria` can subsequently retrieve the edited criterion by calling `FormItemCriterionGetter.getCriterion` from the registered `FormItemCriterionGetter`.

    Default implementation will return true if the criterion `fieldName` and `operator` match the fieldName and operator (or default operator) for this item.

    Parameters:
      `predicate` - the predicate to determine the form items that can edit the criterion in question
    See Also:
      - `CriteriaEditing overview and related methods`

  - ### canEditCriterion

    public final Boolean canEditCriterion(Criterion criterion)
    Calls the `canEditCriterion()` method of the `FormItemCanEditCriterionPredicate` that is registered with this field.
    Parameters:
      `criterion` - sub-criterion from an AdvancedCriteria object
    Returns:
      return true if this item can edit the criterion in question.
    See Also:
      - `CriteriaEditing overview and related methods`

  - ### setCriterionGetter

    public void setCriterionGetter(FormItemCriterionGetter getter)
    Provides a specialized criterion from this formItem when creating an AdvancedCriteria via `DynamicForm.getValuesAsCriteria`.

    This API is provided to allow you to specify a more complex criterion than the "field-operator-value" criterions that are built-in. Note that the built-in behavior is generally quite flexible and powerful enough for most requirements. An example of a case where you might want to override this method is if you wanted to implement a date range selection (ie, date > x AND date < y) on a form that was combining its other criteria fields with an "or" operator.

    Note that this method is part of the criteria editing subsystem: if overridden, it is likely that you will want to also override `FormItem.hasAdvancedCriteria` to ensure this method is called by the form, and to support editing of existing advanced criteria you may also need to set the `FormItemCanEditCriterionPredicate` and the `FormItemCriterionSetter`.

    The default implementation will return a criterion including the form item value, fieldName and specified `operator`, or a default operator derived from the form item data type if no explicit operator is specified.

    Parameters:
      `getter` - provides a method to get a criterion object based on this field's current edited value(s).
    See Also:
      - `CriteriaEditing overview and related methods`

  - ### getCriterion

    public final Criterion getCriterion()
    Calls the `getCriterion()` method of the `FormItemCriterionGetter` that is registered with this field.
    Returns:
      criterion object based on this fields current edited value(s).
    See Also:
      - `CriteriaEditing overview and related methods`

  - ### getCriterion

    public final Criterion getCriterion(TextMatchStyle textMatchStyle)
    Calls the `getCriterion()` method of the `FormItemCriterionGetter` that is registered with this field.
    Parameters:
      `textMatchStyle` - If passed assume the textMatchStyle will be used when performing a fetch operation with these criteria. This may impact the criterion's operator property.
    Returns:
      criterion object based on this fields current edited value(s).
    See Also:
      - `CriteriaEditing overview and related methods`

  - ### setCriterionSetter

    public void setCriterionSetter(FormItemCriterionSetter setter)
    Set the method to update this form item to reflect a criterion object from within an AdvancedCriteria. Called by `DynamicForm.setValuesAsCriteria` when the registered `FormItemCanEditCriterionPredicate` returns true for this item.

    Default implementation simply calls `FormItem.setValue` with the `value` of the criterion passed in

    Parameters:
      `setter` - provides a method to update this field with the edited criterion

  - ### setCriterion

    public final void setCriterion(Criterion criterion)
    Calls the `setCriterion()` method of the `FormItemCriterionSetter` that is registered with this field.
    Parameters:
      `criterion` - criterion to edit

  - ### setAriaState

    public void setAriaState(String stateName, Object stateValue) throws IllegalStateException
    Set a specific ARIA state mapping for this form item. Usually this does not need to be manually set. See `com.smartgwt.docs.Accessibility`.
    Parameters:
      `stateName` -
      `stateValue` -
    Throws:
      `IllegalStateException` - ARIA state cannot be changed after the form item has been created.

  - ### getErrors

    public String[] getErrors()
    Returns any validation errors for this field. If no errors are present, will return null.
    Returns:
      error messages for the field.

  - ### setErrors

    public void setErrors(String error)
    Sets a validation error message for this field.

  - ### setErrors

    public void setErrors(String[] errors)
    Sets multiple validation error messages for this field.

  - ### isDisabled

    public Boolean isDisabled()
    Is this item disabled?

  - ### getDisabled

    public Boolean getDisabled()
    Deprecated.
    Do not use this API. Instead, use {@link #isDisabled)}, which correctly inherits the disabled state from containers
    Is this item disabled?

  - ### setCustomStateGetter

    public void setCustomStateGetter(FormItem.CustomStateGetter getter)
    Deprecated.
    Do not use CustomStateGetter; use `com.smartgwt.client.widgets.form.fields.FormItem.setStateCustomizer` instead
    Specify a CustomStateGetter to use for this formItem.

    If defined, the CustomStateGetter's getCustomState() method will be called whenever the framework needs to determine which style to use for the formItem in its state at that time

    Parameters:
      `getter` - the CustomStateGetter object

  - ### setStateCustomizer

    public void setStateCustomizer(FormItem.StateCustomizer customizer)
    Specify a StateCustomizer to use for this formItem. Note, StateCustomizer supersedes the deprecated `CustomStateGetter`; the only difference between the two interfaces is that the `StateCustomizer`'s `getCustomState()` method is passed the applicable FormItem, so application code does not need to track this information.

    The StateCustomizer's getCustomState() method will be called whenever the framework needs to determine which style to use for the formItem in its state at that time

    Parameters:
      `customizer` - the StateCustomizer object

  - ### setConfigOnly

    public void setConfigOnly(boolean configOnly)

  - ### isConfigOnly

    public boolean isConfigOnly()

  - ### linkToInstanceUponCreate

    public void linkToInstanceUponCreate()

  - ### mapDisplayToValue

    public Object mapDisplayToValue(String value)
    Given a display value for this FormItem, return the underlying data value. This is done by reverse value-mapping, and/or parsing.

    This method is called by the framework to derive an underlying data value for a given display value (ie, the value the user sees and interacts with) in a FormItem. Your own code can call this method if you need to programmatically obtain the underlying data value for a given display value. However, this method is not an override point. If you have a field that requires the stored value to be different from the displayed value, and the requirement cannot be satisfied with a `valueMap` for some reason, you can add custom parsing logic by setting an `editor value parser`

    This method is also not intended as a place where you can validate, sanitize, transform or canonicalize user input

    - To ensure you get well-formed input values, use `input masks` or a {@link com.smartgwt.client.widgets.form.fields.FormItem#addChangeHandler(com.smartgwt.client.widgets.form.fields.events.ChangeHandler change handler)}
    - To transform or canonicalize input values, use a `mask validator` with "transformTo". See the link to "mask validator" for more details and an example of this
    - To transform or canonicalize input character-by-character as the user types, use an `input transformer`

    ### Deriving the data value

    The process of deriving an underlying data display value from a display value involves the following steps:
    - If the formItem has an `editor value parser`, it is called
    - Otherwise, if the formItem is of a `SimpleType` that has had an edit parser applied with the `setEditParser()` API, the edit parser is called
    - If the formItem is of a `SimpleType` that `inheritsFrom` "date", "time" or "datetime", it will be parsed as a date, time or datetime. Note, this parsing step is applied on top of custom SimpleType- and FormItem-level parsing
    - If the formItem declares a `valueMap`, a value is derived by looking up the display value (including the effects of any parsing we may have done so far) in the valueMap
    Note: Unlike the corollary method `mapValueToDisplay()`, there is no special built-in handling of ``DataSourceField.multiple`:true` fields. If you want an array to be parsed out of some user input, you must write the parser method to do so.
    Parameters:
      `value` - display value
    Returns:
      value re-mapped for storing
    See Also:
      - `mapValueToDisplay(java.util.Map)`

  - ### mapValueToDisplay

    public String mapValueToDisplay(Map value)
    Given a value for this FormItem, return the value to be displayed.

    This method is called by the framework to derive a display value for a given data value in a FormItem. Your own code can call this method if you need to programmatically obtain the display value (for example, to display in a hover prompt or error message). However, this method is not an override point. There are several supported ways to apply custom formatting to your form values:

    - If you want to apply a consistent custom format to every instance of a given `SimpleType`, specify a `format` on the SimpleType. This is the most general approach. Note, this is a static formatter: it will only affect the format of values the user can interact with if `TextItem.formatOnBlur` is set
    - If you want to apply a consistent custom format to a `DataSource-described field`, the best approach is `DataSourceField.format`. This overrides SimpleType-level formatting and, again, is static formatting
    - For a FormItem that is not DataSource-described, or for special formats that should only be used on a particular form, `format` can also be declared for individual FormItems. This overrides DataSource-level formatting
    - For temporal values, you can declare `dateFormatter` and `timeFormatter` at both `FormItem` and `DynamicForm` levels. Generally, however, we recommend the generic declarative `format` as the simpler approach
    - If you want to apply a specialized format that cannot be expressed declaratively, use `setValueFormatter(com.smartgwt.client.widgets.form.FormItemValueFormatter)` for static-valued items like `StaticTextItem` or `SelectItem`, and `setEditorValueFormatter(com.smartgwt.client.widgets.form.FormItemValueFormatter)` for other types of FormItem

    ### Deriving the display value

    The process of deriving a display value from a data value involves the following steps:
    - If the item declares a `valueMap`, the display value is derived by looking up the value in the valueMap
    - If the item does not have a valueMap - or the value was not found in the item's valueMap - and the item declares a `displayField` and an `optionDataSource`, the display value is derived by looking up the "displayField" corresponding to the value in the optionDataSource's local cache
    - Formatting is now applied to the derived display value. Note, it is perfectly normal at this point for no display value has to be derived - this will be the case for any field with no `valueMap` and no `optionDataSource`. In this case, the passed-in value is treated as the display value for all further purposes.
      - If the FormItem involves static display value(s), like `StaticTextItem` or `SelectItem`
        - If the FormItem has had a static value formatter applied with the `setValueFormatter()` API, the value formatter is called
        - Otherwise, if the formItem declares a `format`, the formst is applied in line with the rules of `FormatString`
        - Otherwise, if the FormItem is of a `SimpleType` that declares a `format`, the format is applied
      - Otherwise, if the FormItem has had an editor value formatter applied with the `setEditorValueFormatter()` API, the editor value formatter is called
      - Otherwise, if the FormItem is of a `SimpleType` that has had an edit formatter applied with the `setEditFormatter()` API, the edit formatter is called
      - Otherwise, if the value is a Date:
        - If the formItem declares a `timeFormatter` and no `dateFormatter`, the timeFormatter is called
        - Otherwise, if the formItem is of a `SimpleType` that `inheritsFrom` "time", the value is formatted using the `default time format`
        - Otherwise, the date or datetime is formatted using the rules described for `dateFormatter`.
      - Otherwise, if the FormItem involves static display value(s) and is of a `SimpleType` that declares a `normalDisplayFormatter`, this is used
      - Otherwise, if the value is not null and is of a "simple" type (ie, it is not an object or an array), a display value is derived by calling the Javascript `toLocaleString()` method, if the value has one, or the `toString()` method if it does not
      - Otherwise, if the value is null or a zero-length string, the display value is set to the formItem's `emptyDisplayValue`
      - Otherwise, the "display value" is the simple, unformatted data value that was passed in

    ### Treatment of arrays

    Ordinarily, arrays are treated like any other value. This means you can, for example, create a {@link com.smartgwt.client..widgets.form.FormItemValueFormatter value formatter} that is capable of formatting an array-valued field in some way that makes sense for the particular application domain.

    However, for items that are marked to handle `multiple` values, array values are treated differently. In this case, the display value is built up by calling `mapValueToDisplay()` recursively for each array entry, and concatenating these partial display values together using the `multipleValueSeparator`.

    Parameters:
      `value` - value to be mapped to a display value
    Returns:
      value to display. Note, for items with static value(s), such as `SelectItem` or `StaticTextItem`, the display value string will be interpreted as HTML by the browser. See `SelectItem.escapeHTML` for more details
    See Also:
      - `mapDisplayToValue(java.lang.String)`

  - ### mapValueToDisplay

    public String mapValueToDisplay(JavaScriptObject value)

  - ### mapValueToDisplay

    public String mapValueToDisplay(Object value)

  - ### getWarnOnEditorTypeConversionDefault

    public static boolean getWarnOnEditorTypeConversionDefault()
    Gets whether, by default, a warning will be logged if the Framework replaces a SmartGWT FormItem (that wraps the SmartClient item instance) to more closely match the underlying item's type.
    Returns:
      whether to warn if SmartGWT FormItem wrapping a SmartClient item is replaced
    See Also:
      - `getWarnOnEditorTypeConversion()`

  - ### setWarnOnEditorTypeConversionDefault

    public static void setWarnOnEditorTypeConversionDefault(boolean warn)
    Sets whether, by default, a warning will be logged if the Framework replaces a SmartGWT FormItem (that wraps the SmartClient item instance) to more closely match the underlying item's type.
    Parameters:
      `warn` - whether to warn if SmartGWT FormItem wrapping a SmartClient item is replaced
    See Also:
      - `setWarnOnEditorTypeConversion(boolean)`

  - ### getWarnOnEditorTypeConversion

    public boolean getWarnOnEditorTypeConversion()
    Gets whether a warning will be logged if the Framework replaces this SmartGWT FormItem (that wraps the SmartClient item instance) to more closely match the underlying item's type. The default value can be configured by calling `setWarnOnEditorTypeConversionDefault(boolean)`.
    Returns:
      whether to warn if SmartGWT FormItem wrapping a SmartClient item is replaced

  - ### setWarnOnEditorTypeConversion

    public void setWarnOnEditorTypeConversion(boolean warn)
    Sets whether a warning will be logged if the Framework replaces this SmartGwt FormItem (that wraps the SmartClient item instance) to more closely match the underlying item's type when `getOrCreateRef()` is called. A SmartGWT FormItem created using the default or (String) name constructor will never be replaced unless it has the base class (i.e. FormItem) type, in which case it's always replaced as no SmartClient FormItem instance will ever have the FormItem class type. A SmartGWT FormItem created using the `JavaScriptObject` constructor (perhaps indirectly via `FormItemFactory`) will be replaced by a call to `getOrCreateRef()` if the wrapping SmartGWT FormItem type ends up mismatching the underlying SmartClient instance. This may happen if:
    - the SmartGWT FormItem type wrapping the instance is the base class, FormItem,
    - the JavaScriptObject content passed in is chosen inconsistently with the actual class of the SmartGWT FormItem constructor chosen to wrap it, or
    - the `DynamicForm` instance doesn't exist, so `FormItemFactory` (if used) is unable to select the right SmartGWT FormItem class to wrap the underlying SmartClient item instance

    Note that when calling a SmartGWT FormItem constructor taking a JavaScriptObject, you can call `setAttribute()` on the "editorType" property and pass the desired FormItem subclass name to ensure that the ultimate SmartClient instance type matches the SmartGWT FormItem constructor you've chosen (except when creating the base class FormItem type - that will always be replaced). You can use `setEditorType()` instead of setAttribute() if you've made the Java annotation to generate the appropriate BeanFactory, but that's really only needed if the type being set doesn't correspond to a native SmartGWT Framework FormItem class.

    The default value can be configured by calling `setWarnOnEditorTypeConversionDefault(boolean)`.

    Parameters:
      `warn` - whether to warn if SmartGWT FormItem wrapping a SmartClient item is replaced

  - ### handleWarnOnEditorTypeConversion

    public void handleWarnOnEditorTypeConversion(FormItem oldItem, FormItem newItem)

  - ### getValueMap

    public Map getValueMap()
    In a form, valueMaps are used for FormItem types that allow the user to pick from a limited set of values, such as a `SelectItem`. An item's valueMap can be either an Array of String values or a Map of stored String property names to Java Objects.

    To set the initial selection for a form item with a valueMap, use `defaultValue`.

    See also `DataSourceField.valueMap`.

    Overrides:
      `getValueMap` in class `Field`
    Returns:
      Map
    See Also:
      - `setValueMap(String...)`
      - `getValueMapAsArray()`
      - `setValueMap(Map)`

  - ### getValueMapAsArray

    public String[] getValueMapAsArray()
    See also `getValueMap()`
    Returns:
      String[]