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

# Class FileItem

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.CanvasItem
com.smartgwt.client.widgets.form.fields.FileItem

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

Direct Known Subclasses:
  `ViewFileItem`

public class FileItem extends CanvasItem
Binary data interface for use in DynamicForms. Allows users to select a single file for upload. In read-only mode (canEdit:false), can display the contents of "imageFile" fields.

Editable mode

The `editForm` will be automatically generated and displayed as `this.canvas`, allowing the user to select file(s) to upload.

See the `Upload Overview` for information on using this control.

Read-only mode

There are multiple ways that a FileItem can present the file to the user in read-only mode.

In most cases the FileItem will not have its `value` set to the raw binary data value stored on the server for the field. However if the value is present as a Base64 encoded string due to `DataSourceField.encodeInResponse` being set or due to custom server logic populating the field value explicitly, the `displayForm` will be displayed and the raw data value be rendered as a string within its `displayItem`.

If the `value` is not set, the `displayCanvas` will be displayed instead. For `"imageFile"` type fields with `showFileInline` set to true, the image-file will be streamed and displayed inline within the displayCanvas.

If `showFileInline` is false or this is not an image type field, the `file title` will be displayed in the displayCanvas, along with icons to `View` and `Download` the file.

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
  `FileItem()`
  `FileItem(JavaScriptObject jsObj)`
  `FileItem(String name)`
  `FileItem(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)`
  `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.
  `Canvas`
  `getDisplayCanvas()`
  The `Canvas` created automatically when `canEdit` is false and the field is of any type other than "binary".
  `DynamicForm`
  `getDisplayForm()`
  The `DynamicForm` created automatically when `canEdit` is false and the field is of type "binary".
  `StaticTextItem`
  `getDisplayItem()`
  The `StaticTextItem` created automatically and displayed in the `displayForm` when `canEdit` is false and the field type is "binary".
  `String`
  `getDownloadIconSrc()`
  Returns the name of the icon to use for the download functionality.
  `DynamicForm`
  `getEditForm()`
  The `DynamicForm` created automatically when `canEdit` is true.
  `String`
  `getEditProxyConstructor()`
  Default class used to construct the `EditProxy` for this component when the component is `first placed into edit mode`.
  `void`
  `getFileTitle(Object value, Map record)`
  This method returns the title displayed next to the view and download buttons when displaying the file in read-only view.
  `Boolean`
  `getMultiple()`
  When true, allow the file-selection dialog shelled by the browser to select multiple files.
  `static FileItem`
  `getOrCreateRef(JavaScriptObject jsObj)`
  `Boolean`
  `getShouldSaveValue()`
  Should this item's value be saved in the form's values and hence returned from `form.getValues()`?
  `Boolean`
  `getShowFileInline()`
  Indicates whether to stream the image and display it inline or to display the View and Download icons.
  `UploadItem`
  `getUploadItem()`
  The `UploadItem` created automatically and displayed in the `editForm` when `canEdit` is true.
  `String`
  `getViewIconSrc()`
  Returns the name of the icon to use for the view functionality.
  `FileItem`
  `setAccept(String accept)`
  A comma-separated list of valid MIME types, used as a filter for the file picker window.
  `FileItem`
  `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(FileItem fileItemProperties)`
  Class level method to set the default properties of this class.
  `FileItem`
  `setDownloadIconSrc(String downloadIconSrc)`
  Returns the name of the icon to use for the download functionality.
  `FileItem`
  `setEditProxyConstructor(String editProxyConstructor)`
  Default class used to construct the `EditProxy` for this component when the component is `first placed into edit mode`.
  `FileItem`
  `setMultiple(Boolean multiple)`
  When true, allow the file-selection dialog shelled by the browser to select multiple files.
  `FileItem`
  `setShouldSaveValue(Boolean shouldSaveValue)`
  Should this item's value be saved in the form's values and hence returned from `form.getValues()`?
  `FileItem`
  `setShowFileInline(Boolean showFileInline)`
  Indicates whether to stream the image and display it inline or to display the View and Download icons.
  `FileItem`
  `setViewIconSrc(String viewIconSrc)`
  Returns the name of the icon to use for the view functionality.

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

  `addCanEditChangedHandler, addReadOnlyDisplayChangedHandler, addShowValueHandler, createCanvas, getApplyPromptToCanvas, getAutoDestroy, getCanvas, getEditCriteriaInInnerForm, getHeight, getHeightAsString, getMaxHeight, getMinHeight, getOverflow, getPrompt, hasAdvancedCriteria, isFocused, setApplyPromptToCanvas, setAutoDestroy, setCanEditCriterionPredicate, setCanvas, setCriterionGetter, setCriterionSetter, setDefaultProperties, setEditCriteriaInInnerForm, setHeight, setHeight, setMaxHeight, setMinHeight, setOverflow, setPrompt, setShouldDisableCanvasCustomizer, setupCanvasConstructor, storeValue, storeValue, storeValue, updateCanvasTabPosition`

  ### 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, getBrowserInputType, getBrowserSpellCheck, getCanEdit, getCanEditOpaqueValues, getCanFocus, getCanHover, getCanSelectText, getCanTabToIcons, getCanvasAutoChild, getCellHeight, getCellStyle, getChangeOnKeypress, 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, getEscapeHTML, getExportFormat, getExtraControlTableCSS, getExtraTextBoxCSS, getFetchMissingValues, getFieldName, getFilterLocally, getForeignDisplayField, getForm, getFormat, getFormItemAutoChild, getFormula, getFullDataPath, getGlobalTabIndex, getGridColNum, getGridRowNum, getHidden, getHint, 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, getReadOnlyCanSelectText, getReadOnlyControlStyle, getReadOnlyDisplay, getReadOnlyHover, getReadOnlyTextBoxStyle, getReadOnlyWhen, getRect, getRedrawOnChange, getRejectInvalidValueOnChange, getRequired, getRequiredMessage, getRequiredRightTitlePrefix, getRequiredRightTitleSuffix, getRequiredTitlePrefix, getRequiredTitleSuffix, getRequiredWhen, getRightTitlePrefix, getRightTitleSuffix, getRowSpan, getSaveOnEnter, getScClassName, getSelectedRecord, getSelectOnClick, getSelectOnFocus, 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, getStartRow, getStaticHeight, getStopOnError, getStoreDisplayValues, getSupportsCutPasteEvents, getSuppressValueIcon, getSynchronousValidation, getTabIndex, getTextAlign, getTextBoxStyle, 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, getWidth, getWidthAsString, getWrapHintText, getWrapStaticValue, getWrapTitle, handleWarnOnEditorTypeConversion, hasErrors, hide, hideIcon, invalidateDisplayValueCache, isAssignableFrom, isConfigOnly, isCreated, isCutEvent, isDisabled, isDrawn, 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, setBrowserInputType, setBrowserSpellCheck, setCanEdit, setCanEditOpaqueValues, setCanFocus, setCanHover, setCanSelectText, setCanTabToIcons, setCellHeight, setCellStyle, setChangeOnKeypress, setClipStaticValue, setClipTitle, setColSpan, setColSpan, setConfigOnly, setControlStyle, setCriteriaField, setCriterion, 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, setEscapeHTML, setExportFormat, setExtraControlTableCSS, setExtraTextBoxCSS, setFetchMissingValues, setFilterLocally, setForeignDisplayField, setFormat, setFormula, setGlobalTabIndex, 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, setProperty, setProperty, setProperty, setProperty, setProperty, setReadOnlyCanSelectText, setReadOnlyControlStyle, setReadOnlyDisplay, setReadOnlyHover, setReadOnlyTextBoxStyle, setReadOnlyWhen, setRedrawOnChange, setRejectInvalidValueOnChange, setRequired, setRequiredMessage, setRequiredRightTitlePrefix, setRequiredRightTitleSuffix, setRequiredTitlePrefix, setRequiredTitleSuffix, setRequiredWhen, setRightTitlePrefix, setRightTitleSuffix, setRowSpan, setSaveOnEnter, setScClassName, setSelectOnClick, setSelectOnFocus, 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, setStartRow, setStateCustomizer, setStaticHeight, setStopOnError, setStoreDisplayValues, setSupportsCutPasteEvents, setSuppressValueIcon, setSynchronousValidation, setTabIndex, setTextAlign, setTextBoxStyle, 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, setWidth, setWrapHintText, setWrapStaticValue, setWrapTitle, shouldApplyHeightToTextBox, shouldFetchMissingValue, shouldSaveOnEnter, shouldStopKeyPressBubbling, show, showIcon, showPicker, stopHover, 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

  - ### FileItem

    public FileItem()

  - ### FileItem

    public FileItem(JavaScriptObject jsObj)

  - ### FileItem

    public FileItem(String name)

  - ### FileItem

    public FileItem(String name, String title)

- ## Method Details

  - ### getOrCreateRef

    public static FileItem 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 FileItem 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:
      `FileItem` 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 FileItem 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:
      `FileItem` 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

  - ### getDisplayCanvas

    public Canvas getDisplayCanvas()
    The `Canvas` created automatically when `canEdit` is false and the field is of any type other than "binary".

    If the field is of type "imageFile", and `showFileInline` is true, the contents of the canvas are set to HTML that streams the image file for display. Otherwise, the item renders icons that allow the file to be `viewed` or `downloaded`.

    This component is an `com.smartgwt.client.types.AutoChild` and as such may be customized via `fileItem.displayCanvasDefaults` and `fileItem.displayCanvasProperties`.

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

    Returns:
      Current displayCanvas value. Default value is null
    See Also:
      - `Uploading Files`

  - ### getDisplayForm

    public DynamicForm getDisplayForm()
    The `DynamicForm` created automatically when `canEdit` is false and the field is of type "binary". Displays a single `item` for viewing the content of a binary file.

    This component is an `com.smartgwt.client.types.AutoChild` and as such may be customized via `fileItem.displayFormDefaults` and `fileItem.displayFormProperties`.

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

    Returns:
      Current displayForm value. Default value is null
    See Also:
      - `Uploading Files`

  - ### getDisplayItem

    public StaticTextItem getDisplayItem()
    The `StaticTextItem` created automatically and displayed in the `displayForm` when `canEdit` is false and the field type is "binary".

    This component is an `com.smartgwt.client.types.AutoChild` and as such may be customized via `fileItem.displayItemDefaults` and `fileItem.displayItemProperties`.

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

    Returns:
      Current displayItem value. Default value is null
    See Also:
      - `Uploading Files`

  - ### setDownloadIconSrc

    public FileItem setDownloadIconSrc(String downloadIconSrc)
    Returns the name of the icon to use for the download functionality.
    Parameters:
      `downloadIconSrc` - New downloadIconSrc value. Default value is "Download"
    Returns:
      `FileItem` instance, for chaining setter calls
    See Also:
      - `SCImgURL`
      - `Images overview and related methods`

  - ### getDownloadIconSrc

    public String getDownloadIconSrc()
    Returns the name of the icon to use for the download functionality.
    Returns:
      Current downloadIconSrc value. Default value is "Download"
    See Also:
      - `SCImgURL`
      - `Images overview and related methods`

  - ### getEditForm

    public DynamicForm getEditForm()
    The `DynamicForm` created automatically when `canEdit` is true. Displays a single `item` for manipulating a file.

    This component is an `com.smartgwt.client.types.AutoChild` and as such may be customized via `fileItem.editFormDefaults` and `fileItem.editFormProperties`.

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

    Returns:
      Current editForm value. Default value is null
    See Also:
      - `Uploading Files`

  - ### setEditProxyConstructor

    public FileItem 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 `FormItem`
    Parameters:
      `editProxyConstructor` - New editProxyConstructor value. Default value is "FileItemEditProxy"
    Returns:
      `FileItem` 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 `FormItem`
    Returns:
      Current editProxyConstructor value. Default value is "FileItemEditProxy"
    See Also:
      - `SCClassName`

  - ### setMultiple

    public FileItem 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;

    If this method is called after the component has been drawn/initialized: Updates the `multiple` setting at runtime, propagating it to the Browser's file dialog. Causes a redraw.
    Overrides:
      `setMultiple` in class `CanvasItem`
    Parameters:
      `multiple` - the HTML of the view link. Default value is true
    Returns:
      `FileItem` 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 `CanvasItem`
    Returns:
      Current multiple value. Default value is true
    See Also:
      - `Appearance overview and related methods`

  - ### setShouldSaveValue

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

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

    A `shouldSaveValue:false` item should be given a value either via `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` - New shouldSaveValue value. Default value is true
    Returns:
      `FileItem` instance, for chaining setter calls

  - ### getShouldSaveValue

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

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

    A `shouldSaveValue:false` item should be given a value either via `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:
      Current shouldSaveValue value. Default value is true

  - ### setShowFileInline

    public FileItem setShowFileInline(Boolean showFileInline)
    Indicates whether to stream the image and display it inline or to display the View and Download icons.
    Parameters:
      `showFileInline` - New showFileInline value. Default value is null
    Returns:
      `FileItem` instance, for chaining setter calls

  - ### getShowFileInline

    public Boolean getShowFileInline()
    Indicates whether to stream the image and display it inline or to display the View and Download icons.
    Returns:
      Current showFileInline value. Default value is null

  - ### getUploadItem

    public UploadItem getUploadItem()
    The `UploadItem` created automatically and displayed in the `editForm` when `canEdit` is true.

    This component is an `com.smartgwt.client.types.AutoChild` and as such may be customized via `fileItem.uploadItemDefaults` and `fileItem.uploadItemProperties`.

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

    Returns:
      Current uploadItem value. Default value is null
    See Also:
      - `Uploading Files`

  - ### setViewIconSrc

    public FileItem setViewIconSrc(String viewIconSrc)
    Returns the name of the icon to use for the view functionality.
    Parameters:
      `viewIconSrc` - New viewIconSrc value. Default value is "View"
    Returns:
      `FileItem` instance, for chaining setter calls
    See Also:
      - `SCImgURL`
      - `Images overview and related methods`

  - ### getViewIconSrc

    public String getViewIconSrc()
    Returns the name of the icon to use for the view functionality.
    Returns:
      Current viewIconSrc value. Default value is "View"
    See Also:
      - `SCImgURL`
      - `Images overview and related methods`

  - ### getFileTitle

    public void getFileTitle(Object value, Map record)
    This method returns the title displayed next to the view and download buttons when displaying the file in read-only view. By default this displays the file name derived from `record[fieldName_filename]`.
    Parameters:
      `value` - value of this item. This will typically be null unless `DataSourceField.encodeInResponse` is true. See the `Binary fields documentation` for details of how binary fields are handled when fetching records in Smart GWT.
      `record` - the values being edited by the form or held by the `ValuesManager` that the form is a member of.

  - ### setDefaultProperties

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