public class MultiFileItem extends CanvasItem
Use MultiFileItem when a record may have one or more files associated with it (such as
attachments to an email message) where no information about the files needs to be stored other
than the files themselves. If you have several fields associated with each file (such as an
uploaded document with a version, comments and processes associated with it), consider
instead an ordinary DataSource with on field of type "binary", and using the FileItem
for upload.
See the Uploading Files
overview for more information on upload.
DataSource Setup
In a relationship sometimes called a "master-detail" relationship, the MultiFileItem stores files in a "detail" DataSource which are related to a "master" DataSource record being edited by the form which contains the MultiFileItem.
To use a MultiFileItem:
primaryKey
field
foreignKey
relationship to the
primaryKey of the "master" DataSource
bind
a DynamicForm to the "master" DataSource
editorType
:"MultiFileItem" and a
dataSource
property set to the ID of the "detail" DataSource
DataSource.ID
"masterRecord" and
with a primaryKey
field "id".
<DataSource ID="uploadedFiles" serverType="sql">
<fields>
<field name="fileId" type="sequence" primaryKey="true" hidden="true"/>
<field name="masterRecordId" type="number" foreignKey="masterRecord.id" hidden="true"/>
<field name="file" type="binary" title="File"/>
</fields>
</DataSource>
Aside from a single "binary" field, the "detail" DataSource should generally have only hidden fields, as shown above. Additional internal fields (such as a "lastUpdated" field) may be added, but will not be editable via MultiFileItem.
Display
The MultiFileItem appears as a list of files related to the current record. An optional
button, the removeButton
allows removing
files. A
second optional button, the editButton
,
launches a
picker for uploading further files.
Saving
In all cases, uploading a new file is an "add" DSRequest against the
dataSource
.
The MultiFileItem has two modes, according to whether the "master" record is being newly created via an "add" operation or whether the master record is pre-existing ("update" operation).
If the master record is pre-existing, each file added by the user is uploaded as soon as the user exits the picker launched from the edit button, and the list of files shown in the main form reflects the actual list of stored files.
If the master record is being newly created, files are not actually uploaded until after the master record is confirmed saved, and the list of fields shown in the main form reflects files which will be uploaded after the master record is saved.
In both cases, if there are multiple files to upload, they are uploaded one at a time, as a
series of separate "add" DSRequests against the dataSource
.
Also in both cases, deletion of any file is immediate. In the case of a pre-existing master
record, all files shown actually exist as DataSource records, and deletion is performed as a
"remove" DSRequest against the dataSource
.
Upload overview and related methods
FormItem.CustomStateGetter, FormItem.StateCustomizer
scClassName, warnOnEditorTypeConversion, warnOnEditorTypeConversionDefault
id
factoryCreated, factoryProperties, readOnly
Constructor and Description |
---|
MultiFileItem() |
MultiFileItem(com.google.gwt.core.client.JavaScriptObject jsObj) |
MultiFileItem(java.lang.String name) |
MultiFileItem(java.lang.String name,
java.lang.String title) |
Modifier and Type | Method and Description |
---|---|
java.lang.String |
getEditButtonPrompt()
The
prompt of the edit button . |
java.lang.String |
getEmptyMessage()
Empty message to display when there are no files listed.
|
static MultiFileItem |
getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj) |
java.lang.String |
getPickerAddAnotherFileButtonTitle()
The contents of the "Add another" file button in the picker launched by the
edit button . |
java.lang.String |
getPickerCancelButtonTitle()
The title of the cancel button in the picker lauched by the
edit button . |
java.lang.String |
getPickerConstructor()
MultiFileItems use a
MultiFilePicker instance as their picker. |
java.lang.String |
getPickerUploadButtonInitialTitle()
The initial title of the upload button in the picker lauched by the
edit button that is used before the form is saved. |
java.lang.String |
getPickerUploadButtonTitle()
The title of the upload button in the picker lauched by the
edit button that is used after the form is saved. |
java.lang.String |
getPickerUploadProgressLabel()
Specifies the label of the progress meter in the picker lauched by the
edit button . |
java.lang.String |
getRemoveButtonPrompt()
The
prompt of the remove button . |
void |
setEditButtonPrompt(java.lang.String editButtonPrompt)
The
prompt of the edit button . |
void |
setEmptyMessage(java.lang.String emptyMessage)
Empty message to display when there are no files listed.
|
void |
setPickerAddAnotherFileButtonTitle(java.lang.String pickerAddAnotherFileButtonTitle)
The contents of the "Add another" file button in the picker launched by the
edit button . |
void |
setPickerCancelButtonTitle(java.lang.String pickerCancelButtonTitle)
The title of the cancel button in the picker lauched by the
edit button . |
void |
setPickerConstructor(java.lang.String pickerConstructor)
MultiFileItems use a
MultiFilePicker instance as their picker. |
void |
setPickerUploadButtonInitialTitle(java.lang.String pickerUploadButtonInitialTitle)
The initial title of the upload button in the picker lauched by the
edit button that is used before the form is saved. |
void |
setPickerUploadButtonTitle(java.lang.String pickerUploadButtonTitle)
The title of the upload button in the picker lauched by the
edit button that is used after the form is saved. |
void |
setPickerUploadProgressLabel(java.lang.String pickerUploadProgressLabel)
Specifies the label of the progress meter in the picker lauched by the
edit button . |
void |
setRemoveButtonPrompt(java.lang.String removeButtonPrompt)
The
prompt of the remove button . |
addCanEditChangedHandler, addReadOnlyDisplayChangedHandler, addShowValueHandler, changeAutoChildDefaults, changeAutoChildDefaults, changeAutoChildDefaults, changePickerIconDefaults, createCanvas, getApplyPromptToCanvas, getAutoDestroy, getCanvas, getEditCriteriaInInnerForm, getHeight, getHeightAsString, getMultiple, getOverflow, getPrompt, getShouldSaveValue, hasAdvancedCriteria, isFocused, setApplyPromptToCanvas, setAutoDestroy, setCanEditCriterionPredicate, setCanvas, setCriterionGetter, setCriterionSetter, setDefaultProperties, setEditCriteriaInInnerForm, setHeight, setHeight, setMultiple, setOverflow, setPrompt, setShouldDisableCanvasCustomizer, setShouldSaveValue, setupCanvasConstructor, storeValue, storeValue, storeValue
_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, getDisplayField, 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, getValueField, 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, setDisplayField, 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, setOptionDataSource, 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, setValueField, 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
getRef, getRef, internalSetID
applyFactoryProperties, doAddHandler, fireEvent, getAttributeAsDoubleArray, getAttributeAsIntArray, getAttributeAsLong, getAttributeAsMap, getAttributeAsObject, getAttributeAsRecord, getAttributeAsStringArray, getAttributes, getHandlerCount, getReadOnly, isFactoryCreated, logConfiguration, setAttribute, setAttribute, setAttribute, setAttributeAsJavaObject, setFactoryCreated, setReadOnly
public MultiFileItem()
public MultiFileItem(com.google.gwt.core.client.JavaScriptObject jsObj)
public MultiFileItem(java.lang.String name)
public MultiFileItem(java.lang.String name, java.lang.String title)
public static MultiFileItem getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)
public void setEditButtonPrompt(java.lang.String editButtonPrompt)
prompt
of the edit button
.editButtonPrompt
- Default value is "Add files"public java.lang.String getEditButtonPrompt()
prompt
of the edit button
.public void setEmptyMessage(java.lang.String emptyMessage)
emptyMessage
- Default value is "Click icon to add..."public java.lang.String getEmptyMessage()
public void setPickerAddAnotherFileButtonTitle(java.lang.String pickerAddAnotherFileButtonTitle)
edit button
.pickerAddAnotherFileButtonTitle
- See HTMLString
. Default value is "<u>Add another</u>"public java.lang.String getPickerAddAnotherFileButtonTitle()
edit button
.HTMLString
public void setPickerCancelButtonTitle(java.lang.String pickerCancelButtonTitle)
edit button
.pickerCancelButtonTitle
- Default value is "Cancel"public java.lang.String getPickerCancelButtonTitle()
edit button
.public void setPickerConstructor(java.lang.String pickerConstructor)
MultiFilePicker
instance as their picker. The generated
picker
autoChild may be customized via the standard com.smartgwt.client.types.AutoChild
pattern.pickerConstructor
- See SCClassName
. Default value is "MultiFilePicker"public java.lang.String getPickerConstructor()
MultiFilePicker
instance as their picker. The generated
picker
autoChild may be customized via the standard com.smartgwt.client.types.AutoChild
pattern.SCClassName
public void setPickerUploadButtonInitialTitle(java.lang.String pickerUploadButtonInitialTitle)
edit button
that is used before the form is saved.pickerUploadButtonInitialTitle
- Default value is "OK"setPickerUploadButtonTitle(java.lang.String)
public java.lang.String getPickerUploadButtonInitialTitle()
edit button
that is used before the form is saved.getPickerUploadButtonTitle()
public void setPickerUploadButtonTitle(java.lang.String pickerUploadButtonTitle)
edit button
that is used after the form is saved.pickerUploadButtonTitle
- Default value is "Save"setPickerUploadButtonInitialTitle(java.lang.String)
public java.lang.String getPickerUploadButtonTitle()
edit button
that is used after the form is saved.getPickerUploadButtonInitialTitle()
public void setPickerUploadProgressLabel(java.lang.String pickerUploadProgressLabel)
edit button
. This property is a dynamic string,
similar to the Canvas.dynamicContents
feature, with the
variables fileName
and formattedFileSize
.pickerUploadProgressLabel
- See HTMLString
. Default value is "Saving ${fileName} ${formattedFileSize}"public java.lang.String getPickerUploadProgressLabel()
edit button
. This property is a dynamic string,
similar to the Canvas.dynamicContents
feature, with the
variables fileName
and formattedFileSize
.HTMLString
public void setRemoveButtonPrompt(java.lang.String removeButtonPrompt)
prompt
of the remove button
.removeButtonPrompt
- Default value is "Remove selected files"public java.lang.String getRemoveButtonPrompt()
prompt
of the remove button
.