com.smartgwt.client.widgets.form.fields

## Class MultiComboBoxItem

- 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.MultiComboBoxItem

- All Implemented Interfaces:
    com.google.gwt.event.shared.HasHandlers, HasBlurHandlers, HasCanEditChangedHandlers, HasChangedHandlers, HasChangeHandlers, HasClickHandlers, HasDoubleClickHandlers, HasEditorEnterHandlers, HasEditorExitHandlers, HasFocusHandlers, HasIconClickHandlers, HasIconKeyPressHandlers, HasItemHoverHandlers, HasKeyDownHandlers, HasKeyPressHandlers, HasKeyUpHandlers, HasPendingStatusChangedHandlers, HasPickerIconClickHandlers, HasReadOnlyDisplayChangedHandlers, HasShowValueHandlers, HasTitleClickHandlers, HasTitleDoubleClickHandlers, HasTitleHoverHandlers, HasValueHoverHandlers, HasValueIconClickHandlers

      public class MultiComboBoxItem
      extends CanvasItem

  A MultiComboBoxItem is a combo box that allows the user to select multiple options. Each selected option is represented as a button that can be clicked to deselect the option. The relative layout of the buttons to the combo box is specified with the `layoutStyle` attribute. The buttons will be kept in the order that they were added, with the most recently added button being adjacent to the combo box. `MultiComboBoxItem` uses the `com.smartgwt.client.types.AutoChild` pattern to construct the `comboBox` and the `buttons` so that they can be easily customized. For example, you can customize the criteria used to fetch by using `ComboBoxItem.setPickListFilterCriteriaFunction()` with `setComboBoxProperties()`.
  See Also:
    `ComboBoxItem`

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class com.smartgwt.client.widgets.form.fields.FormItem

      `FormItem.CustomStateGetter, FormItem.StateCustomizer`

  - ### Field Summary

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

      `scClassName, warnOnEditorTypeConversion, warnOnEditorTypeConversionDefault`

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

      `id`

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

      `factoryCreated, factoryProperties, readOnly`

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

      `jsObj`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MultiComboBoxItem()`
    `MultiComboBoxItem(com.google.gwt.core.client.JavaScriptObject jsObj)`
    `MultiComboBoxItem(java.lang.String name)`
    `MultiComboBoxItem(java.lang.String name, java.lang.String title)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete 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)`
    `java.lang.Boolean` | `getAddUnknownValues()` Similar to `ComboBoxItem.addUnknownValues`, controls whether additional values can be added to the ComboBox or whether the user must choose from the available values in the picklist only.
    `java.lang.Boolean` | `getAlwaysExitOnTab()` If true, hitting tab always exits the field, and will also add a value to the list of selected values if there is match (and depending on the setting for `addUnknownValues`).
    `java.lang.Boolean` | `getAutoFetchData()` Should the MultiComboBoxItem fetch data from the `data source` immediately or wait until the user first opens the pickList.
    `java.lang.Boolean` | `getAutoFitButtons()` Specifies whether to autofit the buttons in the MultiComboBoxItem.
    `IButton` | `getButton()` Note : This API is non-functional (always returns null) and exists only to make you aware that this MultiAutoChild exists.
    `IButton` | `getButtonDefaults()` Default properties to be used in creating each `IButton`.
    `IButton` | `getButtonProperties()` Properties to be used in creating each option button.
    `ComboBoxItem` | `getComboBox()` An `com.smartgwt.client.types.AutoChild` attribute to create the combo box in a MultiComboBoxItem.
    `ComboBoxItem` | `getComboBoxDefaults()` Default properties for the `ComboBoxItem` in a MultiComboBoxItem.
    `ComboBoxItem` | `getComboBoxProperties()` Properties to be used in creating a `ComboBoxItem`.
    `int` | `getComboBoxWidth()` Specifies the size of the combo box field.
    `DynamicForm` | `getComboForm()` The `DynamicForm` holding the `comboBox`.
    `java.lang.String` | `getDeselectedButtonStyle()` When `showDeletions` is `true`, the `Button.baseStyle` used on `buttons` for values that have been deleted (also called "deselected buttons").
    `java.lang.String` | `getDisplayField()` The `displayField` of the combo box.
    `MultiComboBoxLayoutStyle` | `getLayoutStyle()` Specifies the layout style of the combo box and the buttons in the MultiComboBoxItem.
    `DataSource` | `getOptionDataSource()` The `optionDataSource` of the combo box.
    `static MultiComboBoxItem` | `getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)`
    `java.lang.String` | `getPendingButtonStyle()` When `showPending` is `true`, the `Button.baseStyle` used on `buttons` that are in the "Pending" visual state.
    `java.lang.Boolean` | `getShouldSaveValue()` Should this item's value be saved in the form's values and hence returned from `form.getValues()`?
    `java.lang.Boolean` | `getUseInsertionOrder()` Specifies whether to arrange the buttons of the MultiComboBoxItem in the order that they were selected (the default), or to sort the buttons by `displayField`.
    `java.lang.String` | `getValueField()` The `valueField` of the combo box.
    `Layout` | `getValueLayout()` Note : This API is non-functional (always returns null) and exists only to make you aware that this MultiAutoChild exists.
    `java.lang.String[]` | `getValues()`
    `boolean` | `pendingStatusChanged(DynamicForm form, FormItem item, boolean pendingStatus, java.lang.Object newValue, java.lang.Object value)` Notification method called when `showPending` is enabled and this `MultiComboBoxItem` should either clear or show its pending visual state.
    `void` | `setAddUnknownValues(java.lang.Boolean addUnknownValues)` Similar to `ComboBoxItem.addUnknownValues`, controls whether additional values can be added to the ComboBox or whether the user must choose from the available values in the picklist only.
    `void` | `setAlwaysExitOnTab(java.lang.Boolean alwaysExitOnTab)` If true, hitting tab always exits the field, and will also add a value to the list of selected values if there is match (and depending on the setting for `addUnknownValues`).
    `void` | `setAutoFetchData(java.lang.Boolean autoFetchData)` Should the MultiComboBoxItem fetch data from the `data source` immediately or wait until the user first opens the pickList.
    `void` | `setAutoFitButtons(java.lang.Boolean autoFitButtons)` Specifies whether to autofit the buttons in the MultiComboBoxItem.
    `void` | `setButtonProperties(IButton buttonProperties)` Properties to be used in creating each option button.
    `void` | `setComboBoxProperties(ComboBoxItem comboBoxProperties)` Properties to be used in creating a `ComboBoxItem`.
    `void` | `setComboBoxWidth(int comboBoxWidth)` Specifies the size of the combo box field.
    `static void` | `setDefaultProperties(MultiComboBoxItem multiComboBoxItemProperties)` Class level method to set the default properties of this class.
    `void` | `setDeselectedButtonStyle(java.lang.String deselectedButtonStyle)` When `showDeletions` is `true`, the `Button.baseStyle` used on `buttons` for values that have been deleted (also called "deselected buttons").
    `void` | `setDisplayField(java.lang.String displayField)` The `displayField` of the combo box.
    `void` | `setLayoutStyle(MultiComboBoxLayoutStyle layoutStyle)` Specifies the layout style of the combo box and the buttons in the MultiComboBoxItem.
    `void` | `setOptionDataSource(DataSource optionDataSource)` The `optionDataSource` of the combo box.
    `void` | `setPendingButtonStyle(java.lang.String pendingButtonStyle)` When `showPending` is `true`, the `Button.baseStyle` used on `buttons` that are in the "Pending" visual state.
    `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` | `setUseInsertionOrder(java.lang.Boolean useInsertionOrder)` Specifies whether to arrange the buttons of the MultiComboBoxItem in the order that they were selected (the default), or to sort the buttons by `displayField`.
    `void` | `setValueField(java.lang.String valueField)` The `valueField` of the combo box.
    `void` | `setValues(java.lang.Object... values)`
    `void` | `showValue(java.lang.Object displayValue, java.lang.Object dataValue, DynamicForm form, CanvasItem item)` This method will be called whenever this FormItem's value is being set via a programmatic call to e.g: `DynamicForm.setValues()` or `FormItem.setValue()` and may be overridden by CanvasItems intended to support displaying data values to update the embedded Canvas to reflect the value passed in.

    - ### 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, isFocused, 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, addPendingStatusChangedHandler, addPickerIconClickHandler, addTitleClickHandler, addTitleDoubleClickHandler, addTitleHoverHandler, addValueHoverHandler, addValueIconClickHandler, asSGWTComponent, blurItem, canEditCriterion, clearErrors, clearValue, disable, disableIcon, enable, enableIcon, error, error, errorIfNotCreated, focusInItem, getAccessKey, getAlign, getAllowExpressions, getAlwaysFetchMissingValues, getApplyAlignToText, getApplyHeightToTextBox, getAriaRole, getAttribute, getAttributeAsBoolean, getAttributeAsBoolean, getAttributeAsDate, getAttributeAsDouble, getAttributeAsFloat, getAttributeAsInt, getAttributeAsJavaScriptObject, getAttributeAsObject, getAttributeAsString, getAutoComplete, getBrowserInputType, getBrowserSpellCheck, getCanEdit, getCanEditOpaqueValues, getCanFocus, getCanSelectText, getCanvasAutoChild, getCellHeight, getCellStyle, getChangeOnKeypress, getClassName, getClipStaticValue, getClipTitle, getConfig, getContainerWidget, getControlStyle, getCriteriaField, getCriterion, getCriterion, getCursorPosition, getCustomState, getDataPath, getDateFormatter, getDecimalPad, getDecimalPrecision, getDefaultIconSrc, getDisabled, getDisableIconsOnReadOnly, getDisplayFieldName, getDisplayValue, getDisplayValue, getEditorTypeConfig, getEditPendingCSSText, getEditProxyConstructor, getEmptyDisplayValue, getEmptyValueIcon, getEndRow, getErrorIconHeight, getErrorIconSrc, getErrorIconWidth, getErrorMessageWidth, getErrors, getExportFormat, getFetchMissingValues, getFieldName, getFilterLocally, getForeignDisplayField, getForm, getFormat, getFormItemAutoChild, getFullDataPath, getGlobalTabIndex, getGridColNum, getGridRowNum, getHidden, 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, getOriginalValueMessage, getPageLeft, getPageRect, getPageTop, getPicker, getPickerIconHeight, getPickerIconName, getPickerIconPrompt, getPickerIconProperties, getPickerIconSrc, getPickerIconStyle, getPickerIconWidth, getPixelHeight, getPixelWidth, getPrintTextBoxStyle, getPrintTitleStyle, getReadOnlyDisplay, getReadOnlyHover, getReadOnlyTextBoxStyle, getRect, getRedrawOnChange, getRejectInvalidValueOnChange, getRequired, getRequiredMessage, getRowSpan, getSaveOnEnter, getScClassName, getSelectedRecord, getSelectOnClick, getSelectOnFocus, getShowClippedTitleOnHover, getShowClippedValueOnHover, getShowDeletions, getShowDisabled, getShowErrorIcon, getShowErrorStyle, getShowErrorText, getShowFocused, getShowFocusedErrorState, getShowFocusedIcons, getShowFocusedPickerIcon, getShowHint, getShowIcons, getShowOldValueInHover, getShowOverIcons, getShowPending, getShowPickerIcon, getShowRTL, getShowTitle, getShowValueIconOnly, getStartRow, getStaticHeight, getStopOnError, getSupportsCutPasteEvents, getSuppressValueIcon, getSynchronousValidation, getTabIndex, getTextAlign, getTextBoxStyle, getTimeFormatter, getTitle, getTitleAlign, getTitleColSpan, getTitleOrientation, getTitleStyle, getTitleVAlign, getTooltip, getTop, getType, getUseDisabledHintStyleForReadOnly, getValidateOnChange, getValidateOnExit, getValidOperators, getVAlign, getValue, getValueAsRecordList, getValueDeselectedCSSText, getValueFieldName, getValueIconHeight, getValueIconLeftPadding, getValueIconRightPadding, getValueIconSize, getValueIconWidth, getVisible, getVisibleHeight, getVisibleTitleWidth, getVisibleWidth, getWarnOnEditorTypeConversion, getWarnOnEditorTypeConversionDefault, getWidth, getWidthAsString, getWrapTitle, handleWarnOnEditorTypeConversion, hasErrors, hide, hideIcon, invalidateDisplayValueCache, isCreated, isCutEvent, isDisabled, isDrawn, isInGrid, isPasteEvent, isVisible, linkToInstanceUponCreate, mapDisplayToValue, mapValueToDisplay, mapValueToDisplay, mapValueToDisplay, redraw, redraw, setAccessKey, setAlign, setAllowExpressions, setAlwaysFetchMissingValues, setApplyAlignToText, 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, setBrowserInputType, setBrowserSpellCheck, setCanEdit, setCanEditOpaqueValues, setCanFocus, setCanSelectText, setCellHeight, setCellStyle, setChangeOnKeypress, setClipStaticValue, setClipTitle, setColSpan, setColSpan, setControlStyle, setCriteriaField, setCriterion, setCustomStateGetter, 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, setEmptyDisplayValue, setEmptyValueIcon, setEndRow, setErrorFormatter, setErrorIconHeight, setErrorIconSrc, setErrorIconWidth, setErrorMessageWidth, setErrorOrientation, setErrors, setErrors, setExportFormat, setFetchMissingValues, setFilterLocally, setForeignDisplayField, setFormat, setGlobalTabIndex, setHidden, setHint, setHintStyle, setHoverAlign, setHoverDelay, setHoverHeight, setHoverOpacity, setHoverStyle, setHoverVAlign, setHoverWidth, setIconDisabled, setIconHeight, setIconHSpace, setIconPrompt, setIcons, setIconVAlign, setIconWidth, setImageURLPrefix, setImageURLSuffix, setImplicitSave, setImplicitSaveOnBlur, setInitHandler, setInputFormat, setInputTransformer, setItemHoverFormatter, setItemTitleHoverFormatter, setItemValueHoverFormatter, setJavaScriptObject, setLeft, setLoadingDisplayValue, setLocateItemBy, setMultipleValueSeparator, setName, setNullProperty, setOperator, setOptionCriteria, setOptionFilterContext, setOptionOperationId, setOriginalValueMessage, setPickerIconHeight, setPickerIconName, setPickerIconPrompt, setPickerIconProperties, setPickerIconSrc, setPickerIconStyle, setPickerIconWidth, setPrintTextBoxStyle, setPrintTitleStyle, setProperty, setProperty, setProperty, setProperty, setProperty, setReadOnlyDisplay, setReadOnlyHover, setReadOnlyTextBoxStyle, setRedrawOnChange, setRejectInvalidValueOnChange, setRequired, setRequiredMessage, setRowSpan, setSaveOnEnter, setScClassName, setSelectOnClick, setSelectOnFocus, setShowClippedTitleOnHover, setShowClippedValueOnHover, setShowDeletions, setShowDisabled, setShowErrorIcon, setShowErrorStyle, setShowErrorText, setShowFocused, setShowFocusedErrorState, setShowFocusedIcons, setShowFocusedPickerIcon, setShowHint, setShowIcons, setShowIfCondition, setShowOldValueInHover, setShowOverIcons, setShowPending, setShowPickerIcon, setShowRTL, setShowTitle, setShowValueIconOnly, setStartRow, setStateCustomizer, setStaticHeight, setStopOnError, setSupportsCutPasteEvents, setSuppressValueIcon, setSynchronousValidation, setTabIndex, setTextAlign, setTextBoxStyle, setTimeFormatter, setTitle, setTitleAlign, setTitleColSpan, setTitleHoverFormatter, setTitleOrientation, setTitleStyle, setTitleVAlign, setTooltip, setTop, setType, setUseDisabledHintStyleForReadOnly, setValidateOnChange, setValidateOnExit, setValidators, setValidOperators, setVAlign, setValue, setValue, setValue, setValue, setValue, setValue, setValueDeselectedCSSText, setValueFormatter, setValueHoverFormatter, setValueIconHeight, setValueIconLeftPadding, setValueIconMapper, setValueIconRightPadding, setValueIcons, setValueIconSize, setValueIconWidth, setValueMap, setValueMap, setVisible, setWarnOnEditorTypeConversion, setWarnOnEditorTypeConversionDefault, 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, getReadOnly, isFactoryCreated, logConfiguration, setAttribute, setAttribute, setAttribute, setAttributeAsJavaObject, setFactoryCreated, setReadOnly`

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

      `equals, getJsObj, hashCode, setJsObj`

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

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

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

      `fireEvent`

- - ### Constructor Detail

    - #### MultiComboBoxItem

          public MultiComboBoxItem()

    - #### MultiComboBoxItem

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

    - #### MultiComboBoxItem

          public MultiComboBoxItem(java.lang.String name)

    - #### MultiComboBoxItem

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

  - ### Method Detail

    - #### getOrCreateRef

          public static MultiComboBoxItem 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`

    - #### 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. For usage tips on this param, see `SGWTProperties`.
      See Also:
        `AutoChildUsage`

    - #### changePickerIconDefaults

          public static void changePickerIconDefaults(FormItemIcon defaults)

    - #### setAddUnknownValues

          public void setAddUnknownValues(java.lang.Boolean addUnknownValues)

      Similar to `ComboBoxItem.addUnknownValues`, controls whether additional values can be added to the ComboBox or whether the user must choose from the available values in the picklist only.

      If this setting is changed after the MultiComboBoxItem has been created, the current value of the item is reset to null and all buttons for non-default values (values not in the `FormItem.defaultValue` array) are removed.

      Parameters:
        `addUnknownValues` - Default value is false

    - #### getAddUnknownValues

          public java.lang.Boolean getAddUnknownValues()

      Similar to `ComboBoxItem.addUnknownValues`, controls whether additional values can be added to the ComboBox or whether the user must choose from the available values in the picklist only.

      If this setting is changed after the MultiComboBoxItem has been created, the current value of the item is reset to null and all buttons for non-default values (values not in the `FormItem.defaultValue` array) are removed.

      Returns:
        Boolean

    - #### setAlwaysExitOnTab

          public void setAlwaysExitOnTab(java.lang.Boolean alwaysExitOnTab)

      If true, hitting tab always exits the field, and will also add a value to the list of selected values if there is match (and depending on the setting for `addUnknownValues`).

      If false, if the user has typed in a value and hits tab, focus remains in the field. If there is a match or if `addUnknownValues` is true, a value will be added. Otherwise, the input cursor remains at the end of the entered value.

      Parameters:
        `alwaysExitOnTab` - Default value is true

    - #### getAlwaysExitOnTab

          public java.lang.Boolean getAlwaysExitOnTab()

      If true, hitting tab always exits the field, and will also add a value to the list of selected values if there is match (and depending on the setting for `addUnknownValues`).

      If false, if the user has typed in a value and hits tab, focus remains in the field. If there is a match or if `addUnknownValues` is true, a value will be added. Otherwise, the input cursor remains at the end of the entered value.

      Returns:
        Boolean

    - #### setAutoFetchData

          public void setAutoFetchData(java.lang.Boolean autoFetchData)

      Should the MultiComboBoxItem fetch data from the `data source` immediately or wait until the user first opens the pickList.
      Parameters:
        `autoFetchData` - Default value is false
      See Also:
        `ComboBoxItem.setAutoFetchData(java.lang.Boolean)`

    - #### getAutoFetchData

          public java.lang.Boolean getAutoFetchData()

      Should the MultiComboBoxItem fetch data from the `data source` immediately or wait until the user first opens the pickList.
      Returns:
        Boolean
      See Also:
        `ComboBoxItem.getAutoFetchData()`

    - #### setAutoFitButtons

          public void setAutoFitButtons(java.lang.Boolean autoFitButtons)

      Specifies whether to autofit the buttons in the MultiComboBoxItem. The default value is true if `layoutStyle` is "flow", but false for a layoutStyle of "vertical" or "verticalReverse". If the `layoutStyle` is "horizontal" or "horizontalReverse" then the buttons will autofit regardless of the setting of this property.
      If this method is called after the component has been drawn/initialized: Sets the `autoFitButtons` property.
      Parameters:
        `autoFitButtons` - whether to autofit the buttons. Default value is null

    - #### getAutoFitButtons

          public java.lang.Boolean getAutoFitButtons()

      Specifies whether to autofit the buttons in the MultiComboBoxItem. The default value is true if `layoutStyle` is "flow", but false for a layoutStyle of "vertical" or "verticalReverse". If the `layoutStyle` is "horizontal" or "horizontalReverse" then the buttons will autofit regardless of the setting of this property.
      Returns:
        Boolean

    - #### getButton

          public IButton getButton()

      Note : This API is non-functional (always returns null) and exists only to make you aware that this MultiAutoChild exists. See `Using AutoChildren` for details.

      An `com.smartgwt.client.types.AutoChild` attribute used to create the buttons in the MultiComboBoxItem.

      Returns:
        null

    - #### getComboBox

          public ComboBoxItem getComboBox()

      An `com.smartgwt.client.types.AutoChild` attribute to create the combo box in a MultiComboBoxItem.

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

      Returns:
        ComboBoxItem

    - #### setComboBoxWidth

          public void setComboBoxWidth(int comboBoxWidth)

      Specifies the size of the combo box field.

      Note that this attribute only has an effect in "flow", "horizontal", and "horizontalReverse" `modes`. In the other modes, the combo box is as wide as the overall MultiComboBoxItem.

      Parameters:
        `comboBoxWidth` - Default value is 130

    - #### getComboBoxWidth

          public int getComboBoxWidth()

      Specifies the size of the combo box field.

      Note that this attribute only has an effect in "flow", "horizontal", and "horizontalReverse" `modes`. In the other modes, the combo box is as wide as the overall MultiComboBoxItem.

      Returns:
        int

    - #### getComboForm

          public DynamicForm getComboForm()

      The `DynamicForm` holding the `comboBox`.

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

      Returns:
        DynamicForm

    - #### setDeselectedButtonStyle

          public void setDeselectedButtonStyle(java.lang.String deselectedButtonStyle)

      When `showDeletions` is `true`, the `Button.baseStyle` used on `buttons` for values that have been deleted (also called "deselected buttons").

      If unset, then the `baseStyle` of deselected buttons is not changed.

      NOTE: Deselected buttons are also disabled, so styling should be provided for the `deselectedButtonStyle` + "Disabled" style name.

      Parameters:
        `deselectedButtonStyle` - See `CSSStyleName` . Default value is "buttonDeselected"
      See Also:
        `setPendingButtonStyle(java.lang.String)`

    - #### getDeselectedButtonStyle

          public java.lang.String getDeselectedButtonStyle()

      When `showDeletions` is `true`, the `Button.baseStyle` used on `buttons` for values that have been deleted (also called "deselected buttons").

      If unset, then the `baseStyle` of deselected buttons is not changed.

      NOTE: Deselected buttons are also disabled, so styling should be provided for the `deselectedButtonStyle` + "Disabled" style name.

      Returns:
        See `CSSStyleName`
      See Also:
        `getPendingButtonStyle()`

    - #### setDisplayField

          public void setDisplayField(java.lang.String displayField)

      The `displayField` of the combo box.

      Note : This is an advanced setting

      Overrides:
        `setDisplayField` in class `FormItem`
      Parameters:
        `displayField` - Default value is null
      See Also:
        `ComboBoxItem.setDisplayField(java.lang.String)`

    - #### getDisplayField

          public java.lang.String getDisplayField()

      The `displayField` of the combo box.
      Overrides:
        `getDisplayField` in class `FormItem`
      Returns:
        String
      See Also:
        `ComboBoxItem.getDisplayField()`

    - #### setLayoutStyle

          public void setLayoutStyle(MultiComboBoxLayoutStyle layoutStyle)

      Specifies the layout style of the combo box and the buttons in the MultiComboBoxItem. Available values are "flow" (the default), "horizontal", "horizontalReverse", "vertical", and "verticalReverse".
      - "flow": The buttons appear to the left of the combo box. When there is no more room, the combo box and/or buttons flow onto a new line. The buttons autoFit by default.
      - "horizontal": The combo box appears on right and buttons are horizontally stacked directly left of it. The buttons must autofit.
      - "horizontalReverse": Like "horizontal" but the combo box appears on the left. The buttons must autofit.
      - "vertical": The combo box appears on top and buttons are stacked beneath it. Buttons do not autofit by default.
      - "verticalReverse": Like "vertical" but the combo box appears at bottom. The buttons do not autofit by default.
      Parameters:
        `layoutStyle` - the new layout style. Default value is "flow"

    - #### getLayoutStyle

          public MultiComboBoxLayoutStyle getLayoutStyle()

      Specifies the layout style of the combo box and the buttons in the MultiComboBoxItem. Available values are "flow" (the default), "horizontal", "horizontalReverse", "vertical", and "verticalReverse".
      - "flow": The buttons appear to the left of the combo box. When there is no more room, the combo box and/or buttons flow onto a new line. The buttons autoFit by default.
      - "horizontal": The combo box appears on right and buttons are horizontally stacked directly left of it. The buttons must autofit.
      - "horizontalReverse": Like "horizontal" but the combo box appears on the left. The buttons must autofit.
      - "vertical": The combo box appears on top and buttons are stacked beneath it. Buttons do not autofit by default.
      - "verticalReverse": Like "vertical" but the combo box appears at bottom. The buttons do not autofit by default.
      Returns:
        MultiComboBoxLayoutStyle

    - #### setPendingButtonStyle

          public void setPendingButtonStyle(java.lang.String pendingButtonStyle)

      When `showPending` is `true`, the `Button.baseStyle` used on `buttons` that are in the "Pending" visual state.

      If unset, then the `baseStyle` of pending buttons is not changed.

      Parameters:
        `pendingButtonStyle` - See `CSSStyleName` . Default value is "buttonPending"
      See Also:
        `setDeselectedButtonStyle(java.lang.String)`

    - #### getPendingButtonStyle

          public java.lang.String getPendingButtonStyle()

      When `showPending` is `true`, the `Button.baseStyle` used on `buttons` that are in the "Pending" visual state.

      If unset, then the `baseStyle` of pending buttons is not changed.

      Returns:
        See `CSSStyleName`
      See Also:
        `getDeselectedButtonStyle()`

    - #### 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 `FormItem.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 `FormItem.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

    - #### setUseInsertionOrder

          public void setUseInsertionOrder(java.lang.Boolean useInsertionOrder)

      Specifies whether to arrange the buttons of the MultiComboBoxItem in the order that they were selected (the default), or to sort the buttons by `displayField`.
      Parameters:
        `useInsertionOrder` - Default value is true

    - #### getUseInsertionOrder

          public java.lang.Boolean getUseInsertionOrder()

      Specifies whether to arrange the buttons of the MultiComboBoxItem in the order that they were selected (the default), or to sort the buttons by `displayField`.
      Returns:
        Boolean

    - #### setValueField

          public void setValueField(java.lang.String valueField)

      The `valueField` of the combo box.
      Overrides:
        `setValueField` in class `FormItem`
      Parameters:
        `valueField` - Default value is null
      See Also:
        `ComboBoxItem.setValueField(java.lang.String)`

    - #### getValueField

          public java.lang.String getValueField()

      The `valueField` of the combo box.
      Overrides:
        `getValueField` in class `FormItem`
      Returns:
        String
      See Also:
        `ComboBoxItem.getValueField()`

    - #### getValueLayout

          public Layout getValueLayout()

      Note : This API is non-functional (always returns null) and exists only to make you aware that this MultiAutoChild exists. See `Using AutoChildren` for details.

      The layout used to arrange the `comboForm` and the buttons representing the values of the MultiComboBoxItem. Note that the constructor cannot be changed (setting a valueLayoutConstructor has no effect) because the exact layout class used depends on the current `layout style`.

      Returns:
        null

    - #### pendingStatusChanged

          public boolean pendingStatusChanged(DynamicForm form,
                                              FormItem item,
                                              boolean pendingStatus,
                                              java.lang.Object newValue,
                                              java.lang.Object value)

      Notification method called when `showPending` is enabled and this `MultiComboBoxItem` should either clear or show its pending visual state.

      The default behavior is that the `titleStyle` and `cellStyle` are updated to include/exclude the "Pending" suffix. In addition, when displayed in the pending state and a `pendingButtonStyle` is set, then:

      - If `useInsertionOrder` is `false`, buttons for any new values will have their `baseStyle` set to `pendingButtonStyle`; otherwise
      - (`useInsertionOrder` is `true`) buttons for values will have their `baseStyle` set to `pendingButtonStyle` if either the value is new or it is in a different place within the value array.
      Returning `false` will cancel this default behavior.
      Parameters:
        `form` - the managing `DynamicForm` instance.
        `item` - the form item itself (also available as "this").
        `pendingStatus` - `true` if the item should show its pending visual state; `false` otherwise.
        `newValue` - the current form item value.
        `value` - the value that would be restored by a call to `DynamicForm.resetValues()`.
      Returns:
        `false` to cancel the default behavior.

    - #### showValue

          public void showValue(java.lang.Object displayValue,
                                java.lang.Object dataValue,
                                DynamicForm form,
                                CanvasItem item)

      This method will be called whenever this FormItem's value is being set via a programmatic call to e.g: `DynamicForm.setValues()` or `FormItem.setValue()` and may be overridden by CanvasItems intended to support displaying data values to update the embedded Canvas to reflect the value passed in.

      The value of a MultiComboBoxItem to the form is an array of valueField values corresponding to the selected combo box options.

      Parameters:
        `displayValue` - new display value for the item. This is the value after applying any custom formatter or valueMap
        `dataValue` - underlying data value for the item
        `form` - the dynamicForm in which this item is contained
        `item` - the live form item instance

    - #### setDefaultProperties

          public static void setDefaultProperties(MultiComboBoxItem multiComboBoxItemProperties)

      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:
        `multiComboBoxItemProperties` - properties that should be used as new defaults when instances of this class are created
      See Also:
        `SGWTProperties`

    - #### getButtonDefaults

          public IButton getButtonDefaults()

      Default properties to be used in creating each `IButton`.
      Returns:
        IButton

    - #### setButtonProperties

          public void setButtonProperties(IButton buttonProperties)

      Properties to be used in creating each option button.

      Note : This is an advanced setting

      Parameters:
        `buttonProperties` - buttonProperties

    - #### getButtonProperties

          public IButton getButtonProperties()

      Properties to be used in creating each option button.
      Returns:
        IButton

    - #### getComboBoxDefaults

          public ComboBoxItem getComboBoxDefaults()

      Default properties for the `ComboBoxItem` in a MultiComboBoxItem.
      Returns:
        ComboBoxItem

    - #### setComboBoxProperties

          public void setComboBoxProperties(ComboBoxItem comboBoxProperties)

      Properties to be used in creating a `ComboBoxItem`.

      Note : This is an advanced setting

      Parameters:
        `comboBoxProperties` - comboBoxProperties Default value is null

    - #### getComboBoxProperties

          public ComboBoxItem getComboBoxProperties()

      Properties to be used in creating a `ComboBoxItem`.
      Returns:
        ComboBoxItem

    - #### setOptionDataSource

          public void setOptionDataSource(DataSource optionDataSource)

      The `optionDataSource` of the combo box.
      Overrides:
        `setOptionDataSource` in class `FormItem`
      Parameters:
        `optionDataSource` - optionDataSource Default value is null
      See Also:
        `ComboBoxItem.setOptionDataSource(com.smartgwt.client.data.DataSource)`

    - #### getOptionDataSource

          public DataSource getOptionDataSource()

      The `optionDataSource` of the combo box.
      Returns:
        DataSource
      See Also:
        `ComboBoxItem.getOptionDataSource()`

    - #### getValues

          public final java.lang.String[] getValues()

    - #### setValues

          public void setValues(java.lang.Object... values)