com.smartgwt.client.widgets.form.fields

## Class PickTreeItem

- java.lang.Object
- - com.smartgwt.client.core.JsObject
  - - com.smartgwt.client.core.DataClass
    - - com.smartgwt.client.core.RefDataClass
      - - com.smartgwt.client.widgets.form.fields.FormItem
        - - com.smartgwt.client.widgets.form.fields.CanvasItem
          - - com.smartgwt.client.widgets.form.fields.PickTreeItem

- All Implemented Interfaces:
    HasHandlers, HasBlurHandlers, HasCanEditChangedHandlers, HasChangedHandlers, HasChangeHandlers, HasClickHandlers, HasDoubleClickHandlers, HasEditorEnterHandlers, HasEditorExitHandlers, HasFocusHandlers, HasIconClickHandlers, HasIconKeyPressHandlers, HasItemHoverHandlers, HasKeyDownHandlers, HasKeyPressHandlers, HasKeyUpHandlers, HasPickerIconClickHandlers, HasReadOnlyDisplayChangedHandlers, HasShowValueHandlers, HasTitleClickHandlers, HasTitleDoubleClickHandlers, HasTitleHoverHandlers, HasValueHoverHandlers, HasValueIconClickHandlers
  Direct Known Subclasses:
    IPickTreeItem

      public class PickTreeItem
      extends CanvasItem

  FormItem that allows picking a value from a hierarchical data model.

- - ### Field Summary

    - ### Fields inherited from class com.smartgwt.client.widgets.form.fields.FormItem

      `scClassName`

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

      `id`

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

      `factoryCreated, factoryProperties`

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

      `jsObj`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PickTreeItem()`
    `PickTreeItem(JavaScriptObject jsObj)`
    `PickTreeItem(java.lang.String name)`
    `PickTreeItem(java.lang.String name, java.lang.String title)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `changeAutoChildDefaults(java.lang.String autoChildName, Canvas defaults)` Changes the defaults for Canvas AutoChildren named `autoChildName`.
    `static void` | `changeAutoChildDefaults(java.lang.String autoChildName, DrawItem defaults)` Changes the defaults for DrawItem AutoChildren named `autoChildName`.
    `static void` | `changeAutoChildDefaults(java.lang.String autoChildName, FormItem defaults)` Changes the defaults for FormItem AutoChildren named `autoChildName`.
    `static void` | `changePickerIconDefaults(FormItemIcon defaults)`
    `void` | `fetchData()` Only applies to databound items (see `optionDataSource`). Performs a fetch type operation on this item's DataSource to retrieve/refresh the tree of data displayed as rows in this items menu.
    `Canvas` | `getButton()` The visible button created by a PickTreeItem is an `com.smartgwt.client.types.AutoChild` of type `TreeMenuButton` by default.
    `java.lang.Boolean` | `getCanSelectParentItems()` If true, clicking or pressing Enter on a menu item that has a submenu will select that item (with standard behavior of hiding the menus, calling click handlers, etc) instead of showing the submenu.
    `DataSource` | `getDataSource()` The DataSource that this component should bind to for default fields and for performing `DSRequest`.
    `java.lang.String` | `getDisplayField()` Specifies an alternative field from which display values should be retrieved for this item.
    `java.lang.String` | `getEmptyDisplayValue()` Text to display when this form item has a null or undefined value.
    `java.lang.String` | `getEmptyMenuMessage()` This message will be displayed as a single, disabled option in any empty menu/submenu created from this item's data tree.
    `java.lang.Boolean` | `getLoadDataOnDemand()` If this is a databound item, should the load our set of possible options be loaded on demand (as submenus are displayed), or upfront?
    `DataSource` | `getOptionDataSource()` If set, this FormItem will map stored values to display values as though a `com.smartgwt.client.types.ValueMap` were specified, by fetching records from the specified `optionDataSource` and extracting the `valueField` and `displayField` in loaded records, to derive one valueMap entry per record loaded from the optionDataSource.
    `static PickTreeItem` | `getOrCreateRef(JavaScriptObject jsObj)`
    `ReadOnlyDisplayAppearance` | `getReadOnlyDisplay()` If `canEdit` is set to `false`, how should this item be displayed to the user?
    `java.lang.Boolean` | `getShouldSaveValue()` Should this item's value be saved in the form's values and hence returned from `form.getValues()`?
    `java.lang.String` | `getValueField()` Which field in the tree-data should be returned as this item's value? If unspecified, the path will be used
    `void` | `setCanSelectParentItems(java.lang.Boolean canSelectParentItems)` If true, clicking or pressing Enter on a menu item that has a submenu will select that item (with standard behavior of hiding the menus, calling click handlers, etc) instead of showing the submenu.
    `void` | `setDataProperties(Tree dataProperties)` For a `PickTreeItem` that uses a DataSource, these properties will be passed to the automatically-created ResultTree.
    `void` | `setDataSource(DataSource dataSource)` If specified, the tree of possible options will be derived from the dataSource as a ResultTree, rather than using this.valueTree.
    `static void` | `setDefaultProperties(PickTreeItem pickTreeItemProperties)` Class level method to set the default properties of this class.
    `void` | `setDisplayField(java.lang.String displayField)` Specifies an alternative field from which display values should be retrieved for this item.
    `void` | `setEmptyDisplayValue(java.lang.String emptyDisplayValue)` Text to display when this form item has a null or undefined value.
    `void` | `setEmptyMenuMessage(java.lang.String emptyMenuMessage)` This message will be displayed as a single, disabled option in any empty menu/submenu created from this item's data tree.
    `void` | `setLoadDataOnDemand(java.lang.Boolean loadDataOnDemand)` If this is a databound item, should the load our set of possible options be loaded on demand (as submenus are displayed), or upfront?
    `void` | `setOptionDataSource(DataSource optionDataSource)` If set, this FormItem will map stored values to display values as though a `com.smartgwt.client.types.ValueMap` were specified, by fetching records from the specified `optionDataSource` and extracting the `valueField` and `displayField` in loaded records, to derive one valueMap entry per record loaded from the optionDataSource.
    `void` | `setReadOnlyDisplay(ReadOnlyDisplayAppearance readOnlyDisplay)` If `canEdit` is set to `false`, how should this item be displayed to the user?
    `void` | `setShouldSaveValue(java.lang.Boolean shouldSaveValue)` Should this item's value be saved in the form's values and hence returned from `form.getValues()`?
    `void` | `setValueField(java.lang.String valueField)` Which field in the tree-data should be returned as this item's value? If unspecified, the path will be used
    `void` | `setValueTree(Tree valueTree)` A `Tree` of options from which the user can select.

    - ### Methods inherited from class com.smartgwt.client.widgets.form.fields.CanvasItem

      `addCanEditChangedHandler, addReadOnlyDisplayChangedHandler, addShowValueHandler, createCanvas, getApplyPromptToCanvas, getAutoDestroy, getCanvas, getEditCriteriaInInnerForm, getHeight, getHeightAsString, getMultiple, getOverflow, getPrompt, hasAdvancedCriteria, setApplyPromptToCanvas, setAutoDestroy, setCanEditCriterionPredicate, setCanvas, setCriterionGetter, setCriterionSetter, setDefaultProperties, setEditCriteriaInInnerForm, setHeight, setHeight, setMultiple, setOverflow, setPrompt, setShouldDisableCanvasCustomizer, setupCanvasConstructor, storeValue, storeValue, storeValue`

    - ### Methods inherited from class com.smartgwt.client.widgets.form.fields.FormItem

      `_getValue, addBlurHandler, addChangedHandler, addChangeHandler, addClickHandler, addDoubleClickHandler, addEditorEnterHandler, addEditorExitHandler, addFocusHandler, addIconClickHandler, addIconKeyPressHandler, addItemHoverHandler, addKeyDownHandler, addKeyPressHandler, addKeyUpHandler, addPickerIconClickHandler, addTitleClickHandler, addTitleDoubleClickHandler, addTitleHoverHandler, addValueHoverHandler, addValueIconClickHandler, asSGWTComponent, blurItem, canEditCriterion, clearValue, disable, enable, error, error, errorIfNotCreated, focusInItem, getAccessKey, getAlign, getAllowExpressions, getAlwaysFetchMissingValues, getApplyHeightToTextBox, getAriaRole, getAttribute, getAttributeAsBoolean, getAttributeAsBoolean, getAttributeAsDate, getAttributeAsDouble, getAttributeAsFloat, getAttributeAsInt, getAttributeAsJavaScriptObject, getAttributeAsObject, getAttributeAsString, getAutoComplete, getBrowserSpellCheck, getCanEdit, getCanEditOpaqueValues, getCanFocus, getCanSelectText, getCanvasAutoChild, getCellHeight, getCellStyle, getChangeOnKeypress, getClassName, getClipStaticValue, getClipTitle, getConfig, getContainerWidget, getControlStyle, getCriteriaField, getCriterion, getCriterion, getDataPath, getDateFormatter, getDecimalPad, getDecimalPrecision, getDefaultIconSrc, getDisabled, getDisableIconsOnReadOnly, getDisplayFieldName, getDisplayValue, getDisplayValue, getEditorTypeConfig, getEditPendingCSSText, getEditProxyConstructor, getEmptyValueIcon, getEndRow, getErrorIconHeight, getErrorIconSrc, getErrorIconWidth, getErrorMessageWidth, getExportFormat, getFetchMissingValues, getFieldName, getFilterLocally, getForeignDisplayField, getForm, getFormat, getFormItemAutoChild, getFullDataPath, getGlobalTabIndex, getHint, getHintStyle, getHoverAlign, getHoverDelay, getHoverHeight, getHoverOpacity, getHoverStyle, getHoverVAlign, getHoverWidth, getIcon, getIconHeight, getIconHSpace, getIconPageRect, getIconPrompt, getIconRect, getIconVAlign, getIconWidth, getImageURLPrefix, getImageURLSuffix, getImplicitSave, getImplicitSaveOnBlur, getInputFormat, getLeft, getLoadingDisplayValue, getLocateItemBy, getMultipleValueSeparator, getName, getOperator, getOptionCriteria, getOptionFilterContext, getOptionOperationId, getPageLeft, getPageRect, getPageTop, getPicker, getPickerIconHeight, getPickerIconName, getPickerIconPrompt, getPickerIconProperties, getPickerIconSrc, getPickerIconStyle, getPickerIconWidth, getPixelHeight, getPixelWidth, getPrintTextBoxStyle, getPrintTitleStyle, getReadOnlyTextBoxStyle, getRect, getRedrawOnChange, getRejectInvalidValueOnChange, getRequired, getRequiredMessage, getRowSpan, getSaveOnEnter, getScClassName, getSelectedRecord, getSelectOnClick, getSelectOnFocus, getShowClippedTitleOnHover, getShowClippedValueOnHover, getShowDisabled, getShowErrorIcon, getShowErrorStyle, getShowErrorText, getShowFocused, getShowFocusedErrorState, getShowFocusedIcons, getShowFocusedPickerIcon, getShowHint, getShowIcons, getShowOverIcons, getShowPickerIcon, getShowRTL, getShowTitle, getShowValueIconOnly, getStartRow, getStaticHeight, getStopOnError, getSuppressValueIcon, getSynchronousValidation, getTabIndex, getTextAlign, getTextBoxStyle, getTimeFormatter, getTitle, getTitleAlign, getTitleColSpan, getTitleOrientation, getTitleStyle, getTitleVAlign, getTooltip, getTop, getType, getValidateOnChange, getValidateOnExit, getValidOperators, getVAlign, getValue, getValueAsRecordList, getValueFieldName, getValueIconHeight, getValueIconLeftPadding, getValueIconRightPadding, getValueIconSize, getValueIconWidth, getVisible, getVisibleHeight, getVisibleWidth, getWidth, getWidthAsString, getWrapTitle, hide, hideIcon, invalidateDisplayValueCache, isCreated, isDisabled, isDrawn, isVisible, redraw, redraw, setAccessKey, setAlign, setAllowExpressions, setAlwaysFetchMissingValues, setApplyHeightToTextBox, setAriaRole, setAriaState, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAutoChildConstructor, setAutoChildProperties, setAutoChildProperties, setAutoChildProperties, setAutoChildVisibility, setAutoComplete, setBrowserSpellCheck, setCanEdit, setCanEditOpaqueValues, setCanFocus, setCanSelectText, setCellHeight, setCellStyle, setChangeOnKeypress, setClipStaticValue, setClipTitle, setColSpan, setColSpan, setControlStyle, setCriteriaField, setCriterion, setDataPath, setDateFormatter, setDecimalPad, setDecimalPrecision, setDefaultIconSrc, setDefaultProperties, setDefaultValue, setDefaultValue, setDefaultValue, setDefaultValue, setDefaultValue, setDefaultValue, setDefaultValue, setDisabled, setDisableIconsOnReadOnly, setDisplayFormat, setDisplayFormat, setEditorProperties, setEditorType, setEditorType, setEditorType, setEditorValueFormatter, setEditorValueParser, setEditPendingCSSText, setEditProxyConstructor, setEmptyValueIcon, setEndRow, setErrorFormatter, setErrorIconHeight, setErrorIconSrc, setErrorIconWidth, setErrorMessageWidth, setErrorOrientation, setExportFormat, setFetchMissingValues, setFilterLocally, setForeignDisplayField, setFormat, setGlobalTabIndex, setHint, setHintStyle, setHoverAlign, setHoverDelay, setHoverHeight, setHoverOpacity, setHoverStyle, setHoverVAlign, setHoverWidth, setIconHeight, setIconHSpace, setIconPrompt, setIcons, setIconVAlign, setIconWidth, setImageURLPrefix, setImageURLSuffix, setImplicitSave, setImplicitSaveOnBlur, setInitHandler, setInputFormat, setInputTransformer, setItemHoverFormatter, setItemTitleHoverFormatter, setItemValueHoverFormatter, setLeft, setLoadingDisplayValue, setLocateItemBy, setMultipleValueSeparator, setName, setNullProperty, setOperator, setOptionCriteria, setOptionFilterContext, setOptionOperationId, setPickerIconHeight, setPickerIconName, setPickerIconPrompt, setPickerIconProperties, setPickerIconSrc, setPickerIconStyle, setPickerIconWidth, setPrintTextBoxStyle, setPrintTitleStyle, setProperty, setProperty, setProperty, setProperty, setProperty, setReadOnlyTextBoxStyle, setRedrawOnChange, setRejectInvalidValueOnChange, setRequired, setRequiredMessage, setRowSpan, setSaveOnEnter, setScClassName, setSelectOnClick, setSelectOnFocus, setShowClippedTitleOnHover, setShowClippedValueOnHover, setShowDisabled, setShowErrorIcon, setShowErrorStyle, setShowErrorText, setShowFocused, setShowFocusedErrorState, setShowFocusedIcons, setShowFocusedPickerIcon, setShowHint, setShowIcons, setShowIfCondition, setShowOverIcons, setShowPickerIcon, setShowRTL, setShowTitle, setShowValueIconOnly, setStartRow, setStaticHeight, setStopOnError, setSuppressValueIcon, setSynchronousValidation, setTabIndex, setTextAlign, setTextBoxStyle, setTimeFormatter, setTitle, setTitleAlign, setTitleColSpan, setTitleHoverFormatter, setTitleOrientation, setTitleStyle, setTitleVAlign, setTooltip, setTop, setType, setValidateOnChange, setValidateOnExit, setValidators, setValidOperators, setVAlign, setValue, setValue, setValue, setValue, setValue, setValue, setValueFormatter, setValueHoverFormatter, setValueIconHeight, setValueIconLeftPadding, setValueIconMapper, setValueIconRightPadding, setValueIcons, setValueIconSize, setValueIconWidth, setValueMap, setValueMap, setVisible, setWidth, setWidth, setWrapTitle, shouldApplyHeightToTextBox, shouldFetchMissingValue, shouldSaveOnEnter, shouldStopKeyPressBubbling, show, showIcon, showPicker, stopHover, storeValue, updateState, validate, valueClipped`

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

      `getRef, getRef, internalSetID`

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

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

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

      `equals, getJsObj, hashCode, setJavaScriptObject, setJsObj`

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

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

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

      `fireEvent`

- - ### Constructor Detail

    - #### PickTreeItem

          public PickTreeItem()

    - #### PickTreeItem

          public PickTreeItem(JavaScriptObject jsObj)

    - #### PickTreeItem

          public PickTreeItem(java.lang.String name)

    - #### PickTreeItem

          public PickTreeItem(java.lang.String name,
                      java.lang.String title)

  - ### Method Detail

    - #### getOrCreateRef

          public static PickTreeItem getOrCreateRef(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.
      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.
      See Also:
        `AutoChildUsage`

    - #### changeAutoChildDefaults

          public static void changeAutoChildDefaults(java.lang.String autoChildName,
                                     DrawItem defaults)

      Changes the defaults for DrawItem AutoChildren named `autoChildName`.
      Parameters:
        `autoChildName` - name of an AutoChild to customize the defaults for.
        `defaults` - DrawItem defaults to apply. These defaults override any existing properties without destroying or wiping out non-overridden properties.
      See Also:
        `AutoChildUsage`

    - #### changePickerIconDefaults

          public static void changePickerIconDefaults(FormItemIcon defaults)

    - #### getButton

          public Canvas getButton()

      The visible button created by a PickTreeItem is an `com.smartgwt.client.types.AutoChild` of type `TreeMenuButton` by default.

      For an overview of how to use and configure AutoChildren, see `Using AutoChildren`.

      Returns:
        Canvas

    - #### setCanSelectParentItems

          public void setCanSelectParentItems(java.lang.Boolean canSelectParentItems)

      If true, clicking or pressing Enter on a menu item that has a submenu will select that item (with standard behavior of hiding the menus, calling click handlers, etc) instead of showing the submenu.
      Parameters:
        `canSelectParentItems` - Default value is null
      See Also:
        `Selection overview and related methods`, Editing Example

    - #### getCanSelectParentItems

          public java.lang.Boolean getCanSelectParentItems()

      If true, clicking or pressing Enter on a menu item that has a submenu will select that item (with standard behavior of hiding the menus, calling click handlers, etc) instead of showing the submenu.
      Returns:
        Boolean
      See Also:
        `Selection overview and related methods`, Editing Example

    - #### setDisplayField

          public void setDisplayField(java.lang.String displayField)

      Specifies an alternative field from which display values should be retrieved for this item.

      If this item is not databound (`dataSource` is unset), this is implemented by picking up the value of the specified field from the `valueTree`.

      Otherwise this item will attempt to map its underlying value to a display value by retrieving a record from the `dataSource` where the `valueField` matches this item's value, and displaying the `displayField` value from that record.

      Overrides:
        `setDisplayField` in class `FormItem`
      Parameters:
        `displayField` - Default value is null
      See Also:
        `FormItem.getDisplayFieldName()`, `FormItem.invalidateDisplayValueCache()`

    - #### getDisplayField

          public java.lang.String getDisplayField()

      Specifies an alternative field from which display values should be retrieved for this item.

      If this item is not databound (`dataSource` is unset), this is implemented by picking up the value of the specified field from the `valueTree`.

      Otherwise this item will attempt to map its underlying value to a display value by retrieving a record from the `dataSource` where the `valueField` matches this item's value, and displaying the `displayField` value from that record.

      Overrides:
        `getDisplayField` in class `FormItem`
      Returns:
        String
      See Also:
        `FormItem.getDisplayFieldName()`, `FormItem.invalidateDisplayValueCache()`

    - #### setEmptyDisplayValue

          public void setEmptyDisplayValue(java.lang.String emptyDisplayValue)

      Text to display when this form item has a null or undefined value.

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

      If the emptyDisplayValue is null (the default) then this item will use the standard title of the tree menu button that is shown when no values are selected.
      If this method is called after the component has been drawn/initialized: Setter for `emptyDisplayValue`.

      Overrides:
        `setEmptyDisplayValue` in class `FormItem`
      Parameters:
        `emptyDisplayValue` - Default value is null

    - #### getEmptyDisplayValue

          public java.lang.String getEmptyDisplayValue()

      Text to display when this form item has a null or undefined value.

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

      If the emptyDisplayValue is null (the default) then this item will use the standard title of the tree menu button that is shown when no values are selected.

      Overrides:
        `getEmptyDisplayValue` in class `FormItem`
      Returns:
        String

    - #### setEmptyMenuMessage

          public void setEmptyMenuMessage(java.lang.String emptyMenuMessage)

      This message will be displayed as a single, disabled option in any empty menu/submenu created from this item's data tree.

      Note : This is an advanced setting

      Parameters:
        `emptyMenuMessage` - Default value is "No items to display"
      See Also:
        Picktree Example

    - #### getEmptyMenuMessage

          public java.lang.String getEmptyMenuMessage()

      This message will be displayed as a single, disabled option in any empty menu/submenu created from this item's data tree.
      Returns:
        String
      See Also:
        Picktree Example

    - #### setLoadDataOnDemand

          public void setLoadDataOnDemand(java.lang.Boolean loadDataOnDemand)

      If this is a databound item, should the load our set of possible options be loaded on demand (as submenus are displayed), or upfront?

      Note : This is an advanced setting

      Parameters:
        `loadDataOnDemand` - Default value is null

    - #### getLoadDataOnDemand

          public java.lang.Boolean getLoadDataOnDemand()

      If this is a databound item, should the load our set of possible options be loaded on demand (as submenus are displayed), or upfront?
      Returns:
        Boolean

    - #### setOptionDataSource

          public void setOptionDataSource(DataSource optionDataSource)

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

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

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

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

      Overrides:
        `setOptionDataSource` in class `FormItem`
      Parameters:
        `optionDataSource` - Default value is null
      See Also:
        `FormItem.invalidateDisplayValueCache()`, List - Combo Box Example

    - #### getOptionDataSource

          public DataSource getOptionDataSource()

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

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

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

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

      Returns:
        DataSource
      See Also:
        `FormItem.invalidateDisplayValueCache()`, List - Combo Box Example

    - #### setReadOnlyDisplay

          public void setReadOnlyDisplay(ReadOnlyDisplayAppearance readOnlyDisplay)

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

      The default value for PickTreeItems is `disabled` - note that `readOnly` and `static` appearances have no effect for PickTreeItems.

      Overrides:
        `setReadOnlyDisplay` in class `FormItem`
      Parameters:
        `readOnlyDisplay` - Default value is "disabled"
      See Also:
        `DynamicForm.setReadOnlyDisplay(com.smartgwt.client.types.ReadOnlyDisplayAppearance)`

    - #### getReadOnlyDisplay

          public ReadOnlyDisplayAppearance getReadOnlyDisplay()

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

      The default value for PickTreeItems is `disabled` - note that `readOnly` and `static` appearances have no effect for PickTreeItems.

      Overrides:
        `getReadOnlyDisplay` in class `FormItem`
      Returns:
        ReadOnlyDisplayAppearance
      See Also:
        `DynamicForm.getReadOnlyDisplay()`

    - #### setShouldSaveValue

          public void setShouldSaveValue(java.lang.Boolean shouldSaveValue)

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

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

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

      Note that

      - if an item is shouldSaveValue true, but has no name, a warning is logged, and shouldSaveValue will be set to false.
      Overrides:
        `setShouldSaveValue` in class `CanvasItem`
      Parameters:
        `shouldSaveValue` - Default value is true

    - #### getShouldSaveValue

          public java.lang.Boolean getShouldSaveValue()

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

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

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

      Note that

      - if an item is shouldSaveValue true, but has no name, a warning is logged, and shouldSaveValue will be set to false.
      Overrides:
        `getShouldSaveValue` in class `CanvasItem`
      Returns:
        Boolean

    - #### setValueField

          public void setValueField(java.lang.String valueField)

      Which field in the tree-data should be returned as this item's value? If unspecified, the path will be used
      Overrides:
        `setValueField` in class `FormItem`
      Parameters:
        `valueField` - Default value is null
      See Also:
        Picktree Example

    - #### getValueField

          public java.lang.String getValueField()

      Which field in the tree-data should be returned as this item's value? If unspecified, the path will be used
      Overrides:
        `getValueField` in class `FormItem`
      Returns:
        String
      See Also:
        Picktree Example

    - #### fetchData

          public void fetchData()

      Only applies to databound items (see `optionDataSource`).
      Performs a fetch type operation on this item's DataSource to retrieve/refresh the tree of data displayed as rows in this items menu.

    - #### setDefaultProperties

          public static void setDefaultProperties(PickTreeItem pickTreeItemProperties)

      Class level method to set the default properties of this class. If set, then all existing and subsequently created instances of this class will automatically have default properties corresponding to the properties of the class instance passed to this function. This is a powerful feature that eliminates the need for users to create a separate hierarchy of subclasses that only alter the default properties of this class. Can also be used for skinning / styling purposes.

      Note: This method is intended for setting default attributes only and will affect all instances of the underlying class (including those automatically generated in JavaScript). This method should not be used to apply standard EventHandlers or override methods for a class - use a custom subclass instead. Calling this method after instances have been created can result in undefined behavior, since it bypasses any setters and a class instance may have already examined a particular property and not be expecting any changes through this route.

      Parameters:
        `pickTreeItemProperties` - properties that should be used as new defaults when instances of this class are created

    - #### setDataSource

          public void setDataSource(DataSource dataSource)

      If specified, the tree of possible options will be derived from the dataSource as a ResultTree, rather than using this.valueTree. Options can be loaded on demand or up front according to `loadDataOnDemand`.

      Note : This is an advanced setting

      Parameters:
        `dataSource` - dataSource Default value is null

    - #### getDataSource

          public DataSource getDataSource()

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

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

      Returns:
        DataSource

    - #### setValueTree

          public void setValueTree(Tree valueTree)

      A `Tree` of options from which the user can select.
      Parameters:
        `valueTree` - valueTree Default value is null

    - #### setDataProperties

          public void setDataProperties(Tree dataProperties)

      For a `PickTreeItem` that uses a DataSource, these properties will be passed to the automatically-created ResultTree. This can be used for various customizations such as modifying the automatically-chosen `parentIdField`.
      Parameters:
        `dataProperties` - dataProperties Default value is null
      See Also:
        `Databinding overview and related methods`