com.smartgwt.client.widgets.form

## Class DynamicForm

- java.lang.Object
- - com.google.gwt.user.client.ui.UIObject
  - - com.google.gwt.user.client.ui.Widget
    - - com.smartgwt.client.widgets.BaseWidget
      - - com.smartgwt.client.widgets.Canvas
        - - com.smartgwt.client.widgets.form.DynamicForm

- All Implemented Interfaces:
    com.google.gwt.event.logical.shared.HasAttachHandlers, com.google.gwt.event.shared.HasHandlers, com.google.gwt.user.client.EventListener, com.google.gwt.user.client.ui.HasVisibility, com.google.gwt.user.client.ui.IsWidget, LogicalStructure, DataBoundComponent, HasClickHandlers, HasDoubleClickHandlers, HasDragCompleteHandlers, HasDragMoveHandlers, HasDragRepositionMoveHandlers, HasDragRepositionStartHandlers, HasDragRepositionStopHandlers, HasDragResizeMoveHandlers, HasDragResizeStartHandlers, HasDragResizeStopHandlers, HasDragStartHandlers, HasDragStopHandlers, HasDropCompleteHandlers, HasDropHandlers, HasDropMoveHandlers, HasDropOutHandlers, HasDropOverHandlers, HasFetchDataHandlers, HasFocusChangedHandlers, HasHoverHandlers, HasHoverHiddenHandlers, HasKeyDownHandlers, HasKeyPressHandlers, HasMouseDownHandlers, HasMouseMoveHandlers, HasMouseOutHandlers, HasMouseOverHandlers, HasMouseStillDownHandlers, HasMouseUpHandlers, HasMouseWheelHandlers, HasMovedHandlers, HasParentMovedHandlers, HasResizedHandlers, HasRightMouseDownHandlers, HasScrolledHandlers, HasShowContextMenuHandlers, HasVisibilityChangedHandlers, HasAsyncValidationReplyHandlers, HasFormSubmitFailedHandlers, HasHiddenValidationErrorsHandlers, HasItemChangedHandlers, HasItemChangeHandlers, HasItemKeyPressHandlers, HasSubmitValuesHandlers, HasValuesChangedHandlers
  Direct Known Subclasses:
    PropertySheet, SearchForm

      public class DynamicForm
      extends Canvas
      implements DataBoundComponent, HasFormSubmitFailedHandlers, HasAsyncValidationReplyHandlers, HasHiddenValidationErrorsHandlers, HasItemChangeHandlers, HasItemChangedHandlers, HasItemKeyPressHandlers, HasSubmitValuesHandlers, HasValuesChangedHandlers

  The DynamicForm manages a collection of FormItems which represent user input controls. The DynamicForm provides `layout`, value management, validation and databinding for the controls it manages.

  To create a DynamicForm, create several `FormItem`s and pass them to `setItems()`. For example:

           DynamicForm form = new DynamicForm();
           TextItem textItem = new TextItem("userName");
           SelectItem selectItem = new SelectItem("usState");
           form.setItems(textItem, selectItem);

  The item `name` is an identifier for the item that must be unique just within this form. It is used:
  - as the name under which the item's value is stored in the form (the form's current values are accessible as `form.getValues()`
  - when retrieving the FormItem's current value (via `form.getValue()`)
  - to retrieve the item itself via `form.getItem()`
  FormItems can also be created by binding the form to a DataSource via `setDataSource()`. In this case, FormItems are chosen based on the data type of the field - see `FormItemType`. You can override the automatically chosen FormItem via `DataSourceField.editorType`.

  When using DataSource binding, you can also add additional FormItems not specified in the DataSource, or override any properties on the automatically generated FormItems, without having to re-declare any information that comes from the DataSource. See the QuickStart Guide chapter on Data Binding for an overview.

  All FormItems share a common set of properties for controlling `form\n layout`. Other properties common to all FormItems are documented on the `FormItem` class, and properties specific to particular FormItems are documented on the respective FormItems.

  NOTE: For very simple forms consisting of exactly one item, you still use a DynamicForm. See the "fontSelector" form in the Toolstrip example.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class com.google.gwt.user.client.ui.UIObject

      `com.google.gwt.user.client.ui.UIObject.DebugIdImpl, com.google.gwt.user.client.ui.UIObject.DebugIdImplEnabled`

  - ### Field Summary

    - ### Fields inherited from class com.smartgwt.client.widgets.BaseWidget

      `config, configOnly, factoryCreated, factoryProperties, id, nativeObject, scClassName`

    - ### Fields inherited from class com.google.gwt.user.client.ui.UIObject

      `DEBUG_ID_PREFIX`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DynamicForm()`
    `DynamicForm(com.google.gwt.core.client.JavaScriptObject jsObj)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `com.google.gwt.event.shared.HandlerRegistration` | `addAsyncValidationReplyHandler(AsyncValidationReplyHandler handler)` Add a asyncValidationReply handler.
    `com.google.gwt.event.shared.HandlerRegistration` | `addDragCompleteHandler(DragCompleteHandler handler)` Add a `com.smartgwt.client.widgets.DragCompleteHandler`.
    `com.google.gwt.event.shared.HandlerRegistration` | `addDropCompleteHandler(DropCompleteHandler handler)` Add a `com.smartgwt.client.widgets.DropCompleteHandler`.
    `com.google.gwt.event.shared.HandlerRegistration` | `addFetchDataHandler(FetchDataHandler handler)` Add a fetchData handler.
    `com.google.gwt.event.shared.HandlerRegistration` | `addFormSubmitFailedHandler(FormSubmitFailedHandler handler)` Add a formSubmitFailed handler.
    `void` | `addFormulaField()` Convenience method to display a `com.smartgwt.client..FormulaBuilder` to create a new Formula Field.
    `com.google.gwt.event.shared.HandlerRegistration` | `addHiddenValidationErrorsHandler(HiddenValidationErrorsHandler handler)` Add a hiddenValidationErrors handler.
    `com.google.gwt.event.shared.HandlerRegistration` | `addItemChangedHandler(ItemChangedHandler handler)` Add a itemChanged handler.
    `com.google.gwt.event.shared.HandlerRegistration` | `addItemChangeHandler(ItemChangeHandler handler)` Add a itemChange handler.
    `com.google.gwt.event.shared.HandlerRegistration` | `addItemKeyPressHandler(ItemKeyPressHandler handler)` Add a itemKeyPress handler.
    `com.google.gwt.event.shared.HandlerRegistration` | `addSubmitValuesHandler(SubmitValuesHandler handler)` Add a submitValues handler.
    `void` | `addSummaryField()` Convenience method to display a `com.smartgwt.client..SummaryBuilder` to create a new Summary Field.
    `com.google.gwt.event.shared.HandlerRegistration` | `addValuesChangedHandler(ValuesChangedHandler handler)` Add a valuesChanged handler.
    `java.lang.Boolean` | `anySelected()` Whether at least one item is selected
    `void` | `cancel()` This method exists for clean integration with existing server frameworks that have a 'cancel' feature which typically clears session state associated with the form.
    `void` | `cancel(DSRequest requestProperties)` This method exists for clean integration with existing server frameworks that have a 'cancel' feature which typically clears session state associated with the form.
    `void` | `cancelEditing()` If the form or valuesManager has associated userTask workflow task than notify it about cancelling the changes.
    `static void` | `changeAutoChildDefaults(java.lang.String autoChildName, Canvas defaults)` Changes the defaults for Canvas AutoChildren named `autoChildName`.
    `static void` | `changeAutoChildDefaults(java.lang.String autoChildName, FormItem defaults)` Changes the defaults for FormItem AutoChildren named `autoChildName`.
    `java.util.Map` | `checkForValidationErrors(ValidationStatusCallback callback)` Performs silent validation of the current form values, like `valuesAreValid()`.
    `java.util.Map` | `checkForValidationErrors(ValidationStatusCallback callback, boolean validateHiddenFields)`
    `java.util.Map` | `checkForValidationErrors(ValidationStatusCallback callback, boolean validateHiddenFields, boolean skipServerValidation)` Performs silent validation of the current form values, like `valuesAreValid()`.
    `void` | `clearErrors(boolean show)` Clears all errors for this DynamicForm.
    `void` | `clearFieldErrors(java.lang.String fieldName, boolean show)` Clear any validation errors on the field passed in.
    `void` | `clearValue(java.lang.String fieldName)` Clears the value for some field via a call to `FormItem.clearValue()` if appropriate.
    `void` | `clearValues()` Reset to default form values and clear errors
    `void` | `completeEditing()` Finish editing and store edited values in `process state`.
    `protected com.google.gwt.core.client.JavaScriptObject` | `create()`
    `void` | `deselectAllRecords()` Deselect all records
    `void` | `deselectRecord(int record)` Deselect a `Record` passed in explicitly, or by index.
    `void` | `deselectRecord(Record record)` Deselect a `Record` passed in explicitly, or by index.
    `void` | `deselectRecords(int[] records)` Deselect a list of `Record`s passed in explicitly, or by index.
    `void` | `deselectRecords(Record[] records)` Deselect a list of `Record`s passed in explicitly, or by index.
    `void` | `disableHilite(java.lang.String hiliteID)` Disable a hilite
    `void` | `disableHiliting()` Disable all hilites.
    `void` | `editFields()` Shows a FieldPicker interface allowing end-users to rearrange the order and visibiility of the fields in the associated DataBoundComponent.
    `void` | `editHilites()` Shows a HiliteEditor interface allowing end-users to edit the data-hilites currently in use by this DataBoundComponent.
    `void` | `editNewRecord()` Prepare to edit a new record by clearing the current set of values (or replacing them with initialValues if specified).
    `void` | `editNewRecord(java.util.Map initialValues)` Prepare to edit a new record by clearing the current set of values (or replacing them with initialValues if specified).
    `void` | `editNewRecord(Record initialValues)` Prepare to edit a new record by clearing the current set of values (or replacing them with initialValues if specified).
    `void` | `editRecord(Record record)` Edit an existing record.
    `void` | `editSelectedData(ListGrid selectionComponent)` Edit the record selected in the specified ListGrid.
    `void` | `editSelectedData(java.lang.String listGridID)` Edit the record selected in the specified ListGrid.
    `void` | `enableHilite(java.lang.String hiliteID)` Enable / disable a `hilites`
    `void` | `enableHilite(java.lang.String hiliteID, boolean enable)` Enable / disable a `hilites`
    `void` | `enableHiliting()` Enable all hilites.
    `void` | `enableHiliting(boolean enable)` Enable all hilites.
    `void` | `exportData()` Uses a "fetch" operation on the current `DataSource` to retrieve data that matches the current filter and sort criteria for this component, then exports the resulting data to a file or window in the requested format.
    `void` | `exportData(DSRequest requestProperties)` Uses a "fetch" operation on the current `DataSource` to retrieve data that matches the current filter and sort criteria for this component, then exports the resulting data to a file or window in the requested format.
    `void` | `fetchData()` Retrieves data from the DataSource that matches the specified criteria.
    `void` | `fetchData(Criteria criteria)` Retrieves data from the DataSource that matches the specified criteria.
    `void` | `fetchData(Criteria criteria, DSCallback callback)` Retrieves data from the DataSource that matches the specified criteria.
    `void` | `fetchData(Criteria criteria, DSCallback callback, DSRequest requestProperties)` Retrieves data from the DataSource that matches the specified criteria.
    `void` | `fetchRelatedData(ListGridRecord record, Canvas schema)` Based on the relationship between the DataSource this component is bound to and the DataSource specified as the "schema" argument, call fetchData() to retrieve records in this data set that are related to the passed-in record.
    `void` | `fetchRelatedData(ListGridRecord record, Canvas schema, DSCallback callback)`
    `void` | `fetchRelatedData(ListGridRecord record, Canvas schema, DSCallback callback, DSRequest requestProperties)` Based on the relationship between the DataSource this component is bound to and the DataSource specified as the "schema" argument, call fetchData() to retrieve records in this data set that are related to the passed-in record.
    `boolean` | `fieldIsEditable(FormItem field)` Can the field be edited? This method looks at `canEdit` for the grid as well as the `FormItem.canEdit` value, to determine whether editing is actually allowed.
    `boolean` | `fieldIsEditable(int field)` Can the field be edited? This method looks at `canEdit` for the grid as well as the `FormItem.canEdit` value, to determine whether editing is actually allowed.
    `boolean` | `fieldIsEditable(java.lang.String field)` Can the field be edited? This method looks at `canEdit` for the grid as well as the `FormItem.canEdit` value, to determine whether editing is actually allowed.
    `void` | `filterData()` Retrieves data that matches the provided criteria and displays the matching data in this component.
    `void` | `filterData(Criteria criteria)` Retrieves data that matches the provided criteria and displays the matching data in this component.
    `void` | `filterData(Criteria criteria, DSCallback callback)` Retrieves data that matches the provided criteria and displays the matching data in this component.
    `void` | `filterData(Criteria criteria, DSCallback callback, DSRequest requestProperties)` Retrieves data that matches the provided criteria and displays the matching data in this component.
    `Record` | `find(AdvancedCriteria adCriteria)` Filters all objects according to the AdvancedCriteria passed and returns the first matching object or null if not found
    `Record[]` | `findAll(AdvancedCriteria adCriteria)` Filters all objects according to the AdvancedCriteria passed
    `int` | `findIndex(AdvancedCriteria adCriteria)` Finds the index of the first Record that matches with the AdvacendCriteria passed.
    `int` | `findNextIndex(int startIndex, AdvancedCriteria adCriteria)` Like `RecordList.findIndex(java.util.Map)`, but considering the startIndex parameter.
    `int` | `findNextIndex(int startIndex, AdvancedCriteria adCriteria, int endIndex)` Like `RecordList.findIndex(java.util.Map)`, but considering the startIndex and endIndex parameters.
    `void` | `focus()` Give keyboard focus to this form.
    `void` | `focusInItem(FormItem formItem)` Move the keyboard focus into a particular item.
    `void` | `focusInItem(int itemNumber)` Move the keyboard focus into a particular item.
    `void` | `focusInItem(java.lang.String itemName)` Move the keyboard focus into a particular item.
    `java.lang.String` | `getAction()` The URL to which the form will submit its values.
    `java.lang.Boolean` | `getAddDropValues()` Indicates whether to add "drop values" to items dropped on this component, if both the source and target widgets are databound, either to the same DataSource or to different DataSources that are related via a foreign key.
    `java.lang.String` | `getAddFormulaFieldText()` Text for a menu item allowing users to add a formula field
    `java.lang.String` | `getAddOperation()` `operationId` this component should use when performing add operations.
    `java.lang.String` | `getAddSummaryFieldText()` Text for a menu item allowing users to add a formula field
    `java.lang.Boolean` | `getAllowExpressions()` For a form that produces filter criteria (see `form.getValuesAsCriteria()`), allows the user to enter simple expressions in any field in this form that takes text input.
    `AutoComplete` | `getAutoComplete()` Should this form allow browser auto-completion of its items' values? 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.
    `java.lang.Boolean` | `getAutoFetchAsFilter()` If `DataBoundComponent.setAutoFetchData(Boolean)` is true, this attribute determines whether the initial fetch operation should be performed via `DataBoundComponent.fetchData()` or `DataBoundComponent.filterData()`
    `java.lang.Boolean` | `getAutoFetchData()` If true, when this component is first drawn, automatically call `DataBoundComponent.fetchData()` or `DataBoundComponent.filterData()` depending on `DataBoundComponent.getAutoFetchAsFilter()` .
    `TextMatchStyle` | `getAutoFetchTextMatchStyle()` If `autoFetchData` is `true`, this attribute allows the developer to specify a textMatchStyle for the initial `DataBoundComponent.fetchData()` call.
    `java.lang.Boolean` | `getAutoFocus()` If true, when the form is drawn, focus will automatically be put into the first focusable element in the form. Note that to put focus in a different item you can explicitly call `dynamicForm.focusInItem(itemName)`
    `java.lang.Boolean` | `getAutoFocusOnError()` If true, when `validation` fails focus will automatically be put into the first focusable field which failed validation.
    `java.lang.Boolean` | `getBrowserSpellCheck()` If this browser has a 'spellCheck' feature for text-based form item elements, should it be used for items in this form? Can be overridden at the item level via `FormItem.browserSpellCheck`
    `java.lang.Boolean` | `getCanAddFormulaFields()` Adds an item to the header context menu allowing users to launch a dialog to define a new field based on values present in other fields, using the `com.smartgwt.client..FormulaBuilder`.
    `java.lang.Boolean` | `getCanAddSummaryFields()` Adds an item to the header context menu allowing users to launch a dialog to define a new text field that can contain both user-defined text and the formatted values present in other fields, using the `com.smartgwt.client..SummaryBuilder`.
    `java.lang.String` | `getCancelParamName()` The name of the special field sent to the server as part of `cancel()`
    `java.lang.String` | `getCancelParamValue()` The value of the special field sent to the server as part of `cancel()`
    `java.lang.Boolean` | `getCanEdit()` If set to `false`, the form will be marked read-only.
    `java.lang.String` | `getCanEditFieldAttribute()` If this component is bound to a dataSource, this attribute may be specified to customize what fields from the dataSource may be edited by default.
    `java.lang.Boolean` | `getCanFocus()` DynamicForms are considered to have focus if any of their form items have focus.
    `java.lang.Boolean` | `getCanSubmit()` Governs whether this form will be used to perform a standard HTML form submission.
    `java.lang.Boolean` | `getCanTabToSectionHeaders()` If true, the headers for any `SectionItems` will be included in the page's tab order for accessibility.
    `int` | `getCellBorder()` Width of border for the table that form is drawn in.
    `int` | `getCellPadding()` The amount of empty space, in pixels, surrounding each form item within its cell in the layout grid.
    `int` | `getCellSpacing()` Deprecated. use `getCellPadding()` instead
    `java.util.Map` | `getChangedValues()` Returns all values within this DynamicForm that have changed since `DynamicForm.rememberValues` last ran.
    `boolean` | `getClipItemTitles()` Should the titles for form items be clipped if they are too large for the available space?
    `java.lang.Boolean` | `getClipStaticValue()` Default `FormItem.clipStaticValue` setting for items in this form.
    `com.google.gwt.core.client.JavaScriptObject` | `getDataAsJSList()`
    `FetchMode` | `getDataFetchMode()` How to fetch and manage records retrieve from the server.
    `int` | `getDataPageSize()` When using `data paging`, how many records to fetch at a time.
    `DataSource` | `getDataSource()` The DataSource that this component should bind to for default fields and for performing `DataSource requests`.
    `DateDisplayFormat` | `getDateFormatter()` Default `DateDisplayFormat` for Date type values displayed in this form.
    `DateDisplayFormat` | `getDatetimeFormatter()` Default `DateDisplayFormat` for Date type values displayed in this form in fields of type `datetime`.
    `java.lang.Boolean` | `getDeepCloneOnEdit()` Before we start editing values in this DataBoundComponent, should we perform a deep clone of the underlying values.
    `OperatorId` | `getDefaultSearchOperator()` Default `search operator` to use for fields in a form that produces `AdvancedCriteria`.
    `java.lang.Boolean` | `getDisableValidation()` If set to true, client-side validators will not run on the form when validate() is called.
    `Record[]` | `getDragData()` During a drag-and-drop interaction, this method returns the set of records being dragged out of the component.
    `DragDataAction` | `getDragDataAction()` Indicates what to do with data dragged into another DataBoundComponent.
    `java.lang.String` | `getDragTrackerStyle()` CSS Style to apply to the drag tracker when dragging occurs on this component.
    `java.util.Map` | `getDropValues()` When an item is dropped on this component, and `addDropValues` is true and both the source and target widgets are databound, either to the same DataSource or to different DataSources that are related via a foreign key, this object provides the "drop values" that Smart GWT will apply to the dropped object before updating it.
    `java.lang.String` | `getDuplicateDragMessage()` Message to show when a user attempts to transfer duplicate records into this component, and `preventDuplicates` is enabled.
    `java.lang.String` | `getEditFormulaFieldText()` Text for a menu item allowing users to edit a formula field
    `java.lang.String` | `getEditProxyConstructor()` Default class used to construct the `EditProxy` for this component when the component is `first placed into edit mode`.
    `java.lang.String` | `getEditSummaryFieldText()` Text for a menu item allowing users to edit the formatter for a field
    `Encoding` | `getEncoding()` encoding for the form, use MULTIPART_ENCODING for file upload forms
    `java.lang.String` | `getErrorItemCellStyle()` If `showInlineErrors` is false we show all errors for the form item in a single item rendered at the top of the form. This attribute specifies the cellStyle to apply to this item.
    `java.util.Map` | `getErrors()` Returns the set of errors.
    `java.lang.String` | `getErrorsPreamble()` If `showInlineErrors` is `false`, all errors for the items in the form are rendered as a single item at the top of the form.
    `FormItem` | `getEventItem()` If the current mouse event occurred over an item in this dynamicForm, returns that item.
    `FormItemEventInfo` | `getEventItemInfo(java.lang.String fieldName)` If the current mouse event occurred over an item, or the title of an item in this dynamicForm, return details about where the event occurred.
    `java.lang.Boolean` | `getExportAll()` Setting exportAll to true prevents the component from passing its list of fields to the export call.
    `java.lang.String[]` | `getExportFields()` The list of field-names to export.
    `java.lang.String` | `getFetchOperation()` Operation ID this component should use when performing fetch operations.
    `FormItem` | `getField(java.lang.String name)`
    `Alignment[]` | `getFieldAlignments()` Returna an array of field alignments for this grid
    `int` | `getFieldCount()` Return the number of fields.
    `java.lang.String[]` | `getFieldErrors(java.lang.String fieldName)` Returns any validation errors for some field in this valuesManager.
    `FormItem[]` | `getFields()` Return the form fields.
    `com.google.gwt.core.client.JavaScriptObject[]` | `getFieldsAsJavaScriptObjects()` Return the fields as JavaScriptObjects rather than as SmartGWT Java wrappers of the field class type (e.g.
    `java.lang.Boolean` | `getFixedColWidths()` If true, we ensure that column widths are at least as large as you specify them.
    `FormItem` | `getFocusItem()` Return the current focus item for this form.
    `java.lang.String` | `getFormSubmitFailedWarning()` Warning to display to the user if an attempt to `natively submit` a form is unable to submit to the server.
    `java.lang.String` | `getHiliteProperty()` Marker that can be set on a record to flag that record as hilited.
    `java.lang.Boolean` | `getHiliteRequiredFields()` Indicates whether the titles of required items in this form should use the special prefix and suffix specified by the next two properties, instead of the standard prefix and suffix.
    `Hilite[]` | `getHilites()` Return the set of hilite-objects currently applied to this DataBoundComponent.
    `java.lang.String` | `getHiliteState()` Get the current hilites encoded as a String, for saving.
    `java.lang.Boolean` | `getImplicitSave()` When true, indicates that changes to items in this form will be automatically saved on a `delay`, as well as when the entire form is submitted.
    `int` | `getImplicitSaveDelay()` When `implicitSave` is true, this attribute dictates the millisecond delay after which form items are automatically saved during editing.
    `java.lang.Boolean` | `getImplicitSaveOnBlur()` If true, form item values will be automatically saved when each item's "editorExit" handler is fired as well as on a delay and when the entire form is submitted.
    `Criteria` | `getInitialCriteria()` Criteria to use when `DataBoundComponent.setAutoFetchData(Boolean)` is used.
    `FormItem` | `getItem(java.lang.String name)`
    `Alignment` | `getItemHoverAlign()` Text alignment for hovers shown for items
    `int` | `getItemHoverDelay()` If the user rolls over an item, how long a delay before we fire any hover action / show a hover for that item?
    `java.lang.Integer` | `getItemHoverHeight()` A default height for hovers shown for items
    `java.lang.Integer` | `getItemHoverOpacity()` Opacity for hovers shown for items
    `java.lang.String` | `getItemHoverStyle()` CSS Style for hovers shown for items
    `java.lang.Integer` | `getItemHoverVAlign()` Vertical text alignment for hovers shown for items
    `java.lang.Integer` | `getItemHoverWidth()` A default width for hovers shown for items
    `FormLayoutType` | `getItemLayout()` Layout style to use with this form.
    `com.smartgwt.logicalstructure.core.LogicalStructureObject` | `getLogicalStructure()` Getter implementing the `LogicalStructure` interface, which supports Eclipse's logical structure debugging facility.
    `int` | `getLongTextEditorThreshold()` When creating form items for fields with text type data, if the specified length of the field exceeds this threshold we will create form item of type `this.longTextEditorType` (a TextAreaItem by default), rather than a simple text item.
    `java.lang.String` | `getLongTextEditorType()` Name of the Form Item class to use for text fields which exceed the longTextEditorThreshold for this form.
    `FormMethod` | `getMethod()` The mechanism by which form data is sent to the action URL.
    `int` | `getMinColWidth()` Minimum width of a form column.
    `java.lang.String` | `getNoErrorDetailsMessage()` A message to display to the user if server-side validation fails with an error but the server did not provide an error message
    `int` | `getNumCols()` The number of columns of titles and items in this form's layout grid.
    `java.util.Map` | `getOldValues()` Returns the set of values last stored by `DynamicForm.rememberValues`.
    `OperatorId` | `getOperator()` When `operator` has been set for any `FormItem` in this form, what logical operator should be applied across the ${isc.DocUtils.linkForRef('object:Criterion','criteria')} produced by the form items? Only applicable to forms that have a `dataSource`.
    `static DynamicForm` | `getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)`
    `java.lang.String` | `getOriginalValueMessage()` Default template HTML string when an item does not set its own `FormItem.originalValueMessage`.
    `java.lang.Boolean` | `getPreventDuplicates()` If set, detect and prevent duplicate records from being transferred to this component, either via drag and drop or via `DataBoundComponent.transferSelectedData(com.smartgwt.client.widgets.DataBoundComponent)`.
    `java.lang.Boolean` | `getProgressiveLoading()` Indicates whether or not this component will load its data `progressively`
    `ReadOnlyDisplayAppearance` | `getReadOnlyDisplay()` If `canEdit` is set to `false`, how should the items in this form be displayed to the user?
    `java.lang.String` | `getReadOnlyTextBoxStyle()` Default `FormItem.readOnlyTextBoxStyle` setting for items in this form.
    `int` | `getRecordIndex(Record record)` Get the index of the provided record.
    `RecordList` | `getRecordList()` Return the underlying data of this DataBoundComponent as a `RecordList`.
    `java.lang.Boolean` | `getRejectInvalidValueOnChange()` If validateOnChange is true, and validation fails for an 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.
    `java.lang.String` | `getRemoveOperation()` `operationId` this component should use when performing remove operations.
    `java.lang.String` | `getRequiredMessage()` The required message for required field errors.
    `java.lang.String` | `getRequiredRightTitlePrefix()` The string pre-pended to the title of every required item in this form if `hiliteRequiredFields` is true and the `TitleOrientation` property is set to "right".
    `java.lang.String` | `getRequiredRightTitleSuffix()` The string appended to the title of every required item in this form if `hiliteRequiredFields` is true and the `TitleOrientation` property is set to "right".
    `java.lang.String` | `getRequiredTitlePrefix()` The string pre-pended to the title of every required item in this form if `hiliteRequiredFields` is true.
    `java.lang.String` | `getRequiredTitleSuffix()` The string appended to the title of every required item in this form if `hiliteRequiredFields` is true.
    `ResultSet` | `getResultSet()` Return the underlying data of this DataBoundComponent as a `ResultSet`.
    `KeyIdentifier` | `getRevertValueKey()` Keyboard shortcut that causes the value of the currently focused form item to be reverted to whatever value would be shown if `resetValues()` were called.
    `java.lang.String` | `getRightTitlePrefix()` The string pre-pended to the title of an item in this form if its titleOrientation property is set to "right".
    `java.lang.String` | `getRightTitleSuffix()` The string appended to the title of an item in this form if its titleOrientation property is set to "right".
    `java.lang.Boolean` | `getSaveOnEnter()` If `true`, when the user hits the Enter key while focused in a text-item in this form, we automatically submit the form to the server using the `submit()` method.
    `DSOperationType` | `getSaveOperationType()` Default `DSOperationType` to be performed when `saveData()` is called.
    `DSOperationType` | `getSaveOperationType(DSRequest requestProperties)` Default `DSOperationType` to be performed when `DynamicForm.saveData` is called.
    `VisibilityMode` | `getSectionVisibilityMode()` If the form has sections, [implemented as `SectionItem`s], this attribute controls whether multiple sections can be expanded at once.
    `java.lang.Boolean` | `getSelectOnClick()` If this property is set to true, whenever a text-based field in this form (`TextItem`, `TextAreaItem`) is given focus - whether programmatically (see `focusInItem()`), or via a mouse click, all text within the item will be selected.
    `java.lang.Boolean` | `getSelectOnFocus()` If this property is set to true, whenever a text-based field in this form (`TextItem`, `TextAreaItem`) is given focus programmatically (see `focusInItem()`), all text within the item will be selected.
    `java.lang.Boolean` | `getShowComplexFields()` Whether to show fields of non-atomic types when a DataBoundComponent is given a DataSource but no `component.fields`.
    `java.lang.Boolean` | `getShowComplexFieldsRecursively()` If set, this `DynamicForm` will set both `showComplexFields` and `showComplexFieldsRecursively` on any nested component used for showing/editing a complex field.
    `java.lang.Boolean` | `getShowDeletions()` Default `FormItem.showDeletions` setting for items in this form.
    `java.lang.Boolean` | `getShowDetailFields()` For databound forms, whether to show fields marked as detail fields.
    `java.lang.Boolean` | `getShowErrorIcons()` `showErrorIcons`, `showErrorText`, 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).
    `java.lang.Boolean` | `getShowErrorStyle()` `showErrorIcons`, `showErrorText`, 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).
    `java.lang.Boolean` | `getShowErrorText()` `showErrorIcons`, `showErrorText`, 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).
    `java.lang.Boolean` | `getShowHiddenFields()` Whether to show fields marked `hidden:true` when a DataBoundComponent is given a DataSource but no `component.fields`.
    `java.lang.Boolean` | `getShowInlineErrors()` If true, field errors are written into the form next to the item(s) where the errors occurred.
    `java.lang.Boolean` | `getShowOldValueInHover()` Default setting for the form items' `FormItem.showOldValueInHover` setting.
    `java.lang.Boolean` | `getShowTitlesWithErrorMessages()` Indicates whether on validation failure, the error message displayed to the user should be pre-pended with the title for the item.
    `static java.lang.Boolean` | `getSkipConversionOnMapping()` Returns true if the system is set to skip conversion of the Javascript object to a Java Map when calling the mapDisplayToValue() API.
    `java.lang.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.
    `java.lang.Boolean` | `getSuppressValidationErrorCallback()` When calling `saveData()` on a form or valuesManager, by default if the server returns an error code, any callback passed into saveData() will not be fired.
    `java.lang.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.
    `java.lang.String` | `getTarget()` The name of a window or frame that will receive the results returned by the form's action.
    `TimeDisplayFormat` | `getTimeFormatter()` Default `TimeDisplayFormat` for `type:"time"` field values displayed in this form.
    `Alignment` | `getTitleAlign()` Default alignment for item titles.
    `java.lang.String` | `getTitleField()` Method to return the fieldName which represents the "title" for records in this Component. If this.titleField is explicitly specified it will always be used. Otherwise, default implementation will check `titleField` for databound components. For non databound components returns the first defined field name of `"title"`, `"name"`, or `"id"`.
    `java.lang.String` | `getTitleFieldValue(Record record)` Get the value of the titleField for the passed record
    `TitleOrientation` | `getTitleOrientation()` Default orientation for titles for items in this form.
    `java.lang.String` | `getTitlePrefix()` The string pre-pended to the title of every item in this form.
    `java.lang.String` | `getTitleSuffix()` The string appended to the title of every item in this form.
    `java.lang.String` | `getUnknownErrorMessage()` The error message for a failed validator that does not specify its own errorMessage.
    `java.lang.String` | `getUpdateOperation()` `operationId` this component should use when performing update operations.
    `java.lang.Boolean` | `getUseAllDataSourceFields()` If true, the set of fields given by the "default binding" (see `fields`) is used, with any fields specified in `component.fields` acting as overrides that can suppress or modify the display of individual fields, without having to list the entire set of fields that should be shown.
    `java.lang.Boolean` | `getUseFlatFields()` The `useFlatFields` flag causes all simple type fields anywhere in a nested set of DataSources to be exposed as a flat list for form binding.
    `UserTask` | `getUserTask()` Associated userTask if current dynamic form used along with workflow.
    `java.lang.Boolean` | `getValidateOnChange()` If true, form fields will be validated when each item's "change" handler is fired as well as when the entire form is submitted or validated.
    `java.lang.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.
    `java.lang.String` | `getValidationURL()` validationURL can be set to do server-side validation against a different URL from where the form will ultimately save, as part of an incremental upgrade strategy for Struts and Struts-like applications.
    `java.lang.Object` | `getValue(java.lang.String fieldName)`
    `java.lang.String` | `getValueAsString(java.lang.String fieldName)`
    `java.util.Map` | `getValues()` An Object containing the initial values of the form as properties, where each propertyName is the name of a `form item` in the form, and each property value is the value held by that form item.
    `AdvancedCriteria` | `getValuesAsAdvancedCriteria()` Return an AdvancedCriteria object based on the current set of values within this form.
    `AdvancedCriteria` | `getValuesAsAdvancedCriteria(TextMatchStyle textMatchStyle)` Return an AdvancedCriteria object based on the current set of values within this form.
    `Criteria` | `getValuesAsCriteria()` Return search criteria based on the current set of values within this form.
    `Record` | `getValuesAsRecord()` Return the current set of values within this form as a Record.
    `ValuesManager` | `getValuesManager()` Return the ValuesManager for this form.
    `java.lang.Boolean` | `getWrapItemTitles()` Whether titles for form items should wrap.
    `java.lang.Boolean` | `hasErrors()` Returns whether there are currently any errors visible to the user for this form, without performing validation.
    `java.lang.Boolean` | `hasFieldErrors(java.lang.String fieldName)` Returns whether there are currently any errors visible to the user for the specified field in this form, without performing any validation.
    `void` | `hideItem(java.lang.String itemName)` Hide a form item via `FormItem.hide()`
    `void` | `invalidateCache()` Invalidate the current data cache for this databound component via a call to the dataset's `invalidateCache()` method, for example, `ResultSet.invalidateCache()`.
    `java.lang.Boolean` | `isFocused()` Returns true if this DynamicForm has the keyboard focus.
    `java.lang.Boolean` | `isNewRecord()` Returns true if `saveOperationType` is currently "add".
    `java.lang.Boolean` | `isPendingAsyncValidation()` Is this component waiting for an asynchronous validation to complete? This method will return true after `validate()` is called on a component with server-side validators for some field(s), until the server responds.
    `protected void` | `onInit_DynamicForm()`
    `protected void` | `onInit()`
    `com.google.gwt.core.client.JavaScriptObject` | `rememberValues()` Make a snapshot of the current set of values, so we can reset to them later.
    `void` | `reset()` Resets values to the state it was the last time `setValues()` or `rememberValues()` was called.
    `void` | `resetValues()` Same as `reset()`.
    `void` | `saveData()` Validate and then save the form's current values to the `DataSource` this form is bound to.
    `void` | `saveData(DSCallback callback)`
    `void` | `saveData(DSCallback callback, DSRequest requestProperties)` Validate and then save the form's current values to the `DataSource` this form is bound to.
    `void` | `selectAllRecords()` Select all records
    `void` | `selectRecord(int record)` Select/deselect a `Record` passed in explicitly, or by index.
    `void` | `selectRecord(int record, boolean newState)` Select/deselect a `Record` passed in explicitly, or by index.
    `void` | `selectRecord(Record record)` Select/deselect a `Record` passed in explicitly, or by index.
    `void` | `selectRecord(Record record, boolean newState)` Select/deselect a `Record` passed in explicitly, or by index.
    `void` | `selectRecords(int[] records)` Select/deselect a list of `Record`s passed in explicitly, or by index.
    `void` | `selectRecords(int[] records, boolean newState)` Select/deselect a list of `Record`s passed in explicitly, or by index.
    `void` | `selectRecords(Record[] records)` Select/deselect a list of `Record`s passed in explicitly, or by index.
    `void` | `selectRecords(Record[] records, boolean newState)` Select/deselect a list of `Record`s passed in explicitly, or by index.
    `void` | `setAction(java.lang.String action)` The URL to which the form will submit its values.
    `void` | `setAddDropValues(java.lang.Boolean addDropValues)` Indicates whether to add "drop values" to items dropped on this component, if both the source and target widgets are databound, either to the same DataSource or to different DataSources that are related via a foreign key.
    `void` | `setAddFormulaFieldText(java.lang.String addFormulaFieldText)` Text for a menu item allowing users to add a formula field
    `void` | `setAddOperation(java.lang.String addOperation)` `operationId` this component should use when performing add operations.
    `void` | `setAddSummaryFieldText(java.lang.String addSummaryFieldText)` Text for a menu item allowing users to add a formula field
    `void` | `setAllowExpressions(java.lang.Boolean allowExpressions)` For a form that produces filter criteria (see `form.getValuesAsCriteria()`), allows the user to enter simple expressions in any field in this form that takes text input.
    `void` | `setAutoComplete(AutoComplete autoComplete)` Should this form allow browser auto-completion of its items' values? 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.
    `void` | `setAutoFetchAsFilter(java.lang.Boolean autoFetchAsFilter)` If `DataBoundComponent.setAutoFetchData(Boolean)` is true, this attribute determines whether the initial fetch operation should be performed via `DataBoundComponent.fetchData()` or `DataBoundComponent.filterData()`
    `void` | `setAutoFetchData(java.lang.Boolean autoFetchData)` If true, when this component is first drawn, automatically call `DataBoundComponent.fetchData()` or `DataBoundComponent.filterData()` depending on `DataBoundComponent.getAutoFetchAsFilter()` .
    `void` | `setAutoFetchTextMatchStyle(TextMatchStyle autoFetchTextMatchStyle)` If `autoFetchData` is `true`, this attribute allows the developer to specify a textMatchStyle for the initial `DataBoundComponent.fetchData()` call.
    `void` | `setAutoFocus(java.lang.Boolean autoFocus)` If true, when the form is drawn, focus will automatically be put into the first focusable element in the form. Note that to put focus in a different item you can explicitly call `dynamicForm.focusInItem(itemName)`
    `void` | `setAutoFocusOnError(java.lang.Boolean autoFocusOnError)` If true, when `validation` fails focus will automatically be put into the first focusable field which failed validation.
    `void` | `setBrowserSpellCheck(java.lang.Boolean browserSpellCheck)` If this browser has a 'spellCheck' feature for text-based form item elements, should it be used for items in this form? Can be overridden at the item level via `FormItem.browserSpellCheck`
    `void` | `setCanAddFormulaFields(java.lang.Boolean canAddFormulaFields)` Adds an item to the header context menu allowing users to launch a dialog to define a new field based on values present in other fields, using the `com.smartgwt.client..FormulaBuilder`.
    `void` | `setCanAddSummaryFields(java.lang.Boolean canAddSummaryFields)` Adds an item to the header context menu allowing users to launch a dialog to define a new text field that can contain both user-defined text and the formatted values present in other fields, using the `com.smartgwt.client..SummaryBuilder`.
    `void` | `setCancelParamName(java.lang.String cancelParamName)` The name of the special field sent to the server as part of `cancel()`
    `void` | `setCancelParamValue(java.lang.String cancelParamValue)` The value of the special field sent to the server as part of `cancel()`
    `void` | `setCanEdit(java.lang.Boolean canEdit)` If set to `false`, the form will be marked read-only.
    `void` | `setCanEditFieldAttribute(java.lang.String canEditFieldAttribute)` If this component is bound to a dataSource, this attribute may be specified to customize what fields from the dataSource may be edited by default.
    `void` | `setCanFocus(java.lang.Boolean canFocus)` DynamicForms are considered to have focus if any of their form items have focus.
    `void` | `setCanSubmit(java.lang.Boolean canSubmit)` Governs whether this form will be used to perform a standard HTML form submission.
    `void` | `setCanTabToSectionHeaders(java.lang.Boolean canTabToSectionHeaders)` If true, the headers for any `SectionItems` will be included in the page's tab order for accessibility.
    `void` | `setCellBorder(int cellBorder)` Width of border for the table that form is drawn in.
    `void` | `setCellPadding(int cellPadding)` The amount of empty space, in pixels, surrounding each form item within its cell in the layout grid.
    `void` | `setCellSpacing(int cellSpacing)` Deprecated. use `setCellPadding(int)` instead
    `void` | `setClipItemTitles(boolean clipItemTitles)` Should the titles for form items be clipped if they are too large for the available space?
    `void` | `setClipStaticValue(java.lang.Boolean clipStaticValue)` Default `FormItem.clipStaticValue` setting for items in this form.
    `void` | `setColWidths(java.lang.Object... colWidths)` An array of widths for the columns of items in this form's layout grid.
    `void` | `setDataFetchMode(FetchMode dataFetchMode)` How to fetch and manage records retrieve from the server.
    `void` | `setDataPageSize(int dataPageSize)` When using `data paging`, how many records to fetch at a time.
    `void` | `setDataSource(DataSource dataSource)` The DataSource that this component should bind to for default fields and for performing `DataSource requests`.
    `void` | `setDataSource(DataSource dataSource, FormItem... fields)` Bind to a DataSource.
    `void` | `setDataSource(java.lang.String dataSource)` The DataSource that this component should bind to for default fields and for performing `DataSource requests`.
    `void` | `setDateFormatter(DateDisplayFormat dateFormatter)` Default `DateDisplayFormat` for Date type values displayed in this form.
    `void` | `setDatetimeFormatter(DateDisplayFormat datetimeFormatter)` Default `DateDisplayFormat` for Date type values displayed in this form in fields of type `datetime`.
    `void` | `setDeepCloneOnEdit(java.lang.Boolean deepCloneOnEdit)` Before we start editing values in this DataBoundComponent, should we perform a deep clone of the underlying values.
    `static void` | `setDefaultProperties(DynamicForm dynamicFormProperties)` Class level method to set the default properties of this class.
    `void` | `setDefaultSearchOperator(OperatorId defaultSearchOperator)` Default `search operator` to use for fields in a form that produces `AdvancedCriteria`.
    `void` | `setDisableValidation(java.lang.Boolean disableValidation)` If set to true, client-side validators will not run on the form when validate() is called.
    `void` | `setDragDataAction(DragDataAction dragDataAction)` Indicates what to do with data dragged into another DataBoundComponent.
    `void` | `setDragTrackerStyle(java.lang.String dragTrackerStyle)` CSS Style to apply to the drag tracker when dragging occurs on this component.
    `void` | `setDropValues(java.util.Map dropValues)` When an item is dropped on this component, and `addDropValues` is true and both the source and target widgets are databound, either to the same DataSource or to different DataSources that are related via a foreign key, this object provides the "drop values" that Smart GWT will apply to the dropped object before updating it.
    `void` | `setDuplicateDragMessage(java.lang.String duplicateDragMessage)` Message to show when a user attempts to transfer duplicate records into this component, and `preventDuplicates` is enabled.
    `void` | `setEditFormulaFieldText(java.lang.String editFormulaFieldText)` Text for a menu item allowing users to edit a formula field
    `void` | `setEditProxyConstructor(java.lang.String editProxyConstructor)` Default class used to construct the `EditProxy` for this component when the component is `first placed into edit mode`.
    `void` | `setEditSummaryFieldText(java.lang.String editSummaryFieldText)` Text for a menu item allowing users to edit the formatter for a field
    `void` | `setEncoding(Encoding encoding)` encoding for the form, use MULTIPART_ENCODING for file upload forms
    `void` | `setErrorItemCellStyle(java.lang.String errorItemCellStyle)` If `showInlineErrors` is false we show all errors for the form item in a single item rendered at the top of the form. This attribute specifies the cellStyle to apply to this item.
    `void` | `setErrorOrientation(FormErrorOrientation errorOrientation)` If DynamicForm.showInlineErrors is true, where should the error icon and text appear relative to form items? Valid options are "top", "bottom", "left" or "right".
    `void` | `setErrors(java.util.Map errors, boolean showErrors)` Setter for validation errors on this form.
    `void` | `setErrorsPreamble(java.lang.String errorsPreamble)` If `showInlineErrors` is `false`, all errors for the items in the form are rendered as a single item at the top of the form.
    `void` | `setExportAll(java.lang.Boolean exportAll)` Setting exportAll to true prevents the component from passing its list of fields to the export call.
    `void` | `setExportFields(java.lang.String[] exportFields)` The list of field-names to export.
    `void` | `setFetchOperation(java.lang.String fetchOperation)` Operation ID this component should use when performing fetch operations.
    `void` | `setFieldErrors(java.lang.String fieldName, java.lang.String[] errors, boolean showErrors)` Set field validation errors for some field.
    `void` | `setFieldErrors(java.lang.String fieldName, java.lang.String error, boolean showErrors)` Set field validation error for some field.
    `void` | `setFields(FormItem... fields)` An array of field objects, specifying the order, layout, and types of each field in the DynamicForm.
    `void` | `setFields(com.google.gwt.core.client.JavaScriptObject... fields)` Field setter variant (alternative to `setFields(FormItem...)`, `setFields(ListGridField...)`, etc.) that will accept an array of JavaScriptObject, rather than an array of SmartGWT Java wrappers of the field class type (e.g.
    `void` | `setFixedColWidths(java.lang.Boolean fixedColWidths)` If true, we ensure that column widths are at least as large as you specify them.
    `void` | `setFormSubmitFailedWarning(java.lang.String formSubmitFailedWarning)` Warning to display to the user if an attempt to `natively submit` a form is unable to submit to the server.
    `void` | `setHiliteProperty(java.lang.String hiliteProperty)` Marker that can be set on a record to flag that record as hilited.
    `void` | `setHiliteRequiredFields(java.lang.Boolean hiliteRequiredFields)` Indicates whether the titles of required items in this form should use the special prefix and suffix specified by the next two properties, instead of the standard prefix and suffix.
    `void` | `setHilites(Hilite[] hilites)` Accepts an array of hilite objects and applies them to this DataBoundComponent.
    `void` | `setHiliteState(java.lang.String hiliteState)` Set the current hilites based on a hiliteState String previously returned from getHilitesState.
    `void` | `setImplicitSave(java.lang.Boolean implicitSave)` When true, indicates that changes to items in this form will be automatically saved on a `delay`, as well as when the entire form is submitted.
    `void` | `setImplicitSaveDelay(int implicitSaveDelay)` When `implicitSave` is true, this attribute dictates the millisecond delay after which form items are automatically saved during editing.
    `void` | `setImplicitSaveOnBlur(java.lang.Boolean implicitSaveOnBlur)` If true, form item values will be automatically saved when each item's "editorExit" handler is fired as well as on a delay and when the entire form is submitted.
    `void` | `setInitialCriteria(Criteria initialCriteria)` Criteria to use when `DataBoundComponent.setAutoFetchData(Boolean)` is used.
    `void` | `setItemHoverAlign(Alignment itemHoverAlign)` Text alignment for hovers shown for items
    `void` | `setItemHoverDelay(int itemHoverDelay)` If the user rolls over an item, how long a delay before we fire any hover action / show a hover for that item?
    `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` | `setItemHoverHeight(java.lang.Integer itemHoverHeight)` A default height for hovers shown for items
    `void` | `setItemHoverOpacity(java.lang.Integer itemHoverOpacity)` Opacity for hovers shown for items
    `void` | `setItemHoverStyle(java.lang.String itemHoverStyle)` CSS Style for hovers shown for items
    `void` | `setItemHoverVAlign(java.lang.Integer itemHoverVAlign)` Vertical text alignment for hovers shown for items
    `void` | `setItemHoverWidth(java.lang.Integer itemHoverWidth)` A default width for hovers shown for items
    `void` | `setItemLayout(FormLayoutType itemLayout)` Layout style to use with this form.
    `void` | `setItems(FormItem... items)` Synonym for `setFields(com.smartgwt.client.widgets.form.fields.FormItem[])`.
    `void` | `setItemTitleHoverFormatter(FormItemHoverFormatter hoverFormatter)` The `FormItemHoverFormatter` should return the HTML to display in a hover canvas when the user holds the mousepointer over an 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 mousepointer over an item's value and the value is clipped.
    `com.smartgwt.logicalstructure.core.LogicalStructureObject` | `setLogicalStructure(com.smartgwt.logicalstructure.widgets.form.DynamicFormLogicalStructure s)` Setter implementing the `LogicalStructure` interface, which supports Eclipse's logical structure debugging facility.
    `void` | `setLongTextEditorThreshold(int longTextEditorThreshold)` When creating form items for fields with text type data, if the specified length of the field exceeds this threshold we will create form item of type `this.longTextEditorType` (a TextAreaItem by default), rather than a simple text item.
    `void` | `setLongTextEditorType(java.lang.String longTextEditorType)` Name of the Form Item class to use for text fields which exceed the longTextEditorThreshold for this form.
    `void` | `setMethod(FormMethod method)` The mechanism by which form data is sent to the action URL.
    `void` | `setMinColWidth(int minColWidth)` Minimum width of a form column.
    `void` | `setNoErrorDetailsMessage(java.lang.String noErrorDetailsMessage)` A message to display to the user if server-side validation fails with an error but the server did not provide an error message
    `void` | `setNumCols(int numCols)` The number of columns of titles and items in this form's layout grid.
    `void` | `setOperator(OperatorId operator)` When `operator` has been set for any `FormItem` in this form, what logical operator should be applied across the ${isc.DocUtils.linkForRef('object:Criterion','criteria')} produced by the form items? Only applicable to forms that have a `dataSource`.
    `void` | `setOriginalValueMessage(java.lang.String originalValueMessage)` Default template HTML string when an item does not set its own `FormItem.originalValueMessage`.
    `void` | `setPreventDuplicates(java.lang.Boolean preventDuplicates)` If set, detect and prevent duplicate records from being transferred to this component, either via drag and drop or via `DataBoundComponent.transferSelectedData(com.smartgwt.client.widgets.DataBoundComponent)`.
    `void` | `setProgressiveLoading(java.lang.Boolean progressiveLoading)` Indicates whether or not this component will load its data `progressively`
    `void` | `setReadOnlyDisplay(ReadOnlyDisplayAppearance readOnlyDisplay)` If `canEdit` is set to `false`, how should the items in this form be displayed to the user?
    `void` | `setReadOnlyTextBoxStyle(java.lang.String readOnlyTextBoxStyle)` Default `FormItem.readOnlyTextBoxStyle` setting for items in this form.
    `void` | `setRejectInvalidValueOnChange(java.lang.Boolean rejectInvalidValueOnChange)` If validateOnChange is true, and validation fails for an 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.
    `void` | `setRemoveOperation(java.lang.String removeOperation)` `operationId` this component should use when performing remove operations.
    `void` | `setRequiredMessage(java.lang.String requiredMessage)` The required message for required field errors.
    `void` | `setRequiredRightTitlePrefix(java.lang.String requiredRightTitlePrefix)` The string pre-pended to the title of every required item in this form if `hiliteRequiredFields` is true and the `TitleOrientation` property is set to "right".
    `void` | `setRequiredRightTitleSuffix(java.lang.String requiredRightTitleSuffix)` The string appended to the title of every required item in this form if `hiliteRequiredFields` is true and the `TitleOrientation` property is set to "right".
    `void` | `setRequiredTitlePrefix(java.lang.String requiredTitlePrefix)` The string pre-pended to the title of every required item in this form if `hiliteRequiredFields` is true.
    `void` | `setRequiredTitleSuffix(java.lang.String requiredTitleSuffix)` The string appended to the title of every required item in this form if `hiliteRequiredFields` is true.
    `void` | `setRevertValueKey(KeyIdentifier revertValueKey)` Keyboard shortcut that causes the value of the currently focused form item to be reverted to whatever value would be shown if `resetValues()` were called.
    `void` | `setRightTitlePrefix(java.lang.String rightTitlePrefix)` The string pre-pended to the title of an item in this form if its titleOrientation property is set to "right".
    `void` | `setRightTitleSuffix(java.lang.String rightTitleSuffix)` The string appended to the title of an item in this form if its titleOrientation property is set to "right".
    `void` | `setSaveOnEnter(java.lang.Boolean saveOnEnter)` If `true`, when the user hits the Enter key while focused in a text-item in this form, we automatically submit the form to the server using the `submit()` method.
    `void` | `setSaveOperationType(DSOperationType saveOperationType)` Default `DSOperationType` to be performed when `saveData()` is called.
    `void` | `setSectionVisibilityMode(VisibilityMode sectionVisibilityMode)` If the form has sections, [implemented as `SectionItem`s], this attribute controls whether multiple sections can be expanded at once.
    `void` | `setSelectOnClick(java.lang.Boolean selectOnClick)` If this property is set to true, whenever a text-based field in this form (`TextItem`, `TextAreaItem`) is given focus - whether programmatically (see `focusInItem()`), or via a mouse click, all text within the item will be selected.
    `void` | `setSelectOnFocus(java.lang.Boolean selectOnFocus)` If this property is set to true, whenever a text-based field in this form (`TextItem`, `TextAreaItem`) is given focus programmatically (see `focusInItem()`), all text within the item will be selected.
    `void` | `setShowComplexFields(java.lang.Boolean showComplexFields)` Whether to show fields of non-atomic types when a DataBoundComponent is given a DataSource but no `component.fields`.
    `void` | `setShowComplexFieldsRecursively(java.lang.Boolean showComplexFieldsRecursively)` If set, this `DynamicForm` will set both `showComplexFields` and `showComplexFieldsRecursively` on any nested component used for showing/editing a complex field.
    `void` | `setShowDeletions(java.lang.Boolean showDeletions)` Default `FormItem.showDeletions` setting for items in this form.
    `void` | `setShowDetailFields(java.lang.Boolean showDetailFields)` For databound forms, whether to show fields marked as detail fields.
    `void` | `setShowErrorIcons(java.lang.Boolean showErrorIcons)` `showErrorIcons`, `showErrorText`, 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).
    `void` | `setShowErrorStyle(java.lang.Boolean showErrorStyle)` `showErrorIcons`, `showErrorText`, 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).
    `void` | `setShowErrorText(java.lang.Boolean showErrorText)` `showErrorIcons`, `showErrorText`, 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).
    `void` | `setShowHiddenFields(java.lang.Boolean showHiddenFields)` Whether to show fields marked `hidden:true` when a DataBoundComponent is given a DataSource but no `component.fields`.
    `void` | `setShowInlineErrors(java.lang.Boolean showInlineErrors)` If true, field errors are written into the form next to the item(s) where the errors occurred.
    `void` | `setShowOldValueInHover(java.lang.Boolean showOldValueInHover)` Default setting for the form items' `FormItem.showOldValueInHover` setting.
    `void` | `setShowTitlesWithErrorMessages(java.lang.Boolean showTitlesWithErrorMessages)` Indicates whether on validation failure, the error message displayed to the user should be pre-pended with the title for the item.
    `static void` | `setSkipConversionOnMapping(java.lang.Boolean convert)` Call this method passing true to skip conversion of the Javascript object to a Java Map when calling the mapDisplayToValue() API.
    `void` | `setStopOnError(java.lang.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.
    `void` | `setSuppressValidationErrorCallback(java.lang.Boolean suppressValidationErrorCallback)` When calling `saveData()` on a form or valuesManager, by default if the server returns an error code, any callback passed into saveData() will not be fired.
    `void` | `setSynchronousValidation(java.lang.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.
    `void` | `setTarget(java.lang.String target)` The name of a window or frame that will receive the results returned by the form's action.
    `void` | `setTimeFormatter(TimeDisplayFormat timeFormatter)` Default `TimeDisplayFormat` for `type:"time"` field values displayed in this form.
    `void` | `setTitleAlign(Alignment titleAlign)` Default alignment for item titles.
    `void` | `setTitleField(java.lang.String titleField)` Sets the best field to use for a user-visible title for an individual record from this component.
    `void` | `setTitleOrientation(TitleOrientation titleOrientation)` Default orientation for titles for items in this form.
    `void` | `setTitlePrefix(java.lang.String titlePrefix)` The string pre-pended to the title of every item in this form.
    `void` | `setTitleSuffix(java.lang.String titleSuffix)` The string appended to the title of every item in this form.
    `void` | `setTitleWidth(int titleWidth)` The width in pixels allocated to the title of every item in this form.
    `void` | `setTitleWidth(java.lang.String titleWidth)` The width in pixels allocated to the title of every item in this form.
    `void` | `setUnknownErrorMessage(java.lang.String unknownErrorMessage)` The error message for a failed validator that does not specify its own errorMessage.
    `void` | `setUpdateOperation(java.lang.String updateOperation)` `operationId` this component should use when performing update operations.
    `void` | `setUseAllDataSourceFields(boolean useAllDataSourceFields)` If true, the set of fields given by the "default binding" (see DataBoundComponent.fields) is used, with any fields specified in component.fields acting as overrides that can suppress or modify the display of individual fields, without having to list the entire set of fields that should be shown.
    `void` | `setUseAllDataSourceFields(java.lang.Boolean useAllDataSourceFields)` If true, the set of fields given by the "default binding" (see `fields`) is used, with any fields specified in `component.fields` acting as overrides that can suppress or modify the display of individual fields, without having to list the entire set of fields that should be shown.
    `void` | `setUseFlatFields(java.lang.Boolean useFlatFields)` The `useFlatFields` flag causes all simple type fields anywhere in a nested set of DataSources to be exposed as a flat list for form binding.
    `void` | `setUserTask(UserTask userTask)` Associated userTask if current dynamic form used along with workflow.
    `void` | `setValidateOnChange(java.lang.Boolean validateOnChange)` If true, form fields will be validated when each item's "change" handler is fired as well as when the entire form is submitted or validated.
    `void` | `setValidateOnExit(java.lang.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.
    `void` | `setValidationURL(java.lang.String validationURL)` validationURL can be set to do server-side validation against a different URL from where the form will ultimately save, as part of an incremental upgrade strategy for Struts and Struts-like applications.
    `void` | `setValue(java.lang.String fieldName, boolean value)` Set the value for some field.
    `void` | `setValue(java.lang.String fieldName, DataClass value)` Set the value for some field.
    `void` | `setValue(java.lang.String fieldName, DataClass[] value)` Set the value for some field.
    `void` | `setValue(java.lang.String fieldName, java.util.Date value)` Set the value for some field.
    `void` | `setValue(java.lang.String fieldName, double value)` Set the value for some field.
    `void` | `setValue(java.lang.String fieldName, int[] value)` Set the value for some field.
    `void` | `setValue(java.lang.String fieldName, com.google.gwt.core.client.JavaScriptObject value)` Set the value for some field.
    `void` | `setValue(java.lang.String fieldName, java.util.Map value)` Set the value for some field.
    `void` | `setValue(java.lang.String fieldName, Record value)` Set the value for some field.
    `void` | `setValue(java.lang.String fieldName, Record[] value)` Set the value for some field.
    `void` | `setValue(java.lang.String fieldName, RelativeDate value)` Set the value for some field.
    `void` | `setValue(java.lang.String fieldName, java.lang.String value)` Sets the value for some field
    `void` | `setValue(java.lang.String fieldName, java.lang.String[] value)` Set the value for some field.
    `void` | `setValues(java.util.Map values)` An Object containing the initial values of the form as properties, where each propertyName is the name of a `form item` in the form, and each property value is the value held by that form item.
    `void` | `setValuesAsCriteria(Criterion criteria)` This method will display the specified criteria in this form for editing.
    `void` | `setValuesManager(ValuesManager valuesManager)` Adds this DynamicForm as a member of the specified valuesManager.
    `void` | `setWrapItemTitles(java.lang.Boolean wrapItemTitles)` Whether titles for form items should wrap.
    `void` | `showErrors()` If this form has any outstanding validation errors, show them now. This method is called when the set of errors are changed by `setErrors(java.util.Map, boolean)` or `validate(boolean)`.
    `void` | `showFieldErrors(java.lang.String fieldName)` If this form has any outstanding validation errors for the field passed in, show them now.
    `void` | `showItem(java.lang.String itemName)` Show a form item via `FormItem.show()`
    `void` | `submit()` `submit()` is automatically called when a `SubmitItem` included in the form is clicked, or, if `saveOnEnter` is set, when the "Enter" key is pressed in a text input.
    `void` | `submit(DSCallback callback)`
    `void` | `submit(DSCallback callback, DSRequest requestProperties)` `submit()` is automatically called when a `SubmitItem` included in the form is clicked, or, if `saveOnEnter` is set, when the "Enter" key is pressed in a text input.
    `void` | `submitForm()` Submits the form to the URL defined by `action`, identically to how a plain HTML <form> element would submit data, as either an HTTP GET or POST as specified by `method`.
    `boolean` | `titleClipped(FormItem item)` Is the title for the given form item clipped? The form item must have title clipping enabled.
    `void` | `transferSelectedData(DataBoundComponent source)` Simulates a drag / drop type transfer of the selected records in some other component to this component, without requiring any user interaction.
    `void` | `transferSelectedData(DataBoundComponent source, int index)` Simulates a drag / drop type transfer of the selected records in some other component to this component, without requiring any user interaction.
    `boolean` | `validate()` Validates the form without submitting it, and redraws the form to display error messages if there are any validation errors.
    `boolean` | `validate(boolean validateHiddenFields)` Validates the form without submitting it, and redraws the form to display error messages if there are any validation errors.
    `boolean` | `validateData(DSCallback callback)`
    `boolean` | `validateData(DSCallback callback, DSRequest requestProperties)` `validateData()` can be used to check for errors in server-side validators without showing such errors to the user.
    `boolean` | `valuesAreValid(boolean validateHiddenFields)` Method to determine whether the current form values would pass validation.
    `java.lang.Boolean` | `valuesHaveChanged()` Compares the current set of values with the values stored by the call to the `rememberValues()` method.

    - ### Methods inherited from class com.smartgwt.client.widgets.Canvas

      `addChild, addChild, addChild, addChild, addChild, addClickHandler, addDoubleClickHandler, addDragMoveHandler, addDragRepositionMoveHandler, addDragRepositionStartHandler, addDragRepositionStopHandler, addDragResizeMoveHandler, addDragResizeStartHandler, addDragResizeStopHandler, addDragStartHandler, addDragStopHandler, addDropHandler, addDropMoveHandler, addDropOutHandler, addDropOverHandler, addFocusChangedHandler, addHoverHandler, addHoverHiddenHandler, addKeyDownHandler, addKeyPressHandler, addMouseDownHandler, addMouseMoveHandler, addMouseOutHandler, addMouseOverHandler, addMouseStillDownHandler, addMouseUpHandler, addMouseWheelHandler, addMovedHandler, addParentMovedHandler, addPeer, addPeer, addPeer, addPeer, addResizedHandler, addRightMouseDownHandler, addScrolledHandler, addShowContextMenuHandler, addSnapAlignCandidate, addStyleName, addVisibilityChangedHandler, adjustForContent, animateFade, animateFade, animateFade, animateFade, animateFade, animateFade, animateFade, animateFade, animateHide, animateHide, animateHide, animateMove, animateMove, animateMove, animateMove, animateRect, animateRect, animateRect, animateRect, animateResize, animateResize, animateResize, animateResize, animateScroll, animateScroll, animateScroll, animateScroll, animateScroll, animateScroll, animateShow, animateShow, animateShow, animateShow, animateShow, animateShow, asSGWTComponent, blur, bringToFront, clear, clickMaskUp, clickMaskUp, contains, contains, containsEvent, containsFocus, containsPoint, containsPoint, deparent, depeer, disable, enable, encloses, focusInNextTabElement, focusInPreviousTabElement, getAbsoluteLeft, getAbsoluteTop, getAccessKey, getAlwaysShowScrollbars, getAnimateAcceleration, getAnimateFadeTime, getAnimateHideAcceleration, getAnimateHideTime, getAnimateMoveAcceleration, getAnimateMoveTime, getAnimateRectAcceleration, getAnimateRectTime, getAnimateResizeAcceleration, getAnimateResizeTime, getAnimateScrollAcceleration, getAnimateScrollTime, getAnimateShowAcceleration, getAnimateShowEffect, getAnimateShowTime, getAnimateTime, getAppImgDir, getAriaRole, getAutoDraw, getAutoMaskComponents, getAutoShowParent, getBackgroundColor, getBackgroundImage, getBackgroundPosition, getBackgroundRepeat, getBorder, getBottom, getById, getByJSObject, getByLocalId, getCanAcceptDrop, getCanDrag, getCanDragReposition, getCanDragResize, getCanDragScroll, getCanDrop, getCanDropBefore, getCanHover, getCanSelectText, getCanvasAutoChild, getCanvasItem, getChildren, getChildrenResizeSnapAlign, getChildrenSnapAlign, getChildrenSnapCenterAlign, getChildrenSnapEdgeAlign, getChildrenSnapResizeToGrid, getChildrenSnapToGrid, getClassName, getComponentMask, getComponentMaskDefaults, getContentElement, getContents, getContextMenu, getCursor, getDataPath, getDefaultHeight, getDefaultWidth, getDestroyed, getDestroying, getDisabled, getDisabledCursor, getDisableTouchScrollingForDrag, getDoubleClickDelay, getDragAppearance, getDragIntersectStyle, getDragMaskType, getDragOpacity, getDragRepositionAppearance, getDragRepositionCursor, getDragResizeAppearance, getDragScrollDelay, getDragStartDistance, getDragTarget, getDragType, getDropTypes, getDropTypesAsString, getDynamicContents, getEdgeBackgroundColor, getEdgeCenterBackgroundColor, getEdgeImage, getEdgeMarginSize, getEdgeOffset, getEdgeOpacity, getEdgeShowCenter, getEdgeSize, getEditNode, getEditProxy, getElement, getElement, getEventEdge, getEventEdge, getExtraSpace, getFacetId, getFormItemAutoChild, getFullDataPath, getGroupBorderCSS, getGroupLabelBackgroundColor, getGroupLabelStyleName, getGroupTitle, getHeight, getHeightAsString, getHideUsingDisplayNone, getHoverAlign, getHoverAutoDestroy, getHoverComponent, getHoverDelay, getHoverHeight, getHoverHTML, getHoverMoveWithMouse, getHoverOpacity, getHoverStyle, getHoverVAlign, getHoverWidth, getHoverWrap, getHSnapOrigin, getHSnapOrigin, getHSnapPosition, getHSnapPosition, getHtmlElement, getHtmlPosition, getImage, getImgURL, getImgURL, getInnerContentHeight, getInnerContentWidth, getInnerHeight, getInnerWidth, getIsGroup, getIsPrinting, getIsSnapAlignCandidate, getKeepInParentRect, getLayoutAlign, getLeavePageSpace, getLeft, getLeftAsString, getLocateChildrenBy, getLocateChildrenType, getLocatePeersBy, getLocatePeersType, getMargin, getMasterCanvas, getMasterElement, getMatchElement, getMaxHeight, getMaxWidth, getMenuConstructor, getMinHeight, getMinNonEdgeSize, getMinWidth, getMomentumScrollMinSpeed, getMouseStillDownDelay, getMouseStillDownInitialDelay, getNextZIndex, getNoDoubleClicks, getNoDropCursor, getOffsetHeight, getOffsetWidth, getOffsetX, getOffsetY, getOpacity, getOuterElement, getOverflow, getPadding, getPageBottom, getPageLeft, getPageRect, getPageRight, getPageTop, getPanelContainer, getParentCanvas, getParentElement, getPeers, getPercentBox, getPercentSource, getPosition, getPrefix, getPrintChildrenAbsolutelyPositioned, getPrintHTML, getPrintHTML, getPrompt, getProportionalResizeModifiers, getProportionalResizing, getRect, getRedrawOnResize, getResizeBarTarget, getResizeFrom, getRight, getScrollbarSize, getScrollBottom, getScrollHeight, getScrollLeft, getScrollRight, getScrollTop, getScrollWidth, getShadowDepth, getShadowImage, getShadowOffset, getShadowSoftness, getShouldPrint, getShowCustomScrollbars, getShowDragShadow, getShowEdges, getShowHover, getShowHoverComponents, getShowResizeBar, getShowShadow, getShowSnapGrid, getShrinkElementOnHide, getSkinImgDir, getSnapAlignCandidates, getSnapAlignCenterLineStyle, getSnapAlignEdgeLineStyle, getSnapAxis, getSnapEdge, getSnapHDirection, getSnapHGap, getSnapOffsetLeft, getSnapOffsetTop, getSnapOnDrop, getSnapPosition, getSnapPosition, getSnapResizeToAlign, getSnapResizeToGrid, getSnapTo, getSnapToAlign, getSnapToCenterAlign, getSnapToEdgeAlign, getSnapToGrid, getSnapVDirection, getSnapVGap, getStyleName, getTabIndex, getTestInstance, getTitle, getTooltip, getTop, getTopAsString, getTopElement, getUseBackMask, getUseDragMask, getUseNativeDrag, getUseOpacityFilter, getUseTouchScrolling, getViewportHeight, getViewportWidth, getVisibility, getVisibleHeight, getVisibleWidth, getVSnapOrigin, getVSnapOrigin, getVSnapPosition, getVSnapPosition, getWidth, getWidthAsString, getZIndex, getZIndex, handleHover, hide, hideClickMask, hideClickMask, hideComponentMask, hideComponentMask, hideContextMenu, imgHTML, imgHTML, imgHTML, intersects, isDirty, isDisabled, isDrawn, isVisible, keyUp, layoutChildren, linkHTML, linkHTML, linkHTML, linkHTML, linkHTML, linkHTML, markForDestroy, markForRedraw, markForRedraw, moveAbove, moveBelow, moveBy, moveTo, onAttach, onDetach, pageScrollDown, pageScrollUp, parentResized, placeNear, placeNear, placeNear, printComponents, provideRuleContext, redraw, redraw, removeChild, removeChild, removePeer, removePeer, removeSnapAlignCandidate, resizeBy, resizeTo, resizeTo, revealChild, revealChild, scrollBy, scrollByPercent, scrollTo, scrollTo, scrollTo, scrollToBottom, scrollToLeft, scrollToPercent, scrollToRight, scrollToTop, sendToBack, setAccessKey, setAlign, setAllowExternalFilters, setAlwaysShowScrollbars, setAnimateAcceleration, setAnimateFadeTime, setAnimateHideAcceleration, setAnimateHideTime, setAnimateMoveAcceleration, setAnimateMoveTime, setAnimateRectAcceleration, setAnimateRectTime, setAnimateResizeAcceleration, setAnimateResizeTime, setAnimateScrollAcceleration, setAnimateScrollTime, setAnimateShowAcceleration, setAnimateShowEffect, setAnimateShowTime, setAnimateTime, setAppImgDir, setAriaRole, setAriaState, setAutoChildConstructor, setAutoChildProperties, setAutoChildProperties, setAutoChildProperties, setAutoChildProperties, setAutoChildVisibility, setAutoDraw, setAutoHeight, setAutoMaskComponents, setAutoShowParent, setAutoWidth, setBackgroundColor, setBackgroundImage, setBackgroundPosition, setBackgroundRepeat, setBorder, setBottom, setCanAcceptDrop, setCanDrag, setCanDragReposition, setCanDragResize, setCanDragScroll, setCanDrop, setCanDropBefore, setCanHover, setCanSelectText, setChildren, setChildrenResizeSnapAlign, setChildrenSnapAlign, setChildrenSnapCenterAlign, setChildrenSnapEdgeAlign, setChildrenSnapResizeToGrid, setChildrenSnapToGrid, setComponentMaskDefaults, setContents, setContextMenu, setCursor, setDataPath, setDefaultHeight, setDefaultPageSpace, setDefaultProperties, setDefaultWidth, setDisabled, setDisabledCursor, setDisableTouchScrollingForDrag, setDoubleClickDelay, setDragAppearance, setDragIntersectStyle, setDragMaskType, setDragOpacity, setDragRepositionAppearance, setDragRepositionCursor, setDragResizeAppearance, setDragScrollDelay, setDragStartDistance, setDragTarget, setDragType, setDropTypes, setDropTypes, setDynamicContents, setEdgeBackgroundColor, setEdgeCenterBackgroundColor, setEdgeImage, setEdgeMarginSize, setEdgeOffset, setEdgeOpacity, setEdgeShowCenter, setEdgeSize, setEditMode, setEditMode, setEditMode, setElement, setExtraSpace, setFacetId, setGroupBorderCSS, setGroupLabelBackgroundColor, setGroupLabelStyleName, setGroupTitle, setHeight, setHeight, setHeight, setHeight100, setHideUsingDisplayNone, setHoverAlign, setHoverAutoDestroy, setHoverDelay, setHoverHeight, setHoverMoveWithMouse, setHoverOpacity, setHoverStyle, setHoverVAlign, setHoverWidth, setHoverWrap, setHtmlElement, setHtmlPosition, setImage, setImage, setInitHandler, setIsGroup, setIsSnapAlignCandidate, setKeepInParentRect, setKeepInParentRect, setKeepInParentRect, setLayoutAlign, setLayoutAlign, setLeavePageSpace, setLeft, setLeft, setLocateChildrenBy, setLocateChildrenType, setLocatePeersBy, setLocatePeersType, setLogicalStructure, setMargin, setMatchElement, setMaxHeight, setMaxWidth, setMenuConstructor, setMinHeight, setMinNonEdgeSize, setMinWidth, setMomentumScrollMinSpeed, setMouseStillDownDelay, setMouseStillDownInitialDelay, setNeverUseFilters, setNoDoubleClicks, setNoDropCursor, setOpacity, setOverflow, setPadding, setPageLeft, setPageTop, setParentCanvas, setParentElement, setPeers, setPercentBox, setPercentSource, setPosition, setPrefix, setPrintChildrenAbsolutelyPositioned, setPrompt, setProportionalResizeModifiers, setProportionalResizing, setRect, setRect, setRedrawOnResize, setResizeBarTarget, setResizeFrom, setResizeFrom, setRight, setScrollbarConstructor, setScrollbarSize, setShadowDepth, setShadowImage, setShadowOffset, setShadowSoftness, setShouldPrint, setShowCustomScrollbars, setShowDragShadow, setShowEdges, setShowHover, setShowHoverComponents, setShowResizeBar, setShowShadow, setShowSnapGrid, setShrinkElementOnHide, setSkinImgDir, setSmoothFade, setSnapAlignCandidates, setSnapAlignCenterLineStyle, setSnapAlignEdgeLineStyle, setSnapAxis, setSnapEdge, setSnapHDirection, setSnapHGap, setSnapOffsetLeft, setSnapOffsetTop, setSnapOnDrop, setSnapResizeToAlign, setSnapResizeToGrid, setSnapTo, setSnapToAlign, setSnapToCenterAlign, setSnapToEdgeAlign, setSnapToGrid, setSnapVDirection, setSnapVGap, setStyleName, setTabIndex, setTitle, setTooltip, setTop, setTop, setUseBackMask, setUseDragMask, setUseNativeDrag, setUseOpacityFilter, setUseTouchScrolling, setVisibility, setVisible, setWidth, setWidth, setWidth, setWidth100, setZIndex, shouldDragScroll, show, showClickMask, showComponentMask, showComponentMask, showNextTo, showNextTo, showNextTo, showNextTo, showPrintPreview, showPrintPreview, showPrintPreview, showPrintPreview, showRecursively, updateEditNode, updateHover, updateHover, updateShadow, visibleAtPoint, willAcceptDrop`

    - ### Methods inherited from class com.smartgwt.client.widgets.BaseWidget

      `addDrawHandler, applyFactoryProperties, destroy, doAddHandler, doInit, doOnRender, draw, equals, error, errorIfNotCreated, getAttribute, getAttributeAsBoolean, getAttributeAsDate, getAttributeAsDateArray, getAttributeAsDouble, getAttributeAsElement, getAttributeAsFloat, getAttributeAsFloatArray, getAttributeAsInt, getAttributeAsIntArray, getAttributeAsJavaScriptObject, getAttributeAsMap, getAttributeAsRecord, getAttributeAsString, getAttributeAsStringArray, getConfig, getDOM, getHandlerCount, getID, getInnerHTML, getJsObj, getOrCreateJsObj, getRef, getScClassName, hasAutoAssignedID, hashCode, initNativeObject, internalSetID, internalSetID, isConfigOnly, isCreated, isFactoryCreated, onBind, onDestroy, onDraw, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setConfig, setConfigOnly, setDragTracker, setFactoryCreated, setID, setJavaScriptObject, setLogicalStructure, setNullProperty, setPosition, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setScClassName, toString`

    - ### Methods inherited from class com.google.gwt.user.client.ui.Widget

      `addAttachHandler, addBitlessDomHandler, addDomHandler, addHandler, asWidget, asWidgetOrNull, createHandlerManager, delegateEvent, doAttachChildren, doDetachChildren, fireEvent, getLayoutData, getParent, isAttached, isOrWasAttached, onBrowserEvent, onLoad, onUnload, removeFromParent, setLayoutData, sinkEvents, unsinkEvents`

    - ### Methods inherited from class com.google.gwt.user.client.ui.UIObject

      `addStyleDependentName, ensureDebugId, ensureDebugId, ensureDebugId, getStyleElement, getStyleName, getStylePrimaryName, getStylePrimaryName, isVisible, onEnsureDebugId, removeStyleDependentName, removeStyleName, resolvePotentialElement, setElement, setPixelSize, setSize, setStyleDependentName, setStyleName, setStyleName, setStyleName, setStylePrimaryName, setStylePrimaryName, setVisible, sinkBitlessEvent`

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

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

    - ### Methods inherited from interface com.smartgwt.client.widgets.DataBoundComponent

      `getOrCreateJsObj`

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

      `fireEvent`

- - ### Constructor Detail

    - #### DynamicForm

          public DynamicForm()

    - #### DynamicForm

          public DynamicForm(com.google.gwt.core.client.JavaScriptObject jsObj)

  - ### Method Detail

    - #### getOrCreateRef

          public static DynamicForm getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)

    - #### changeAutoChildDefaults

          public static void changeAutoChildDefaults(java.lang.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(java.lang.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`

    - #### create

          protected com.google.gwt.core.client.JavaScriptObject create()

      Overrides:
        `create` in class `Canvas`

    - #### setAction

          public void setAction(java.lang.String action)

      The URL to which the form will submit its values.

      NOTE: this is used only in the very rare case that a form is used to submit data directly to a URL. Normal server contact is through RPCManager.
      See `canSubmit` for more on this.
      If this method is called after the component has been drawn/initialized: Sets the `action` for this form.

      Parameters:
        `action` - New action URL. Default value is "#"
      See Also:
        `RPCManager`, `Submitting overview and related methods`

    - #### getAction

          public java.lang.String getAction()

      The URL to which the form will submit its values.

      NOTE: this is used only in the very rare case that a form is used to submit data directly to a URL. Normal server contact is through RPCManager.
      See `canSubmit` for more on this.

      Returns:
        String
      See Also:
        `RPCManager`, `Submitting overview and related methods`

    - #### setAllowExpressions

          public void setAllowExpressions(java.lang.Boolean allowExpressions)

      For a form that produces filter criteria (see `form.getValuesAsCriteria()`), allows the user to enter simple expressions in any field in this form that takes text input.

      Also note that enabling `allowExpressions` for an entire form changes the `defaultSearchOperator` to `"iContainsPattern"`, so that simple search expressions similar to SQL "LIKE" patterns can be entered in most fields.

      See `FormItem.allowExpressions` for details.

      Parameters:
        `allowExpressions` - Default value is null

    - #### getAllowExpressions

          public java.lang.Boolean getAllowExpressions()

      For a form that produces filter criteria (see `form.getValuesAsCriteria()`), allows the user to enter simple expressions in any field in this form that takes text input.

      Also note that enabling `allowExpressions` for an entire form changes the `defaultSearchOperator` to `"iContainsPattern"`, so that simple search expressions similar to SQL "LIKE" patterns can be entered in most fields.

      See `FormItem.allowExpressions` for details.

      Returns:
        Boolean

    - #### setAutoComplete

          public void setAutoComplete(AutoComplete autoComplete)

      Should this form allow browser auto-completion of its items' values? 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.

      This property may be explicitly specified per item via `FormItem.autoComplete`.

      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.

      Parameters:
        `autoComplete` - Default value is "none"
      See Also:
        `FormItem.setAutoComplete(com.smartgwt.client.types.AutoComplete)`

    - #### getAutoComplete

          public AutoComplete getAutoComplete()

      Should this form allow browser auto-completion of its items' values? 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.

      This property may be explicitly specified per item via `FormItem.autoComplete`.

      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.

      Returns:
        AutoComplete
      See Also:
        `FormItem.getAutoComplete()`

    - #### setAutoFocus

          public void setAutoFocus(java.lang.Boolean autoFocus)

      If true, when the form is drawn, focus will automatically be put into the first focusable element in the form.
      Note that to put focus in a different item you can explicitly call `dynamicForm.focusInItem(itemName)`
      Parameters:
        `autoFocus` - Default value is false
      See Also:
        `focusInItem(int)`, `Focus overview and related methods`

    - #### getAutoFocus

          public java.lang.Boolean getAutoFocus()

      If true, when the form is drawn, focus will automatically be put into the first focusable element in the form.
      Note that to put focus in a different item you can explicitly call `dynamicForm.focusInItem(itemName)`
      Returns:
        Boolean
      See Also:
        `focusInItem(int)`, `Focus overview and related methods`

    - #### setAutoFocusOnError

          public void setAutoFocusOnError(java.lang.Boolean autoFocusOnError)

      If true, when `validation` fails focus will automatically be put into the first focusable field which failed validation.
      Parameters:
        `autoFocusOnError` - Default value is true
      See Also:
        `Focus overview and related methods`

    - #### getAutoFocusOnError

          public java.lang.Boolean getAutoFocusOnError()

      If true, when `validation` fails focus will automatically be put into the first focusable field which failed validation.
      Returns:
        Boolean
      See Also:
        `Focus overview and related methods`

    - #### setBrowserSpellCheck

          public void setBrowserSpellCheck(java.lang.Boolean browserSpellCheck)

      If this browser has a 'spellCheck' feature for text-based form item elements, should it be used for items in this form? Can be overridden at the item level via `FormItem.browserSpellCheck`

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

      Parameters:
        `browserSpellCheck` - Default value is true
      See Also:
        `FormItem.setBrowserSpellCheck(java.lang.Boolean)`

    - #### getBrowserSpellCheck

          public java.lang.Boolean getBrowserSpellCheck()

      If this browser has a 'spellCheck' feature for text-based form item elements, should it be used for items in this form? Can be overridden at the item level via `FormItem.browserSpellCheck`

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

      Returns:
        Boolean
      See Also:
        `FormItem.getBrowserSpellCheck()`

    - #### setCancelParamName

          public void setCancelParamName(java.lang.String cancelParamName)

      The name of the special field sent to the server as part of `cancel()`
      Parameters:
        `cancelParamName` - Default value is "org.apache.struts.taglib.html.CANCEL"

    - #### getCancelParamName

          public java.lang.String getCancelParamName()

      The name of the special field sent to the server as part of `cancel()`
      Returns:
        String

    - #### setCancelParamValue

          public void setCancelParamValue(java.lang.String cancelParamValue)

      The value of the special field sent to the server as part of `cancel()`
      Parameters:
        `cancelParamValue` - Default value is "cancel"

    - #### getCancelParamValue

          public java.lang.String getCancelParamValue()

      The value of the special field sent to the server as part of `cancel()`
      Returns:
        String

    - #### setCanEdit

          public void setCanEdit(java.lang.Boolean canEdit)

      If set to `false`, the form will be marked read-only. A widget on the form is editable if either (1) beginning with the widget and continuing up the containment hierarchy, including the form, the first widget to have a non-null `canEdit` attribute has canEdit:true, or (2) neither the widget nor any parent has a non-null `canEdit` attribute. This setting allows you to enable or disable the default editability of the form's items at one time.

      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.

      Note that a form is considered editable if `canEdit` is null (default) or `true`.

      Note that this property may validly be `null` as a distinct state from `false`. See `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 editable or read-only? Setting the form to non-editable causes all form items to render as read-only unless a form item is specifically marked as editable (the item's `canEdit` attribute is `true`).

      Note : This is an advanced setting

      Parameters:
        `canEdit` - Can this form be edited?. Default value is null
      See Also:
        `setReadOnlyDisplay(com.smartgwt.client.types.ReadOnlyDisplayAppearance)`

    - #### getCanEdit

          public java.lang.Boolean getCanEdit()

      If set to `false`, the form will be marked read-only. A widget on the form is editable if either (1) beginning with the widget and continuing up the containment hierarchy, including the form, the first widget to have a non-null `canEdit` attribute has canEdit:true, or (2) neither the widget nor any parent has a non-null `canEdit` attribute. This setting allows you to enable or disable the default editability of the form's items at one time.

      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.

      Note that a form is considered editable if `canEdit` is null (default) or `true`.

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

      Returns:
        Boolean
      See Also:
        `getReadOnlyDisplay()`

    - #### setCanEditFieldAttribute

          public void setCanEditFieldAttribute(java.lang.String canEditFieldAttribute)
                                        throws java.lang.IllegalStateException

      If this component is bound to a dataSource, this attribute may be specified to customize what fields from the dataSource may be edited by default. For example the `SearchForm` class has this attribute set to `"canFilter"` which allows search forms to edit dataSource fields marked as `canEdit:false` (but not those marked as `canFilter:false`).

      Note that if `canEdit` is explicitly specified on a field in the `DataBoundComponent.fields` array, that property will be respected in preference to the canEditAttribute value. (See `FormItem.canEdit`, `ListGridField.canEdit`). Also note that individual dataBoundComponents may have additional logic around whether a field can be edited - for example `ListGrid.canEditCell()` may be overridden.

      Note : This is an advanced setting

      Parameters:
        `canEditFieldAttribute` - Default value is "canEdit"
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getCanEditFieldAttribute

          public java.lang.String getCanEditFieldAttribute()

      If this component is bound to a dataSource, this attribute may be specified to customize what fields from the dataSource may be edited by default. For example the `SearchForm` class has this attribute set to `"canFilter"` which allows search forms to edit dataSource fields marked as `canEdit:false` (but not those marked as `canFilter:false`).

      Note that if `canEdit` is explicitly specified on a field in the `DataBoundComponent.fields` array, that property will be respected in preference to the canEditAttribute value. (See `FormItem.canEdit`, `ListGridField.canEdit`). Also note that individual dataBoundComponents may have additional logic around whether a field can be edited - for example `ListGrid.canEditCell()` may be overridden.

      Returns:
        String

    - #### setCanFocus

          public void setCanFocus(java.lang.Boolean canFocus)

      DynamicForms are considered to have focus if any of their form items have focus. Note that setting `dynamicForm.canFocus` to false will have no effect on whether form items within the form may receive focus. This property will only govern whether the form may receive focus if the form contains no focusable items.

      Note : This is an advanced setting

      Overrides:
        `setCanFocus` in class `Canvas`
      Parameters:
        `canFocus` - Default value is true
      See Also:
        `Focus overview and related methods`

    - #### getCanFocus

          public java.lang.Boolean getCanFocus()

      DynamicForms are considered to have focus if any of their form items have focus. Note that setting `dynamicForm.canFocus` to false will have no effect on whether form items within the form may receive focus. This property will only govern whether the form may receive focus if the form contains no focusable items.
      Overrides:
        `getCanFocus` in class `Canvas`
      Returns:
        Boolean
      See Also:
        `Focus overview and related methods`

    - #### setCanSubmit

          public void setCanSubmit(java.lang.Boolean canSubmit)

      Governs whether this form will be used to perform a standard HTML form submission. Note that if true, `submit()` will perform a native HTML submission to the specified `action` URL.
      Wherever possible we strongly recommend using the `DataBound Component Methods` to send data to the server as they provide a far more sophisticated interface, with built in options for server validation, required fields, etc.

      Note : This is an advanced setting

      Parameters:
        `canSubmit` - Default value is false
      See Also:
        `Submitting overview and related methods`

    - #### getCanSubmit

          public java.lang.Boolean getCanSubmit()

      Governs whether this form will be used to perform a standard HTML form submission. Note that if true, `submit()` will perform a native HTML submission to the specified `action` URL.
      Wherever possible we strongly recommend using the `DataBound Component Methods` to send data to the server as they provide a far more sophisticated interface, with built in options for server validation, required fields, etc.
      Returns:
        Boolean
      See Also:
        `Submitting overview and related methods`

    - #### setCanTabToSectionHeaders

          public void setCanTabToSectionHeaders(java.lang.Boolean canTabToSectionHeaders)
                                         throws java.lang.IllegalStateException

      If true, the headers for any `SectionItems` will be included in the page's tab order for accessibility. May also be set at the item level via `SectionItem.canTabToHeader`

      If unset, section headers will be focusable if `isc.setScreenReaderMode()` has been called. See `Accessibility`.

      Note : This is an advanced setting

      Parameters:
        `canTabToSectionHeaders` - Default value is null
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getCanTabToSectionHeaders

          public java.lang.Boolean getCanTabToSectionHeaders()

      If true, the headers for any `SectionItems` will be included in the page's tab order for accessibility. May also be set at the item level via `SectionItem.canTabToHeader`

      If unset, section headers will be focusable if `isc.setScreenReaderMode()` has been called. See `Accessibility`.

      Returns:
        Boolean

    - #### setCellBorder

          public void setCellBorder(int cellBorder)

      Width of border for the table that form is drawn in. This is primarily used for debugging form layout.
      Parameters:
        `cellBorder` - Default value is 0
      See Also:
        `FormLayout overview and related methods`

    - #### getCellBorder

          public int getCellBorder()

      Width of border for the table that form is drawn in. This is primarily used for debugging form layout.
      Returns:
        int
      See Also:
        `FormLayout overview and related methods`

    - #### setCellPadding

          public void setCellPadding(int cellPadding)

      The amount of empty space, in pixels, surrounding each form item within its cell in the layout grid.
      Parameters:
        `cellPadding` - Default value is 2
      See Also:
        `FormLayout overview and related methods`

    - #### getCellPadding

          public int getCellPadding()

      The amount of empty space, in pixels, surrounding each form item within its cell in the layout grid.
      Returns:
        int
      See Also:
        `FormLayout overview and related methods`

    - #### setClipItemTitles

          public void setClipItemTitles(boolean clipItemTitles)

      Should the titles for form items be clipped if they are too large for the available space?

      Can be overridden for individual items via `FormItem.clipTitle`.

      Parameters:
        `clipItemTitles` - Default value is false

    - #### getClipItemTitles

          public boolean getClipItemTitles()

      Should the titles for form items be clipped if they are too large for the available space?

      Can be overridden for individual items via `FormItem.clipTitle`.

      Returns:
        boolean

    - #### setClipStaticValue

          public void setClipStaticValue(java.lang.Boolean clipStaticValue)
                                  throws java.lang.IllegalStateException

      Default `FormItem.clipStaticValue` setting for items in this form. When unset, this is equivalent to `false`.
      Parameters:
        `clipStaticValue` - Default value is null
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getClipStaticValue

          public java.lang.Boolean getClipStaticValue()

      Default `FormItem.clipStaticValue` setting for items in this form. When unset, this is equivalent to `false`.
      Returns:
        Boolean

    - #### setDataFetchMode

          public void setDataFetchMode(FetchMode dataFetchMode)

      How to fetch and manage records retrieve from the server. See `FetchMode`.

      This setting only applies to the `ResultSet` automatically created by calling `fetchData()`. If a pre-existing ResultSet is passed to setData() instead, it's existing setting for `ResultSet.fetchMode` applies.

      Specified by:
        `setDataFetchMode` in interface `DataBoundComponent`
      Parameters:
        `dataFetchMode` - Default value is "paged"
      See Also:
        `Databinding overview and related methods`

    - #### getDataFetchMode

          public FetchMode getDataFetchMode()

      How to fetch and manage records retrieve from the server. See `FetchMode`.

      This setting only applies to the `ResultSet` automatically created by calling `fetchData()`. If a pre-existing ResultSet is passed to setData() instead, it's existing setting for `ResultSet.fetchMode` applies.

      Specified by:
        `getDataFetchMode` in interface `DataBoundComponent`
      Returns:
        FetchMode
      See Also:
        `Databinding overview and related methods`

    - #### setDataSource

          public void setDataSource(DataSource dataSource)

      The DataSource that this component should bind to for default fields and for performing `DataSource requests`.

      Can be specified as either a DataSource instance or the String ID of a DataSource.

      Specified by:
        `setDataSource` in interface `DataBoundComponent`
      Parameters:
        `dataSource` - Default value is null
      See Also:
        `Databinding overview and related methods`, DataSource fields Example

    - #### setDataSource

          public void setDataSource(java.lang.String dataSource)

      The DataSource that this component should bind to for default fields and for performing `DataSource requests`.

      Can be specified as either a DataSource instance or the String ID of a DataSource.

      Specified by:
        `setDataSource` in interface `DataBoundComponent`
      Parameters:
        `dataSource` - Default value is null
      See Also:
        `Databinding overview and related methods`, DataSource fields Example

    - #### setDateFormatter

          public void setDateFormatter(DateDisplayFormat dateFormatter)

      Default `DateDisplayFormat` for Date type values displayed in this form.

      If some field's value is set to a native Date object, how should it be displayed to the user? If specified this is the default display format to use, and will apply to all fields except those specified as `type:"time"` (See `timeFormatter`).

      May be overridden at the component level for fields of type `datetime` via `datetimeFormatter`.

      Note that if specified, `FormItem.dateFormatter` and `FormItem.timeFormatter` take precedence over the format specified at the component level.

      If no explicit formatter is specified at the field or component level, dates will be formatted according to the system-wide `short date display format` or `short datetime display format` depending on the specified field type.

      Parameters:
        `dateFormatter` - Default value is null

    - #### getDateFormatter

          public DateDisplayFormat getDateFormatter()

      Default `DateDisplayFormat` for Date type values displayed in this form.

      If some field's value is set to a native Date object, how should it be displayed to the user? If specified this is the default display format to use, and will apply to all fields except those specified as `type:"time"` (See `timeFormatter`).

      May be overridden at the component level for fields of type `datetime` via `datetimeFormatter`.

      Note that if specified, `FormItem.dateFormatter` and `FormItem.timeFormatter` take precedence over the format specified at the component level.

      If no explicit formatter is specified at the field or component level, dates will be formatted according to the system-wide `short date display format` or `short datetime display format` depending on the specified field type.

      Returns:
        DateDisplayFormat

    - #### setDatetimeFormatter

          public void setDatetimeFormatter(DateDisplayFormat datetimeFormatter)

      Default `DateDisplayFormat` for Date type values displayed in this form in fields of type `datetime`.

      For datetime fields, this attribute will be used instead of `dateFormatter` when formatting Date values.

      Note that if specified, `FormItem.dateFormatter` and `FormItem.timeFormatter` take precedence over the format specified at the component level.

      If no explicit formatter is specified at the field or component level, datetime field values will be formatted according to the system-wide `short datetime display format`.

      Parameters:
        `datetimeFormatter` - Default value is null

    - #### getDatetimeFormatter

          public DateDisplayFormat getDatetimeFormatter()

      Default `DateDisplayFormat` for Date type values displayed in this form in fields of type `datetime`.

      For datetime fields, this attribute will be used instead of `dateFormatter` when formatting Date values.

      Note that if specified, `FormItem.dateFormatter` and `FormItem.timeFormatter` take precedence over the format specified at the component level.

      If no explicit formatter is specified at the field or component level, datetime field values will be formatted according to the system-wide `short datetime display format`.

      Returns:
        DateDisplayFormat

    - #### setDefaultSearchOperator

          public void setDefaultSearchOperator(OperatorId defaultSearchOperator)
                                        throws java.lang.IllegalStateException

      Default `search operator` to use for fields in a form that produces `AdvancedCriteria`. Default is "iContains" unless `allowExpressions` is enabled for the form as a whole, in which case the default is `"iContainsPattern"`.

      Does not apply to special fields where exact match is obviously the right default setting, such as fields of type:"enum", or fields with a `valueMap` or `optionDataSource`.

      `defaultSearchOperator` also has no effect in a form that does not produce `AdvancedCriteria` - see `getValuesAsCriteria()` for settings that cause a form to produce AdvancedCriteria.

      Parameters:
        `defaultSearchOperator` - Default value is null
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getDefaultSearchOperator

          public OperatorId getDefaultSearchOperator()

      Default `search operator` to use for fields in a form that produces `AdvancedCriteria`. Default is "iContains" unless `allowExpressions` is enabled for the form as a whole, in which case the default is `"iContainsPattern"`.

      Does not apply to special fields where exact match is obviously the right default setting, such as fields of type:"enum", or fields with a `valueMap` or `optionDataSource`.

      `defaultSearchOperator` also has no effect in a form that does not produce `AdvancedCriteria` - see `getValuesAsCriteria()` for settings that cause a form to produce AdvancedCriteria.

      Returns:
        OperatorId

    - #### setDisableValidation

          public void setDisableValidation(java.lang.Boolean disableValidation)

      If set to true, client-side validators will not run on the form when validate() is called. Server-side validators (if any) will still run on attempted save.
      Parameters:
        `disableValidation` - Default value is null
      See Also:
        `saveData()`, `submit()`, `Validation overview and related methods`

    - #### getDisableValidation

          public java.lang.Boolean getDisableValidation()

      If set to true, client-side validators will not run on the form when validate() is called. Server-side validators (if any) will still run on attempted save.
      Returns:
        Boolean
      See Also:
        `saveData()`, `submit()`, `Validation overview and related methods`

    - #### setEditProxyConstructor

          public void setEditProxyConstructor(java.lang.String editProxyConstructor)
                                       throws java.lang.IllegalStateException

      Default class used to construct the `EditProxy` for this component when the component is `first placed into edit mode`.
      Overrides:
        `setEditProxyConstructor` in class `Canvas`
      Parameters:
        `editProxyConstructor` - See `SCClassName` . Default value is "FormEditProxy"
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getEditProxyConstructor

          public java.lang.String getEditProxyConstructor()

      Default class used to construct the `EditProxy` for this component when the component is `first placed into edit mode`.
      Overrides:
        `getEditProxyConstructor` in class `Canvas`
      Returns:
        See `SCClassName`

    - #### setEncoding

          public void setEncoding(Encoding encoding)

      encoding for the form, use MULTIPART_ENCODING for file upload forms

      Note : This is an advanced setting

      Parameters:
        `encoding` - Default value is DynamicForm.NORMAL
      See Also:
        `Submitting overview and related methods`

    - #### getEncoding

          public Encoding getEncoding()

      encoding for the form, use MULTIPART_ENCODING for file upload forms
      Returns:
        Encoding
      See Also:
        `Submitting overview and related methods`

    - #### setErrorItemCellStyle

          public void setErrorItemCellStyle(java.lang.String errorItemCellStyle)
                                     throws java.lang.IllegalStateException

      If `showInlineErrors` is false we show all errors for the form item in a single item rendered at the top of the form.
      This attribute specifies the cellStyle to apply to this item.
      Parameters:
        `errorItemCellStyle` - Default value is "formCellError"
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        `Validation overview and related methods`

    - #### getErrorItemCellStyle

          public java.lang.String getErrorItemCellStyle()

      If `showInlineErrors` is false we show all errors for the form item in a single item rendered at the top of the form.
      This attribute specifies the cellStyle to apply to this item.
      Returns:
        String
      See Also:
        `Validation overview and related methods`

    - #### setErrorsPreamble

          public void setErrorsPreamble(java.lang.String errorsPreamble)
                                 throws java.lang.IllegalStateException

      If `showInlineErrors` is `false`, all errors for the items in the form are rendered as a single item at the top of the form. This attribute specifies an introductory message rendered out before the individual error messages.
      Parameters:
        `errorsPreamble` - See `HTMLString` . Default value is "The following errors were found:"
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        `Validation overview and related methods`

    - #### getErrorsPreamble

          public java.lang.String getErrorsPreamble()

      If `showInlineErrors` is `false`, all errors for the items in the form are rendered as a single item at the top of the form. This attribute specifies an introductory message rendered out before the individual error messages.
      Returns:
        See `HTMLString`
      See Also:
        `Validation overview and related methods`

    - #### setFixedColWidths

          public void setFixedColWidths(java.lang.Boolean fixedColWidths)

      If true, we ensure that column widths are at least as large as you specify them. This means that if any single column overflows (due to, eg, a long unbreakable title), the form as a whole overflows.

      If false, columns will have their specified sizes as long as no column overflows. If any column overflows, space will be taken from any other columns that aren't filling the available room, until there is no more free space, in which case the form as a whole overflows.

      Parameters:
        `fixedColWidths` - Default value is false
      See Also:
        `FormLayout overview and related methods`

    - #### getFixedColWidths

          public java.lang.Boolean getFixedColWidths()

      If true, we ensure that column widths are at least as large as you specify them. This means that if any single column overflows (due to, eg, a long unbreakable title), the form as a whole overflows.

      If false, columns will have their specified sizes as long as no column overflows. If any column overflows, space will be taken from any other columns that aren't filling the available room, until there is no more free space, in which case the form as a whole overflows.

      Returns:
        Boolean
      See Also:
        `FormLayout overview and related methods`

    - #### setFormSubmitFailedWarning

          public void setFormSubmitFailedWarning(java.lang.String formSubmitFailedWarning)

      Warning to display to the user if an attempt to `natively submit` a form is unable to submit to the server. The most common cause for this failure is that the user has typed an invalid file-path into an upload type field.

      Note : This is an advanced setting

      Parameters:
        `formSubmitFailedWarning` - Default value is "Form was unable to be submitted. The most likely cause for this is an invalid value in an upload field."

    - #### getFormSubmitFailedWarning

          public java.lang.String getFormSubmitFailedWarning()

      Warning to display to the user if an attempt to `natively submit` a form is unable to submit to the server. The most common cause for this failure is that the user has typed an invalid file-path into an upload type field.
      Returns:
        String

    - #### setHiliteRequiredFields

          public void setHiliteRequiredFields(java.lang.Boolean hiliteRequiredFields)

      Indicates whether the titles of required items in this form should use the special prefix and suffix specified by the next two properties, instead of the standard prefix and suffix.
      Parameters:
        `hiliteRequiredFields` - Default value is true
      See Also:
        `FormTitles overview and related methods`

    - #### getHiliteRequiredFields

          public java.lang.Boolean getHiliteRequiredFields()

      Indicates whether the titles of required items in this form should use the special prefix and suffix specified by the next two properties, instead of the standard prefix and suffix.
      Returns:
        Boolean
      See Also:
        `FormTitles overview and related methods`

    - #### setImplicitSave

          public void setImplicitSave(java.lang.Boolean implicitSave)

      When true, indicates that changes to items in this form will be automatically saved on a `delay`, as well as when the entire form is submitted. Unless `form.implicitSaveOnBlur` is set to false, changes will also be automatically saved on editorExit for each item. This attribute can also be set directly on FormItems.
      Parameters:
        `implicitSave` - Default value is false

    - #### getImplicitSave

          public java.lang.Boolean getImplicitSave()

      When true, indicates that changes to items in this form will be automatically saved on a `delay`, as well as when the entire form is submitted. Unless `form.implicitSaveOnBlur` is set to false, changes will also be automatically saved on editorExit for each item. This attribute can also be set directly on FormItems.
      Returns:
        Boolean

    - #### setImplicitSaveDelay

          public void setImplicitSaveDelay(int implicitSaveDelay)

      When `implicitSave` is true, this attribute dictates the millisecond delay after which form items are automatically saved during editing.
      Parameters:
        `implicitSaveDelay` - Default value is 2000

    - #### getImplicitSaveDelay

          public int getImplicitSaveDelay()

      When `implicitSave` is true, this attribute dictates the millisecond delay after which form items are automatically saved during editing.
      Returns:
        int

    - #### setImplicitSaveOnBlur

          public void setImplicitSaveOnBlur(java.lang.Boolean implicitSaveOnBlur)

      If true, form item values will be automatically saved when each item's "editorExit" handler is fired as well as on a delay and when the entire form is submitted. This attribute can also be set directly on FormItems.
      Parameters:
        `implicitSaveOnBlur` - Default value is false

    - #### getImplicitSaveOnBlur

          public java.lang.Boolean getImplicitSaveOnBlur()

      If true, form item values will be automatically saved when each item's "editorExit" handler is fired as well as on a delay and when the entire form is submitted. This attribute can also be set directly on FormItems.
      Returns:
        Boolean

    - #### setItemHoverAlign

          public void setItemHoverAlign(Alignment itemHoverAlign)

      Text alignment for hovers shown for items
      Parameters:
        `itemHoverAlign` - Default value is null
      See Also:
        `FormItem.setHoverAlign(com.smartgwt.client.types.Alignment)`

    - #### getItemHoverAlign

          public Alignment getItemHoverAlign()

      Text alignment for hovers shown for items
      Returns:
        Alignment
      See Also:
        `FormItem.getHoverAlign()`

    - #### setItemHoverDelay

          public void setItemHoverDelay(int itemHoverDelay)

      If the user rolls over an item, how long a delay before we fire any hover action / show a hover for that item?
      Parameters:
        `itemHoverDelay` - Default value is 500
      See Also:
        `FormItem.setHoverDelay(java.lang.Integer)`

    - #### getItemHoverDelay

          public int getItemHoverDelay()

      If the user rolls over an item, how long a delay before we fire any hover action / show a hover for that item?
      Returns:
        int
      See Also:
        `FormItem.getHoverDelay()`

    - #### setItemHoverHeight

          public void setItemHoverHeight(java.lang.Integer itemHoverHeight)

      A default height for hovers shown for items
      Parameters:
        `itemHoverHeight` - Default value is null
      See Also:
        `FormItem.setHoverHeight(java.lang.Integer)`

    - #### getItemHoverHeight

          public java.lang.Integer getItemHoverHeight()

      A default height for hovers shown for items
      Returns:
        Integer
      See Also:
        `FormItem.getHoverHeight()`

    - #### setItemHoverOpacity

          public void setItemHoverOpacity(java.lang.Integer itemHoverOpacity)

      Opacity for hovers shown for items
      Parameters:
        `itemHoverOpacity` - Default value is null
      See Also:
        `FormItem.setHoverOpacity(java.lang.Integer)`

    - #### getItemHoverOpacity

          public java.lang.Integer getItemHoverOpacity()

      Opacity for hovers shown for items
      Returns:
        Integer
      See Also:
        `FormItem.getHoverOpacity()`

    - #### setItemHoverStyle

          public void setItemHoverStyle(java.lang.String itemHoverStyle)

      CSS Style for hovers shown for items
      Parameters:
        `itemHoverStyle` - See `CSSStyleName` . Default value is "formHover"
      See Also:
        `FormItem.setHoverStyle(java.lang.String)`

    - #### getItemHoverStyle

          public java.lang.String getItemHoverStyle()

      CSS Style for hovers shown for items
      Returns:
        See `CSSStyleName`
      See Also:
        `FormItem.getHoverStyle()`

    - #### setItemHoverVAlign

          public void setItemHoverVAlign(java.lang.Integer itemHoverVAlign)

      Vertical text alignment for hovers shown for items
      Parameters:
        `itemHoverVAlign` - Default value is null
      See Also:
        `FormItem.setHoverVAlign(com.smartgwt.client.types.VerticalAlignment)`

    - #### getItemHoverVAlign

          public java.lang.Integer getItemHoverVAlign()

      Vertical text alignment for hovers shown for items
      Returns:
        Integer
      See Also:
        `FormItem.getHoverVAlign()`

    - #### setItemHoverWidth

          public void setItemHoverWidth(java.lang.Integer itemHoverWidth)

      A default width for hovers shown for items
      Parameters:
        `itemHoverWidth` - Default value is null
      See Also:
        `FormItem.setHoverWidth(java.lang.Integer)`, Hovers Example

    - #### getItemHoverWidth

          public java.lang.Integer getItemHoverWidth()

      A default width for hovers shown for items
      Returns:
        Integer
      See Also:
        `FormItem.getHoverWidth()`, Hovers Example

    - #### setItemLayout

          public void setItemLayout(FormLayoutType itemLayout)

      Layout style to use with this form.

      The default of "table" uses a tabular layout similar to HTML tables, but with much more powerful control over sizing, item visibility and reflow, overflow handling, etc.

      `itemLayout:"absolute"` allows absolute positioning of every form item. This provides maximum flexibility in placement, with the following limitations:

      - titles, which normally take up an adjacent cell, are not shown. Use StaticTextItems to show titles
      - no automatic reflow when showing or hiding items. `FormItem.setLeft()` and `FormItem.setTop()` can be used for manual reflow.
      - only pixel and percent sizes are allowed, no "*". Percent widths mean percentage of the overall form size rather than the column size
      - with different font styling or internationalized titles, items may overlap that did not overlap in the skin used at design time

      Note : This is an advanced setting

      Parameters:
        `itemLayout` - Default value is "table"
      See Also:
        `FormLayout overview and related methods`

    - #### getItemLayout

          public FormLayoutType getItemLayout()

      Layout style to use with this form.

      The default of "table" uses a tabular layout similar to HTML tables, but with much more powerful control over sizing, item visibility and reflow, overflow handling, etc.

      `itemLayout:"absolute"` allows absolute positioning of every form item. This provides maximum flexibility in placement, with the following limitations:

      - titles, which normally take up an adjacent cell, are not shown. Use StaticTextItems to show titles
      - no automatic reflow when showing or hiding items. `FormItem.setLeft()` and `FormItem.setTop()` can be used for manual reflow.
      - only pixel and percent sizes are allowed, no "*". Percent widths mean percentage of the overall form size rather than the column size
      - with different font styling or internationalized titles, items may overlap that did not overlap in the skin used at design time
      Returns:
        FormLayoutType
      See Also:
        `FormLayout overview and related methods`

    - #### setLongTextEditorThreshold

          public void setLongTextEditorThreshold(int longTextEditorThreshold)

      When creating form items for fields with text type data, if the specified length of the field exceeds this threshold we will create form item of type `this.longTextEditorType` (a TextAreaItem by default), rather than a simple text item. Overridden by explicitly specifying `editorType` for the field.
      Parameters:
        `longTextEditorThreshold` - Default value is 255
      See Also:
        `Appearance overview and related methods`

    - #### getLongTextEditorThreshold

          public int getLongTextEditorThreshold()

      When creating form items for fields with text type data, if the specified length of the field exceeds this threshold we will create form item of type `this.longTextEditorType` (a TextAreaItem by default), rather than a simple text item. Overridden by explicitly specifying `editorType` for the field.
      Returns:
        int
      See Also:
        `Appearance overview and related methods`

    - #### setLongTextEditorType

          public void setLongTextEditorType(java.lang.String longTextEditorType)

      Name of the Form Item class to use for text fields which exceed the longTextEditorThreshold for this form.
      Parameters:
        `longTextEditorType` - Default value is "textArea"
      See Also:
        `Appearance overview and related methods`

    - #### getLongTextEditorType

          public java.lang.String getLongTextEditorType()

      Name of the Form Item class to use for text fields which exceed the longTextEditorThreshold for this form.
      Returns:
        String
      See Also:
        `Appearance overview and related methods`

    - #### setMethod

          public void setMethod(FormMethod method)

      The mechanism by which form data is sent to the action URL. See FormMethod type for details.

      NOTE: this is used only in the very rare case that a form is used to submit data directly to a URL. Normal server contact is through `DataBound Component Methods`.
      If this method is called after the component has been drawn/initialized: Sets the `method` for this form.

      Parameters:
        `method` - html form submission method (get or post). Default value is DynamicForm.POST
      See Also:
        `Submitting overview and related methods`

    - #### getMethod

          public FormMethod getMethod()

      The mechanism by which form data is sent to the action URL. See FormMethod type for details.

      NOTE: this is used only in the very rare case that a form is used to submit data directly to a URL. Normal server contact is through `DataBound Component Methods`.

      Returns:
        FormMethod
      See Also:
        `Submitting overview and related methods`

    - #### setMinColWidth

          public void setMinColWidth(int minColWidth)

      Minimum width of a form column.
      Parameters:
        `minColWidth` - Default value is 20
      See Also:
        `FormLayout overview and related methods`

    - #### getMinColWidth

          public int getMinColWidth()

      Minimum width of a form column.
      Returns:
        int
      See Also:
        `FormLayout overview and related methods`

    - #### setNoErrorDetailsMessage

          public void setNoErrorDetailsMessage(java.lang.String noErrorDetailsMessage)

      A message to display to the user if server-side validation fails with an error but the server did not provide an error message
      Parameters:
        `noErrorDetailsMessage` - Default value is "Error during validation; no error details were provided"
      See Also:
        `Validation overview and related methods`

    - #### getNoErrorDetailsMessage

          public java.lang.String getNoErrorDetailsMessage()

      A message to display to the user if server-side validation fails with an error but the server did not provide an error message
      Returns:
        String
      See Also:
        `Validation overview and related methods`

    - #### setNumCols

          public void setNumCols(int numCols)

      The number of columns of titles and items in this form's layout grid. A title and corresponding item each have their own column, so to display two form elements per row (each having a title and item), you would set this property to 4.
      Parameters:
        `numCols` - Default value is 2
      See Also:
        `FormLayout overview and related methods`

    - #### getNumCols

          public int getNumCols()

      The number of columns of titles and items in this form's layout grid. A title and corresponding item each have their own column, so to display two form elements per row (each having a title and item), you would set this property to 4.
      Returns:
        int
      See Also:
        `FormLayout overview and related methods`

    - #### setOriginalValueMessage

          public void setOriginalValueMessage(java.lang.String originalValueMessage)

      Default template HTML string when an item does not set its own `FormItem.originalValueMessage`.

      Variables in the template are substituted as follows:

      Variable | Substitution
      --- | ---
      `$value` | The item's old value as stored in the map returned by `getOldValues()`.
      `$newValue` | The item's new value.

      For `$value` and `$newValue`, any formatters or stored/display value mapping will be applied.

      Note : This is an advanced setting

      Parameters:
        `originalValueMessage` - See `HTMLString` . Default value is "Original value: $value"

    - #### getOriginalValueMessage

          public java.lang.String getOriginalValueMessage()

      Default template HTML string when an item does not set its own `FormItem.originalValueMessage`.

      Variables in the template are substituted as follows:

      Variable | Substitution
      --- | ---
      `$value` | The item's old value as stored in the map returned by `getOldValues()`.
      `$newValue` | The item's new value.

      For `$value` and `$newValue`, any formatters or stored/display value mapping will be applied.

      Returns:
        See `HTMLString`

    - #### setReadOnlyDisplay

          public void setReadOnlyDisplay(ReadOnlyDisplayAppearance readOnlyDisplay)

      If `canEdit` is set to `false`, how should the items in this form be displayed to the user?

      Can be overridden via `FormItem.readOnlyDisplay` on individual form items.
      If this method is called after the component has been drawn/initialized: Setter for the `readOnlyDisplay` attribute.

      Parameters:
        `readOnlyDisplay` - New read-only display appearance.. Default value is "readOnly"

    - #### getReadOnlyDisplay

          public ReadOnlyDisplayAppearance getReadOnlyDisplay()

      If `canEdit` is set to `false`, how should the items in this form be displayed to the user?

      Can be overridden via `FormItem.readOnlyDisplay` on individual form items.

      Returns:
        ReadOnlyDisplayAppearance

    - #### setReadOnlyTextBoxStyle

          public void setReadOnlyTextBoxStyle(java.lang.String readOnlyTextBoxStyle)

      Default `FormItem.readOnlyTextBoxStyle` setting for items in this form.
      Parameters:
        `readOnlyTextBoxStyle` - See `FormItemBaseStyle` . Default value is "staticTextItem"

    - #### getReadOnlyTextBoxStyle

          public java.lang.String getReadOnlyTextBoxStyle()

      Default `FormItem.readOnlyTextBoxStyle` setting for items in this form.
      Returns:
        See `FormItemBaseStyle`

    - #### setRejectInvalidValueOnChange

          public void setRejectInvalidValueOnChange(java.lang.Boolean rejectInvalidValueOnChange)

      If validateOnChange is true, and validation fails for an 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` - Default value is null

    - #### getRejectInvalidValueOnChange

          public java.lang.Boolean getRejectInvalidValueOnChange()

      If validateOnChange is true, and validation fails for an 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:
        Boolean

    - #### setRequiredMessage

          public void setRequiredMessage(java.lang.String requiredMessage)

      The required message for required field errors.
      Parameters:
        `requiredMessage` - See `HTMLString` . Default value is null
      See Also:
        `FormTitles overview and related methods`

    - #### getRequiredMessage

          public java.lang.String getRequiredMessage()

      The required message for required field errors.
      Returns:
        See `HTMLString`
      See Also:
        `FormTitles overview and related methods`

    - #### setRequiredRightTitlePrefix

          public void setRequiredRightTitlePrefix(java.lang.String requiredRightTitlePrefix)

      The string pre-pended to the title of every required item in this form if `hiliteRequiredFields` is true and the `TitleOrientation` property is set to "right".
      Parameters:
        `requiredRightTitlePrefix` - See `HTMLString` . Default value is "<b>:&nbsp;"
      See Also:
        `FormTitles overview and related methods`

    - #### getRequiredRightTitlePrefix

          public java.lang.String getRequiredRightTitlePrefix()

      The string pre-pended to the title of every required item in this form if `hiliteRequiredFields` is true and the `TitleOrientation` property is set to "right".
      Returns:
        See `HTMLString`
      See Also:
        `FormTitles overview and related methods`

    - #### setRequiredRightTitleSuffix

          public void setRequiredRightTitleSuffix(java.lang.String requiredRightTitleSuffix)

      The string appended to the title of every required item in this form if `hiliteRequiredFields` is true and the `TitleOrientation` property is set to "right".
      Parameters:
        `requiredRightTitleSuffix` - See `HTMLString` . Default value is "</b>"
      See Also:
        `FormTitles overview and related methods`

    - #### getRequiredRightTitleSuffix

          public java.lang.String getRequiredRightTitleSuffix()

      The string appended to the title of every required item in this form if `hiliteRequiredFields` is true and the `TitleOrientation` property is set to "right".
      Returns:
        See `HTMLString`
      See Also:
        `FormTitles overview and related methods`

    - #### setRequiredTitlePrefix

          public void setRequiredTitlePrefix(java.lang.String requiredTitlePrefix)

      The string pre-pended to the title of every required item in this form if `hiliteRequiredFields` is true.
      Parameters:
        `requiredTitlePrefix` - See `HTMLString` . Default value is "<b>"
      See Also:
        `FormTitles overview and related methods`

    - #### getRequiredTitlePrefix

          public java.lang.String getRequiredTitlePrefix()

      The string pre-pended to the title of every required item in this form if `hiliteRequiredFields` is true.
      Returns:
        See `HTMLString`
      See Also:
        `FormTitles overview and related methods`

    - #### setRequiredTitleSuffix

          public void setRequiredTitleSuffix(java.lang.String requiredTitleSuffix)

      The string appended to the title of every required item in this form if `hiliteRequiredFields` is true.
      Parameters:
        `requiredTitleSuffix` - See `HTMLString` . Default value is "&nbsp;:</b>"
      See Also:
        `FormTitles overview and related methods`

    - #### getRequiredTitleSuffix

          public java.lang.String getRequiredTitleSuffix()

      The string appended to the title of every required item in this form if `hiliteRequiredFields` is true.
      Returns:
        See `HTMLString`
      See Also:
        `FormTitles overview and related methods`

    - #### setRevertValueKey

          public void setRevertValueKey(KeyIdentifier revertValueKey)
                                 throws java.lang.IllegalStateException

      Keyboard shortcut that causes the value of the currently focused form item to be reverted to whatever value would be shown if `resetValues()` were called.
      Parameters:
        `revertValueKey` - Default value is null
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getRevertValueKey

          public KeyIdentifier getRevertValueKey()

      Keyboard shortcut that causes the value of the currently focused form item to be reverted to whatever value would be shown if `resetValues()` were called.
      Returns:
        KeyIdentifier

    - #### setRightTitlePrefix

          public void setRightTitlePrefix(java.lang.String rightTitlePrefix)

      The string pre-pended to the title of an item in this form if its titleOrientation property is set to "right".
      Parameters:
        `rightTitlePrefix` - See `HTMLString` . Default value is ":&nbsp;"
      See Also:
        `FormTitles overview and related methods`

    - #### getRightTitlePrefix

          public java.lang.String getRightTitlePrefix()

      The string pre-pended to the title of an item in this form if its titleOrientation property is set to "right".
      Returns:
        See `HTMLString`
      See Also:
        `FormTitles overview and related methods`

    - #### setRightTitleSuffix

          public void setRightTitleSuffix(java.lang.String rightTitleSuffix)

      The string appended to the title of an item in this form if its titleOrientation property is set to "right".
      Parameters:
        `rightTitleSuffix` - See `HTMLString` . Default value is ""
      See Also:
        `FormTitles overview and related methods`

    - #### getRightTitleSuffix

          public java.lang.String getRightTitleSuffix()

      The string appended to the title of an item in this form if its titleOrientation property is set to "right".
      Returns:
        See `HTMLString`
      See Also:
        `FormTitles overview and related methods`

    - #### setSaveOnEnter

          public void setSaveOnEnter(java.lang.Boolean saveOnEnter)

      If `true`, when the user hits the Enter key while focused in a text-item in this form, we automatically submit the form to the server using the `submit()` method.
      Parameters:
        `saveOnEnter` - Default value is false
      See Also:
        `Submitting overview and related methods`

    - #### getSaveOnEnter

          public java.lang.Boolean getSaveOnEnter()

      If `true`, when the user hits the Enter key while focused in a text-item in this form, we automatically submit the form to the server using the `submit()` method.
      Returns:
        Boolean
      See Also:
        `Submitting overview and related methods`

    - #### setSaveOperationType

          public void setSaveOperationType(DSOperationType saveOperationType)

      Default `DSOperationType` to be performed when `saveData()` is called. This property is automatically set on a call to `editRecord()` or `editNewRecord()`, or may be set directly via `setSaveOperationType()`.

      If `saveOperationType` is unset, the form will heuristically determine whether an "add" or "update" operation is intended based on whether the primaryKey field is present and editable.
      If this method is called after the component has been drawn/initialized: Setter for the default `DSOperationType` when `saveData()` is called. Note that this property can also be set by calling `editRecord()` or `editNewRecord()`

      Parameters:
        `saveOperationType` - Operation type to use as a default. Valid values are `"add"` or `"update"`.. Default value is null

    - #### getSaveOperationType

          public DSOperationType getSaveOperationType()

      Default `DSOperationType` to be performed when `saveData()` is called. This property is automatically set on a call to `editRecord()` or `editNewRecord()`, or may be set directly via `setSaveOperationType()`.

      If `saveOperationType` is unset, the form will heuristically determine whether an "add" or "update" operation is intended based on whether the primaryKey field is present and editable.

      Returns:
        Returns the `DSOperationType` to be performed when `saveData()` is called. Valid options are `"add"` or `"update"`.

        If a `DSRequest` configuration object is passed in containing an explicit operationType this will be returned. Otherwise `saveOperationType` will be returned. This attribute is automatically set via calls to data binding methods such as `editNewRecord()`, or it may be set explicitly.

        If no explicit saveOperationType is specified for this form, the system will look at the current values for the form. If the form has no value for the `primaryKey field`, or that field is editable and has been modified we assume an add operation, otherwise an update. If the form is a member of a `ValuesManager`, the primary key field value will be derived from the valuesManager's values object.

    - #### setSectionVisibilityMode

          public void setSectionVisibilityMode(VisibilityMode sectionVisibilityMode)

      If the form has sections, [implemented as `SectionItem`s], this attribute controls whether multiple sections can be expanded at once.
      Parameters:
        `sectionVisibilityMode` - Default value is "multiple"
      See Also:
        `VisibilityMode`, `SectionItem`, `FormLayout overview and related methods`

    - #### getSectionVisibilityMode

          public VisibilityMode getSectionVisibilityMode()

      If the form has sections, [implemented as `SectionItem`s], this attribute controls whether multiple sections can be expanded at once.
      Returns:
        VisibilityMode
      See Also:
        `VisibilityMode`, `SectionItem`, `FormLayout overview and related methods`

    - #### setSelectOnClick

          public void setSelectOnClick(java.lang.Boolean selectOnClick)

      If this property is set to true, whenever a text-based field in this form (`TextItem`, `TextAreaItem`) is given focus - whether programmatically (see `focusInItem()`), or via a mouse click, all text within the item will be selected.

      If you only want the value to be selected when on programmatic focus or keyboard navigation (this is the native browser behavior), set `selectOnFocus` instead.

      May be overridden at the form item level via `FormItem.selectOnClick`.

      Parameters:
        `selectOnClick` - Default value is false
      See Also:
        `Focus overview and related methods`

    - #### getSelectOnClick

          public java.lang.Boolean getSelectOnClick()

      If this property is set to true, whenever a text-based field in this form (`TextItem`, `TextAreaItem`) is given focus - whether programmatically (see `focusInItem()`), or via a mouse click, all text within the item will be selected.

      If you only want the value to be selected when on programmatic focus or keyboard navigation (this is the native browser behavior), set `selectOnFocus` instead.

      May be overridden at the form item level via `FormItem.selectOnClick`.

      Returns:
        Boolean
      See Also:
        `Focus overview and related methods`

    - #### setSelectOnFocus

          public void setSelectOnFocus(java.lang.Boolean selectOnFocus)

      If this property is set to true, whenever a text-based field in this form (`TextItem`, `TextAreaItem`) is given focus programmatically (see `focusInItem()`), all text within the item will be selected.

      Note that this flag affects only programmatic focus. It's the normal behavior of text fields to select all text if the user navigates into them via keyboard, or if the user navigates via mouse, to place the text insertion point at the mouse click, and Smart GWT preserves these behaviors. `selectOnFocus` is only needed for cases like a form within a pop-up dialog that should have the first field selected.

      If you also want the value to be selected when the user clicks on the field, set `selectOnClick` instead.

      If `selectOnFocus` is false, the selection is not modified on focus - any previous selection within the item will be maintained.

      May be overridden at the form item level via `FormItem.selectOnFocus`.

      Parameters:
        `selectOnFocus` - Default value is false
      See Also:
        `Focus overview and related methods`

    - #### getSelectOnFocus

          public java.lang.Boolean getSelectOnFocus()

      If this property is set to true, whenever a text-based field in this form (`TextItem`, `TextAreaItem`) is given focus programmatically (see `focusInItem()`), all text within the item will be selected.

      Note that this flag affects only programmatic focus. It's the normal behavior of text fields to select all text if the user navigates into them via keyboard, or if the user navigates via mouse, to place the text insertion point at the mouse click, and Smart GWT preserves these behaviors. `selectOnFocus` is only needed for cases like a form within a pop-up dialog that should have the first field selected.

      If you also want the value to be selected when the user clicks on the field, set `selectOnClick` instead.

      If `selectOnFocus` is false, the selection is not modified on focus - any previous selection within the item will be maintained.

      May be overridden at the form item level via `FormItem.selectOnFocus`.

      Returns:
        Boolean
      See Also:
        `Focus overview and related methods`

    - #### setShowComplexFieldsRecursively

          public void setShowComplexFieldsRecursively(java.lang.Boolean showComplexFieldsRecursively)
                                               throws java.lang.IllegalStateException

      If set, this `DynamicForm` will set both `showComplexFields` and `showComplexFieldsRecursively` on any nested component used for showing/editing a complex field. Thus any of this form's items that handle complex fields will themselves also show complex fields. This allows for handling of field structures of any complexity.

      If set, this value automatically sets `showComplexFields` as well.

      Parameters:
        `showComplexFieldsRecursively` - Default value is null
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getShowComplexFieldsRecursively

          public java.lang.Boolean getShowComplexFieldsRecursively()

      If set, this `DynamicForm` will set both `showComplexFields` and `showComplexFieldsRecursively` on any nested component used for showing/editing a complex field. Thus any of this form's items that handle complex fields will themselves also show complex fields. This allows for handling of field structures of any complexity.

      If set, this value automatically sets `showComplexFields` as well.

      Returns:
        Boolean

    - #### setShowDeletions

          public void setShowDeletions(java.lang.Boolean showDeletions)
                                throws java.lang.IllegalStateException

      Default `FormItem.showDeletions` setting for items in this form.

      Note : This is an advanced setting

      Parameters:
        `showDeletions` - Default value is null
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getShowDeletions

          public java.lang.Boolean getShowDeletions()

      Default `FormItem.showDeletions` setting for items in this form.
      Returns:
        Boolean

    - #### setShowDetailFields

          public void setShowDetailFields(java.lang.Boolean showDetailFields)
                                   throws java.lang.IllegalStateException

      For databound forms, whether to show fields marked as detail fields.
      Specified by:
        `setShowDetailFields` in interface `DataBoundComponent`
      Parameters:
        `showDetailFields` - Default value is true
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getShowDetailFields

          public java.lang.Boolean getShowDetailFields()

      For databound forms, whether to show fields marked as detail fields.
      Specified by:
        `getShowDetailFields` in interface `DataBoundComponent`
      Returns:
        Boolean

    - #### setShowErrorIcons

          public void setShowErrorIcons(java.lang.Boolean showErrorIcons)

      `showErrorIcons`, `showErrorText`, 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` 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 `FormItem.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 `FormItem.errorIconSrc`, `FormItem.errorIconWidth` and `FormItem.errorIconHeight`

      `showErrorText` determines whether the text of the validation error should be displayed next to fields which have validation errors. The attribute `showTitlesWithErrorMessages` may be set to prefix error messages with the form item's title + `":"` (may be desired if the item has `FormItem.showTitle` set to false).

      `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).

      In addition to this, `showErrorStyle` determines whether fields with validation errors should have special styling applied to them. See `FormItemBaseStyle` for a discussion for how error styling is calculated.

      Parameters:
        `showErrorIcons` - Default value is true
      See Also:
        `Validation overview and related methods`

    - #### getShowErrorIcons

          public java.lang.Boolean getShowErrorIcons()

      `showErrorIcons`, `showErrorText`, 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` 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 `FormItem.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 `FormItem.errorIconSrc`, `FormItem.errorIconWidth` and `FormItem.errorIconHeight`

      `showErrorText` determines whether the text of the validation error should be displayed next to fields which have validation errors. The attribute `showTitlesWithErrorMessages` may be set to prefix error messages with the form item's title + `":"` (may be desired if the item has `FormItem.showTitle` set to false).

      `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).

      In addition to this, `showErrorStyle` determines whether fields with validation errors should have special styling applied to them. See `FormItemBaseStyle` for a discussion for how error styling is calculated.

      Returns:
        Boolean
      See Also:
        `Validation overview and related methods`

    - #### setShowErrorStyle

          public void setShowErrorStyle(java.lang.Boolean showErrorStyle)

      `showErrorIcons`, `showErrorText`, 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` 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 `FormItem.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 `FormItem.errorIconSrc`, `FormItem.errorIconWidth` and `FormItem.errorIconHeight`

      `showErrorText` determines whether the text of the validation error should be displayed next to fields which have validation errors. The attribute `showTitlesWithErrorMessages` may be set to prefix error messages with the form item's title + `":"` (may be desired if the item has `FormItem.showTitle` set to false).

      `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).

      In addition to this, `showErrorStyle` determines whether fields with validation errors should have special styling applied to them. See `FormItemBaseStyle` for a discussion for how error styling is calculated.

      Parameters:
        `showErrorStyle` - Default value is true
      See Also:
        `Validation overview and related methods`

    - #### getShowErrorStyle

          public java.lang.Boolean getShowErrorStyle()

      `showErrorIcons`, `showErrorText`, 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` 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 `FormItem.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 `FormItem.errorIconSrc`, `FormItem.errorIconWidth` and `FormItem.errorIconHeight`

      `showErrorText` determines whether the text of the validation error should be displayed next to fields which have validation errors. The attribute `showTitlesWithErrorMessages` may be set to prefix error messages with the form item's title + `":"` (may be desired if the item has `FormItem.showTitle` set to false).

      `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).

      In addition to this, `showErrorStyle` determines whether fields with validation errors should have special styling applied to them. See `FormItemBaseStyle` for a discussion for how error styling is calculated.

      Returns:
        Boolean
      See Also:
        `Validation overview and related methods`

    - #### setShowErrorText

          public void setShowErrorText(java.lang.Boolean showErrorText)

      `showErrorIcons`, `showErrorText`, 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` 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 `FormItem.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 `FormItem.errorIconSrc`, `FormItem.errorIconWidth` and `FormItem.errorIconHeight`

      `showErrorText` determines whether the text of the validation error should be displayed next to fields which have validation errors. The attribute `showTitlesWithErrorMessages` may be set to prefix error messages with the form item's title + `":"` (may be desired if the item has `FormItem.showTitle` set to false).

      `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).

      In addition to this, `showErrorStyle` determines whether fields with validation errors should have special styling applied to them. See `FormItemBaseStyle` for a discussion for how error styling is calculated.

      Parameters:
        `showErrorText` - Default value is false
      See Also:
        `Validation overview and related methods`

    - #### getShowErrorText

          public java.lang.Boolean getShowErrorText()

      `showErrorIcons`, `showErrorText`, 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` 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 `FormItem.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 `FormItem.errorIconSrc`, `FormItem.errorIconWidth` and `FormItem.errorIconHeight`

      `showErrorText` determines whether the text of the validation error should be displayed next to fields which have validation errors. The attribute `showTitlesWithErrorMessages` may be set to prefix error messages with the form item's title + `":"` (may be desired if the item has `FormItem.showTitle` set to false).

      `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).

      In addition to this, `showErrorStyle` determines whether fields with validation errors should have special styling applied to them. See `FormItemBaseStyle` for a discussion for how error styling is calculated.

      Returns:
        Boolean
      See Also:
        `Validation overview and related methods`

    - #### setShowInlineErrors

          public void setShowInlineErrors(java.lang.Boolean showInlineErrors)

      If true, field errors are written into the form next to the item(s) where the errors occurred. Errors may appear as text or just an icon (via `showErrorText`:false).

      If false, errors are written at the top of the form.

      To do some other kind of error display, override `showErrors()`.

      Parameters:
        `showInlineErrors` - Default value is true
      See Also:
        `Validation overview and related methods`

    - #### getShowInlineErrors

          public java.lang.Boolean getShowInlineErrors()

      If true, field errors are written into the form next to the item(s) where the errors occurred. Errors may appear as text or just an icon (via `showErrorText`:false).

      If false, errors are written at the top of the form.

      To do some other kind of error display, override `showErrors()`.

      Returns:
        Boolean
      See Also:
        `Validation overview and related methods`

    - #### setShowOldValueInHover

          public void setShowOldValueInHover(java.lang.Boolean showOldValueInHover)

      Default setting for the form items' `FormItem.showOldValueInHover` setting.

      Note : This is an advanced setting

      Parameters:
        `showOldValueInHover` - Default value is null

    - #### getShowOldValueInHover

          public java.lang.Boolean getShowOldValueInHover()

      Default setting for the form items' `FormItem.showOldValueInHover` setting.
      Returns:
        Boolean

    - #### setShowTitlesWithErrorMessages

          public void setShowTitlesWithErrorMessages(java.lang.Boolean showTitlesWithErrorMessages)

      Indicates whether on validation failure, the error message displayed to the user should be pre-pended with the title for the item.
      Parameters:
        `showTitlesWithErrorMessages` - Default value is false
      See Also:
        `Validation overview and related methods`

    - #### getShowTitlesWithErrorMessages

          public java.lang.Boolean getShowTitlesWithErrorMessages()

      Indicates whether on validation failure, the error message displayed to the user should be pre-pended with the title for the item.
      Returns:
        Boolean
      See Also:
        `Validation overview and related methods`

    - #### setStopOnError

          public void setStopOnError(java.lang.Boolean stopOnError)
                              throws java.lang.IllegalStateException

      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.

      Enabling this property also implies `FormItem.validateOnExit` is automatically enabled. If there are server-based validators on this item, setting this property also implies that `FormItem.synchronousValidation` is forced on.

      Parameters:
        `stopOnError` - Default value is null
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getStopOnError

          public java.lang.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.

      Enabling this property also implies `FormItem.validateOnExit` is automatically enabled. If there are server-based validators on this item, setting this property also implies that `FormItem.synchronousValidation` is forced on.

      Returns:
        Boolean

    - #### setSuppressValidationErrorCallback

          public void setSuppressValidationErrorCallback(java.lang.Boolean suppressValidationErrorCallback)

      When calling `saveData()` on a form or valuesManager, by default if the server returns an error code, any callback passed into saveData() will not be fired. If the error code returned by the server indicates a validation error, it will be displayed to the user by updating the form items to show the error messages, and firing any specified hiddenValidationErrors handler, otherwise the standard RPCManager error handling logic would be invoked.

      Developers who want to handle errors themselves can override this default by specifying `dsRequest.willHandleError` on the DSRequest. In this case the callback passed in will be fired even if the server returns an error status code.

      If `suppressValidationErrorCallback` is set to true, if a save attempt returns a validation error code, the user-specified callback will not be fired even if `willHandleError:true` was specified on the dsRequest - though for other error codes, the callback would be fired if willHandleError is specified on the request. Note that this is the historical behavior for SmartGWT builds 4.0 and earlier

      Note : This is an advanced setting

      Parameters:
        `suppressValidationErrorCallback` - Default value is false

    - #### getSuppressValidationErrorCallback

          public java.lang.Boolean getSuppressValidationErrorCallback()

      When calling `saveData()` on a form or valuesManager, by default if the server returns an error code, any callback passed into saveData() will not be fired. If the error code returned by the server indicates a validation error, it will be displayed to the user by updating the form items to show the error messages, and firing any specified hiddenValidationErrors handler, otherwise the standard RPCManager error handling logic would be invoked.

      Developers who want to handle errors themselves can override this default by specifying `dsRequest.willHandleError` on the DSRequest. In this case the callback passed in will be fired even if the server returns an error status code.

      If `suppressValidationErrorCallback` is set to true, if a save attempt returns a validation error code, the user-specified callback will not be fired even if `willHandleError:true` was specified on the dsRequest - though for other error codes, the callback would be fired if willHandleError is specified on the request. Note that this is the historical behavior for SmartGWT builds 4.0 and earlier

      Returns:
        Boolean

    - #### setSynchronousValidation

          public void setSynchronousValidation(java.lang.Boolean synchronousValidation)
                                        throws java.lang.IllegalStateException

      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` - Default value is false
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getSynchronousValidation

          public java.lang.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:
        Boolean

    - #### setTarget

          public void setTarget(java.lang.String target)

      The name of a window or frame that will receive the results returned by the form's action. The default null indicates to use the current frame.

      NOTE: this is used only in the very rare case that a form is used to submit data directly to a URL. Normal server contact is through `DataBound Component Methods`.
      If this method is called after the component has been drawn/initialized: Sets the `target` for this form.

      Note : This is an advanced setting

      Parameters:
        `target` - New submission target. Default value is null
      See Also:
        `Submitting overview and related methods`

    - #### getTarget

          public java.lang.String getTarget()

      The name of a window or frame that will receive the results returned by the form's action. The default null indicates to use the current frame.

      NOTE: this is used only in the very rare case that a form is used to submit data directly to a URL. Normal server contact is through `DataBound Component Methods`.

      Returns:
        String
      See Also:
        `Submitting overview and related methods`

    - #### setTimeFormatter

          public void setTimeFormatter(TimeDisplayFormat timeFormatter)

      Default `TimeDisplayFormat` for `type:"time"` field values displayed in this form.

      Note that if specified, `FormItem.dateFormatter` and `FormItem.timeFormatter` take precedence over the format specified at the component level.

      If no explicit formatter is specified at the field or component level, time values will be formatted according to the system-wide String. specified field type.

      Parameters:
        `timeFormatter` - Default value is null

    - #### getTimeFormatter

          public TimeDisplayFormat getTimeFormatter()

      Default `TimeDisplayFormat` for `type:"time"` field values displayed in this form.

      Note that if specified, `FormItem.dateFormatter` and `FormItem.timeFormatter` take precedence over the format specified at the component level.

      If no explicit formatter is specified at the field or component level, time values will be formatted according to the system-wide String. specified field type.

      Returns:
        TimeDisplayFormat

    - #### setTitleAlign

          public void setTitleAlign(Alignment titleAlign)

      Default alignment for item titles. If unset default alignment will be derived from `text direction` as described in `getTitleAlign()`
      Parameters:
        `titleAlign` - Default value is null

    - #### getTitleAlign

          public Alignment getTitleAlign()

      Default alignment for item titles. If unset default alignment will be derived from `text direction` as described in `getTitleAlign()`
      Returns:
        Get the alignment for the title for some item. Default implementation is as follows:
        - If `FormItem.titleAlign` is specified, it will be respected
        - Otherwise if `this.titleAlign` is set, it will be respected
        - Otherwise titles will be aligned according to `text direction`, with this method returning `"right"` if text direction is LTR, or `"left"` if text direction is RTL.

    - #### setTitleOrientation

          public void setTitleOrientation(TitleOrientation titleOrientation)

      Default orientation for titles for items in this form. `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.
      If this method is called after the component has been drawn/initialized: Modify this form's `TitleOrientation` at runtime

      Parameters:
        `titleOrientation` - new default item titleOrientation. Default value is "left"
      See Also:
        `FormTitles overview and related methods`, Titles Example

    - #### getTitleOrientation

          public TitleOrientation getTitleOrientation()

      Default orientation for titles for items in this form. `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:
        Return the orientation of the title for a specific item or the default title orientation if no item is passed.
      See Also:
        `FormTitles overview and related methods`, Titles Example

    - #### setTitlePrefix

          public void setTitlePrefix(java.lang.String titlePrefix)

      The string pre-pended to the title of every item in this form. See also +{requiredTitlePrefix} for fields that are required.
      Parameters:
        `titlePrefix` - See `HTMLString` . Default value is ""
      See Also:
        `FormTitles overview and related methods`

    - #### getTitlePrefix

          public java.lang.String getTitlePrefix()

      The string pre-pended to the title of every item in this form. See also +{requiredTitlePrefix} for fields that are required.
      Returns:
        See `HTMLString`
      See Also:
        `FormTitles overview and related methods`

    - #### setTitleSuffix

          public void setTitleSuffix(java.lang.String titleSuffix)

      The string appended to the title of every item in this form. See also +{requiredTitleSuffix} for fields that are required.
      Parameters:
        `titleSuffix` - See `HTMLString` . Default value is "&nbsp;:"
      See Also:
        `FormTitles overview and related methods`

    - #### getTitleSuffix

          public java.lang.String getTitleSuffix()

      The string appended to the title of every item in this form. See also +{requiredTitleSuffix} for fields that are required.
      Returns:
        See `HTMLString`
      See Also:
        `FormTitles overview and related methods`

    - #### setUnknownErrorMessage

          public void setUnknownErrorMessage(java.lang.String unknownErrorMessage)

      The error message for a failed validator that does not specify its own errorMessage.
      Parameters:
        `unknownErrorMessage` - See `HTMLString` . Default value is "Invalid value"
      See Also:
        `Validation overview and related methods`

    - #### getUnknownErrorMessage

          public java.lang.String getUnknownErrorMessage()

      The error message for a failed validator that does not specify its own errorMessage.
      Returns:
        See `HTMLString`
      See Also:
        `Validation overview and related methods`

    - #### setUserTask

          public void setUserTask(UserTask userTask)
                           throws java.lang.IllegalStateException

      Associated userTask if current dynamic form used along with workflow. See `userTask` for more details.
      Parameters:
        `userTask` - Default value is null
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getUserTask

          public UserTask getUserTask()

      Associated userTask if current dynamic form used along with workflow. See `userTask` for more details.
      Returns:
        UserTask

    - #### setValidateOnChange

          public void setValidateOnChange(java.lang.Boolean validateOnChange)

      If true, form fields 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 item level or on each validator to enable finer granularity validation in response to user interaction. 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` - Default value is false
      See Also:
        `FormItem.setValidateOnChange(java.lang.Boolean)`, `Validation overview and related methods`

    - #### getValidateOnChange

          public java.lang.Boolean getValidateOnChange()

      If true, form fields 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 item level or on each validator to enable finer granularity validation in response to user interaction. 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:
        Boolean
      See Also:
        `FormItem.getValidateOnChange()`, `Validation overview and related methods`

    - #### setValidateOnExit

          public void setValidateOnExit(java.lang.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 item level to enable finer granularity validation in response to user interaction - if true at either level, validation will occur on editorExit.

      Parameters:
        `validateOnExit` - Default value is false
      See Also:
        `FormItem.setValidateOnExit(java.lang.Boolean)`

    - #### getValidateOnExit

          public java.lang.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 item level to enable finer granularity validation in response to user interaction - if true at either level, validation will occur on editorExit.

      Returns:
        Boolean
      See Also:
        `FormItem.getValidateOnExit()`

    - #### setValidationURL

          public void setValidationURL(java.lang.String validationURL)

      validationURL can be set to do server-side validation against a different URL from where the form will ultimately save, as part of an incremental upgrade strategy for Struts and Struts-like applications.

      If set, calling `submit()` causes an RPC to be sent to this URL to perform server-side validation of the form values. If the validation fails, the validation errors returned by the server are rendered in the form. If the validation succeeds, the form is submitted to the URL specified by `action`.

      The form values are available on the server as request parameters (just like a normal form submit) and also as the values of a DSRequest sent as an RPC alongside the normal submit.

      The expected response to this request is a DSResponse sent via the RPC mechanism. If validation is successful, an empty response with the STATUS_SUCCESS status code is sufficient. If there are validation errors, the DSResponse should have the status set to STATUS_VALIDATION_ERROR and the errors should be set on the response via the addError()/setErrorReport() API on DSResponse. See the javadoc for DSResponse for details.

      See the Struts examples in `[webroot]/examples/struts` for usage examples.

      Parameters:
        `validationURL` - Default value is null
      See Also:
        `saveData()`, `submit()`, `Validation overview and related methods`

    - #### getValidationURL

          public java.lang.String getValidationURL()

      validationURL can be set to do server-side validation against a different URL from where the form will ultimately save, as part of an incremental upgrade strategy for Struts and Struts-like applications.

      If set, calling `submit()` causes an RPC to be sent to this URL to perform server-side validation of the form values. If the validation fails, the validation errors returned by the server are rendered in the form. If the validation succeeds, the form is submitted to the URL specified by `action`.

      The form values are available on the server as request parameters (just like a normal form submit) and also as the values of a DSRequest sent as an RPC alongside the normal submit.

      The expected response to this request is a DSResponse sent via the RPC mechanism. If validation is successful, an empty response with the STATUS_SUCCESS status code is sufficient. If there are validation errors, the DSResponse should have the status set to STATUS_VALIDATION_ERROR and the errors should be set on the response via the addError()/setErrorReport() API on DSResponse. See the javadoc for DSResponse for details.

      See the Struts examples in `[webroot]/examples/struts` for usage examples.

      Returns:
        String
      See Also:
        `saveData()`, `submit()`, `Validation overview and related methods`

    - #### setValues

          public void setValues(java.util.Map values)

      An Object containing the initial values of the form as properties, where each propertyName is the name of a `form item` in the form, and each property value is the value held by that form item.

      The form's values may contain values that are not managed by any FormItem, and these values will be preserved and available when the form values are subsequently retrieved via `getValues()`.

      Providing values on initialization is equivalent to calling `setValues()`.

      As the user manipulates form items to change values, change events fire `on the items` and `on the form as a whole`.

      Note that form values are logical values, for example, the value of a `DateItem` is a JavaScript Date object, not a String, even if the user enters the date via a text input. Likewise the value of a `TextItem` or `CheckboxItem` that started out null remains null until the user changes it; the value will not be automatically converted to the null string ("") or false respectively, as happens with native HTML elements.
      If this method is called after the component has been drawn/initialized: Replaces the current values of the entire form with the values passed in.

      Note: when working with a form that is saving to a DataSource, you would typically call either `editRecord()` for an existing record, or `editNewRecord()` for a new record. In addition to setting the current values of the form, these APIs establish the `DSRequest.operationType` used to save ("update" vs "add").

      Values should be provided as an Object containing the new values as properties, where each propertyName is the name of a `form item` in the form, and each property value is the value to apply to that form item via `FormItem.setValue()`.

      Values with no corresponding form item may also be passed, will be tracked by the form and returned by subsequent calls to `getValues()`.

      Any `FormItem` for which a value is not provided will revert to its `defaultValue`. To cause all FormItems to revert to default values, pass null.

      This method also calls `rememberValues()` so that a subsequent later call to `resetValues()` will revert to the passed values.

      Parameters:
        `values` - values for the form, or null to reset all items to default values. Default value is null

    - #### getValues

          public java.util.Map getValues()

      An Object containing the initial values of the form as properties, where each propertyName is the name of a `form item` in the form, and each property value is the value held by that form item.

      The form's values may contain values that are not managed by any FormItem, and these values will be preserved and available when the form values are subsequently retrieved via `getValues()`.

      Providing values on initialization is equivalent to calling `setValues()`.

      As the user manipulates form items to change values, change events fire `on the items` and `on the form as a whole`.

      Note that form values are logical values, for example, the value of a `DateItem` is a JavaScript Date object, not a String, even if the user enters the date via a text input. Likewise the value of a `TextItem` or `CheckboxItem` that started out null remains null until the user changes it; the value will not be automatically converted to the null string ("") or false respectively, as happens with native HTML elements.

      Returns:
        An Object containing the values of the form as properties, where each propertyName is the name of a `form item` in the form, and each property value is the value held by that form item.

    - #### setWrapItemTitles

          public void setWrapItemTitles(java.lang.Boolean wrapItemTitles)

      Whether titles for form items should wrap. If not specified, titles will wrap by default. Can be overridden for individual items via `FormItem.wrapTitle`
      Parameters:
        `wrapItemTitles` - Default value is null
      See Also:
        `FormTitles overview and related methods`

    - #### getWrapItemTitles

          public java.lang.Boolean getWrapItemTitles()

      Whether titles for form items should wrap. If not specified, titles will wrap by default. Can be overridden for individual items via `FormItem.wrapTitle`
      Returns:
        Boolean
      See Also:
        `FormTitles overview and related methods`

    - #### cancel

          public void cancel()

      This method exists for clean integration with existing server frameworks that have a 'cancel' feature which typically clears session state associated with the form. When this method is called, an RPC is sent to the server with a parameter named `cancelParamName` with the value `cancelParamValue`.

      Note that no other form data is sent. By default the current top-level page is replaced with the reply. If you wish to ignore the server reply instead, call this method like this:

            dynamicFormInstance.cancel({ignoreTimeout: true, target: null});

      See Also:
        `cancelEditing()`, `Submitting overview and related methods`

    - #### cancel

          public void cancel(DSRequest requestProperties)

      This method exists for clean integration with existing server frameworks that have a 'cancel' feature which typically clears session state associated with the form. When this method is called, an RPC is sent to the server with a parameter named `cancelParamName` with the value `cancelParamValue`.

      Note that no other form data is sent. By default the current top-level page is replaced with the reply. If you wish to ignore the server reply instead, call this method like this:

            dynamicFormInstance.cancel({ignoreTimeout: true, target: null});

      Parameters:
        `requestProperties` - additional properties to set on the RPCRequest that will be issued
      See Also:
        `cancelEditing()`, `Submitting overview and related methods`

    - #### cancelEditing

          public void cancelEditing()

      If the form or valuesManager has associated userTask workflow task than notify it about cancelling the changes.

    - #### checkForValidationErrors

          public java.util.Map checkForValidationErrors(ValidationStatusCallback callback)

      Performs silent validation of the current form values, like `valuesAreValid()`. In contrast to `valuesAreValid()`, this method allows checking for server-side errors, and finding out what the errors are.

      The callback must be passed unless server-side validation is being skipped, and If passed, it always fires, errors or not, firing synchronously if server validation is skipped.

      Parameters:
        `callback` - callback to invoke after validation is complete
      Returns:
        null if server-side validation is required, or no errors are present; otherwise, a Map of field names to the associated errors, for those fields that failed validation.
      See Also:
        `Validation overview and related methods`

    - #### checkForValidationErrors

          public java.util.Map checkForValidationErrors(ValidationStatusCallback callback,
                                                        boolean validateHiddenFields)

      See Also:
        `checkForValidationErrors(com.smartgwt.client.data.ValidationStatusCallback)`

    - #### checkForValidationErrors

          public java.util.Map checkForValidationErrors(ValidationStatusCallback callback,
                                                        boolean validateHiddenFields,
                                                        boolean skipServerValidation)

      Performs silent validation of the current form values, like `valuesAreValid()`. In contrast to `valuesAreValid()`, this method allows checking for server-side errors, and finding out what the errors are.

      The callback must be passed unless server-side validation is being skipped, and If passed, it always fires, errors or not, firing synchronously if server validation is skipped.

      Parameters:
        `callback` - callback to invoke after validation is complete
        `validateHiddenFields` - should validators be processed for non-visible fields such as dataSource fields with no associated item or fields with visibility set to `"hidden"`
        `skipServerValidation` - whether to skip doing server-side validation
      Returns:
        null if server-side validation is required, or no errors are present; otherwise, a Map of field names to the associated errors, for those fields that failed validation.
      See Also:
        `Validation overview and related methods`

    - #### clearErrors

          public void clearErrors(boolean show)

      Clears all errors for this DynamicForm.
      Parameters:
        `show` - If true, redraw the form to clear any visible error messages.
      See Also:
        `Errors overview and related methods`

    - #### clearFieldErrors

          public void clearFieldErrors(java.lang.String fieldName,
                                       boolean show)

      Clear any validation errors on the field passed in.
      Parameters:
        `fieldName` - field to clear errors from
        `show` - If true this method will fall through to `showFieldErrors()` to update the display
      See Also:
        `Errors overview and related methods`

    - #### clearValue

          public void clearValue(java.lang.String fieldName)

      Clears the value for some field via a call to `FormItem.clearValue()` if appropriate. If there is no item associated with the field name, the field will just be cleared within our stored set of values.
      Parameters:
        `fieldName` - Name of the field being cleared. A `DataPath` may be used for clearing details of nested data structures.

    - #### clearValues

          public void clearValues()

      Reset to default form values and clear errors

    - #### completeEditing

          public void completeEditing()

      Finish editing and store edited values in `process state`.

    - #### editNewRecord

          public void editNewRecord()

      Prepare to edit a new record by clearing the current set of values (or replacing them with initialValues if specified).
      This method will also call `setSaveOperationType()` to ensure subsequent calls to `saveData()` will use an `add` rather than an `update` operation.
      See Also:
        `saveData()`, `DataBoundComponentMethods overview and related methods`

    - #### editNewRecord

          public void editNewRecord(java.util.Map initialValues)

      Prepare to edit a new record by clearing the current set of values (or replacing them with initialValues if specified).
      This method will also call `setSaveOperationType()` to ensure subsequent calls to `saveData()` will use an `add` rather than an `update` operation.
      Parameters:
        `initialValues` - initial set of values for the editor as a map of field names to their corresponding values
      See Also:
        `saveData()`, `DataBoundComponentMethods overview and related methods`

    - #### editNewRecord

          public void editNewRecord(Record initialValues)

      Prepare to edit a new record by clearing the current set of values (or replacing them with initialValues if specified).
      This method will also call `setSaveOperationType()` to ensure subsequent calls to `saveData()` will use an `add` rather than an `update` operation.
      Parameters:
        `initialValues` - initial set of values for the editor as a map of field names to their corresponding values
      See Also:
        `saveData()`, `DataBoundComponentMethods overview and related methods`

    - #### editRecord

          public void editRecord(Record record)

      Edit an existing record. Updates this editors values to match the values of the record passed in, via `setValues()`.

      This method will also call `setSaveOperationType()` to ensure subsequent calls to `saveData()` will use an `update` rather than an `add` operation.

      Parameters:
        `record` - the record to be edited as a map of field names to their corresponding values
      See Also:
        `saveData()`, `DataBoundComponentMethods overview and related methods`

    - #### fetchRelatedData

          public void fetchRelatedData(ListGridRecord record,
                                       Canvas schema)

      Based on the relationship between the DataSource this component is bound to and the DataSource specified as the "schema" argument, call fetchData() to retrieve records in this data set that are related to the passed-in record.

      Relationships between DataSources are declared via `DataSourceField.foreignKey`.

      For example, given two related DataSources "orders" and "orderItems", where we want to fetch the "orderItems" that belong to a given "order". "orderItems" should declare a field that is a `foreignKey` to the "orders" table (for example, it might be named "orderId" with foreignKey="orders.id"). Then, to load the records related to a given "order", call fetchRelatedData() on the component bound to "orderItems", pass the "orders" DataSource as the "schema" and pass a record from the "orders" DataSource as the "record" argument.

      Parameters:
        `record` - DataSource record
        `schema` - schema of the DataSource record, or DataBoundComponent already bound to that schema
      See Also:
        `DataBoundComponentMethods overview and related methods`

    - #### fetchRelatedData

          public void fetchRelatedData(ListGridRecord record,
                                       Canvas schema,
                                       DSCallback callback)

      See Also:
        `fetchRelatedData(com.smartgwt.client.widgets.grid.ListGridRecord, com.smartgwt.client.widgets.Canvas)`

    - #### fetchRelatedData

          public void fetchRelatedData(ListGridRecord record,
                                       Canvas schema,
                                       DSCallback callback,
                                       DSRequest requestProperties)

      Based on the relationship between the DataSource this component is bound to and the DataSource specified as the "schema" argument, call fetchData() to retrieve records in this data set that are related to the passed-in record.

      Relationships between DataSources are declared via `DataSourceField.foreignKey`.

      For example, given two related DataSources "orders" and "orderItems", where we want to fetch the "orderItems" that belong to a given "order". "orderItems" should declare a field that is a `foreignKey` to the "orders" table (for example, it might be named "orderId" with foreignKey="orders.id"). Then, to load the records related to a given "order", call fetchRelatedData() on the component bound to "orderItems", pass the "orders" DataSource as the "schema" and pass a record from the "orders" DataSource as the "record" argument.

      Parameters:
        `record` - DataSource record
        `schema` - schema of the DataSource record, or DataBoundComponent already bound to that schema
        `callback` - callback to invoke on completion
        `requestProperties` - additional properties to set on the DSRequest that will be issued
      See Also:
        `DataBoundComponentMethods overview and related methods`

    - #### fieldIsEditable

          public boolean fieldIsEditable(FormItem field)

      Can the field be edited? This method looks at `canEdit` for the grid as well as the `FormItem.canEdit` value, to determine whether editing is actually allowed. For a detailed discussion, see the documentation at `canEdit`.
      Parameters:
        `field` - field object or identifier
      Returns:
        whether field can be edited
      See Also:
        `Editing overview and related methods`

    - #### fieldIsEditable

          public boolean fieldIsEditable(int field)

      Can the field be edited? This method looks at `canEdit` for the grid as well as the `FormItem.canEdit` value, to determine whether editing is actually allowed. For a detailed discussion, see the documentation at `canEdit`.
      Parameters:
        `field` - field object or identifier
      Returns:
        whether field can be edited
      See Also:
        `Editing overview and related methods`

    - #### fieldIsEditable

          public boolean fieldIsEditable(java.lang.String field)

      Can the field be edited? This method looks at `canEdit` for the grid as well as the `FormItem.canEdit` value, to determine whether editing is actually allowed. For a detailed discussion, see the documentation at `canEdit`.
      Parameters:
        `field` - field object or identifier
      Returns:
        whether field can be edited
      See Also:
        `Editing overview and related methods`

    - #### focus

          public void focus()

      Give keyboard focus to this form. If this form has had focus before, focus will be passed to the item which last had focus (see `getFocusItem()`) - otherwise focus will be passed to the first focusable item in the form.

      To put focus in a specific item, use `focusInItem()` instead.

      Overrides:
        `focus` in class `Canvas`
      See Also:
        `Focus overview and related methods`

    - #### addFormSubmitFailedHandler

          public com.google.gwt.event.shared.HandlerRegistration addFormSubmitFailedHandler(FormSubmitFailedHandler handler)

      Add a formSubmitFailed handler.

      Method called when an attempt to `natively submit` a form is unable to submit to the server. Default behavior is to display the `DynamicForm.formSubmitFailedWarning` in a warning dialog. The most common cause for this failure is that the user has typed an invalid file-path into an upload type field.

      Specified by:
        `addFormSubmitFailedHandler` in interface `HasFormSubmitFailedHandlers`
      Parameters:
        `handler` - the formSubmitFailed handler
      Returns:
        `HandlerRegistration` used to remove this handler

    - #### getEventItem

          public FormItem getEventItem()

      If the current mouse event occurred over an item in this dynamicForm, returns that item.
      Returns:
        the current event target item

    - #### getFocusItem

          public FormItem getFocusItem()

      Return the current focus item for this form.

      This is the item which either currently has focus, or if focus is not currently within this form, would be given focus on a call to `focus()`. May return null if this form has never had focus, in which case a call to `form.focus()` would put focus into the first focusable item within the the form.

      Note that if focus is currently in a sub-item of a ContainerItem, this method will return the parent ContainerItem, not the sub-item.

      Returns:
        Current focus item within this form. May be null.
      See Also:
        `isFocused()`, `FormItem.isFocused()`, `Focus overview and related methods`

    - #### getValuesAsAdvancedCriteria

          public AdvancedCriteria getValuesAsAdvancedCriteria()

      Return an AdvancedCriteria object based on the current set of values within this form.

      Similar to `getValuesAsCriteria()`, except the returned criteria object is guaranteed to be an AdvancedCriteria object, even if none of the form's fields has a specified `FormItem.operator`

      Returns:
        a `AdvancedCriteria` based on the form's current values
      See Also:
        `CriteriaEditing overview and related methods`

    - #### getValuesAsAdvancedCriteria

          public AdvancedCriteria getValuesAsAdvancedCriteria(TextMatchStyle textMatchStyle)

      Return an AdvancedCriteria object based on the current set of values within this form.

      Similar to `getValuesAsCriteria()`, except the returned criteria object is guaranteed to be an AdvancedCriteria object, even if none of the form's fields has a specified `FormItem.operator`

      Parameters:
        `textMatchStyle` - If specified the text match style will be used to generate the appropriate `operator` for per field criteria.
      Returns:
        a `AdvancedCriteria` based on the form's current values
      See Also:
        `CriteriaEditing overview and related methods`

    - #### addAsyncValidationReplyHandler

          public com.google.gwt.event.shared.HandlerRegistration addAsyncValidationReplyHandler(AsyncValidationReplyHandler handler)

      Add a asyncValidationReply handler.

      Notification fired when an asynchronous validation completes.

      Specified by:
        `addAsyncValidationReplyHandler` in interface `HasAsyncValidationReplyHandlers`
      Parameters:
        `handler` - the asyncValidationReply handler
      Returns:
        `HandlerRegistration` used to remove this handler

    - #### addHiddenValidationErrorsHandler

          public com.google.gwt.event.shared.HandlerRegistration addHiddenValidationErrorsHandler(HiddenValidationErrorsHandler handler)

      Add a hiddenValidationErrors handler.

      Method to display validation error messages for fields that are not currently visible in this form.
      This will be called when validation fails for
      - a hidden field in this form
      - if this form is databound, a datasource field with specified validators, for which we have no specified form item.
      Implement this to provide custom validation error handling for these fields.
      By default hidden validation errors will be logged as warnings in the developerConsole. Call `HiddenValidationErrorsEvent.cancel()` from within `HiddenValidationErrorsHandler.onHiddenValidationErrors(com.smartgwt.client.widgets.form.events.HiddenValidationErrorsEvent)` from this method to suppress that behavior.

      Specified by:
        `addHiddenValidationErrorsHandler` in interface `HasHiddenValidationErrorsHandlers`
      Parameters:
        `handler` - the hiddenValidationErrors handler
      Returns:
        `HandlerRegistration` used to remove this handler

    - #### hasErrors

          public java.lang.Boolean hasErrors()

      Returns whether there are currently any errors visible to the user for this form, without performing validation.

      Note that validation errors are set up automatically by validation (see `validate()`), or may be explicitly set via `setErrors()` or `setFieldErrors()`.

      Returns:
        true if the form currently has validation errors.
      See Also:
        `Errors overview and related methods`

    - #### hasFieldErrors

          public java.lang.Boolean hasFieldErrors(java.lang.String fieldName)

      Returns whether there are currently any errors visible to the user for the specified field in this form, without performing any validation.

      Note that validation errors are set up automatically by validation (see `validate()`), or may be explicitly set via `setErrors()` or `setFieldErrors()`.

      Parameters:
        `fieldName` - field to test for validation errors
      Returns:
        true if the form has outstanding errors for the field in question.
      See Also:
        `Errors overview and related methods`

    - #### hideItem

          public void hideItem(java.lang.String itemName)

      Hide a form item via `FormItem.hide()`
      Parameters:
        `itemName` - Name of the item to show

    - #### isFocused

          public java.lang.Boolean isFocused()

      Returns true if this DynamicForm has the keyboard focus.

      Unlike standard canvases, for a DynamicForm this method will return true when keyboard focus is currently on one of the form's `items`.

      Note that in some cases the items of a form may be written directly into a different `canvas`. In this case the dynamicForm containing the items may not have been drawn on the page itself, but this method can still return true if one of the items has focus.

      Overrides:
        `isFocused` in class `Canvas`
      Returns:
        whether focus is currently in one of this form's items.
      See Also:
        `Canvas.containsFocus()`

    - #### isNewRecord

          public java.lang.Boolean isNewRecord()

      Returns true if `saveOperationType` is currently "add". See `saveOperationType`.
      Returns:
        whether this form will use an "add" operation when saving

    - #### isPendingAsyncValidation

          public java.lang.Boolean isPendingAsyncValidation()

      Is this component waiting for an asynchronous validation to complete? This method will return true after `validate()` is called on a component with server-side validators for some field(s), until the server responds.

      Note that the notification method `DynamicForm.asyncValidationReply()` will be fired when validation completes.

      Returns:
        true if this widget has pending asynchronous validations in process

    - #### addItemChangeHandler

          public com.google.gwt.event.shared.HandlerRegistration addItemChangeHandler(ItemChangeHandler handler)

      Add a itemChange handler.

      Handler fired when there is a change() event fired on a FormItem within this form.

      Fires after the change() handler on the FormItem itself, and only if the item did not cancel the change event and chooses to allow it to propagate to the form as a whole.

      Specified by:
        `addItemChangeHandler` in interface `HasItemChangeHandlers`
      Parameters:
        `handler` - the itemChange handler
      Returns:
        `HandlerRegistration` used to remove this handler

    - #### addItemChangedHandler

          public com.google.gwt.event.shared.HandlerRegistration addItemChangedHandler(ItemChangedHandler handler)

      Add a itemChanged handler.

      Handler fired when there is a changed() event fired on a FormItem within this form.

      Fires after the change() handler on the FormItem itself, and only if the item did not cancel the change event and chooses to allow it to propagate to the form as a whole.

      Specified by:
        `addItemChangedHandler` in interface `HasItemChangedHandlers`
      Parameters:
        `handler` - the itemChanged handler
      Returns:
        `HandlerRegistration` used to remove this handler

    - #### addItemKeyPressHandler

          public com.google.gwt.event.shared.HandlerRegistration addItemKeyPressHandler(ItemKeyPressHandler handler)

      Add a itemKeyPress handler.

      Handler fired when a FormItem within this form receives a keypress event.

      Fires after the keyPress handler on the FormItem itself, and only if the item did not cancel the event and chooses to allow it to propagate to the form as a whole.

      Specified by:
        `addItemKeyPressHandler` in interface `HasItemKeyPressHandlers`
      Parameters:
        `handler` - the itemKeyPress handler
      Returns:
        `HandlerRegistration` used to remove this handler

    - #### reset

          public void reset()

      Resets values to the state it was the last time `setValues()` or `rememberValues()` was called. If neither of those methods has been called, values will be set back to their initial values at init time.

    - #### resetValues

          public void resetValues()

      Same as `reset()`.

    - #### saveData

          public void saveData()

      Validate and then save the form's current values to the `DataSource` this form is bound to.

      If client-side validators are defined, they are executed first, and if any errors are found the save is aborted and the form will show the errors.

      If client-side validation passes, a `DSRequest` will be sent, exactly as though `DataSource.addData()` or `DataSource.updateData()` had been called with `the form's values` as data. The `DSRequest.operationType` will be either "update" or "add", depending on the current `saveOperationType`.

      On either a client-side or server-side validation failure, validation errors will be displayed in the form. Visible items within a DynamicForm will be redrawn to display errors. Validation failure occurring on hidden items, or DataSource fields with no associated form items may be handled via `DynamicForm.hiddenValidationErrors()` or `ValuesManager.hiddenValidationErrors()`.

      In the case of a validation error, the callback will not be called by default since the form has already handled the failed save by displaying the validation errors to the user. If you need to do something additional in this case, you can set `RPCRequest.willHandleError` via the `requestProperties` parameter to force your callback to be invoked. However, first consider:

      - if you are trying to customize display of validation errors, there are several `built-in modes` and `showErrors()` may be a better place to put customizations.
      - for unrecoverable general errors (eg server is down), `central error handling` in invoked, so consider placing customizations there unless an unrecoverable error should be handled specially by this specific form.
      See Also:
        `DataBoundComponentMethods overview and related methods`, Add Example

    - #### saveData

          public void saveData(DSCallback callback)

      See Also:
        `saveData()`

    - #### saveData

          public void saveData(DSCallback callback,
                               DSRequest requestProperties)

      Validate and then save the form's current values to the `DataSource` this form is bound to.

      If client-side validators are defined, they are executed first, and if any errors are found the save is aborted and the form will show the errors.

      If client-side validation passes, a `DSRequest` will be sent, exactly as though `DataSource.addData()` or `DataSource.updateData()` had been called with `the form's values` as data. The `DSRequest.operationType` will be either "update" or "add", depending on the current `saveOperationType`.

      On either a client-side or server-side validation failure, validation errors will be displayed in the form. Visible items within a DynamicForm will be redrawn to display errors. Validation failure occurring on hidden items, or DataSource fields with no associated form items may be handled via `DynamicForm.hiddenValidationErrors()` or `ValuesManager.hiddenValidationErrors()`.

      In the case of a validation error, the callback will not be called by default since the form has already handled the failed save by displaying the validation errors to the user. If you need to do something additional in this case, you can set `RPCRequest.willHandleError` via the `requestProperties` parameter to force your callback to be invoked. However, first consider:

      - if you are trying to customize display of validation errors, there are several `built-in modes` and `showErrors()` may be a better place to put customizations.
      - for unrecoverable general errors (eg server is down), `central error handling` in invoked, so consider placing customizations there unless an unrecoverable error should be handled specially by this specific form.
      Parameters:
        `callback` - callback to invoke on completion
        `requestProperties` - additional properties to set on the DSRequest that will be issued
      See Also:
        `DataBoundComponentMethods overview and related methods`, Add Example

    - #### setValue

          public void setValue(java.lang.String fieldName,
                               java.lang.String value)

      Sets the value for some field
      Parameters:
        `fieldName` - Name of the field being updated. A `DataPath` may be passed to set nested values
        `value` - New value.

    - #### setValuesAsCriteria

          public void setValuesAsCriteria(Criterion criteria)

      This method will display the specified criteria in this form for editing. The criteria parameter may be a simple `Criterion` object or an `AdvancedCriteria` object.

      For simple criteria, the specified fieldName will be used to apply criteria to form items, as with a standard setValues() call.

      For AdvancedCriteria, behavior is as follows:

      - If the top level operator doesn't match the `operator` for this form, the entire criteria will be nested in an outer advanced criteria object with the appropriate operator.
      - Each criterion within AdvancedCriteria will be applied to a form item if `FormItem.shouldSaveValue` is true for the item and `FormItem.canEditCriterion()` returns true for the criterion in question. By default this method checks for a match with both the `fieldName` and `operator` of the criterion. The criterion is actually passed to the item for editing via the `FormItemCriterionSetter`'s `setCriterion()` method. Note that these methods may be overridden for custom handling. Also note that the default `FormItemCriterionSetter.setCriterion()` implementation used by `CanvasItem` handles editing nested criteria via embedded dynamicForms.
      - Criteria which don't map to any form item will be stored directly on the form and recombined with the edited values from each item when `getValuesAsCriteria()` is called.
      Parameters:
        `criteria` - criteria to edit.
      See Also:
        `CriteriaEditing overview and related methods`

    - #### showFieldErrors

          public void showFieldErrors(java.lang.String fieldName)

      If this form has any outstanding validation errors for the field passed in, show them now. Called when field errors are set directly via `setFieldErrors()` / `addFieldErrors()` / `clearFieldErrors()`.
      Default implementation simply falls through to `showErrors()`.
      Parameters:
        `fieldName` - field to show errors for
      See Also:
        `Errors overview and related methods`

    - #### showItem

          public void showItem(java.lang.String itemName)

      Show a form item via `FormItem.show()`
      Parameters:
        `itemName` - Name of the item to show

    - #### submit

          public void submit()

      `submit()` is automatically called when a `SubmitItem` included in the form is clicked, or, if `saveOnEnter` is set, when the "Enter" key is pressed in a text input. Submit can also be manually called.

      If this form is part of a `ValuesManager`, this method will simply fall through to the submit method on the valuesManager. If not, and `form.submitValues()` exists, it will be called, and no further action will be taken.

      Otherwise, default behavior varies based on `form.canSubmit`: if `canSubmit` is false, `saveData()` will be called to handle saving via Smart GWT databinding.

      If `canSubmit` is true, the form will be submitted like an ordinary HTML form via `submitForm()`.

      The parameters to `submit()` apply only if `submit()` will be calling `saveData()`. If you override `submit()`, you can safely ignore the parameters as Smart GWT framework code does not pass them.

      See Also:
        `SubmitValuesEvent`, `DataBoundComponentMethods overview and related methods`

    - #### submit

          public void submit(DSCallback callback)

      See Also:
        `submit()`

    - #### submit

          public void submit(DSCallback callback,
                             DSRequest requestProperties)

      `submit()` is automatically called when a `SubmitItem` included in the form is clicked, or, if `saveOnEnter` is set, when the "Enter" key is pressed in a text input. Submit can also be manually called.

      If this form is part of a `ValuesManager`, this method will simply fall through to the submit method on the valuesManager. If not, and `form.submitValues()` exists, it will be called, and no further action will be taken.

      Otherwise, default behavior varies based on `form.canSubmit`: if `canSubmit` is false, `saveData()` will be called to handle saving via Smart GWT databinding.

      If `canSubmit` is true, the form will be submitted like an ordinary HTML form via `submitForm()`.

      The parameters to `submit()` apply only if `submit()` will be calling `saveData()`. If you override `submit()`, you can safely ignore the parameters as Smart GWT framework code does not pass them.

      Parameters:
        `callback` - callback to invoke on completion. [Ignored if this.canSubmit is true]
        `requestProperties` - additional properties to set on the DSRequest that will be issued [Ignored if this.canSubmit is true]
      See Also:
        `SubmitValuesEvent`, `DataBoundComponentMethods overview and related methods`

    - #### submitForm

          public void submitForm()

      Submits the form to the URL defined by `action`, identically to how a plain HTML <form> element would submit data, as either an HTTP GET or POST as specified by `method`.

      Notes:

      - this is used only in the very rare case that a form is used to submit data directly to a URL. Normal server contact is through `DataBound Component Methods`.
      - For this method to reliably include values for every field in the grid, `canSubmit` must be set to `true`
      - To submit values for fields that do not have an editor, use `HiddenItem` with a `FormItem.defaultValue` set. This is analogous to <input type="hidden"> in HTML forms.
      See Also:
        `Submitting overview and related methods`

    - #### addSubmitValuesHandler

          public com.google.gwt.event.shared.HandlerRegistration addSubmitValuesHandler(SubmitValuesHandler handler)

      Add a submitValues handler.

      Triggered when a SubmitItem is included in the form is submitted and gets pressed.

      Specified by:
        `addSubmitValuesHandler` in interface `HasSubmitValuesHandlers`
      Parameters:
        `handler` - the submitValues handler
      Returns:
        `HandlerRegistration` used to remove this handler

    - #### titleClipped

          public boolean titleClipped(FormItem item)

      Is the title for the given form item clipped? The form item must have title clipping enabled.
      Parameters:
        `item` - the form item.
      Returns:
        true if the title is clipped; false otherwise.
      See Also:
        `getClipItemTitles()`, `FormItem.getClipTitle()`

    - #### validate

          public boolean validate(boolean validateHiddenFields)

      Validates the form without submitting it, and redraws the form to display error messages if there are any validation errors. Returns true if validation succeeds, or false if validation fails.

      For databound forms, any `DataSource` field validators will be run even if there is no associated item in the form. Validators will also be run on hidden form items. In both these cases, validation failure can be handled via `DynamicForm.hiddenValidationErrors()`.

      If this form has any fields which require server-side validation (see `Validator.serverCondition`) this will also be initialized. Such validation will occur asynchronously. Developers can use `isPendingAsyncValidation()` and `DynamicForm.asyncValidationReply()` to detect and respond to asynchronous validation.

      Note that for silent validation, `valuesAreValid()` (client-side) and `checkForValidationErrors()` (client and server-side) can be used instead.

      Parameters:
        `validateHiddenFields` - Should validators be processed for non-visible fields such as dataSource fields with no associated item or fields with visibility set to `"hidden"`?
      Returns:
        true if validation succeeds, or false if validation fails.
      See Also:
        `Validation overview and related methods`, Type Example

    - #### validateData

          public boolean validateData(DSCallback callback)

      See Also:
        `validateData(com.smartgwt.client.data.DSCallback)`

    - #### validateData

          public boolean validateData(DSCallback callback,
                                      DSRequest requestProperties)

      `validateData()` can be used to check for errors in server-side validators without showing such errors to the user. Errors, if any, can be discovered by looking at the `DSResponse` object returned in the callback.

      `validateData()` will first call `validate()` to check for client-side errors, and will return `false` without contacting the server if errors are present. In this case, any errors detected client-side will be displayed; to avoid this and purely perform silent, server-side validation, you can use `DataSource.validateData()` with the form's `current values`. `valuesAreValid()` can be used in lieu of a call to `validate()` if silent checking of client-side errors is also desired.

      Parameters:
        `callback` - callback to invoke on completion
        `requestProperties` - additional properties to set on the DSRequest that will be issued
      Returns:
        true if the server will be contacted, false otherwise
      See Also:
        `Validation overview and related methods`

    - #### valuesAreValid

          public boolean valuesAreValid(boolean validateHiddenFields)

      Method to determine whether the current form values would pass validation. This method operates client-side, without contacting the server, running validators on the form's values and returning a value indicating whether validation was successful.

      Unlike `validate()` this method will not store the errors on the DynamicForm or display them to the user.

      Note that `checkForValidationErrors()` allows for checking for server-side errors, and finding out what those errors are via a callback.

      Parameters:
        `validateHiddenFields` - Should validators be processed for non-visible fields such as dataSource fields with no associated item or fields with visibility set to `"hidden"`?
      Returns:
        Boolean value indicating validation success, or if `returnErrors` was specified, a map of field names to the associated errors, for those fields that failed validation.
      See Also:
        `Validation overview and related methods`

    - #### addValuesChangedHandler

          public com.google.gwt.event.shared.HandlerRegistration addValuesChangedHandler(ValuesChangedHandler handler)

      Add a valuesChanged handler.

      Handler fired when the entire set of values is replaced, as by a call to `DynamicForm.setValues()`, `DynamicForm.resetValues()` or `DynamicForm.editRecord()`.

      Note that it is invalid to call such methods from this handler because doing so would result in an infinite loop.

      Specified by:
        `addValuesChangedHandler` in interface `HasValuesChangedHandlers`
      Parameters:
        `handler` - the valuesChanged handler
      Returns:
        `HandlerRegistration` used to remove this handler

    - #### valuesHaveChanged

          public java.lang.Boolean valuesHaveChanged()

      Compares the current set of values with the values stored by the call to the `rememberValues()` method. `rememberValues()` runs when the form is initialized and on every call to `setValues()`. Returns true if the values have changed, and false otherwise.
      Returns:
        true if current values do not match remembered values
      See Also:
        `getChangedValues()`, `getOldValues()`

    - #### setDefaultProperties

          public static void setDefaultProperties(DynamicForm dynamicFormProperties)

      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 set on the SmartGWT class instance passed to this function before its underlying SmartClient JS object was created. 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:
        `dynamicFormProperties` - properties that should be used as new defaults when instances of this class are created
      See Also:
        `SGWTProperties`

    - #### onInit

          protected void onInit()

      Overrides:
        `onInit` in class `Canvas`

    - #### onInit_DynamicForm

          protected void onInit_DynamicForm()

    - #### showErrors

          public void showErrors()

      If this form has any outstanding validation errors, show them now.
      This method is called when the set of errors are changed by `setErrors(java.util.Map, boolean)` or `validate(boolean)`.
      Default implementation will redraw the form to display error messages and call `com.smartgwt.client.widgets.form.DynamicForm#handleHiddenValidationErrors` to display errors with no visible field.

      Note: This is an override point. This method may be overridden to perform custom display of validation errors.

    - #### setValuesManager

          public void setValuesManager(ValuesManager valuesManager)
                                throws java.lang.IllegalStateException

      Adds this DynamicForm as a member of the specified valuesManager. After init, this method is functionally equivalent to `valuesManager.addMember(form)` and `valuesManager.removeMember(form)`

      Note : This is an advanced setting

      Overrides:
        `setValuesManager` in class `Canvas`
      Parameters:
        `valuesManager` - valuesManager Default value is null
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getValuesManager

          public ValuesManager getValuesManager()

      Return the ValuesManager for this form.
      Overrides:
        `getValuesManager` in class `Canvas`
      Returns:
        the ValuesManager

    - #### setCellSpacing

          public void setCellSpacing(int cellSpacing)
                              throws java.lang.IllegalStateException

      Deprecated. use `setCellPadding(int)` instead
      Set the cellSpacing.
      Parameters:
        `cellSpacing` - the cellSpacing
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getCellSpacing

          public int getCellSpacing()

      Deprecated. use `getCellPadding()` instead
      Return the cellSpacing.
      Returns:
        the cellSpacing

    - #### setUseAllDataSourceFields

          public void setUseAllDataSourceFields(boolean useAllDataSourceFields)

      If true, the set of fields given by the "default binding" (see DataBoundComponent.fields) is used, with any fields specified in component.fields acting as overrides that can suppress or modify the display of individual fields, without having to list the entire set of fields that should be shown.

      If component.fields contains fields that are not found in the DataSource, they will be shown after the most recently referred to DataSource field. If the new fields appear first, they will be shown first.
      Parameters:
        `useAllDataSourceFields` - useAllDataSourceFields

    - #### getChangedValues

          public java.util.Map getChangedValues()

      Returns all values within this DynamicForm that have changed since `DynamicForm.rememberValues` last ran. Note that `DynamicForm.rememberValues` runs on dynamicForm initialization, and with every call to `DynamicForm.setValues` so this will typically contain all values the user has explicitly edited since then.
      Returns:
        the values

    - #### getOldValues

          public java.util.Map getOldValues()

      Returns the set of values last stored by `DynamicForm.rememberValues`. Note that `rememberValues()` is called automatically by `DynamicForm.setValues`, and on form initialization, so this typically contains all values as they were before the user edited them.
      Returns:
        the values

    - #### setValue

          public void setValue(java.lang.String fieldName,
                               double value)

      Set the value for some field.
      Parameters:
        `fieldName` - Name of the field being updated
        `value` - New value.

    - #### setValue

          public void setValue(java.lang.String fieldName,
                               boolean value)

      Set the value for some field.
      Parameters:
        `fieldName` - Name of the field being updated
        `value` - New value.

    - #### setValue

          public void setValue(java.lang.String fieldName,
                               int[] value)

      Set the value for some field.
      Parameters:
        `fieldName` - Name of the field being updated
        `value` - New value.

    - #### setValue

          public void setValue(java.lang.String fieldName,
                               java.util.Date value)

      Set the value for some field.
      Parameters:
        `fieldName` - Name of the field being updated
        `value` - New value.

    - #### setValue

          public void setValue(java.lang.String fieldName,
                               java.lang.String[] value)

      Set the value for some field.
      Parameters:
        `fieldName` - Name of the field being updated
        `value` - New value.

    - #### setValue

          public void setValue(java.lang.String fieldName,
                               java.util.Map value)

      Set the value for some field.
      Parameters:
        `fieldName` - Name of the field being updated
        `value` - New value.

    - #### setValue

          public void setValue(java.lang.String fieldName,
                               com.google.gwt.core.client.JavaScriptObject value)

      Set the value for some field.
      Parameters:
        `fieldName` - Name of the field being updated
        `value` - New value.

    - #### setValue

          public void setValue(java.lang.String fieldName,
                               Record value)

      Set the value for some field.
      Parameters:
        `fieldName` - Name of the field being updated
        `value` - New value.

    - #### setValue

          public void setValue(java.lang.String fieldName,
                               DataClass value)

      Set the value for some field.
      Parameters:
        `fieldName` - Name of the field being updated
        `value` - New value.

    - #### setValue

          public void setValue(java.lang.String fieldName,
                               Record[] value)

      Set the value for some field.
      Parameters:
        `fieldName` - Name of the field being updated
        `value` - New value.

    - #### setValue

          public void setValue(java.lang.String fieldName,
                               DataClass[] value)

      Set the value for some field.
      Parameters:
        `fieldName` - Name of the field being updated
        `value` - New value.

    - #### setValue

          public void setValue(java.lang.String fieldName,
                               RelativeDate value)

      Set the value for some field.
      Parameters:
        `fieldName` - Name of the field being updated
        `value` - New value.

    - #### setItems

          public void setItems(FormItem... items)

      Synonym for `setFields(com.smartgwt.client.widgets.form.fields.FormItem[])`.
      Parameters:
        `items` - the items

    - #### setOperator

          public void setOperator(OperatorId operator)
                           throws java.lang.IllegalStateException

      When `operator` has been set for any `FormItem` in this form, what logical operator should be applied across the ${isc.DocUtils.linkForRef('object:Criterion','criteria')} produced by the form items? Only applicable to forms that have a `dataSource`.
      Parameters:
        `operator` - operator Default value is "and"
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getOperator

          public OperatorId getOperator()

      When `operator` has been set for any `FormItem` in this form, what logical operator should be applied across the ${isc.DocUtils.linkForRef('object:Criterion','criteria')} produced by the form items? Only applicable to forms that have a `dataSource`.
      Returns:
        OperationId

    - #### setFields

          public void setFields(FormItem... fields)

      An array of field objects, specifying the order, layout, and types of each field in the DynamicForm. When both `fields` and `dataSource` are set, `fields` acts as a set of overrides as explained in DataBoundComponent fields.

      See Form Layout for information about how flags specified on the FormItems control how the form is laid out.
      Parameters:
        `fields` - form item fields

    - #### getFields

          public FormItem[] getFields()

      Return the form fields.

      If you've installed the fields as JavaScriptObjects using `setFields()`, it's not recommended to call this method or otherwise try to access the fields as `FormItem`s before the DynamicForm has been `created`, as this may result in the incorrect subclass of FormItem being built. Instead, use `getFieldsAsJavaScriptObjects()`.

      If the situation is unavoidable, you can set the "editorType" attribute of the JavaScriptObject field to the desired subclass to ensure it will be used.

      Returns:
        the form fields

    - #### getItem

          public FormItem getItem(java.lang.String name)

    - #### getField

          public FormItem getField(java.lang.String name)

    - #### getValueAsString

          public java.lang.String getValueAsString(java.lang.String fieldName)

    - #### getValue

          public java.lang.Object getValue(java.lang.String fieldName)

    - #### getEventItemInfo

          public FormItemEventInfo getEventItemInfo(java.lang.String fieldName)

      If the current mouse event occurred over an item, or the title of an item in this dynamicForm, return details about where the event occurred.
      Parameters:
        `fieldName` - the field name
      Returns:
        the form item event info

    - #### validate

          public boolean validate()

      Validates the form without submitting it, and redraws the form to display error messages if there are any validation errors. Returns true if validation succeeds, or false if validation fails.
      For databound forms, any Datasource field validators will be run even if there is no associated item in the form.
      Validators will also be run on hidden form items
      In both these cases, validation failure can be handled via `com.smartgwt.client.widgets.form.DynamicForm#handleHiddenValidationErrors`

      If this form has any fields which require server-side validation this will also be initialized. Such validation will occur asynchronously.
      Developers can use `isPendingAsyncValidation()` and `addAsyncValidationReplyHandler(com.smartgwt.client.widgets.form.events.AsyncValidationReplyHandler)` to detect and respond to asynchronous validation.

      Returns:
        true if validation succeeds, or false if validation fails.

    - #### editSelectedData

          public void editSelectedData(ListGrid selectionComponent)

      Edit the record selected in the specified ListGrid.
      Updates the values of this editor to match the selected record's values.
      If this form has a dataSource, then saving via `saveData()` will use the "update" operation type.
      Parameters:
        `selectionComponent` - the List Grid whose currently selected record(s) is/are to be edited
      See Also:
        Grid-Form Update Example

    - #### editSelectedData

          public void editSelectedData(java.lang.String listGridID)

      Edit the record selected in the specified ListGrid.
      Updates the values of this editor to match the selected record's values.
      If this form has a dataSource, then saving via `saveData()` will use the "update" operation type.
      Parameters:
        `listGridID` - the List Grid ID whose currently selected record(s) is/are to be edited
      See Also:
        Grid-Form Update Example

    - #### getValuesAsCriteria

          public Criteria getValuesAsCriteria()

      Return search criteria based on the current set of values within this form. For simple criteria, each form item simply maps its value to it's fieldName.
      See FormItem.getCriterion() for details on how form items generate advanced criteria. Note that any values or criteria specified via DynamicForm.setValues() or DynamicForm.setValuesAsCriteria() which do not correspond to an item within the form will be combined with the live item values when criteria are generated.
      The returned criteria object can be used to filter data via methods such as ListGrid.fetchData(), DataSource.fetchData(), or, for more advanced usage, ResultSet.setCriteria().
      Note that any form field which the user has left blank is omitted as criteria, that is, a blank field is assumed to mean "allow any value for this field" and not "this field must be blank". Examples of empty values include a blank text field or SelectItem with an empty selection.
      Returns:
        the criteria

    - #### getValuesAsRecord

          public Record getValuesAsRecord()

      Return the current set of values within this form as a Record.
      Returns:
        a Record object containing the form's current values

    - #### setColWidths

          public void setColWidths(java.lang.Object... colWidths)

      An array of widths for the columns of items in this form's layout grid.

      If specified, these widths should sum to the total width of the form (form.width). If not specified, we assume every other column will contain form item titles, and so should have `form.titleWidth`, and all other columns should share the remaining space.

      Acceptable values for each element in the array are:

      - A number (e.g. 100) representing the number of pixel widths to allocate to a column.
      - A percent (e.g. 20%) representing the percentage of the total form.width to allocate to a column.
      - "*" (all) to allocate remaining width (form.width minus all specified column widths). Multiple columns can use "*", in which case remaining width is divided between all columns marked
      Parameters:
        `colWidths` - the column widths

    - #### getSaveOperationType

          public DSOperationType getSaveOperationType(DSRequest requestProperties)

      Default `DSOperationType` to be performed when `DynamicForm.saveData` is called. This property is automatically set on a call to `DynamicForm.editRecord` or `DynamicForm.editNewRecord`, or may be set directly via `DynamicForm.setSaveOperationType`.

      If `saveOperationType` is unset, the form will heuristically determine whether an "add" or "update" operation is intended based on whether the primaryKey field is present and editable.

      Parameters:
        `requestProperties` - Optional DSRequest config properties for the save operation
      Returns:
        Returns the `DSOperationType` to be performed when `DynamicForm.saveData` is called. Valid options are `"add"` or `"update"`.

        If a `DSRequest` configuration object is passed in containing an explicit operationType this will be returned. Otherwise `saveOperationType` will be returned.

    - #### setTitleWidth

          public void setTitleWidth(int titleWidth)

      The width in pixels allocated to the title of every item in this form. If you don't specify explicit `colWidths`, you can set this value to the string "*" to divide the usable space evenly between titles and fields.
      Parameters:
        `titleWidth` - the title width

    - #### setTitleWidth

          public void setTitleWidth(java.lang.String titleWidth)

      The width in pixels allocated to the title of every item in this form. If you don't specify explicit `colWidths`, you can set this value to the string "*" to divide the usable space evenly between titles and fields.
      Parameters:
        `titleWidth` - the title width

    - #### setErrorOrientation

          public void setErrorOrientation(FormErrorOrientation errorOrientation)

      If DynamicForm.showInlineErrors is true, where should the error icon and text appear relative to form items? Valid options are "top", "bottom", "left" or "right".

      May be overridden at the item level via `FormItem.setErrorOrientation(com.smartgwt.client.types.FormErrorOrientation)`.

      Parameters:
        `errorOrientation` - the error orientation

    - #### focusInItem

          public void focusInItem(int itemNumber)

      Move the keyboard focus into a particular item.
      Parameters:
        `itemNumber` - the item number

    - #### focusInItem

          public void focusInItem(java.lang.String itemName)

      Move the keyboard focus into a particular item.
      Parameters:
        `itemName` - the item name

    - #### focusInItem

          public void focusInItem(FormItem formItem)

      Move the keyboard focus into a particular item.
      Parameters:
        `formItem` - the form item

    - #### setErrors

          public void setErrors(java.util.Map errors,
                                boolean showErrors)

      Setter for validation errors on this form. Errors passed in should be a Map in the format {fieldName1:errors, fieldName2:errors} Where the errors value may be either a string (single error message) or an array of strings (if multiple errors should be applied to the field in question).
      Parameters:
        `errors` - list of errors as a map with the field names as keys
        `showErrors` - If true redraw form to display errors now. Otherwise errors can be displayed by calling `showErrors()` Note: When the errors are shown, handleHiddenValidationErrors() will be fired for errors on hidden fields, or with no associated formItem.

    - #### getErrors

          public java.util.Map getErrors()

      Returns the set of errors.
      Returns:
        errors. key is field name, value is error. Returns null if no errors are present

    - #### setFieldErrors

          public void setFieldErrors(java.lang.String fieldName,
                                     java.lang.String error,
                                     boolean showErrors)

      Set field validation error for some field. The showErrors parameter allows the errors to be displayed immediately. Alternatively, an explicit call to `showFieldErrors(java.lang.String)` will display the errors for this field.
      Parameters:
        `fieldName` - field to apply the new errors to
        `error` - error to apply to the field in question
        `showErrors` - If true this method will fall through to DynamicForm.showFieldErrors() to update the display

    - #### setFieldErrors

          public void setFieldErrors(java.lang.String fieldName,
                                     java.lang.String[] errors,
                                     boolean showErrors)

      Set field validation errors for some field. The showErrors parameter allows the errors to be displayed immediately. Alternatively, an explicit call to `showFieldErrors(java.lang.String)` will display the errors for this field.
      Parameters:
        `fieldName` - field to apply the new errors to
        `errors` - errors to apply to the field in question
        `showErrors` - If true this method will fall through to DynamicForm.showFieldErrors() to update the display

    - #### getFieldErrors

          public java.lang.String[] getFieldErrors(java.lang.String fieldName)

      Returns any validation errors for some field in this valuesManager. If no errors are present, will return null.
      Parameters:
        `fieldName` - the field name
      Returns:
        error messages for the field.

    - #### rememberValues

          public com.google.gwt.core.client.JavaScriptObject rememberValues()

      Make a snapshot of the current set of values, so we can reset to them later. Creates a new object, then adds all non-method properties of values to the new object. Use resetValues() to revert to these values. Note that this method is automatically called when the values for this form are set programmatically via a call to DynamicForm.setValues().
      Returns:
        copy of current form values

    - #### 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 mousepointer over an item's title and the title is clipped. Return null to suppress the hover canvas altogether.
      Parameters:
        `hoverFormatter` - the hover formatter
      See Also:
        `titleClipped(com.smartgwt.client.widgets.form.fields.FormItem)`

    - #### setItemValueHoverFormatter

          public void setItemValueHoverFormatter(FormItemHoverFormatter hoverFormatter)

      The `FormItemHoverFormatter` should return the HTML to display in a hover canvas when the user holds the mousepointer over an item's value and the value is clipped. Return null to suppress the hover canvas altogether.
      Parameters:
        `hoverFormatter` - the hover formatter
      See Also:
        `FormItem.valueClipped()`

    - #### setDataSource

          public void setDataSource(DataSource dataSource,
                                    FormItem... fields)

      Bind to a DataSource.

      Binding to a DataSource means that the component will use the DataSource to provide default data for its fields.

      When binding to a new DataSource, if the component has any existing "fields" or has a dataset, these will be discarded by default, since it is assumed the new DataSource may represent a completely unrelated set of objects. If the old "fields" are still relevant, pass them to setDataSource().

      Parameters:
        `dataSource` -
        `fields` -

    - #### setSkipConversionOnMapping

          public static void setSkipConversionOnMapping(java.lang.Boolean convert)

      Call this method passing true to skip conversion of the Javascript object to a Java Map when calling the mapDisplayToValue() API. By default, we do convert the value, and your methods will be returned a Java Map of native Java types. Passing true to this method switches off conversion, and your methods will be passed a JavaScriptObject
      Parameters:
        `convert` - Whether the mapDisplayTovalue() method should skip conversion of its return value to a native Java Map

    - #### getSkipConversionOnMapping

          public static java.lang.Boolean getSkipConversionOnMapping()

      Returns true if the system is set to skip conversion of the Javascript object to a Java Map when calling the mapDisplayToValue() API. See `setSkipConversionOnMapping(java.lang.Boolean)`
      Returns:
        Boolean indicating whether the mapDisplayTovalue() method will skip conversion of its return value to a native Java Map

    - #### setDataPageSize

          public void setDataPageSize(int dataPageSize)

      Description copied from interface: `DataBoundComponent`
      When using `data paging`, how many records to fetch at a time. If set to a positive integer, `dataPageSize` will override the default `resultSize` for ResultSets automatically created when you call `fetchData()` (and similarly for the `resultSize` of ResultTrees). The default of 0 means to just use the default page size of the data container.

      Note that regardless of the `dataPageSize` setting, a component will always fetch all of data that it needs to draw. Settings such as `showAllRecords:true`, `drawAllMaxCells` and `drawAheadRatio` can cause more rows than the configured `dataPageSize` to be fetched.

      Specified by:
        `setDataPageSize` in interface `DataBoundComponent`
      Parameters:
        `dataPageSize` - dataPageSize Default value is 0
      See Also:
        `Databinding overview and related methods`

    - #### getDataPageSize

          public int getDataPageSize()

      Description copied from interface: `DataBoundComponent`
      When using `data paging`, how many records to fetch at a time. If set to a positive integer, `dataPageSize` will override the default `resultSize` for ResultSets automatically created when you call `fetchData()` (and similarly for the `resultSize` of ResultTrees). The default of 0 means to just use the default page size of the data container.

      Note that regardless of the `dataPageSize` setting, a component will always fetch all of data that it needs to draw. Settings such as `showAllRecords:true`, `drawAllMaxCells` and `drawAheadRatio` can cause more rows than the configured `dataPageSize` to be fetched.

      Specified by:
        `getDataPageSize` in interface `DataBoundComponent`
      Returns:
        int
      See Also:
        `Databinding overview and related methods`

    - #### setUseAllDataSourceFields

          public void setUseAllDataSourceFields(java.lang.Boolean useAllDataSourceFields)

      Description copied from interface: `DataBoundComponent`
      If true, the set of fields given by the "default binding" (see `fields`) is used, with any fields specified in `component.fields` acting as overrides that can suppress or modify the display of individual fields, without having to list the entire set of fields that should be shown.

      If `component.fields` contains fields that are not found in the DataSource, they will be shown after the most recently referred to DataSource field. If the new fields appear first, they will be shown first.

      Specified by:
        `setUseAllDataSourceFields` in interface `DataBoundComponent`
      Parameters:
        `useAllDataSourceFields` - useAllDataSourceFields Default value is false

    - #### getUseAllDataSourceFields

          public java.lang.Boolean getUseAllDataSourceFields()

      Description copied from interface: `DataBoundComponent`
      If true, the set of fields given by the "default binding" (see `fields`) is used, with any fields specified in `component.fields` acting as overrides that can suppress or modify the display of individual fields, without having to list the entire set of fields that should be shown.

      If `component.fields` contains fields that are not found in the DataSource, they will be shown after the most recently referred to DataSource field. If the new fields appear first, they will be shown first.

      Specified by:
        `getUseAllDataSourceFields` in interface `DataBoundComponent`
      Returns:
        Boolean

    - #### setShowHiddenFields

          public void setShowHiddenFields(java.lang.Boolean showHiddenFields)

      Description copied from interface: `DataBoundComponent`
      Whether to show fields marked `hidden:true` when a DataBoundComponent is given a DataSource but no `component.fields`.

      The `hidden` property is used on DataSource fields to mark fields that are never of meaning to an end user.

      Specified by:
        `setShowHiddenFields` in interface `DataBoundComponent`
      Parameters:
        `showHiddenFields` - showHiddenFields Default value is false

    - #### getShowHiddenFields

          public java.lang.Boolean getShowHiddenFields()

      Description copied from interface: `DataBoundComponent`
      Whether to show fields marked `hidden:true` when a DataBoundComponent is given a DataSource but no `component.fields`.

      The `hidden` property is used on DataSource fields to mark fields that are never of meaning to an end user.

      Specified by:
        `getShowHiddenFields` in interface `DataBoundComponent`
      Returns:
        Boolean

    - #### setShowComplexFields

          public void setShowComplexFields(java.lang.Boolean showComplexFields)

      Description copied from interface: `DataBoundComponent`
      Whether to show fields of non-atomic types when a DataBoundComponent is given a DataSource but no `component.fields`.

      If true, the component will show fields that declare a complex type, for example, a field 'shippingAddress' that declares type 'Address', where 'Address' is the ID of a DataSource that declares the fields of a shipping address (city, street name, etc).

      Such fields may need custom formatters or editors in order to create a usable interface, for example, an Address field in a ListGrid might use a custom formatter to combine the relevant fields of an address into one column, and might use a pop-up dialog for editing.

      Note : This is an advanced setting

      Specified by:
        `setShowComplexFields` in interface `DataBoundComponent`
      Parameters:
        `showComplexFields` - showComplexFields Default value is true

    - #### getShowComplexFields

          public java.lang.Boolean getShowComplexFields()

      Description copied from interface: `DataBoundComponent`
      Whether to show fields of non-atomic types when a DataBoundComponent is given a DataSource but no `component.fields`.

      If true, the component will show fields that declare a complex type, for example, a field 'shippingAddress' that declares type 'Address', where 'Address' is the ID of a DataSource that declares the fields of a shipping address (city, street name, etc).

      Such fields may need custom formatters or editors in order to create a usable interface, for example, an Address field in a ListGrid might use a custom formatter to combine the relevant fields of an address into one column, and might use a pop-up dialog for editing.

      Specified by:
        `getShowComplexFields` in interface `DataBoundComponent`
      Returns:
        Boolean

    - #### setFetchOperation

          public void setFetchOperation(java.lang.String fetchOperation)

      Description copied from interface: `DataBoundComponent`
      Operation ID this component should use when performing fetch operations.
      Specified by:
        `setFetchOperation` in interface `DataBoundComponent`
      Parameters:
        `fetchOperation` - fetchOperation Default value is null

    - #### getFetchOperation

          public java.lang.String getFetchOperation()

      Description copied from interface: `DataBoundComponent`
      Operation ID this component should use when performing fetch operations.
      Specified by:
        `getFetchOperation` in interface `DataBoundComponent`
      Returns:
        String

    - #### setUpdateOperation

          public void setUpdateOperation(java.lang.String updateOperation)

      Description copied from interface: `DataBoundComponent`
      `operationId` this component should use when performing update operations.
      Specified by:
        `setUpdateOperation` in interface `DataBoundComponent`
      Parameters:
        `updateOperation` - Default value is null
      See Also:
        `Operations overview and related methods`

    - #### getUpdateOperation

          public java.lang.String getUpdateOperation()

      Description copied from interface: `DataBoundComponent`
      `operationId` this component should use when performing update operations.
      Specified by:
        `getUpdateOperation` in interface `DataBoundComponent`
      Returns:
        String
      See Also:
        `Operations overview and related methods`

    - #### setAddOperation

          public void setAddOperation(java.lang.String addOperation)

      Description copied from interface: `DataBoundComponent`
      `operationId` this component should use when performing add operations.
      Specified by:
        `setAddOperation` in interface `DataBoundComponent`
      Parameters:
        `addOperation` - Default value is null
      See Also:
        `Operations overview and related methods`

    - #### getAddOperation

          public java.lang.String getAddOperation()

      Description copied from interface: `DataBoundComponent`
      `operationId` this component should use when performing add operations.
      Specified by:
        `getAddOperation` in interface `DataBoundComponent`
      Returns:
        String
      See Also:
        `Operations overview and related methods`

    - #### setRemoveOperation

          public void setRemoveOperation(java.lang.String removeOperation)

      Description copied from interface: `DataBoundComponent`
      `operationId` this component should use when performing remove operations.
      Specified by:
        `setRemoveOperation` in interface `DataBoundComponent`
      Parameters:
        `removeOperation` - Default value is null
      See Also:
        `Operations overview and related methods`

    - #### getRemoveOperation

          public java.lang.String getRemoveOperation()

      Description copied from interface: `DataBoundComponent`
      `operationId` this component should use when performing remove operations.
      Specified by:
        `getRemoveOperation` in interface `DataBoundComponent`
      Returns:
        String
      See Also:
        `Operations overview and related methods`

    - #### setExportFields

          public void setExportFields(java.lang.String[] exportFields)

      Description copied from interface: `DataBoundComponent`
      The list of field-names to export. If provided, the field-list in the exported output is limited and sorted as per the list.

      If exportFields is not provided, the exported output includes all visible fields from this component, sorted as they appear.

      Specified by:
        `setExportFields` in interface `DataBoundComponent`
      Parameters:
        `exportFields` - exportFields Default value is null

    - #### getExportFields

          public java.lang.String[] getExportFields()

      Description copied from interface: `DataBoundComponent`
      The list of field-names to export. If provided, the field-list in the exported output is limited and sorted as per the list.

      If exportFields is not provided, the exported output includes all visible fields from this component, sorted as they appear.

      Specified by:
        `getExportFields` in interface `DataBoundComponent`
      Returns:
        the list of field-names to export.

    - #### setExportAll

          public void setExportAll(java.lang.Boolean exportAll)

      Description copied from interface: `DataBoundComponent`
      Setting exportAll to true prevents the component from passing its list of fields to the export call. The result is the export of all visible fields from `fields`.

      If exportAll is false, an export operation will first consider `exportFields`, if it's set, and fall back on all visible fields from `fields` otherwise.

      Specified by:
        `setExportAll` in interface `DataBoundComponent`
      Parameters:
        `exportAll` - exportAll Default value is false

    - #### getExportAll

          public java.lang.Boolean getExportAll()

      Description copied from interface: `DataBoundComponent`
      Setting exportAll to true prevents the component from passing its list of fields to the export call. The result is the export of all visible fields from `fields`.

      If exportAll is false, an export operation will first consider `exportFields`, if it's set, and fall back on all visible fields from `fields` otherwise.

      Specified by:
        `getExportAll` in interface `DataBoundComponent`
      Returns:
        Boolean

    - #### setPreventDuplicates

          public void setPreventDuplicates(java.lang.Boolean preventDuplicates)
                                    throws java.lang.IllegalStateException

      Description copied from interface: `DataBoundComponent`
      If set, detect and prevent duplicate records from being transferred to this component, either via drag and drop or via `DataBoundComponent.transferSelectedData(com.smartgwt.client.widgets.DataBoundComponent)`. When a duplicate transfer is detected, a dialog will appear showing the `duplicateDragMessage`.

      If the component either does not have a `DataSource` or has a DataSource with no `primaryKey` declared, duplicate checking is off by default. If duplicate checking is enabled, it looks for an existing record in the dataset that has all of the properties of the dragged record, and considers that a duplicate.

      For `DragDataAction`:"copy" where the target DataSource is related to the source DataSource by foreignKey, a duplicate means that the target list, as filtered by the current criteria, already has a record whose value for the foreignKey field matches the primaryKey of the record being transferred.

      For example, consider dragging "employees" to "teams", where "teams" has a field "teams.employeeId" which is a foreignKey pointing to "employees.id", and the target grid has search criteria causing it to show all the members of one team. A duplicate - adding an employee to the same team twice - is when the target grid's dataset contains an record with "employeeId" matching the "id" field of the dropped employee.

      Specified by:
        `setPreventDuplicates` in interface `DataBoundComponent`
      Parameters:
        `preventDuplicates` - preventDuplicates Default value is null
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getPreventDuplicates

          public java.lang.Boolean getPreventDuplicates()

      Description copied from interface: `DataBoundComponent`
      If set, detect and prevent duplicate records from being transferred to this component, either via drag and drop or via `DataBoundComponent.transferSelectedData(com.smartgwt.client.widgets.DataBoundComponent)`. When a duplicate transfer is detected, a dialog will appear showing the `duplicateDragMessage`.

      If the component either does not have a `DataSource` or has a DataSource with no `primaryKey` declared, duplicate checking is off by default. If duplicate checking is enabled, it looks for an existing record in the dataset that has all of the properties of the dragged record, and considers that a duplicate.

      For `DragDataAction`:"copy" where the target DataSource is related to the source DataSource by foreignKey, a duplicate means that the target list, as filtered by the current criteria, already has a record whose value for the foreignKey field matches the primaryKey of the record being transferred.

      For example, consider dragging "employees" to "teams", where "teams" has a field "teams.employeeId" which is a foreignKey pointing to "employees.id", and the target grid has search criteria causing it to show all the members of one team. A duplicate - adding an employee to the same team twice - is when the target grid's dataset contains an record with "employeeId" matching the "id" field of the dropped employee.

      Specified by:
        `getPreventDuplicates` in interface `DataBoundComponent`
      Returns:
        Boolean

    - #### setDuplicateDragMessage

          public void setDuplicateDragMessage(java.lang.String duplicateDragMessage)
                                       throws java.lang.IllegalStateException

      Description copied from interface: `DataBoundComponent`
      Message to show when a user attempts to transfer duplicate records into this component, and `preventDuplicates` is enabled. If set to null, duplicates will not be reported and the dragged duplicates will not be saved.
      Specified by:
        `setDuplicateDragMessage` in interface `DataBoundComponent`
      Parameters:
        `duplicateDragMessage` - duplicateDragMessage Default value is "Duplicates not allowed"
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getDuplicateDragMessage

          public java.lang.String getDuplicateDragMessage()

      Description copied from interface: `DataBoundComponent`
      Message to show when a user attempts to transfer duplicate records into this component, and `preventDuplicates` is enabled. If set to null, duplicates will not be reported and the dragged duplicates will not be saved.
      Specified by:
        `getDuplicateDragMessage` in interface `DataBoundComponent`
      Returns:
        String

    - #### setAddDropValues

          public void setAddDropValues(java.lang.Boolean addDropValues)

      Description copied from interface: `DataBoundComponent`
      Indicates whether to add "drop values" to items dropped on this component, if both the source and target widgets are databound, either to the same DataSource or to different DataSources that are related via a foreign key. "Drop values" are properties of the dropped item that you wish to change (and persist) as a result of the item being dropped on this grid.

      If this value is true and this component is databound, `DataBoundComponent.getDropValues()` will be called for every databound item dropped on this grid, and an update performed on the item

      Specified by:
        `setAddDropValues` in interface `DataBoundComponent`
      Parameters:
        `addDropValues` - addDropValues Default value is true

    - #### getAddDropValues

          public java.lang.Boolean getAddDropValues()

      Description copied from interface: `DataBoundComponent`
      Indicates whether to add "drop values" to items dropped on this component, if both the source and target widgets are databound, either to the same DataSource or to different DataSources that are related via a foreign key. "Drop values" are properties of the dropped item that you wish to change (and persist) as a result of the item being dropped on this grid.

      If this value is true and this component is databound, `DataBoundComponent.getDropValues()` will be called for every databound item dropped on this grid, and an update performed on the item

      Specified by:
        `getAddDropValues` in interface `DataBoundComponent`
      Returns:
        Boolean

    - #### setDropValues

          public void setDropValues(java.util.Map dropValues)

      Description copied from interface: `DataBoundComponent`
      When an item is dropped on this component, and `addDropValues` is true and both the source and target widgets are databound, either to the same DataSource or to different DataSources that are related via a foreign key, this object provides the "drop values" that Smart GWT will apply to the dropped object before updating it.

      If this property is not defined, Smart GWT defaults to returning the selection criteria currently in place for this component. Thus, any databound items (for example, rows from other grids bound to the same DataSource) dropped on the grid will, by default, be subjected to an update that makes them conform to the grid's current filter criteria.

      Note : This is an advanced setting

      Specified by:
        `setDropValues` in interface `DataBoundComponent`
      Parameters:
        `dropValues` - dropValues Default value is null

    - #### getDropValues

          public java.util.Map getDropValues()

      Description copied from interface: `DataBoundComponent`
      When an item is dropped on this component, and `addDropValues` is true and both the source and target widgets are databound, either to the same DataSource or to different DataSources that are related via a foreign key, this object provides the "drop values" that Smart GWT will apply to the dropped object before updating it.

      If this property is not defined, Smart GWT defaults to returning the selection criteria currently in place for this component. Thus, any databound items (for example, rows from other grids bound to the same DataSource) dropped on the grid will, by default, be subjected to an update that makes them conform to the grid's current filter criteria.

      Note : This is an advanced setting

      Specified by:
        `getDropValues` in interface `DataBoundComponent`
      Returns:
        Returns the "drop values" to apply to a record dropped on this component prior to update. Only applicable to databound components - see `dropValues` for more details. If multiple records are being dropped, this method is called for each of them in turn.

        This method returns the following:

        - Nothing, if `addDropValues` is false
        - dropValues, if that property is set. If the component's criteria object is applicable (as explained in the next item), it is merged into dropValues, with properties in dropValues taking precedence.
        - The component's criteria object, if the most recent textMatchStyle for the component was "exact" and it is simple criteria (ie, not an AdvancedCriteria object)
        - Otherwise nothing

        You can override this method if you need more complex setting of drop values than can be provided by simply supplying a dropValues object.

    - #### setProgressiveLoading

          public void setProgressiveLoading(java.lang.Boolean progressiveLoading)

      Indicates whether or not this component will load its data `progressively`
      Parameters:
        `progressiveLoading` -
      See Also:
        `ProgressiveLoading`, `DataSource.setProgressiveLoading(java.lang.Boolean)`

    - #### getProgressiveLoading

          public java.lang.Boolean getProgressiveLoading()

      Indicates whether or not this component will load its data `progressively`
      Returns:
      See Also:
        `ProgressiveLoading`, `DataSource.getProgressiveLoading()`

    - #### setUseFlatFields

          public void setUseFlatFields(java.lang.Boolean useFlatFields)
                                throws java.lang.IllegalStateException

      Description copied from interface: `DataBoundComponent`
      The `useFlatFields` flag causes all simple type fields anywhere in a nested set of DataSources to be exposed as a flat list for form binding.

      `useFlatFields` is typically used with imported metadata, such as `XMLTools.loadXMLSchema(java.lang.String, com.smartgwt.client.data.XSDLoadCallback)` from a `XMLTools.loadWSDL(java.lang.String, com.smartgwt.client.data.WSDLLoadCallback)`, as a means of eliminating levels of XML nesting that aren't meaningful in a user interface, without the cumbersome and fragile process of mapping form fields to XML structures.

      For example, having called `WebService.getInputDS(java.lang.String)` to retrieve the input message schema for a web service operation whose input message looks like this:

           <FindServices>
               <searchFor>search text</searchFor>
               <Options>
                   <caseSensitive>false</caseSensitive>
               </Options>
               <IncludeInSearch>
                   <serviceName>true</serviceName>
                   <documentation>true</documentation>
                   <keywords>true</keywords>
               </IncludeInSearch>
           </FindServices>

      Setting `useFlatFields` on a `DynamicForm` that is bound to this input message schema would result in 5 `FormItem` reflecting the 5 simple type fields in the message.

      For this form, the result of `getValues()` might look like:

          {
              searchFor: "search text",
              caseSensitive: false,
              serviceName: true,
              documentation : true,
              keywords : true
           }

      When contacting a `WebService`, these values can be automatically mapped to the structure of the input message for a web service operation by setting `useFlatFields` (for use with `WebService.callOperation(java.lang.String, java.util.Map, java.lang.String, com.smartgwt.client.data.WebServiceCallback)`) or by setting `useFlatFields` (for use with a `DataSource` that is `'bound to a WSDL web service'` via `wsOperation`).

      Using these two facilities in conjunction (component.useFlatFields and request.useFlatFields) allows gratuitous nesting to be consistently bypassed in both the user presentation and when providing the data for XML messages.

      You can also set `useFlatFields` to automatically enable "flattened" XML serialization (request.useFlatFields) for all DataSource requests of a particular operationType.

      Note that `useFlatFields` is not generally recommended for use with structures where multiple simple type fields exist with the same name, however if used with such a structure, the first field to use a given name wins. "first" means the first field encountered in a depth first search. "wins" means only the first field will be present as a field when data binding.

      Specified by:
        `setUseFlatFields` in interface `DataBoundComponent`
      Parameters:
        `useFlatFields` - useFlatFields Default value is null
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getUseFlatFields

          public java.lang.Boolean getUseFlatFields()

      Description copied from interface: `DataBoundComponent`
      The `useFlatFields` flag causes all simple type fields anywhere in a nested set of DataSources to be exposed as a flat list for form binding.

      `useFlatFields` is typically used with imported metadata, such as `XMLTools.loadXMLSchema(java.lang.String, com.smartgwt.client.data.XSDLoadCallback)` from a `XMLTools.loadWSDL(java.lang.String, com.smartgwt.client.data.WSDLLoadCallback)`, as a means of eliminating levels of XML nesting that aren't meaningful in a user interface, without the cumbersome and fragile process of mapping form fields to XML structures.

      For example, having called `WebService.getInputDS(java.lang.String)` to retrieve the input message schema for a web service operation whose input message looks like this:

           <FindServices>
               <searchFor>search text</searchFor>
               <Options>
                   <caseSensitive>false</caseSensitive>
               </Options>
               <IncludeInSearch>
                   <serviceName>true</serviceName>
                   <documentation>true</documentation>
                   <keywords>true</keywords>
               </IncludeInSearch>
           </FindServices>

      Setting `useFlatFields` on a `DynamicForm` that is bound to this input message schema would result in 5 `FormItem` reflecting the 5 simple type fields in the message.

      For this form, the result of `getValues()` might look like:

          {
              searchFor: "search text",
              caseSensitive: false,
              serviceName: true,
              documentation : true,
              keywords : true
           }

      When contacting a `WebService`, these values can be automatically mapped to the structure of the input message for a web service operation by setting `useFlatFields` (for use with `WebService.callOperation(java.lang.String, java.util.Map, java.lang.String, com.smartgwt.client.data.WebServiceCallback)`) or by setting `useFlatFields` (for use with a `DataSource` that is `'bound to a WSDL web service'` via `wsOperation`).

      Using these two facilities in conjunction (component.useFlatFields and request.useFlatFields) allows gratuitous nesting to be consistently bypassed in both the user presentation and when providing the data for XML messages.

      You can also set `useFlatFields` to automatically enable "flattened" XML serialization (request.useFlatFields) for all DataSource requests of a particular operationType.

      Note that `useFlatFields` is not generally recommended for use with structures where multiple simple type fields exist with the same name, however if used with such a structure, the first field to use a given name wins. "first" means the first field encountered in a depth first search. "wins" means only the first field will be present as a field when data binding.

      Specified by:
        `getUseFlatFields` in interface `DataBoundComponent`
      Returns:
        Boolean

    - #### setHiliteProperty

          public void setHiliteProperty(java.lang.String hiliteProperty)

      Description copied from interface: `DataBoundComponent`
      Marker that can be set on a record to flag that record as hilited. Should be set to a value that matches `id` for a hilite defined on this component.
      Specified by:
        `setHiliteProperty` in interface `DataBoundComponent`
      Parameters:
        `hiliteProperty` - hiliteProperty Default value is "_hilite"

    - #### getHiliteProperty

          public java.lang.String getHiliteProperty()

      Description copied from interface: `DataBoundComponent`
      Marker that can be set on a record to flag that record as hilited. Should be set to a value that matches `id` for a hilite defined on this component.
      Specified by:
        `getHiliteProperty` in interface `DataBoundComponent`
      Returns:
        String

    - #### editFields

          public void editFields()

      Shows a FieldPicker interface allowing end-users to rearrange the order and visibiility of the fields in the associated DataBoundComponent.

    - #### editHilites

          public void editHilites()

      Shows a HiliteEditor interface allowing end-users to edit the data-hilites currently in use by this DataBoundComponent.
      Specified by:
        `editHilites` in interface `DataBoundComponent`

    - #### getHiliteState

          public java.lang.String getHiliteState()

      Get the current hilites encoded as a String, for saving.
      Specified by:
        `getHiliteState` in interface `DataBoundComponent`
      Returns:
        the hilite state

    - #### setHiliteState

          public void setHiliteState(java.lang.String hiliteState)

      Set the current hilites based on a hiliteState String previously returned from getHilitesState.
      Specified by:
        `setHiliteState` in interface `DataBoundComponent`
      Parameters:
        `hiliteState` - hilites state encoded as a String

    - #### setHilites

          public void setHilites(Hilite[] hilites)

      Accepts an array of hilite objects and applies them to this DataBoundComponent. See also `getHilites` for a method of retrieving the hilite array for storage, including hilites manually added by the user.
      Specified by:
        `setHilites` in interface `DataBoundComponent`
      Parameters:
        `hilites` - array of hilite objects

    - #### getHilites

          public Hilite[] getHilites()

      Return the set of hilite-objects currently applied to this DataBoundComponent. These can be saved for storage and then restored to a component later via setHilites().
      Specified by:
        `getHilites` in interface `DataBoundComponent`
      Returns:
        array of hilite objects

    - #### setDragDataAction

          public void setDragDataAction(DragDataAction dragDataAction)

      Description copied from interface: `DataBoundComponent`
      Indicates what to do with data dragged into another DataBoundComponent. See DragDataAction type for details.
      Specified by:
        `setDragDataAction` in interface `DataBoundComponent`
      Parameters:
        `dragDataAction` - dragDataAction Default value is Canvas.MOVE

    - #### getDragDataAction

          public DragDataAction getDragDataAction()

      Description copied from interface: `DataBoundComponent`
      Indicates what to do with data dragged into another DataBoundComponent. See DragDataAction type for details.
      Specified by:
        `getDragDataAction` in interface `DataBoundComponent`
      Returns:
        DragDataAction

    - #### setDragTrackerStyle

          public void setDragTrackerStyle(java.lang.String dragTrackerStyle)

      Description copied from interface: `DataBoundComponent`
      CSS Style to apply to the drag tracker when dragging occurs on this component.
      Specified by:
        `setDragTrackerStyle` in interface `DataBoundComponent`
      Parameters:
        `dragTrackerStyle` - dragTrackerStyle Default value is "gridDragTracker"

    - #### getDragTrackerStyle

          public java.lang.String getDragTrackerStyle()

      Description copied from interface: `DataBoundComponent`
      CSS Style to apply to the drag tracker when dragging occurs on this component.
      Specified by:
        `getDragTrackerStyle` in interface `DataBoundComponent`
      Returns:
        String

    - #### setCanAddFormulaFields

          public void setCanAddFormulaFields(java.lang.Boolean canAddFormulaFields)

      Description copied from interface: `DataBoundComponent`
      Adds an item to the header context menu allowing users to launch a dialog to define a new field based on values present in other fields, using the `com.smartgwt.client..FormulaBuilder`.

      User-added formula fields can be persisted via `ListGrid.getFieldState()` and `ListGrid.setFieldState(java.lang.String)`.

      Specified by:
        `setCanAddFormulaFields` in interface `DataBoundComponent`
      Parameters:
        `canAddFormulaFields` - canAddFormulaFields Default value is false

    - #### addSummaryField

          public void addSummaryField()

      Description copied from interface: `DataBoundComponent`
      Convenience method to display a `com.smartgwt.client..SummaryBuilder` to create a new Summary Field. This is equivalent to calling `DataBoundComponentGen#editSummaryField` with no parameter.
      Specified by:
        `addSummaryField` in interface `DataBoundComponent`

    - #### addFormulaField

          public void addFormulaField()

      Description copied from interface: `DataBoundComponent`
      Convenience method to display a `com.smartgwt.client..FormulaBuilder` to create a new Formula Field. This is equivalent to calling `DataBoundComponentGen#editFormulaField` with no parameter.
      Specified by:
        `addFormulaField` in interface `DataBoundComponent`

    - #### getCanAddFormulaFields

          public java.lang.Boolean getCanAddFormulaFields()

      Description copied from interface: `DataBoundComponent`
      Adds an item to the header context menu allowing users to launch a dialog to define a new field based on values present in other fields, using the `com.smartgwt.client..FormulaBuilder`.

      User-added formula fields can be persisted via `ListGrid.getFieldState()` and `ListGrid.setFieldState(java.lang.String)`.

      Specified by:
        `getCanAddFormulaFields` in interface `DataBoundComponent`
      Returns:
        Boolean

    - #### setAddFormulaFieldText

          public void setAddFormulaFieldText(java.lang.String addFormulaFieldText)

      Description copied from interface: `DataBoundComponent`
      Text for a menu item allowing users to add a formula field
      Specified by:
        `setAddFormulaFieldText` in interface `DataBoundComponent`
      Parameters:
        `addFormulaFieldText` - addFormulaFieldText Default value is "Add formula column..."

    - #### getAddFormulaFieldText

          public java.lang.String getAddFormulaFieldText()

      Description copied from interface: `DataBoundComponent`
      Text for a menu item allowing users to add a formula field
      Specified by:
        `getAddFormulaFieldText` in interface `DataBoundComponent`
      Returns:
        String

    - #### setEditFormulaFieldText

          public void setEditFormulaFieldText(java.lang.String editFormulaFieldText)

      Description copied from interface: `DataBoundComponent`
      Text for a menu item allowing users to edit a formula field
      Specified by:
        `setEditFormulaFieldText` in interface `DataBoundComponent`
      Parameters:
        `editFormulaFieldText` - editFormulaFieldText Default value is "Edit formula..."

    - #### getEditFormulaFieldText

          public java.lang.String getEditFormulaFieldText()

      Description copied from interface: `DataBoundComponent`
      Text for a menu item allowing users to edit a formula field
      Specified by:
        `getEditFormulaFieldText` in interface `DataBoundComponent`
      Returns:
        String

    - #### setCanAddSummaryFields

          public void setCanAddSummaryFields(java.lang.Boolean canAddSummaryFields)

      Description copied from interface: `DataBoundComponent`
      Adds an item to the header context menu allowing users to launch a dialog to define a new text field that can contain both user-defined text and the formatted values present in other fields, using the `com.smartgwt.client..SummaryBuilder`.

      User-added summary fields can be persisted via `ListGrid.getFieldState()` and `ListGrid.setFieldState(java.lang.String)`.

      Specified by:
        `setCanAddSummaryFields` in interface `DataBoundComponent`
      Parameters:
        `canAddSummaryFields` - canAddSummaryFields Default value is false

    - #### getCanAddSummaryFields

          public java.lang.Boolean getCanAddSummaryFields()

      Description copied from interface: `DataBoundComponent`
      Adds an item to the header context menu allowing users to launch a dialog to define a new text field that can contain both user-defined text and the formatted values present in other fields, using the `com.smartgwt.client..SummaryBuilder`.

      User-added summary fields can be persisted via `ListGrid.getFieldState()` and `ListGrid.setFieldState(java.lang.String)`.

      Specified by:
        `getCanAddSummaryFields` in interface `DataBoundComponent`
      Returns:
        Boolean

    - #### setAddSummaryFieldText

          public void setAddSummaryFieldText(java.lang.String addSummaryFieldText)

      Description copied from interface: `DataBoundComponent`
      Text for a menu item allowing users to add a formula field
      Specified by:
        `setAddSummaryFieldText` in interface `DataBoundComponent`
      Parameters:
        `addSummaryFieldText` - addSummaryFieldText Default value is "Add summary column..."

    - #### getAddSummaryFieldText

          public java.lang.String getAddSummaryFieldText()

      Description copied from interface: `DataBoundComponent`
      Text for a menu item allowing users to add a formula field
      Specified by:
        `getAddSummaryFieldText` in interface `DataBoundComponent`
      Returns:
        String

    - #### setEditSummaryFieldText

          public void setEditSummaryFieldText(java.lang.String editSummaryFieldText)

      Description copied from interface: `DataBoundComponent`
      Text for a menu item allowing users to edit the formatter for a field
      Specified by:
        `setEditSummaryFieldText` in interface `DataBoundComponent`
      Parameters:
        `editSummaryFieldText` - editSummaryFieldText Default value is "Edit summary format..."

    - #### getEditSummaryFieldText

          public java.lang.String getEditSummaryFieldText()

      Description copied from interface: `DataBoundComponent`
      Text for a menu item allowing users to edit the formatter for a field
      Specified by:
        `getEditSummaryFieldText` in interface `DataBoundComponent`
      Returns:
        String

    - #### findAll

          public Record[] findAll(AdvancedCriteria adCriteria)

      Filters all objects according to the AdvancedCriteria passed
      Parameters:
        `adCriteria` - AdvancedCriteria to use to filter results
      Returns:
        all matching Objects or null if none found

    - #### find

          public Record find(AdvancedCriteria adCriteria)

      Filters all objects according to the AdvancedCriteria passed and returns the first matching object or null if not found
      Parameters:
        `adCriteria` - AdvancedCriteria to use to filter results
      Returns:
        first matching object or null if not found

    - #### findIndex

          public int findIndex(AdvancedCriteria adCriteria)

      Finds the index of the first Record that matches with the AdvacendCriteria passed.
      Parameters:
        `adCriteria` - AdvancedCriteria to use to filter results
      Returns:
        index of the first matching Record or -1 if not found

    - #### findNextIndex

          public int findNextIndex(int startIndex,
                                   AdvancedCriteria adCriteria,
                                   int endIndex)

      Like `RecordList.findIndex(java.util.Map)`, but considering the startIndex and endIndex parameters.
      Parameters:
        `startIndex` - first index to consider
        `adCriteria` - AdvancedCriteria to use to filter results
        `endIndex` - last index to consider
      Returns:
        index of the first matching Record or -1 if not found

    - #### findNextIndex

          public int findNextIndex(int startIndex,
                                   AdvancedCriteria adCriteria)

      Like `RecordList.findIndex(java.util.Map)`, but considering the startIndex parameter.
      Parameters:
        `startIndex` - first index to consider
        `adCriteria` - AdvancedCriteria to use to filter results
      Returns:
        index of the first matching Record or -1 if not found

    - #### selectRecord

          public void selectRecord(Record record)

      Description copied from interface: `DataBoundComponent`
      Select/deselect a `Record` passed in explicitly, or by index.
      Specified by:
        `selectRecord` in interface `DataBoundComponent`
      Parameters:
        `record` - record (or row number) to select

    - #### selectRecord

          public void selectRecord(int record)

      Description copied from interface: `DataBoundComponent`
      Select/deselect a `Record` passed in explicitly, or by index.
      Specified by:
        `selectRecord` in interface `DataBoundComponent`
      Parameters:
        `record` - record (or row number) to select

    - #### selectRecord

          public void selectRecord(int record,
                                   boolean newState)

      Description copied from interface: `DataBoundComponent`
      Select/deselect a `Record` passed in explicitly, or by index.
      Specified by:
        `selectRecord` in interface `DataBoundComponent`
      Parameters:
        `record` - record (or row number) to select
        `newState` - new selection state (if null, defaults to true)

    - #### selectRecord

          public void selectRecord(Record record,
                                   boolean newState)

      Description copied from interface: `DataBoundComponent`
      Select/deselect a `Record` passed in explicitly, or by index.
      Specified by:
        `selectRecord` in interface `DataBoundComponent`
      Parameters:
        `record` - record (or row number) to select
        `newState` - new selection state (if null, defaults to true)

    - #### selectRecords

          public void selectRecords(int[] records)

      Description copied from interface: `DataBoundComponent`
      Select/deselect a list of `Record`s passed in explicitly, or by index.
      Specified by:
        `selectRecords` in interface `DataBoundComponent`
      Parameters:
        `records` - records (or row numbers) to select

    - #### selectRecords

          public void selectRecords(int[] records,
                                    boolean newState)

      Description copied from interface: `DataBoundComponent`
      Select/deselect a list of `Record`s passed in explicitly, or by index.
      Specified by:
        `selectRecords` in interface `DataBoundComponent`
      Parameters:
        `records` - records (or row numbers) to select
        `newState` - new selection state

    - #### selectRecords

          public void selectRecords(Record[] records)

      Description copied from interface: `DataBoundComponent`
      Select/deselect a list of `Record`s passed in explicitly, or by index.
      Specified by:
        `selectRecords` in interface `DataBoundComponent`
      Parameters:
        `records` - records (or row numbers) to select

    - #### selectRecords

          public void selectRecords(Record[] records,
                                    boolean newState)

      Description copied from interface: `DataBoundComponent`
      Select/deselect a list of `Record`s passed in explicitly, or by index.
      Specified by:
        `selectRecords` in interface `DataBoundComponent`
      Parameters:
        `records` - records (or row numbers) to select
        `newState` - new selection state (if null, defaults to true)

    - #### deselectRecord

          public void deselectRecord(Record record)

      Description copied from interface: `DataBoundComponent`
      Deselect a `Record` passed in explicitly, or by index.

      Synonym for `selectRecord(record, false)`

      Specified by:
        `deselectRecord` in interface `DataBoundComponent`
      Parameters:
        `record` - record (or row number) to deselect

    - #### deselectRecord

          public void deselectRecord(int record)

      Description copied from interface: `DataBoundComponent`
      Deselect a `Record` passed in explicitly, or by index.

      Synonym for `selectRecord(record, false)`

      Specified by:
        `deselectRecord` in interface `DataBoundComponent`
      Parameters:
        `record` - record (or row number) to deselect

    - #### deselectRecords

          public void deselectRecords(int[] records)

      Description copied from interface: `DataBoundComponent`
      Deselect a list of `Record`s passed in explicitly, or by index.

      Synonym for `selectRecords(records, false)`

      Specified by:
        `deselectRecords` in interface `DataBoundComponent`
      Parameters:
        `records` - records (or row numbers) to deselect

    - #### deselectRecords

          public void deselectRecords(Record[] records)

      Description copied from interface: `DataBoundComponent`
      Deselect a list of `Record`s passed in explicitly, or by index.

      Synonym for `selectRecords(records, false)`

      Specified by:
        `deselectRecords` in interface `DataBoundComponent`
      Parameters:
        `records` - records (or row numbers) to deselect

    - #### selectAllRecords

          public void selectAllRecords()

      Description copied from interface: `DataBoundComponent`
      Select all records
      Specified by:
        `selectAllRecords` in interface `DataBoundComponent`

    - #### deselectAllRecords

          public void deselectAllRecords()

      Description copied from interface: `DataBoundComponent`
      Deselect all records
      Specified by:
        `deselectAllRecords` in interface `DataBoundComponent`

    - #### anySelected

          public java.lang.Boolean anySelected()

      Description copied from interface: `DataBoundComponent`
      Whether at least one item is selected
      Specified by:
        `anySelected` in interface `DataBoundComponent`
      Returns:
        true == at least one item is selected false == nothing at all is selected

    - #### enableHilite

          public void enableHilite(java.lang.String hiliteID)

      Description copied from interface: `DataBoundComponent`
      Enable / disable a `hilites`
      Specified by:
        `enableHilite` in interface `DataBoundComponent`
      Parameters:
        `hiliteID` - ID of hilite to enable

    - #### enableHilite

          public void enableHilite(java.lang.String hiliteID,
                                   boolean enable)

      Description copied from interface: `DataBoundComponent`
      Enable / disable a `hilites`
      Specified by:
        `enableHilite` in interface `DataBoundComponent`
      Parameters:
        `hiliteID` - ID of hilite to enable
        `enable` - new enabled state to apply - if null, defaults to true

    - #### disableHilite

          public void disableHilite(java.lang.String hiliteID)

      Description copied from interface: `DataBoundComponent`
      Disable a hilite
      Specified by:
        `disableHilite` in interface `DataBoundComponent`
      Parameters:
        `hiliteID` - ID of hilite to disable

    - #### enableHiliting

          public void enableHiliting()

      Description copied from interface: `DataBoundComponent`
      Enable all hilites.
      Specified by:
        `enableHiliting` in interface `DataBoundComponent`

    - #### enableHiliting

          public void enableHiliting(boolean enable)

      Description copied from interface: `DataBoundComponent`
      Enable all hilites.
      Specified by:
        `enableHiliting` in interface `DataBoundComponent`
      Parameters:
        `enable` - new enabled state to apply - if null, defaults to true

    - #### disableHiliting

          public void disableHiliting()

      Description copied from interface: `DataBoundComponent`
      Disable all hilites.
      Specified by:
        `disableHiliting` in interface `DataBoundComponent`

    - #### getDragData

          public Record[] getDragData()

      Description copied from interface: `DataBoundComponent`
      During a drag-and-drop interaction, this method returns the set of records being dragged out of the component. In the default implementation, this is the list of currently selected records.

      This method is consulted by `ListGrid.willAcceptDrop()`.

      Specified by:
        `getDragData` in interface `DataBoundComponent`
      Returns:
        Array of `Record`s that are currently selected.

    - #### transferSelectedData

          public void transferSelectedData(DataBoundComponent source)

      Description copied from interface: `DataBoundComponent`
      Simulates a drag / drop type transfer of the selected records in some other component to this component, without requiring any user interaction. This method acts on the dropped records exactly as if they had been dropped in an actual drag / drop interaction, including any special databound behavior invoked by calling `DataBoundComponent.getDropValues()` for each dropped record.

      To transfer all data in, for example, a `ListGrid`, call grid.selection.selectAll() first.

      Note that drag/drop type transfers of records between components are asynchronous operations: Smart GWT may need to perform server turnarounds to establish whether dropped records already exist in the target component. Therefore, it is possible to issue a call to `transferSelectedData()` and/or the `drop()` method of a databound component whilst a transfer is still active. When this happens, Smart GWT adds the second and subsequent transfer requests to a queue and runs them one after the other. If you want to be notified when a transfer process has actually completed, use `addDropCompleteHandler`. See the `Dragging` documentation for an overview of list grid drag/drop data transfer.

      Specified by:
        `transferSelectedData` in interface `DataBoundComponent`
      Parameters:
        `source` - source component from which the records will be tranferred

    - #### transferSelectedData

          public void transferSelectedData(DataBoundComponent source,
                                           int index)

      Description copied from interface: `DataBoundComponent`
      Simulates a drag / drop type transfer of the selected records in some other component to this component, without requiring any user interaction. This method acts on the dropped records exactly as if they had been dropped in an actual drag / drop interaction, including any special databound behavior invoked by calling `DataBoundComponent.getDropValues()` for each dropped record.

      To transfer all data in, for example, a `ListGrid`, call grid.selection.selectAll() first.

      Note that drag/drop type transfers of records between components are asynchronous operations: Smart GWT may need to perform server turnarounds to establish whether dropped records already exist in the target component. Therefore, it is possible to issue a call to `transferSelectedData()` and/or the `drop()` method of a databound component whilst a transfer is still active. When this happens, Smart GWT adds the second and subsequent transfer requests to a queue and runs them one after the other. If you want to be notified when a transfer process has actually completed, use `addDropCompleteHandler`. See the `Dragging` documentation for an overview of list grid drag/drop data transfer.

      Specified by:
        `transferSelectedData` in interface `DataBoundComponent`
      Parameters:
        `source` - source component from which the records will be transferred
        `index` - target index (drop position) of the rows within this grid.

    - #### getRecordIndex

          public int getRecordIndex(Record record)

      Description copied from interface: `DataBoundComponent`
      Get the index of the provided record.

      Override in subclasses to provide more specific behaviour, for instance, when data holds a large number of records

      Specified by:
        `getRecordIndex` in interface `DataBoundComponent`
      Parameters:
        `record` - the record whose index is to be retrieved
      Returns:
        indexindex of the record, or -1 if not found

    - #### getTitleFieldValue

          public java.lang.String getTitleFieldValue(Record record)

      Description copied from interface: `DataBoundComponent`
      Get the value of the titleField for the passed record

      Override in subclasses

      Specified by:
        `getTitleFieldValue` in interface `DataBoundComponent`
      Parameters:
        `record` - the record whose index is to be retrieved
      Returns:
        valuethe value of the titleField for the passed record

    - #### setTitleField

          public void setTitleField(java.lang.String titleField)

      Description copied from interface: `DataBoundComponent`
      Sets the best field to use for a user-visible title for an individual record from this component.
      Specified by:
        `setTitleField` in interface `DataBoundComponent`

    - #### getTitleField

          public java.lang.String getTitleField()

      Description copied from interface: `DataBoundComponent`
      Method to return the fieldName which represents the "title" for records in this Component.
      If this.titleField is explicitly specified it will always be used. Otherwise, default implementation will check `titleField` for databound components.
      For non databound components returns the first defined field name of `"title"`, `"name"`, or `"id"`. If we dont find any field-names that match these titles, the first field in the component will be used instead.
      Specified by:
        `getTitleField` in interface `DataBoundComponent`
      Returns:
        fieldName the title field for this component.

    - #### getDataSource

          public DataSource getDataSource()

      Description copied from interface: `DataBoundComponent`
      The DataSource that this component should bind to for default fields and for performing `DataSource requests`.
      Specified by:
        `getDataSource` in interface `DataBoundComponent`
      Returns:
        DataSource

    - #### setAutoFetchData

          public void setAutoFetchData(java.lang.Boolean autoFetchData)
                                throws java.lang.IllegalStateException

      Description copied from interface: `DataBoundComponent`
      If true, when this component is first drawn, automatically call `DataBoundComponent.fetchData()` or `DataBoundComponent.filterData()` depending on `DataBoundComponent.getAutoFetchAsFilter()` . Criteria for this fetch may be picked up from `initialCriteria` and textMatchStyle may be specified via `DataBoundComponent.getAutoFetchTextMatchStyle()`.

      NOTE: If autoFetchData is set, calling ListGrid.fetchData() before draw will cause two requests to be issued, one from the manual call to fetchData() and one from the autoFetchData setting. The second request will use only `initialCriteria` and not any other criteria or settings from the first request. Generally, turn off autoFetchData if you are going to manually call fetchData() at any time.

      Specified by:
        `setAutoFetchData` in interface `DataBoundComponent`
      Parameters:
        `autoFetchData` - autoFetchData
      Throws:
        `java.lang.IllegalStateException`

    - #### getAutoFetchData

          public java.lang.Boolean getAutoFetchData()

      Description copied from interface: `DataBoundComponent`
      If true, when this component is first drawn, automatically call `DataBoundComponent.fetchData()` or `DataBoundComponent.filterData()` depending on `DataBoundComponent.getAutoFetchAsFilter()` . Criteria for this fetch may be picked up from `initialCriteria` and textMatchStyle may be specified via `DataBoundComponent.getAutoFetchTextMatchStyle()`.

      NOTE: If autoFetchData is set, calling ListGrid.fetchData() before draw will cause two requests to be issued, one from the manual call to fetchData() and one from the autoFetchData setting. The second request will use only `initialCriteria` and not any other criteria or settings from the first request. Generally, turn off autoFetchData if you are going to manually call fetchData() at any time.

      Specified by:
        `getAutoFetchData` in interface `DataBoundComponent`
      Returns:
        autoFetchData autoFetchData

    - #### setAutoFetchTextMatchStyle

          public void setAutoFetchTextMatchStyle(TextMatchStyle autoFetchTextMatchStyle)
                                          throws java.lang.IllegalStateException

      Description copied from interface: `DataBoundComponent`
      If `autoFetchData` is `true`, this attribute allows the developer to specify a textMatchStyle for the initial `DataBoundComponent.fetchData()` call.
      Specified by:
        `setAutoFetchTextMatchStyle` in interface `DataBoundComponent`
      Throws:
        `java.lang.IllegalStateException`

    - #### getAutoFetchTextMatchStyle

          public TextMatchStyle getAutoFetchTextMatchStyle()

      Description copied from interface: `DataBoundComponent`
      If `autoFetchData` is `true`, this attribute allows the developer to specify a textMatchStyle for the initial `DataBoundComponent.fetchData()` call.
      Specified by:
        `getAutoFetchTextMatchStyle` in interface `DataBoundComponent`
      Returns:
        autoFetchTextMatchStyle autoFetchTextMatchStyle

    - #### setAutoFetchAsFilter

          public void setAutoFetchAsFilter(java.lang.Boolean autoFetchAsFilter)
                                    throws java.lang.IllegalStateException

      Description copied from interface: `DataBoundComponent`
      If `DataBoundComponent.setAutoFetchData(Boolean)` is true, this attribute determines whether the initial fetch operation should be performed via `DataBoundComponent.fetchData()` or `DataBoundComponent.filterData()`
      Specified by:
        `setAutoFetchAsFilter` in interface `DataBoundComponent`
      Parameters:
        `autoFetchAsFilter` - autoFetchAsFilter
      Throws:
        `java.lang.IllegalStateException`

    - #### getAutoFetchAsFilter

          public java.lang.Boolean getAutoFetchAsFilter()

      Description copied from interface: `DataBoundComponent`
      If `DataBoundComponent.setAutoFetchData(Boolean)` is true, this attribute determines whether the initial fetch operation should be performed via `DataBoundComponent.fetchData()` or `DataBoundComponent.filterData()`
      Specified by:
        `getAutoFetchAsFilter` in interface `DataBoundComponent`
      Returns:
        auto fetch as filter

    - #### setInitialCriteria

          public void setInitialCriteria(Criteria initialCriteria)
                                  throws java.lang.IllegalStateException

      Description copied from interface: `DataBoundComponent`
      Criteria to use when `DataBoundComponent.setAutoFetchData(Boolean)` is used.
      Specified by:
        `setInitialCriteria` in interface `DataBoundComponent`
      Parameters:
        `initialCriteria` - the initial criteria
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getInitialCriteria

          public Criteria getInitialCriteria()

      Description copied from interface: `DataBoundComponent`
      Criteria to use when `DataBoundComponent.setAutoFetchData(Boolean)` is used.
      Specified by:
        `getInitialCriteria` in interface `DataBoundComponent`
      Returns:
        the criteria

    - #### fetchData

          public void fetchData()

      Description copied from interface: `DataBoundComponent`
      Retrieves data from the DataSource that matches the specified criteria.

      When `fetchData()` is first called, if data has not already been provided via `setData()`, this method will create a `ResultSet`, which will be configured based on component settings such as `fetchOperation` and `dataPageSize`, as well as the general purpose `dataProperties`. The created ResultSet will automatically send a DSRequest to retrieve data from the dataSource, and from then on will automatically manage paging through large datasets, as well as performing filtering and sorting operations inside the browser when possible - see the ResultSet docs for details.

      NOTE: do not use both `autoFetchData` and a call to `fetchData()` - this may result in two DSRequests to fetch data. Use either `autoFetchData` and `setAutoFetchCriteria()` or a manual call to fetchData() passing criteria.

      Whether a ResultSet was automatically created or provided via `setData()`, subsequent calls to fetchData() will simply call `resultSet.setCriteria()`.

      Changes to criteria may or may not result in a DSRequest to the server due to client-side filtering. You can call `willFetchData(criteria)` to determine if new criteria will result in a server fetch.

      If you need to force data to be re-fetched, you can call `invalidateCache()` and new data will automatically be fetched from the server using the current criteria and sort direction. NOTE: when using `invalidateCache()` there is no need to also call `fetchData()` and in fact this could produce unexpected results.

      This method takes an optional callback parameter (set to a `DSCallback`) to fire when the fetch completes. Note that this callback will not fire if no server fetch is performed. In this case the data is updated synchronously, so as soon as this method completes you can interact with the new data. If necessary, you can use `resultSet.willFetchData()` to determine whether or not a server fetch will occur when `fetchData()` is called with new criteria.

      In addition to the callback parameter for this method, developers can use `resultSet.addDataArrivedHandler` to be notified every time data is loaded.

      Specified by:
        `fetchData` in interface `DataBoundComponent`

    - #### fetchData

          public void fetchData(Criteria criteria)

      Description copied from interface: `DataBoundComponent`
      Retrieves data from the DataSource that matches the specified criteria.

      When `fetchData()` is first called, if data has not already been provided via `setData()`, this method will create a `ResultSet`, which will be configured based on component settings such as `fetchOperation` and `dataPageSize`, as well as the general purpose `dataProperties`. The created ResultSet will automatically send a DSRequest to retrieve data from the dataSource, and from then on will automatically manage paging through large datasets, as well as performing filtering and sorting operations inside the browser when possible - see the ResultSet docs for details.

      NOTE: do not use both `autoFetchData` and a call to `fetchData()` - this may result in two DSRequests to fetch data. Use either `autoFetchData` and `setAutoFetchCriteria()` or a manual call to fetchData() passing criteria.

      Whether a ResultSet was automatically created or provided via `setData()`, subsequent calls to fetchData() will simply call `resultSet.setCriteria()`.

      Changes to criteria may or may not result in a DSRequest to the server due to client-side filtering. You can call `willFetchData(criteria)` to determine if new criteria will result in a server fetch.

      If you need to force data to be re-fetched, you can call `invalidateCache()` and new data will automatically be fetched from the server using the current criteria and sort direction. NOTE: when using `invalidateCache()` there is no need to also call `fetchData()` and in fact this could produce unexpected results.

      This method takes an optional callback parameter (set to a `DSCallback`) to fire when the fetch completes. Note that this callback will not fire if no server fetch is performed. In this case the data is updated synchronously, so as soon as this method completes you can interact with the new data. If necessary, you can use `resultSet.willFetchData()` to determine whether or not a server fetch will occur when `fetchData()` is called with new criteria.

      In addition to the callback parameter for this method, developers can use `resultSet.addDataArrivedHandler` to be notified every time data is loaded.

      Specified by:
        `fetchData` in interface `DataBoundComponent`
      Parameters:
        `criteria` - Search criteria. If a `DynamicForm` is passed in as this argument instead of a raw criteria object, will be derived by calling `getValuesAsCriteria()`

    - #### fetchData

          public void fetchData(Criteria criteria,
                                DSCallback callback)

      Description copied from interface: `DataBoundComponent`
      Retrieves data from the DataSource that matches the specified criteria.

      When `fetchData()` is first called, if data has not already been provided via `setData()`, this method will create a `ResultSet`, which will be configured based on component settings such as `fetchOperation` and `dataPageSize`, as well as the general purpose `dataProperties`. The created ResultSet will automatically send a DSRequest to retrieve data from the dataSource, and from then on will automatically manage paging through large datasets, as well as performing filtering and sorting operations inside the browser when possible - see the ResultSet docs for details.

      NOTE: do not use both `autoFetchData` and a call to `fetchData()` - this may result in two DSRequests to fetch data. Use either `autoFetchData` and `setAutoFetchCriteria()` or a manual call to fetchData() passing criteria.

      Whether a ResultSet was automatically created or provided via `setData()`, subsequent calls to fetchData() will simply call `resultSet.setCriteria()`.

      Changes to criteria may or may not result in a DSRequest to the server due to client-side filtering. You can call `willFetchData(criteria)` to determine if new criteria will result in a server fetch.

      If you need to force data to be re-fetched, you can call `invalidateCache()` and new data will automatically be fetched from the server using the current criteria and sort direction. NOTE: when using `invalidateCache()` there is no need to also call `fetchData()` and in fact this could produce unexpected results.

      This method takes an optional callback parameter (set to a `DSCallback`) to fire when the fetch completes. Note that this callback will not fire if no server fetch is performed. In this case the data is updated synchronously, so as soon as this method completes you can interact with the new data. If necessary, you can use `resultSet.willFetchData()` to determine whether or not a server fetch will occur when `fetchData()` is called with new criteria.

      In addition to the callback parameter for this method, developers can use `resultSet.addDataArrivedHandler` to be notified every time data is loaded.

      Specified by:
        `fetchData` in interface `DataBoundComponent`
      Parameters:
        `criteria` - Search criteria. If a `DynamicForm` is passed in as this argument instead of a raw criteria object, will be derived by calling `getValuesAsCriteria()`
        `callback` - callback to invoke when a fetch is complete. Fires only if server contact was required

    - #### fetchData

          public void fetchData(Criteria criteria,
                                DSCallback callback,
                                DSRequest requestProperties)

      Description copied from interface: `DataBoundComponent`
      Retrieves data from the DataSource that matches the specified criteria.

      When `fetchData()` is first called, if data has not already been provided via `setData()`, this method will create a `ResultSet`, which will be configured based on component settings such as `fetchOperation` and `dataPageSize`, as well as the general purpose `dataProperties`. The created ResultSet will automatically send a DSRequest to retrieve data from the dataSource, and from then on will automatically manage paging through large datasets, as well as performing filtering and sorting operations inside the browser when possible - see the ResultSet docs for details.

      NOTE: do not use both `autoFetchData` and a call to `fetchData()` - this may result in two DSRequests to fetch data. Use either `autoFetchData` and `setAutoFetchCriteria()` or a manual call to fetchData() passing criteria.

      Whether a ResultSet was automatically created or provided via `setData()`, subsequent calls to fetchData() will simply call `resultSet.setCriteria()`.

      Changes to criteria may or may not result in a DSRequest to the server due to client-side filtering. You can call `willFetchData(criteria)` to determine if new criteria will result in a server fetch.

      If you need to force data to be re-fetched, you can call `invalidateCache()` and new data will automatically be fetched from the server using the current criteria and sort direction. NOTE: when using `invalidateCache()` there is no need to also call `fetchData()` and in fact this could produce unexpected results.

      This method takes an optional callback parameter (set to a `DSCallback`) to fire when the fetch completes. Note that this callback will not fire if no server fetch is performed. In this case the data is updated synchronously, so as soon as this method completes you can interact with the new data. If necessary, you can use `resultSet.willFetchData()` to determine whether or not a server fetch will occur when `fetchData()` is called with new criteria.

      In addition to the callback parameter for this method, developers can use `resultSet.addDataArrivedHandler` to be notified every time data is loaded.

      Specified by:
        `fetchData` in interface `DataBoundComponent`
      Parameters:
        `criteria` - Search criteria. If a `DynamicForm` is passed in as this argument instead of a raw criteria object, will be derived by calling `getValuesAsCriteria()`
        `callback` - callback to invoke when a fetch is complete. Fires only if server contact was required
        `requestProperties` - additional properties to set on the DSRequest that will be issued

    - #### filterData

          public void filterData()

      Description copied from interface: `DataBoundComponent`
      Retrieves data that matches the provided criteria and displays the matching data in this component.

      This method behaves exactly like `ListGrid.fetchData()` except that `textMatchStyle` is automatically set to "substring" so that String-valued fields are matched by case-insensitive substring comparison.

      Specified by:
        `filterData` in interface `DataBoundComponent`

    - #### filterData

          public void filterData(Criteria criteria)

      Description copied from interface: `DataBoundComponent`
      Retrieves data that matches the provided criteria and displays the matching data in this component.

      This method behaves exactly like `ListGrid.fetchData()` except that `textMatchStyle` is automatically set to "substring" so that String-valued fields are matched by case-insensitive substring comparison.

      Specified by:
        `filterData` in interface `DataBoundComponent`
      Parameters:
        `criteria` - Search criteria. If a `DynamicForm` is passed in as this argument instead of a raw criteria object, will be derived by calling `getValuesAsCriteria()`

    - #### filterData

          public void filterData(Criteria criteria,
                                 DSCallback callback)

      Description copied from interface: `DataBoundComponent`
      Retrieves data that matches the provided criteria and displays the matching data in this component.

      This method behaves exactly like `ListGrid.fetchData()` except that `textMatchStyle` is automatically set to "substring" so that String-valued fields are matched by case-insensitive substring comparison.

      Specified by:
        `filterData` in interface `DataBoundComponent`
      Parameters:
        `criteria` - Search criteria. If a `DynamicForm` is passed in as this argument instead of a raw criteria object, will be derived by calling `getValuesAsCriteria()`
        `callback` - callback to invoke when a fetch is complete. Fires only if server contact was required; see `DataBoundComponent.fetchData()` for details

    - #### filterData

          public void filterData(Criteria criteria,
                                 DSCallback callback,
                                 DSRequest requestProperties)

      Description copied from interface: `DataBoundComponent`
      Retrieves data that matches the provided criteria and displays the matching data in this component.

      This method behaves exactly like `ListGrid.fetchData()` except that `textMatchStyle` is automatically set to "substring" so that String-valued fields are matched by case-insensitive substring comparison.

      Specified by:
        `filterData` in interface `DataBoundComponent`
      Parameters:
        `criteria` - Search criteria. If a `DynamicForm` is passed in as this argument instead of a raw criteria object, will be derived by calling `getValuesAsCriteria()`
        `callback` - callback to invoke when a fetch is complete. Fires only if server contact was required; see `DataBoundComponent.fetchData()` for details
        `requestProperties` - for databound components only - optional additional properties to set on the DSRequest that will be issued

    - #### invalidateCache

          public void invalidateCache()

      Description copied from interface: `DataBoundComponent`
      Invalidate the current data cache for this databound component via a call to the dataset's `invalidateCache()` method, for example, `ResultSet.invalidateCache()`.

      NOTE: there is no need to call `invalidateCache()` when a save operation is performed on a DataSource. Automatic cache synchronization features will automatically update caches - see `ResultSet` for details. If automatic cache synchronization isn't working, troubleshoot the problem using the steps suggested in the FAQ rather than just calling invalidateCache(). Calling `invalidateCache()` unnecessarily causes extra server load and added code complexity.

      Calling `invalidateCache()` will automatically cause a new fetch to be performed with the current set of criteria if data had been previously fetched and the component is currently drawn with data visible - there is no need to manually call fetchData() after invalidateCache() and this could result in duplicate fetches.

      While data is being re-loaded after a call to `invalidateCache()`, the widget is in a state similar to initial data load - it doesn't know the total length of the dataset and any APIs that act on records or row indices will necessarily fail and should not be called. To detect that the widget is in this state, call `ResultSet.lengthIsKnown()`.

      `invalidateCache()` only has an effect if this component's dataset is a data manager class that manages a cache (eg ResultSet or ResultTree). If data was provided as a simple Array or List, invalidateCache() does nothing.

      Specified by:
        `invalidateCache` in interface `DataBoundComponent`
      See Also:
        `ListGrid.refreshData()`, `DataBoundComponentMethods overview and related methods`

    - #### getResultSet

          public ResultSet getResultSet()

      Description copied from interface: `DataBoundComponent`
      Return the underlying data of this DataBoundComponent as a `ResultSet`.

      Note that this method should only be called after initial data has been fetched by this DataBoundComponent.

      Specified by:
        `getResultSet` in interface `DataBoundComponent`
      Returns:
        ResultSet, or null if the underlying data is not a ResultSet
      See Also:
        `DataBoundComponent.fetchData()`

    - #### getRecordList

          public RecordList getRecordList()

      Description copied from interface: `DataBoundComponent`
      Return the underlying data of this DataBoundComponent as a `RecordList`.

      Depending on the component configuration, the actual JavaScript instance of the returned RecordList may be one of several types:

      - If the component is not bound to a `DataSource`, the instance is generally an Array of `Record`.
      - If the component is bound to a DataSource, the instance is a `ResultSet`.
      - If the component is a grouped ListGrid, the instance is a `Tree`. To access the ungrouped record list regardless of grouping status, use

            isGrouped() ? getOriginalRecordList() : getRecordList()

      - If the component is a `TreeGrid`, the instance is a ResultTree.
      The underlying type determines the structure of the returned data. An Array or ResultSet represents a list of records, but a Tree or ResultTree represents a list of open rows in the tree, including groups or other nodes which contain no records.
      Specified by:
        `getRecordList` in interface `DataBoundComponent`
      Returns:
        the RecordList

    - #### getDataAsJSList

          public com.google.gwt.core.client.JavaScriptObject getDataAsJSList()

      Specified by:
        `getDataAsJSList` in interface `DataBoundComponent`

    - #### exportData

          public void exportData()

      Description copied from interface: `DataBoundComponent`
      Uses a "fetch" operation on the current `DataSource` to retrieve data that matches the current filter and sort criteria for this component, then exports the resulting data to a file or window in the requested format.

      A variety of DSRequest settings, such as `exportAs` and `exportFilename`, affect the exporting process: see `exportResults` for further detail.

      Note that data exported via this method does not include any client-side formatting and relies on both the Smart GWT server and server-side DataSources. To export client-data with formatters applied, see `exportClientData`, which still requires the Smart GWT server but does not rely on server-side DataSources.

      For more information on exporting data, see `DataSource.exportData`.

      Specified by:
        `exportData` in interface `DataBoundComponent`
      See Also:
        `DataBoundComponentMethods overview and related methods`

    - #### exportData

          public void exportData(DSRequest requestProperties)

      Description copied from interface: `DataBoundComponent`
      Uses a "fetch" operation on the current `DataSource` to retrieve data that matches the current filter and sort criteria for this component, then exports the resulting data to a file or window in the requested format.

      A variety of DSRequest settings, such as `exportAs` and `exportFilename`, affect the exporting process: see `exportResults` for further detail.

      Note that data exported via this method does not include any client-side formatting and relies on both the Smart GWT server and server-side DataSources. To export client-data with formatters applied, see `exportClientData`, which still requires the Smart GWT server but does not rely on server-side DataSources.

      For more information on exporting data, see `DataSource.exportData`.

      Specified by:
        `exportData` in interface `DataBoundComponent`
      Parameters:
        `requestProperties` - additional properties to set on the DSRequest that will be issued
      See Also:
        `DataBoundComponentMethods overview and related methods`

    - #### addFetchDataHandler

          public com.google.gwt.event.shared.HandlerRegistration addFetchDataHandler(FetchDataHandler handler)

      Add a fetchData handler.

      Notification function fired on fetchData() or filterData()

      Specified by:
        `addFetchDataHandler` in interface `HasFetchDataHandlers`
      Parameters:
        `handler` - the filterData handler
      Returns:
        `HandlerRegistration` used to remove this handler

    - #### addDropCompleteHandler

          public com.google.gwt.event.shared.HandlerRegistration addDropCompleteHandler(DropCompleteHandler handler)

      Add a `com.smartgwt.client.widgets.DropCompleteHandler`. See that class's documentation for a definition of "drop complete", and how it differs from "drag complete" (`com.smartgwt.client.widgets.DragCompleteHandler`).
      Specified by:
        `addDropCompleteHandler` in interface `HasDropCompleteHandlers`
      Parameters:
        `handler` - the DropCompleteHandler
      Returns:
        `HandlerRegistration` used to remove this handler

    - #### addDragCompleteHandler

          public com.google.gwt.event.shared.HandlerRegistration addDragCompleteHandler(DragCompleteHandler handler)

      Add a `com.smartgwt.client.widgets.DragCompleteHandler`. See that class's documentation for a definition of "drag complete", and how it differs from "drop complete" (`com.smartgwt.client.widgets.DropCompleteHandler`).
      Specified by:
        `addDragCompleteHandler` in interface `HasDragCompleteHandlers`
      Parameters:
        `handler` - the DropCompleteHandler
      Returns:
        `HandlerRegistration` used to remove this handler

    - #### getFieldAlignments

          public Alignment[] getFieldAlignments()

      Description copied from interface: `DataBoundComponent`
      Returna an array of field alignments for this grid
      Specified by:
        `getFieldAlignments` in interface `DataBoundComponent`
      Returns:
        array of Alignments

    - #### getDeepCloneOnEdit

          public java.lang.Boolean getDeepCloneOnEdit()

      Description copied from interface: `DataBoundComponent`
      Before we start editing values in this DataBoundComponent, should we perform a deep clone of the underlying values. See `DataSource.getDeepCloneOnEdit()` for details of what this means.

      If this value is not explicitly set, it defaults to the DataSource `deepCloneOnEdit` value. This value can also be overridden per-field with `DataSourceField.setDeepCloneOnEdit(java.lang.Boolean)`.

      Like the other `deepCloneOnEdit` settings, this flag only has an effect if you are editing a values object that contains nested objects or arrays, using `Canvas.setDataPath(java.lang.String)`

      Specified by:
        `getDeepCloneOnEdit` in interface `DataBoundComponent`

    - #### setDeepCloneOnEdit

          public void setDeepCloneOnEdit(java.lang.Boolean deepCloneOnEdit)

      Description copied from interface: `DataBoundComponent`
      Before we start editing values in this DataBoundComponent, should we perform a deep clone of the underlying values. See `DataSource.getDeepCloneOnEdit()` for details of what this means.

      If this value is not explicitly set, it defaults to the DataSource `deepCloneOnEdit` value. This value can also be overridden per-field with `DataSourceField.setDeepCloneOnEdit(java.lang.Boolean)`.

      Like the other `deepCloneOnEdit` settings, this flag only has an effect if you are editing a values object that contains nested objects or arrays, using `Canvas.setDataPath(java.lang.String)`

      Specified by:
        `setDeepCloneOnEdit` in interface `DataBoundComponent`

    - #### setFields

          public void setFields(com.google.gwt.core.client.JavaScriptObject... fields)

      Description copied from interface: `DataBoundComponent`
      Field setter variant (alternative to `setFields(FormItem...)`, `setFields(ListGridField...)`, etc.) that will accept an array of JavaScriptObject, rather than an array of SmartGWT Java wrappers of the field class type (e.g. `FormItem`, `ListGridField`, etc.) This is an advanced method and only for cases where you have the JavaScriptObject for each field but want to avoid having to create each associated SmartGWT Java wrapper.

      Note: use `toArray()` to create a Java array of JavaScriptObject if you only have the array itself as a single JavaScriptObject.

      Specified by:
        `setFields` in interface `DataBoundComponent`
      Parameters:
        `fields` - the component fields

    - #### getFieldsAsJavaScriptObjects

          public com.google.gwt.core.client.JavaScriptObject[] getFieldsAsJavaScriptObjects()

      Description copied from interface: `DataBoundComponent`
      Return the fields as JavaScriptObjects rather than as SmartGWT Java wrappers of the field class type (e.g. `FormItem`, `ListGridField`, etc.) This avoids building the SmartGWT Java wrappers for the fields in situations where they aren't needed - and for FormItems in particular - where there may not be enough information to determine the correct subclass, such as before the SmartClient instance underlying the `DynamicForm` has been created.
      Specified by:
        `getFieldsAsJavaScriptObjects` in interface `DataBoundComponent`
      Returns:
        the component fields

    - #### getFieldCount

          public int getFieldCount()

      Description copied from interface: `DataBoundComponent`
      Return the number of fields.
      Specified by:
        `getFieldCount` in interface `DataBoundComponent`
      Returns:
        the number of fields

    - #### setLogicalStructure

          public com.smartgwt.logicalstructure.core.LogicalStructureObject setLogicalStructure(com.smartgwt.logicalstructure.widgets.form.DynamicFormLogicalStructure s)

      Setter implementing the `LogicalStructure` interface, which supports Eclipse's logical structure debugging facility.

    - #### getLogicalStructure

          public com.smartgwt.logicalstructure.core.LogicalStructureObject getLogicalStructure()

      Getter implementing the `LogicalStructure` interface, which supports Eclipse's logical structure debugging facility.
      Specified by:
        `getLogicalStructure` in interface `LogicalStructure`
      Overrides:
        `getLogicalStructure` in class `Canvas`