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

# Class UploadItem

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

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

public class UploadItem extends TextItem
FormItem that creates an HTML <input type="file"> control, with an interface that allows a user to pick a file from his machine to upload to the server.

NOTE: use `FileItem`, not UploadItem, if you are using the Smart GWT Server framework. FileItem is much easier to use and addresses all the limitations of UploadItem discussed below. See the `Uploading Files` overview for details.

If a form containing an UploadItem is `redrawn` (which may happen if other form items are shown or hidden, the form is `resized`, or this or other items show validation errors) then the value in the upload item is lost (because an HTML upload field may not be created with a value). For this reason, if you are building a form that combines an UploadItem with other FormItems that could trigger redraw()s, recommended practice is to place each UploadItem in a distinct DynamicForm instance and create the visual appearance of a single logical form via combining the DynamicForms in a `Layout`. For the same reason, do not apply `validators` to UploadItems: if such a validator fails, it will cause the form to be redrawn and the UploadItem's value to be lost.

NOTE: Browser-specific behaviors:

- while getDisplayValue() can be used to retrieve the filesystem path of the uploaded file on some browsers, different browsers will return either just the file name without path or the full path. It is plausible that some browsers may switch behavior in the future to not supply this value at all. Do not rely on this value.
- the appearance of the UploadItem is not consistent across browsers and we do not recommend trying to make it consistent or trying to apply styling to the upload control at all. It is a potential security problem if an end user is unable to reliably recognize the upload control, hence, all browsers limit what styling can be applied. Various hacks exists to get further control of styling, but it is likely these hacks will be broken by browser upgrades in the future.

See Also:
  - `Uploading Files`

- ## 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

  `configOnly, scClassName, warnOnEditorTypeConversion, warnOnEditorTypeConversionDefault`

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

  `id`

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

  `factoryCreated, factoryProperties`

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

  `jsObj`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `UploadItem()`
  `UploadItem(JavaScriptObject jsObj)`
  `UploadItem(String name)`
  `UploadItem(String name, String title)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static void`
  `changeAutoChildDefaults(String autoChildName, Canvas defaults)`
  Changes the defaults for Canvas AutoChildren named `autoChildName`.
  `static void`
  `changeAutoChildDefaults(String autoChildName, FormItem defaults)`
  Changes the defaults for FormItem AutoChildren named `autoChildName`.
  `static void`
  `changePickerIconDefaults(FormItemIcon defaults)`
  `void`
  `deselectValue()`
  This method is not supported by `UploadItem`.
  `void`
  `deselectValue(Boolean start)`
  This method is not supported by `UploadItem`.
  `String`
  `getAccept()`
  A comma-separated list of valid MIME types, used as a filter for the file picker window.
  `String`
  `getCapture()`
  This attribute enables camera capture functionality for mobile devices, accepting the following values: Set it to "user" to capture using the front-facing camera. Set it to "environment" to capture using the rear-facing camera.
  `String`
  `getEditProxyConstructor()`
  Default class used to construct the `EditProxy` for this component when the component is `first placed into edit mode`.
  `int`
  `getHeight()`
  Height for this uploadItem.
  `Boolean`
  `getMultiple()`
  When true, allow the file-selection dialog shelled by the browser to select multiple files.
  `static UploadItem`
  `getOrCreateRef(JavaScriptObject jsObj)`
  `int[]`
  `getSelectionRange()`
  This method is not supported by `UploadItem`.
  `String`
  `getTextBoxStyle()`
  Base CSS class name for this `UploadItem`'s native file input element.
  `int`
  `getWidth()`
  Width for this uploadItem.
  `void`
  `selectValue()`
  This method is not supported by `UploadItem`.
  `UploadItem`
  `setAccept(String accept)`
  A comma-separated list of valid MIME types, used as a filter for the file picker window.
  `UploadItem`
  `setCapture(String capture)`
  This attribute enables camera capture functionality for mobile devices, accepting the following values: Set it to "user" to capture using the front-facing camera. Set it to "environment" to capture using the rear-facing camera.
  `static void`
  `setDefaultProperties(UploadItem uploadItemProperties)`
  Class level method to set the default properties of this class.
  `UploadItem`
  `setEditProxyConstructor(String editProxyConstructor)`
  Default class used to construct the `EditProxy` for this component when the component is `first placed into edit mode`.
  `UploadItem`
  `setHeight(int height)`
  Height for this uploadItem.
  `UploadItem`
  `setMultiple(Boolean multiple)`
  When true, allow the file-selection dialog shelled by the browser to select multiple files.
  `void`
  `setSelectionRange()`
  This method is not supported by `UploadItem`.
  `UploadItem`
  `setTextBoxStyle(String textBoxStyle)`
  Base CSS class name for this `UploadItem`'s native file input element.
  `void`
  `setValue()`
  Attempting to set the value for an upload form item is disallowed for security reasons.
  `UploadItem`
  `setWidth(int width)`
  Width for this uploadItem.

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

  `getBrowserAutoCapitalize, getBrowserAutoCorrect, getBrowserInputType, getChangeOnKeypress, getCharacterCasing, getEnforceLength, getEnteredValue, getEscapeHTML, getFetchMissingValues, getFormatOnBlur, getFormatOnFocusChange, getHint, getKeyPressFilter, getLength, getMask, getMaskOverwriteMode, getMaskPadChar, getMaskPromptChar, getMaskSaveLiterals, getPrintFullText, getSaveOnEnter, getSelectOnClick, getSelectOnFocus, getShowHintInField, getShowInputElement, getSupportsCutPasteEvents, getSuppressBrowserClearIcon, getUsePlaceholderForHint, getValueAsString, pendingStatusChanged, setBrowserAutoCapitalize, setBrowserAutoCorrect, setBrowserInputType, setChangeOnKeypress, setCharacterCasing, setDefaultProperties, setEnforceLength, setEscapeHTML, setFetchMissingValues, setFormatOnBlur, setFormatOnFocusChange, setKeyPressFilter, setLength, setMask, setMaskOverwriteMode, setMaskPadChar, setMaskPromptChar, setMaskSaveLiterals, setPastedValueTransformer, setPrintFullText, setSaveOnEnter, setSelectionRange, setSelectOnClick, setSelectOnFocus, setShowHintInField, setShowInputElement, setSupportsCutPasteEvents, setSuppressBrowserClearIcon, setUsePlaceholderForHint, shouldFetchMissingValue`

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

  `_getValue, addBlurHandler, addChangedHandler, addChangeHandler, addClickHandler, addDoubleClickHandler, addEditorEnterHandler, addEditorExitHandler, addFocusHandler, addIcon, addIcon, addIconClickHandler, addIconKeyPressHandler, addItemHoverHandler, addKeyDownHandler, addKeyPressHandler, addKeyUpHandler, addPendingStatusChangedHandler, addPickerIconClickHandler, addShowContextMenuHandler, addTitleClickHandler, addTitleDoubleClickHandler, addTitleHoverHandler, addValueHoverHandler, addValueIconClickHandler, applyFormula, asSGWTComponent, blurItem, canEditCriterion, checkFormItemType, clearErrors, clearValue, disable, disableIcon, enable, enableIcon, error, error, errorIfNotCreated, focusAfterItem, focusInItem, getAccessKey, getAlign, getAllowExpressions, getAlwaysFetchMissingValues, getAlwaysShowControlBox, getApplyAlignToText, getApplyHeightToTextBox, getAriaRole, getAttribute, getAttributeAsBoolean, getAttributeAsBoolean, getAttributeAsDate, getAttributeAsDouble, getAttributeAsFloat, getAttributeAsInt, getAttributeAsJavaScriptObject, getAttributeAsObject, getAttributeAsString, getAutoComplete, getAutoCompleteKeywords, getBrowserSpellCheck, getCanEdit, getCanEditOpaqueValues, getCanFocus, getCanHover, getCanSelectText, getCanTabToIcons, getCanvasAutoChild, getCellHeight, getCellStyle, getClassName, getClipStaticValue, getClipTitle, getConfig, getContainerWidget, getControlStyle, getCriteriaField, getCriterion, getCriterion, getCursorPosition, getCustomState, getDataPath, getDateFormatter, getDecimalPad, getDecimalPrecision, getDefaultIconSrc, getDefaultOperator, getDefaultValue, getDestroyed, getDisabled, getDisabledHover, getDisableIconsOnReadOnly, getDisplayField, getDisplayFieldName, getDisplayValue, getDisplayValue, getEditorTypeConfig, getEditPendingCSSText, getEmptyDisplayValue, getEmptyValueIcon, getEndRow, getErrorIconHeight, getErrorIconProperties, getErrorIconSrc, getErrorIconWidth, getErrorMessageWidth, getErrors, getExportFormat, getExtraControlTableCSS, getExtraTextBoxCSS, getFieldName, getFilterLocally, getForeignDisplayField, getForm, getFormat, getFormItemAutoChild, getFormula, getFullDataPath, getGlobalTabIndex, getGridColNum, getGridRowNum, getHeightAsString, getHidden, getHintStyle, getHoverAlign, getHoverDelay, getHoverFocusKey, getHoverHeight, getHoverHeightAsString, getHoverOpacity, getHoverPersist, getHoverStyle, getHoverVAlign, getHoverWidth, getHoverWidthAsString, getIcon, getIconBaseStyle, getIconHeight, getIconHSpace, getIconPageRect, getIconPrompt, getIconRect, getIcons, getIconTabPosition, getIconVAlign, getIconWidth, getID, getImageURLPrefix, getImageURLSuffix, getImplicitSave, getImplicitSaveOnBlur, getInputFormat, getLeft, getLinearColSpan, getLinearColSpanAsString, getLinearEndRow, getLinearEndRowAsString, getLinearStartRow, getLinearStartRowAsString, getLinearWidth, getLinearWidthAsString, getListGrid, getLoadingDisplayValue, getLocateItemBy, getMinHintWidth, getMultipleValueSeparator, getName, getNullOriginalValueText, getOperator, getOptionCriteria, getOptionDataSource, getOptionDataSourceAsString, getOptionFilterContext, getOptionOperationId, getOptionTextMatchStyle, getOriginalValueMessage, getPageLeft, getPageRect, getPageTop, getPaletteDefaults, getPicker, getPickerIcon, getPickerIcon, getPickerIconHeight, getPickerIconName, getPickerIconPrompt, getPickerIconProperties, getPickerIconSrc, getPickerIconStyle, getPickerIconTabPosition, getPickerIconWidth, getPixelHeight, getPixelWidth, getPrintReadOnlyTextBoxStyle, getPrintTextBoxStyle, getPrintTitleStyle, getPrompt, getReadOnlyCanSelectText, getReadOnlyControlStyle, getReadOnlyDisplay, getReadOnlyHover, getReadOnlyTextBoxStyle, getReadOnlyWhen, getRect, getRedrawOnChange, getRejectInvalidValueOnChange, getRequired, getRequiredMessage, getRequiredRightTitlePrefix, getRequiredRightTitleSuffix, getRequiredTitlePrefix, getRequiredTitleSuffix, getRequiredWhen, getRightTitlePrefix, getRightTitleSuffix, getRowSpan, getScClassName, getSelectedRecord, getShouldSaveValue, getShowClippedTitleOnHover, getShowClippedValueOnHover, getShowDeletions, getShowDisabled, getShowDisabledIconsOnFocus, getShowDisabledPickerIconOnFocus, getShowErrorIcon, getShowErrorIconInline, getShowErrorStyle, getShowErrorText, getShowFocused, getShowFocusedErrorState, getShowFocusedIcons, getShowFocusedPickerIcon, getShowHint, getShowIcons, getShowIconsOnFocus, getShowImageAsURL, getShowOldValueInHover, getShowOver, getShowOverIcons, getShowPending, getShowPickerIcon, getShowPickerIconOnFocus, getShowRTL, getShowTitle, getShowValueIconOnly, getShowVoiceAssistIcon, getStartRow, getStaticHeight, getStopOnError, getStoreDisplayValues, getSuppressValueIcon, getSynchronousValidation, getTabIndex, getTextAlign, getTextFormula, getTimeFormatter, getTitle, getTitleAlign, getTitleColSpan, getTitleOrientation, getTitlePrefix, getTitleStyle, getTitleSuffix, getTitleVAlign, getTooltip, getTop, getType, getUpdateControlOnOver, getUpdatePickerIconOnOver, getUpdateTextBoxOnOver, getUseAdvancedCriteria, getUseDisabledHintStyleForReadOnly, getUseLocalDisplayFieldValue, getValidateOnChange, getValidateOnExit, getValidOperators, getVAlign, getValue, getValueAsFloat, getValueAsInteger, getValueAsLong, getValueAsRecordList, getValueDeselectedCSSText, getValueField, getValueFieldName, getValueIconHeight, getValueIconLeftPadding, getValueIconRightPadding, getValueIconSize, getValueIconWidth, getValueMap, getValueMapAsArray, getVisible, getVisibleHeight, getVisibleTitleWidth, getVisibleWhen, getVisibleWidth, getWarnOnEditorTypeConversion, getWarnOnEditorTypeConversionDefault, getWidthAsString, getWrapHintText, getWrapStaticValue, getWrapTitle, handleWarnOnEditorTypeConversion, hasAdvancedCriteria, hasErrors, hide, hideIcon, invalidateDisplayValueCache, isAssignableFrom, isConfigOnly, isCreated, isCutEvent, isDisabled, isDrawn, isFocused, isInGrid, isPasteEvent, isVisible, linkToInstanceUponCreate, mapDisplayToValue, mapValueToDisplay, mapValueToDisplay, mapValueToDisplay, redraw, redraw, removeIcon, selectedRecordChanged, setAccessKey, setAlign, setAllowExpressions, setAlwaysFetchMissingValues, setAlwaysShowControlBox, 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, setAutoCompleteKeywords, setBrowserSpellCheck, setCanEdit, setCanEditCriterionPredicate, setCanEditOpaqueValues, setCanFocus, setCanHover, setCanSelectText, setCanTabToIcons, setCellHeight, setCellStyle, setClipStaticValue, setClipTitle, setColSpan, setColSpan, setConfigOnly, setControlStyle, setCriteriaField, setCriterion, setCriterionGetter, setCriterionSetter, setCustomStateGetter, setDataPath, setDateFormatter, setDecimalPad, setDecimalPrecision, setDefaultIconSrc, setDefaultOperator, setDefaultProperties, setDefaultValue, setDefaultValue, setDefaultValue, setDefaultValue, setDefaultValue, setDefaultValue, setDefaultValue, setDisabled, setDisabledHover, setDisableIconsOnReadOnly, setDisplayField, setDisplayFormat, setDisplayFormat, setEditorProperties, setEditorType, setEditorType, setEditorType, setEditorValueFormatter, setEditorValueParser, setEditPendingCSSText, setEmptyDisplayValue, setEmptyValueIcon, setEndRow, setErrorFormatter, setErrorIconHeight, setErrorIconProperties, setErrorIconSrc, setErrorIconWidth, setErrorMessageWidth, setErrorOrientation, setErrors, setErrors, setExportFormat, setExtraControlTableCSS, setExtraTextBoxCSS, setFilterLocally, setForeignDisplayField, setFormat, setFormula, setGlobalTabIndex, setHeight, setHidden, setHint, setHintStyle, setHoverAlign, setHoverDelay, setHoverFocusKey, setHoverHeight, setHoverHeight, setHoverOpacity, setHoverPersist, setHoverStyle, setHoverVAlign, setHoverWidth, setHoverWidth, setIconBaseStyle, setIconDisabled, setIconHeight, setIconHSpace, setIconPrompt, setIcons, setIconShowOnFocus, setIconVAlign, setIconWidth, setID, setImageURLPrefix, setImageURLSuffix, setImplicitSave, setImplicitSaveOnBlur, setInitHandler, setInputFormat, setInputTransformer, setItemHoverFormatter, setItemTitleHoverFormatter, setItemValueHoverFormatter, setJavaScriptObject, setLeft, setLinearColSpan, setLinearColSpan, setLinearEndRow, setLinearEndRow, setLinearStartRow, setLinearStartRow, setLinearWidth, setLinearWidth, setLoadingDisplayValue, setLocateItemBy, setMinHintWidth, setMultipleValueSeparator, setName, setNullOriginalValueText, setNullProperty, setOperator, setOptionCriteria, setOptionDataSource, setOptionDataSource, setOptionFilterContext, setOptionOperationId, setOptionTextMatchStyle, setOriginalValueMessage, setPickerIconHeight, setPickerIconName, setPickerIconPrompt, setPickerIconProperties, setPickerIconSrc, setPickerIconStyle, setPickerIconWidth, setPrintReadOnlyTextBoxStyle, setPrintTextBoxStyle, setPrintTitleStyle, setPrompt, setProperty, setProperty, setProperty, setProperty, setProperty, setReadOnlyCanSelectText, setReadOnlyControlStyle, setReadOnlyDisplay, setReadOnlyHover, setReadOnlyTextBoxStyle, setReadOnlyWhen, setRedrawOnChange, setRejectInvalidValueOnChange, setRequired, setRequiredMessage, setRequiredRightTitlePrefix, setRequiredRightTitleSuffix, setRequiredTitlePrefix, setRequiredTitleSuffix, setRequiredWhen, setRightTitlePrefix, setRightTitleSuffix, setRowSpan, setScClassName, setShouldSaveValue, setShowClippedTitleOnHover, setShowClippedValueOnHover, setShowDeletions, setShowDisabled, setShowDisabledIconsOnFocus, setShowDisabledPickerIconOnFocus, setShowErrorIcon, setShowErrorIconInline, setShowErrorStyle, setShowErrorText, setShowFocused, setShowFocusedErrorState, setShowFocusedIcons, setShowFocusedPickerIcon, setShowHint, setShowIcons, setShowIconsOnFocus, setShowIfCondition, setShowImageAsURL, setShowOldValueInHover, setShowOver, setShowOverIcons, setShowPending, setShowPickerIcon, setShowPickerIconOnFocus, setShowRTL, setShowTitle, setShowValueIconOnly, setShowVoiceAssistIcon, setStartRow, setStateCustomizer, setStaticHeight, setStopOnError, setStoreDisplayValues, setSuppressValueIcon, setSynchronousValidation, setTabIndex, setTextAlign, setTextFormula, setTimeFormatter, setTitle, setTitleAlign, setTitleColSpan, setTitleHoverFormatter, setTitleOrientation, setTitlePrefix, setTitleStyle, setTitleSuffix, setTitleVAlign, setTooltip, setTop, setType, setUpdateControlOnOver, setUpdatePickerIconOnOver, setUpdateTextBoxOnOver, setUseAdvancedCriteria, setUseDisabledHintStyleForReadOnly, setUseLocalDisplayFieldValue, setUseObjectFactoryForTypeFallback, setValidateOnChange, setValidateOnExit, setValidators, setValidOperators, setVAlign, setValue, setValue, setValue, setValue, setValue, setValue, setValueDeselectedCSSText, setValueField, setValueFormatter, setValueHoverFormatter, setValueIconHeight, setValueIconLeftPadding, setValueIconMapper, setValueIconRightPadding, setValueIcons, setValueIconSize, setValueIconWidth, setValueMap, setValueMap, setVisible, setVisibleWhen, setWarnOnEditorTypeConversion, setWarnOnEditorTypeConversionDefault, setWidth, setWrapHintText, setWrapStaticValue, setWrapTitle, shouldApplyHeightToTextBox, shouldSaveOnEnter, shouldStopKeyPressBubbling, show, showIcon, showPicker, stopHover, storeValue, storeValue, updateState, validate, valueClipped`

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

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

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

  `getRef, getRef, internalSetID`

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

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

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

  `equals, getJsObj, hashCode, setJsObj`

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

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

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

  `fireEvent`

- ## Constructor Details

  - ### UploadItem

    public UploadItem()

  - ### UploadItem

    public UploadItem(JavaScriptObject jsObj)

  - ### UploadItem

    public UploadItem(String name)

  - ### UploadItem

    public UploadItem(String name, String title)

- ## Method Details

  - ### getOrCreateRef

    public static UploadItem getOrCreateRef(JavaScriptObject jsObj)

  - ### changeAutoChildDefaults

    public static void changeAutoChildDefaults(String autoChildName, Canvas defaults)
    Changes the defaults for Canvas AutoChildren named `autoChildName`.
    Parameters:
      `autoChildName` - name of an AutoChild to customize the defaults for.
      `defaults` - Canvas defaults to apply. These defaults override any existing properties without destroying or wiping out non-overridden properties. For usage tips on this param, see `SGWTProperties`.
    See Also:
      - `AutoChildUsage`

  - ### changeAutoChildDefaults

    public static void changeAutoChildDefaults(String autoChildName, FormItem defaults)
    Changes the defaults for FormItem AutoChildren named `autoChildName`.
    Parameters:
      `autoChildName` - name of an AutoChild to customize the defaults for.
      `defaults` - FormItem defaults to apply. These defaults override any existing properties without destroying or wiping out non-overridden properties. For usage tips on this param, see `SGWTProperties`.
    See Also:
      - `AutoChildUsage`

  - ### changePickerIconDefaults

    public static void changePickerIconDefaults(FormItemIcon defaults)

  - ### setAccept

    public UploadItem setAccept(String accept)
    A comma-separated list of valid MIME types, used as a filter for the file picker window.

    Note that this property makes use of the HTML `accept` attribute, and so relies on the browser to perform the desired filtering. For further study, see:

    - HTML <input> accept Attribute
    - The Input (Form Input) element
    - File input 'accept' attribute - is it useful?
    Parameters:
      `accept` - New accept value. Default value is null
    Returns:
      `UploadItem` instance, for chaining setter calls

  - ### getAccept

    public String getAccept()
    A comma-separated list of valid MIME types, used as a filter for the file picker window.

    Note that this property makes use of the HTML `accept` attribute, and so relies on the browser to perform the desired filtering. For further study, see:

    - HTML <input> accept Attribute
    - The Input (Form Input) element
    - File input 'accept' attribute - is it useful?
    Returns:
      Current accept value. Default value is null

  - ### setCapture

    public UploadItem setCapture(String capture)
    This attribute enables camera capture functionality for mobile devices, accepting the following values:
    - Set it to "user" to capture using the front-facing camera.
    - Set it to "environment" to capture using the rear-facing camera.

    Please note that in the latest versions of Android and iOS, utilizing this attribute will consistently load the rear camera. This behavior is due to the direct camera software's ability to switch between the two cameras seamlessly.

    When working with the capture functionality of iPhones and Android devices, it's important to consider the supported DataSourceField.mimeTypes for audio, video, and image files that can be used with the fileItem.accept attribute. Here's a list of commonly supported mime types for capturing on these devices:

    Supported Image Mime Types:

    - image/jpeg: JPEG image format (.jpg, .jpeg)
    - image/png: Portable Network Graphics format (.png)
    Supported Audio Mime Types:
    - audio/3gpp: 3GPP format, commonly used for audio capture.
    - audio/mp4: MP4 format, widely supported for audio capture.
    Supported Video Mime Types:
    - video/3gpp: 3GPP format, commonly used for video capture.
    - video/mp4: MP4 format, widely supported for video capture.
    Behavior Based on 'accept' Attribute

    The behavior of using the capture attribute depends on the value used in the accept attribute. For example:

    - accept="image/*" will load the camera ready to take pictures.
    - accept="audio/*" will load the default audio recorder, not the camera.
    - accept="video/*" will load the camera in video mode, ready to capture videos.
    Please note that the Smart GWT framework does not control the native device behavior beyond these attribute settings.

    Lastly, keep in mind that these settings have no effect on desktop browsers; they apply exclusively to mobile devices.

    This information is "circa 2023" and may not apply to all devices.

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

  - ### getCapture

    public String getCapture()
    This attribute enables camera capture functionality for mobile devices, accepting the following values:
    - Set it to "user" to capture using the front-facing camera.
    - Set it to "environment" to capture using the rear-facing camera.

    Please note that in the latest versions of Android and iOS, utilizing this attribute will consistently load the rear camera. This behavior is due to the direct camera software's ability to switch between the two cameras seamlessly.

    When working with the capture functionality of iPhones and Android devices, it's important to consider the supported DataSourceField.mimeTypes for audio, video, and image files that can be used with the fileItem.accept attribute. Here's a list of commonly supported mime types for capturing on these devices:

    Supported Image Mime Types:

    - image/jpeg: JPEG image format (.jpg, .jpeg)
    - image/png: Portable Network Graphics format (.png)
    Supported Audio Mime Types:
    - audio/3gpp: 3GPP format, commonly used for audio capture.
    - audio/mp4: MP4 format, widely supported for audio capture.
    Supported Video Mime Types:
    - video/3gpp: 3GPP format, commonly used for video capture.
    - video/mp4: MP4 format, widely supported for video capture.
    Behavior Based on 'accept' Attribute

    The behavior of using the capture attribute depends on the value used in the accept attribute. For example:

    - accept="image/*" will load the camera ready to take pictures.
    - accept="audio/*" will load the default audio recorder, not the camera.
    - accept="video/*" will load the camera in video mode, ready to capture videos.
    Please note that the Smart GWT framework does not control the native device behavior beyond these attribute settings.

    Lastly, keep in mind that these settings have no effect on desktop browsers; they apply exclusively to mobile devices.

    This information is "circa 2023" and may not apply to all devices.

    Returns:
      Current capture value. Default value is null

  - ### setEditProxyConstructor

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

  - ### getEditProxyConstructor

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

  - ### setHeight

    public UploadItem setHeight(int height)
    Height for this uploadItem. Note that Smart GWT will not apply this size to the native HTML <input ...> element written out by this formItem as this leads to inconsistent appearance across different browsers. The specified height acts as a minimum cell width for the item.
    Overrides:
      `setHeight` in class `FormItem`
    Parameters:
      `height` - New height value. Default value is 19
    Returns:
      `UploadItem` instance, for chaining setter calls
    See Also:
      - `FormItem.setWidth(int)`
      - `DynamicForm.setItemLayout(com.smartgwt.client.types.FormLayoutType)`
      - `Form Layout`
      - Filling Example

  - ### getHeight

    public int getHeight()
    Height for this uploadItem. Note that Smart GWT will not apply this size to the native HTML <input ...> element written out by this formItem as this leads to inconsistent appearance across different browsers. The specified height acts as a minimum cell width for the item.
    Overrides:
      `getHeight` in class `FormItem`
    Returns:
      Current height value. Default value is 19
    See Also:
      - `FormItem.getWidth()`
      - `DynamicForm.getItemLayout()`
      - `Form Layout`
      - Filling Example

  - ### setMultiple

    public UploadItem setMultiple(Boolean multiple)
    When true, allow the file-selection dialog shelled by the browser to select multiple files.

    Support is not full-cycle at the server - that is, there are server APIs for retrieving each file that was uploaded, but no built-in support for storing multiple files against a single DataSource field. However, you can write custom server DMI code to do something with the files - for instance, you could create multiple new DataSource records for each file via a server DMI like this below:

             String fileNameStr = (String)dsRequest.getValues().get("image_filename").toString();

             String[] fileNames = fileNameStr.split(", ");
             List files = dsRequest.getUploadedFiles();

             for (int i = 0; i < files.size(); i++) {
                 ISCFileItem file = (ISCFileItem)files.get(i);
                 InputStream fileData = file.getInputStream();
                 DSRequest inner = new DSRequest("mediaLibrary", "add");
                 Map values = new HashMap();
                 values.put("title", dsRequest.getValues().get("title"));
                 values.put("image", fileData);
                 values.put("image_filename", fileNames[i]);
                 values.put("image_filesize", file.getSize());
                 values.put("image_date_created", new Date());

                 inner.setValues(values);
                 inner.execute();
             }

             DSResponse dsResponse = new DSResponse();

             dsResponse.setStatus(0);

             return dsResponse;

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

  - ### getMultiple

    public Boolean getMultiple()
    When true, allow the file-selection dialog shelled by the browser to select multiple files.

    Support is not full-cycle at the server - that is, there are server APIs for retrieving each file that was uploaded, but no built-in support for storing multiple files against a single DataSource field. However, you can write custom server DMI code to do something with the files - for instance, you could create multiple new DataSource records for each file via a server DMI like this below:

             String fileNameStr = (String)dsRequest.getValues().get("image_filename").toString();

             String[] fileNames = fileNameStr.split(", ");
             List files = dsRequest.getUploadedFiles();

             for (int i = 0; i < files.size(); i++) {
                 ISCFileItem file = (ISCFileItem)files.get(i);
                 InputStream fileData = file.getInputStream();
                 DSRequest inner = new DSRequest("mediaLibrary", "add");
                 Map values = new HashMap();
                 values.put("title", dsRequest.getValues().get("title"));
                 values.put("image", fileData);
                 values.put("image_filename", fileNames[i]);
                 values.put("image_filesize", file.getSize());
                 values.put("image_date_created", new Date());

                 inner.setValues(values);
                 inner.execute();
             }

             DSResponse dsResponse = new DSResponse();

             dsResponse.setStatus(0);

             return dsResponse;

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

  - ### setTextBoxStyle

    public UploadItem setTextBoxStyle(String textBoxStyle)
    Base CSS class name for this `UploadItem`'s native file input element.

    Note that the customization via CSS of a native file input element allowable by the browser varies widely; in some browsers on certain platforms, it may be possible to customize certain CSS properties, but not in others; or, it may be that the CSS property (e.g. border) is applied differently in some browsers.

    If the textBoxStyle is changed at runtime, `FormItem.updateState()` must be called to update the visual state. However, calling updateState() will clear any file selected by the user to be uploaded.

    Overrides:
      `setTextBoxStyle` in class `TextItem`
    Parameters:
      `textBoxStyle` - New textBoxStyle value. Default value is "uploadItem"
    Returns:
      `UploadItem` instance, for chaining setter calls
    See Also:
      - `FormItem.setCellStyle(java.lang.String)`
      - `FormItemBaseStyle`
      - `FormItem Styling`

  - ### getTextBoxStyle

    public String getTextBoxStyle()
    Base CSS class name for this `UploadItem`'s native file input element.

    Note that the customization via CSS of a native file input element allowable by the browser varies widely; in some browsers on certain platforms, it may be possible to customize certain CSS properties, but not in others; or, it may be that the CSS property (e.g. border) is applied differently in some browsers.

    If the textBoxStyle is changed at runtime, `FormItem.updateState()` must be called to update the visual state. However, calling updateState() will clear any file selected by the user to be uploaded.

    Overrides:
      `getTextBoxStyle` in class `TextItem`
    Returns:
      Current textBoxStyle value. Default value is "uploadItem"
    See Also:
      - `FormItem.getCellStyle()`
      - `FormItemBaseStyle`
      - `FormItem Styling`

  - ### setWidth

    public UploadItem setWidth(int width)
    Width for this uploadItem. Note that Smart GWT will not apply this size to the native HTML <input ...> element written out by this formItem as this leads to inconsistent appearance across different browsers. The specified width acts as a minimum cell width for the item.
    Overrides:
      `setWidth` in class `FormItem`
    Parameters:
      `width` - New width value. Default value is 150
    Returns:
      `UploadItem` instance, for chaining setter calls
    See Also:
      - `FormItem.setLinearWidth(int)`
      - `FormItem.setHeight(int)`
      - `DynamicForm.setItemLayout(com.smartgwt.client.types.FormLayoutType)`
      - `Form Layout`
      - Spanning Example

  - ### getWidth

    public int getWidth()
    Width for this uploadItem. Note that Smart GWT will not apply this size to the native HTML <input ...> element written out by this formItem as this leads to inconsistent appearance across different browsers. The specified width acts as a minimum cell width for the item.
    Overrides:
      `getWidth` in class `FormItem`
    Returns:
      Current width value. Default value is 150
    See Also:
      - `FormItem.getLinearWidth()`
      - `FormItem.getHeight()`
      - `DynamicForm.getItemLayout()`
      - `Form Layout`
      - Spanning Example

  - ### deselectValue

    public void deselectValue()
    This method is not supported by `UploadItem`.
    Overrides:
      `deselectValue` in class `TextItem`

  - ### deselectValue

    public void deselectValue(Boolean start)
    This method is not supported by `UploadItem`.
    Overrides:
      `deselectValue` in class `TextItem`
    Parameters:
      `start` - By default the text insertion cursor will be moved to the end of the current value - pass in this parameter to move to the start instead

  - ### getSelectionRange

    public int[] getSelectionRange()
    This method is not supported by `UploadItem`.
    Overrides:
      `getSelectionRange` in class `TextItem`
    Returns:
      `null`

  - ### selectValue

    public void selectValue()
    This method is not supported by `UploadItem`.
    Overrides:
      `selectValue` in class `TextItem`

  - ### setSelectionRange

    public void setSelectionRange()
    This method is not supported by `UploadItem`.

  - ### setValue

    public void setValue()
    Attempting to set the value for an upload form item is disallowed for security reasons. Therefore this method will just log a warning, and not modify the value of the item.

  - ### setDefaultProperties

    public static void setDefaultProperties(UploadItem uploadItemProperties)
    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:
      `uploadItemProperties` - properties that should be used as new defaults when instances of this class are created
    See Also:
      - `SGWTProperties`