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
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
id
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 |
---|---|
boolean |
getDisplayShortName()
If true, just the filename (without the path) is shown in the list of files.
|
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 launched by the
edit button . |
java.lang.String |
getPickerUploadButtonInitialTitle()
The initial title of the upload button in the picker launched 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 launched 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 launched by the
edit button . |
java.lang.String |
getRemoveButtonPrompt()
The
prompt of the remove button . |
void |
setDisplayShortName(boolean displayShortName)
If true, just the filename (without the path) is shown in the list of files.
|
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 |
setJavaScriptObject(com.google.gwt.core.client.JavaScriptObject jsObj) |
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 launched by the
edit button . |
void |
setPickerUploadButtonInitialTitle(java.lang.String pickerUploadButtonInitialTitle)
The initial title of the upload button in the picker launched 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 launched 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 launched by the
edit button . |
void |
setRemoveButtonPrompt(java.lang.String removeButtonPrompt)
The
prompt of the remove button . |
addCanEditChangedHandler, addShowValueHandler, changeAutoChildDefaults, changeAutoChildDefaults, changePickerIconDefaults, createCanvas, getApplyPromptToCanvas, getAutoDestroy, getCanvas, getEditCriteriaInInnerForm, getHeight, getMultiple, getOverflow, getPrompt, getShouldSaveValue, hasAdvancedCriteria, readOnlyDisplayChanged, setApplyPromptToCanvas, setAutoDestroy, setCanEditCriterionPredicate, setCanvas, setCriterionGetter, setCriterionSetter, setDefaultProperties, setEditCriteriaInInnerForm, setMultiple, setOverflow, setPrompt, setShouldSaveValue, setupCanvasConstructor, storeValue, storeValue, storeValue
_getValue, addBlurHandler, addChangedHandler, addChangeHandler, addClickHandler, addDoubleClickHandler, addEditorEnterHandler, addEditorExitHandler, addFocusHandler, addIconClickHandler, addIconKeyPressHandler, addItemHoverHandler, addKeyDownHandler, addKeyPressHandler, addKeyUpHandler, addPickerIconClickHandler, addTitleClickHandler, addTitleDoubleClickHandler, addTitleHoverHandler, addValueHoverHandler, asSGWTComponent, blurItem, canEditCriterion, clearValue, disable, enable, focusInItem, getAccessKey, getAlign, getAllowExpressions, getAlwaysFetchMissingValues, getApplyHeightToTextBox, getAriaRole, getAttribute, getAttributeAsBoolean, getAttributeAsDate, getAttributeAsDouble, getAttributeAsFloat, getAttributeAsInt, getAttributeAsJavaScriptObject, getAttributeAsString, getBrowserSpellCheck, getCanEdit, getCanFocus, getCanvasAutoChild, getCellHeight, getCellStyle, getClassName, getClipStaticValue, getClipTitle, getConfig, getContainerWidget, getCriteriaField, getCriterion, getCriterion, getDataPath, getDateFormatter, getDecimalPad, getDecimalPrecision, getDefaultIconSrc, getDisabled, getDisableIconsOnReadOnly, getDisplayField, getDisplayFieldName, getDisplayValue, getDisplayValue, getEditorTypeConfig, getEditPendingCSSText, getEmptyDisplayValue, getEmptyValueIcon, getEndRow, getErrorIconHeight, getErrorIconSrc, getErrorIconWidth, getErrorMessageWidth, getFetchMissingValues, getFieldName, getFilterLocally, getForm, getFormItemAutoChild, getFullDataPath, getGlobalTabIndex, getHint, getHintStyle, getHoverAlign, getHoverDelay, getHoverHeight, getHoverOpacity, getHoverStyle, getHoverVAlign, getHoverWidth, getIcon, getIconHeight, getIconHSpace, getIconPageRect, getIconPrompt, getIconRect, getIconVAlign, getIconWidth, getImageURLPrefix, getImageURLSuffix, getImplicitSave, getImplicitSaveOnBlur, getInputFormat, getLeft, getLocateItemBy, getMultipleValueSeparator, getName, getOperator, getOptionCriteria, getOptionFilterContext, getOptionOperationId, getPageLeft, getPageRect, getPageTop, getPicker, getPickerIconHeight, getPickerIconName, getPickerIconPrompt, getPickerIconProperties, getPickerIconSrc, getPickerIconStyle, getPickerIconWidth, getPrintTextBoxStyle, getPrintTitleStyle, getReadOnlyDisplay, getReadOnlyTextBoxStyle, getRect, getRedrawOnChange, getRejectInvalidValueOnChange, getRequired, getRequiredMessage, getRowSpan, getSaveOnEnter, getSelectedRecord, getSelectOnClick, getSelectOnFocus, getShowClippedTitleOnHover, getShowClippedValueOnHover, getShowDisabled, getShowErrorIcon, getShowErrorStyle, getShowErrorText, getShowFocused, getShowFocusedErrorState, getShowFocusedIcons, getShowFocusedPickerIcon, getShowHint, getShowIcons, getShowOverIcons, getShowPickerIcon, getShowRTL, getShowTitle, getShowValueIconOnly, getStartRow, getStopOnError, getSuppressValueIcon, getSynchronousValidation, getTabIndex, getTextAlign, getTextBoxStyle, getTimeFormatter, getTitle, getTitleAlign, getTitleColSpan, getTitleOrientation, getTitleStyle, getTitleVAlign, getTooltip, getTop, getType, getValidateOnChange, getValidateOnExit, getValidOperators, getVAlign, getValue, getValueAsRecordList, getValueField, getValueFieldName, getValueIconHeight, getValueIconLeftPadding, getValueIconRightPadding, getValueIconSize, getValueIconWidth, getVisible, getVisibleHeight, getVisibleWidth, getWidth, getWrapTitle, hide, hideIcon, invalidateDisplayValueCache, isCreated, isDisabled, isDrawn, isVisible, redraw, setAccessKey, setAlign, setAllowExpressions, setAlwaysFetchMissingValues, setApplyHeightToTextBox, setAriaRole, setAriaState, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAutoChildConstructor, setAutoChildProperties, setAutoChildProperties, setAutoChildVisibility, setBrowserSpellCheck, setCanEdit, setCanFocus, setCellHeight, setCellStyle, setClipStaticValue, setClipTitle, setColSpan, setColSpan, setCriteriaField, setCriterion, 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, setEmptyDisplayValue, setEmptyValueIcon, setEndRow, setErrorFormatter, setErrorIconHeight, setErrorIconSrc, setErrorIconWidth, setErrorMessageWidth, setErrorOrientation, setFetchMissingValues, setFilterLocally, setGlobalTabIndex, setHeight, setHeight, setHint, setHintStyle, setHoverAlign, setHoverDelay, setHoverHeight, setHoverOpacity, setHoverStyle, setHoverVAlign, setHoverWidth, setIconHeight, setIconHSpace, setIconPrompt, setIcons, setIconVAlign, setIconWidth, setImageURLPrefix, setImageURLSuffix, setImplicitSave, setImplicitSaveOnBlur, setInitHandler, setInputFormat, setInputTransformer, setItemHoverFormatter, setItemTitleHoverFormatter, setItemValueHoverFormatter, setLeft, setLocateItemBy, setMultipleValueSeparator, setName, setOperator, setOptionCriteria, setOptionDataSource, setOptionFilterContext, setOptionOperationId, setPickerIconHeight, setPickerIconName, setPickerIconPrompt, setPickerIconProperties, setPickerIconSrc, setPickerIconStyle, setPickerIconWidth, setPrintTextBoxStyle, setPrintTitleStyle, setProperty, setProperty, setProperty, setProperty, setProperty, setReadOnlyDisplay, setReadOnlyTextBoxStyle, setRedrawOnChange, setRejectInvalidValueOnChange, setRequired, setRequiredMessage, setRowSpan, setSaveOnEnter, setSelectOnClick, setSelectOnFocus, setShowClippedTitleOnHover, setShowClippedValueOnHover, setShowDisabled, setShowErrorIcon, setShowErrorStyle, setShowErrorText, setShowFocused, setShowFocusedErrorState, setShowFocusedIcons, setShowFocusedPickerIcon, setShowHint, setShowIcons, setShowIfCondition, setShowOverIcons, setShowPickerIcon, setShowRTL, setShowTitle, setShowValueIconOnly, setStartRow, setStopOnError, setSuppressValueIcon, setSynchronousValidation, setTabIndex, setTextAlign, setTextBoxStyle, setTimeFormatter, setTitle, setTitleAlign, setTitleColSpan, setTitleHoverFormatter, setTitleOrientation, setTitleStyle, setTitleVAlign, setTooltip, setTop, setType, setValidateOnChange, setValidateOnExit, setValidators, setValidOperators, setVAlign, setValue, setValue, setValue, setValue, setValue, setValue, setValueField, setValueFormatter, setValueHoverFormatter, setValueIconHeight, setValueIconLeftPadding, setValueIconMapper, setValueIconRightPadding, setValueIcons, setValueIconSize, setValueIconWidth, setValueMap, setValueMap, setVisible, setWidth, setWidth, setWrapTitle, shouldApplyHeightToTextBox, shouldFetchMissingValue, shouldSaveOnEnter, show, showIcon, showPicker, stopHover, updateState, validate, valueClipped
getRef, getRef, internalSetID
doAddHandler, fireEvent, getAttributeAsDoubleArray, getAttributeAsIntArray, getAttributeAsLong, getAttributeAsMap, getAttributeAsObject, getAttributeAsRecord, getAttributeAsStringArray, getAttributes, getHandlerCount, getJsObj, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttributeAsJavaObject
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 setJavaScriptObject(com.google.gwt.core.client.JavaScriptObject jsObj)
setJavaScriptObject
in class CanvasItem
public void setDisplayShortName(boolean displayShortName)
displayShortName
- displayShortName Default value is truepublic boolean getDisplayShortName()
public void setEditButtonPrompt(java.lang.String editButtonPrompt)
prompt
of the edit button
.editButtonPrompt
- . See String
. Default value is "Add files"public java.lang.String getEditButtonPrompt()
prompt
of the edit button
.String
public void setEmptyMessage(java.lang.String emptyMessage)
emptyMessage
- . See String
. Default value is "Click icon to add..."public java.lang.String getEmptyMessage()
String
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
- . See String
. Default value is "Cancel"public java.lang.String getPickerCancelButtonTitle()
edit button
.String
public void setPickerUploadButtonInitialTitle(java.lang.String pickerUploadButtonInitialTitle)
edit button
that is used before the form is saved.pickerUploadButtonInitialTitle
- . See String
. Default value is "OK"setPickerUploadButtonTitle(java.lang.String)
public java.lang.String getPickerUploadButtonInitialTitle()
edit button
that is used before the form is saved.String
getPickerUploadButtonTitle()
public void setPickerUploadButtonTitle(java.lang.String pickerUploadButtonTitle)
edit button
that is used after the form is saved.pickerUploadButtonTitle
- . See String
. Default value is "Save"setPickerUploadButtonInitialTitle(java.lang.String)
public java.lang.String getPickerUploadButtonTitle()
edit button
that is used after the form is saved.String
getPickerUploadButtonInitialTitle()
public void setPickerUploadProgressLabel(java.lang.String pickerUploadProgressLabel)
edit button
. This property is a dynamic string,
similar to the 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 dynamicContents
feature, with the variables
fileName
and formattedFileSize
.HTMLString
public void setRemoveButtonPrompt(java.lang.String removeButtonPrompt)
prompt
of the remove button
.removeButtonPrompt
- . See String
. Default value is "Remove selected files"public java.lang.String getRemoveButtonPrompt()
prompt
of the remove button
.String