Package io.jmix.ui.component.impl
Class AbstractSingleFileUploadField<R>
java.lang.Object
io.jmix.ui.component.impl.AbstractComponent<T>
io.jmix.ui.component.impl.AbstractValueComponent<T,P,V>
io.jmix.ui.component.impl.AbstractField<JmixFileUploadField,String,R>
io.jmix.ui.component.impl.AbstractSingleFileUploadField<R>
- All Implemented Interfaces:
AttachNotifier,Buffered,Component,Component.BelongToFrame,Component.Editable,Component.Focusable,Component.HasCaption,Component.HasDescription,Component.HasIcon,Component.HasXmlDescriptor,Component.Wrapper,HasValueSource<R>,Field<R>,HasContextHelp,HasDebugId,HasHtmlCaption,HasHtmlDescription,HasHtmlSanitizer,HasValidator<R>,HasValue<R>,Requirable,SingleFileUploadField,UploadField,Validatable,org.springframework.beans.factory.InitializingBean
- Direct Known Subclasses:
AbstractFileStorageUploadField,FileUploadFieldImpl
public abstract class AbstractSingleFileUploadField<R>
extends AbstractField<JmixFileUploadField,String,R>
implements SingleFileUploadField, org.springframework.beans.factory.InitializingBean
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected classNested classes/interfaces inherited from interface io.jmix.ui.component.Component
Component.Alignment, Component.BelongToFrame, Component.Disposable, Component.Editable, Component.Focusable, Component.HasCaption, Component.HasDescription, Component.HasIcon, Component.HasXmlDescriptor, Component.WrapperNested classes/interfaces inherited from interface io.jmix.ui.component.HasContextHelp
HasContextHelp.ContextHelpIconClickEventNested classes/interfaces inherited from interface io.jmix.ui.component.HasValue
HasValue.ValueChangeEvent<V>Nested classes/interfaces inherited from interface io.jmix.ui.component.SingleFileUploadField
SingleFileUploadField.AfterValueClearEvent, SingleFileUploadField.BeforeValueClearEvent, SingleFileUploadField.FileUploadSucceedEventNested classes/interfaces inherited from interface io.jmix.ui.component.UploadField
UploadField.DropZone, UploadField.FileUploadErrorEvent, UploadField.FileUploadEvent, UploadField.FileUploadFinishEvent, UploadField.FileUploadStartEvent -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Stringprotected static final intprotected UiComponentPropertiesprotected Supplier<InputStream>protected Downloaderprotected UploadField.DropZoneprotected Stringprotected Stringprotected longprotected Messagesprotected Notificationsprotected ComponentContainerFields inherited from class io.jmix.ui.component.impl.AbstractField
editable, parentEditableChangeListener, validators, VALIDATORS_LIST_INITIAL_CAPACITYFields inherited from class io.jmix.ui.component.impl.AbstractValueComponent
internalValue, uiTestIdsSupport, valueBindingFields inherited from class io.jmix.ui.component.impl.AbstractComponent
alignment, applicationContext, component, contextHelpIconClickHandler, contextHelpIconClickListener, descriptionAsHtml, element, frame, htmlSanitizerEnabled, icon, ICON_STYLE, id, parentFields inherited from interface io.jmix.ui.component.Component
AUTO_SIZE, AUTO_SIZE_PX, FULL_SIZE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionAdds a callback interface which is invoked by theSingleFileUploadFieldafter value has been cleared using clear button.Sets a callback interface which is invoked by theSingleFileUploadFieldbefore value clearing when user use clear button.Adds file upload error listener.Adds file upload finish listener.Adds file upload start listener.Adds file upload succeed listener.voidprotected voidclearButtonClicked(com.vaadin.ui.Button.ClickEvent clickEvent) voidcommit()Updates all changes since the previous commit to the data source.protected JmixFileUploadFieldvoiddiscard()Discards all changes since last commit.protected voidfireFileUploadError(String fileName, long contentLength, Exception cause) protected voidfireFileUploadFinish(String fileName, long contentLength) protected voidfireFileUploadStart(String fileName, long contentLength) protected voidfireFileUploadSucceed(String fileName, long contentLength) voidfocus()Sets focus to this componentReturns comma separated types of files.protected longlongReturns maximum allowed file size in bytes.protected StringReturns white list of file extensions.intGets the tabulator index of theHasTabIndexcomponent.protected voidprotected voidinternalValueChanged(Object newValue) booleanbooleanTests if the value stored in the object has been modified since it was last updated from the data source.booleanbooleanprotected voidprotected abstract voidonFileNameClick(com.vaadin.ui.Button.ClickEvent e) protected voidprotected voidprotected voidprotected voidprotected voidprotected abstract OutputStreamreceiveUpload(String fileName, String MIMEType) voidSets the mask for files to filter them in the file selection dialog.voidsetBuffered(boolean buffered) Sets the buffered mode.voidsetClearButtonCaption(String caption) Setup clear button caption.voidsetClearButtonDescription(String description) Setup clear button description.voidsetClearButtonIcon(String icon) Setup clear button icon.voidsetComponentProperties(UiComponentProperties componentProperties) voidsetContentProvider(Supplier<InputStream> contentProvider) Set content provider which contains file data.voidsetDownloader(Downloader downloader) voidsetDropZone(UploadField.DropZone dropZone) Sets drop zone reference to this upload component.voidsetDropZonePrompt(String dropZonePrompt) Sets drop zone prompt that will be shown on drag over window with file.voidsetFileSizeLimit(long fileSizeLimit) Sets maximum allowed file size in bytes.voidsetMessages(Messages messages) voidsetNotifications(Notifications notifications) voidsetPasteZone(ComponentContainer pasteZone) Sets paste zone reference to this upload component.voidsetPermittedExtensions(Set<String> permittedExtensions) Sets white list of file extensions.voidsetShowClearButton(boolean showClearButton) Enable or disable displaying name of clear button.voidsetShowFileName(boolean showFileName) Enable or disable displaying name of uploaded file next to upload button.voidsetTabIndex(int tabIndex) Sets the tabulator index of theFocusablecomponent.voidsetUploadButtonCaption(String caption) Setup caption of upload button.voidsetUploadButtonDescription(String description) Setup upload button description.voidsetUploadButtonIcon(String icon) Setup upload button icon.Methods inherited from class io.jmix.ui.component.impl.AbstractField
addValidator, attachValueChangeListener, getDatatypeConversionErrorMsg, getDefaultRequiredMessage, getErrorMessage, getRequiredMessage, getValidators, isEditable, isRequired, isValid, removeValidator, setEditable, setEditableToComponent, setParent, setRequired, setRequiredMessage, setupComponentErrorProvider, triggerValidators, validateMethods inherited from class io.jmix.ui.component.impl.AbstractValueComponent
addValueChangeListener, componentValueChanged, convertToModel, convertToPresentation, fieldValueEquals, getValue, getValueSource, setUiTestId, setUiTestIdsSupport, setValue, setValueSource, setValueToPresentation, valueBindingActivated, valueBindingConnectedMethods inherited from class io.jmix.ui.component.impl.AbstractComponent
addAttachListener, addDetachListener, addStyleName, assignDebugId, attached, detached, getAlignment, getCaption, getComponent, getComposition, getContextHelpIconClickHandler, getContextHelpText, getDebugId, getDescription, getEventHub, getFrame, getHeight, getHeightSizeUnit, getHtmlSanitizer, getIcon, getIconName, getIconResource, getId, getParent, getStyleName, getUiComponentProperties, getUiProperties, getWidth, getWidthSizeUnit, getXmlDescriptor, hasSubscriptions, hasValidationError, isAttached, isCaptionAsHtml, isContextHelpTextHtmlEnabled, isDescriptionAsHtml, isEnabled, isEnabledRecursive, isHtmlSanitizerEnabled, isResponsive, isVisible, isVisibleRecursive, onContextHelpIconClick, publish, removeStyleName, sanitize, setAlignment, setApplicationContext, setCaption, setCaptionAsHtml, setContextHelpIconClickHandler, setContextHelpText, setContextHelpTextHtmlEnabled, setDebugId, setDescription, setDescriptionAsHtml, setEnabled, setFrame, setHeight, setHtmlSanitizerEnabled, setIcon, setIconFromSet, setId, setResponsive, setStyleName, setValidationError, setVisible, setWidth, setXmlDescriptor, unsubscribe, unwrap, unwrapComposition, unwrapCompositionOrNull, unwrapOrNull, withUnwrapped, withUnwrappedCompositionMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.jmix.ui.component.Component
addStyleName, getAlignment, getHeight, getHeightSizeUnit, getId, getParent, getStyleName, getWidth, getWidthSizeUnit, isEnabled, isEnabledRecursive, isResponsive, isVisible, isVisibleRecursive, removeStyleName, setAlignment, setEnabled, setHeight, setHeightAuto, setHeightFull, setId, setParent, setResponsive, setSizeAuto, setSizeFull, setStyleName, setVisible, setWidth, setWidthAuto, setWidthFull, unwrap, unwrapComposition, unwrapCompositionOrNull, unwrapOrNull, withUnwrapped, withUnwrappedCompositionMethods inherited from interface io.jmix.ui.component.Component.BelongToFrame
getFrame, setFrameMethods inherited from interface io.jmix.ui.component.Component.Editable
isEditableWithParentMethods inherited from interface io.jmix.ui.component.Component.Focusable
isFocusable, setFocusableMethods inherited from interface io.jmix.ui.component.Component.HasCaption
getCaption, setCaptionMethods inherited from interface io.jmix.ui.component.Component.HasDescription
getDescription, setDescriptionMethods inherited from interface io.jmix.ui.component.Component.HasIcon
getIcon, setIcon, setIconFromSetMethods inherited from interface io.jmix.ui.component.HasContextHelp
getContextHelpIconClickHandler, getContextHelpText, isContextHelpTextHtmlEnabled, setContextHelpIconClickHandler, setContextHelpText, setContextHelpTextHtmlEnabledMethods inherited from interface io.jmix.ui.component.HasHtmlCaption
isCaptionAsHtml, setCaptionAsHtmlMethods inherited from interface io.jmix.ui.component.HasHtmlDescription
isDescriptionAsHtml, setDescriptionAsHtmlMethods inherited from interface io.jmix.ui.component.HasHtmlSanitizer
isHtmlSanitizerEnabled, setHtmlSanitizerEnabledMethods inherited from interface io.jmix.ui.component.HasValidator
addValidatorsMethods inherited from interface io.jmix.ui.component.HasValue
addValueChangeListener, clear, getEmptyValue, getValue, isEmpty, setValueMethods inherited from interface io.jmix.ui.component.data.HasValueSource
getValueSource, setValueSourceMethods inherited from interface io.jmix.ui.component.SingleFileUploadField
getFileContentMethods inherited from interface io.jmix.ui.component.Validatable
isValidateOnCommit
-
Field Details
-
BYTES_IN_MEGABYTE
protected static final int BYTES_IN_MEGABYTE- See Also:
-
downloader
-
messages
-
notifications
-
contentProvider
-
componentProperties
-
fileSizeLimit
protected long fileSizeLimit -
permittedExtensions
-
accept
-
fileName
-
dropZone
-
pasteZone
-
dropZonePrompt
-
-
Constructor Details
-
AbstractSingleFileUploadField
public AbstractSingleFileUploadField()
-
-
Method Details
-
createComponent
-
setDownloader
-
setMessages
-
setNotifications
-
setComponentProperties
-
afterPropertiesSet
public void afterPropertiesSet()- Specified by:
afterPropertiesSetin interfaceorg.springframework.beans.factory.InitializingBean
-
initComponent
protected void initComponent() -
receiveUpload
-
onUploadStarted
-
onUploadFinished
-
onUploadSucceeded
-
onUploadFailed
-
onFileSizeLimitExceeded
-
onFileExtensionNotAllowed
-
onFileNameClick
protected abstract void onFileNameClick(com.vaadin.ui.Button.ClickEvent e) -
getFileName
-
addFileUploadSucceedListener
public Subscription addFileUploadSucceedListener(Consumer<SingleFileUploadField.FileUploadSucceedEvent> listener) Description copied from interface:SingleFileUploadFieldAdds file upload succeed listener. It is invoked when the uploads are successfully finished.- Specified by:
addFileUploadSucceedListenerin interfaceSingleFileUploadField- Parameters:
listener- a listener to add- Returns:
- a registration object for removing an event listener
-
getAccept
Description copied from interface:UploadFieldReturns comma separated types of files.- Specified by:
getAcceptin interfaceUploadField- Returns:
- comma separated types of files
-
setAccept
Description copied from interface:UploadFieldSets the mask for files to filter them in the file selection dialog.
uploadField.setAccept(".png,.jpeg");- Specified by:
setAcceptin interfaceUploadField- Parameters:
accept- comma separated types of files
-
setDropZone
Description copied from interface:UploadFieldSets drop zone reference to this upload component. Files can be dropped to component of the drop zone to be uploaded by this upload component.- Specified by:
setDropZonein interfaceUploadField- Parameters:
dropZone- drop zone descriptor
-
setPasteZone
Description copied from interface:UploadFieldSets paste zone reference to this upload component. PasteZone handles paste shortcut when a text input field in the container is focused.
It is supported by Chromium-based browsers.- Specified by:
setPasteZonein interfaceUploadField- Parameters:
pasteZone- paste zone container
-
setDropZonePrompt
Description copied from interface:UploadFieldSets drop zone prompt that will be shown on drag over window with file.- Specified by:
setDropZonePromptin interfaceUploadField- Parameters:
dropZonePrompt- drop zone prompt
-
getFileSizeLimit
public long getFileSizeLimit()Description copied from interface:UploadFieldReturns maximum allowed file size in bytes.- Specified by:
getFileSizeLimitin interfaceUploadField
-
getActualFileSizeLimit
protected long getActualFileSizeLimit() -
getPermittedExtensions
Description copied from interface:UploadFieldReturns white list of file extensions.- Specified by:
getPermittedExtensionsin interfaceUploadField- Returns:
- set of file extensions.
-
getFileSizeLimitString
-
internalValueChanged
-
getDropZone
- Specified by:
getDropZonein interfaceUploadField- Returns:
- current drop zone
-
getPasteZone
- Specified by:
getPasteZonein interfaceUploadField- Returns:
- current paste zone container
-
getDropZonePrompt
- Specified by:
getDropZonePromptin interfaceUploadField- Returns:
- current drop zone prompt
-
clearButtonClicked
protected void clearButtonClicked(com.vaadin.ui.Button.ClickEvent clickEvent) -
fireFileUploadStart
-
fireFileUploadFinish
-
fireFileUploadError
-
fireFileUploadSucceed
-
setContentProvider
Description copied from interface:SingleFileUploadFieldSet content provider which contains file data.Passed content provider will be used for downloading by clicking the link with file name or as source for
SingleFileUploadField.getFileContent()method.- Specified by:
setContentProviderin interfaceSingleFileUploadField- Parameters:
contentProvider- content provider
-
getContentProvider
- Specified by:
getContentProviderin interfaceSingleFileUploadField- Returns:
- FileContentProvider which can be used to read data from field
-
addFileUploadStartListener
Description copied from interface:UploadFieldAdds file upload start listener. It is invoked when start uploading the file.- Specified by:
addFileUploadStartListenerin interfaceUploadField- Parameters:
listener- a listener to add- Returns:
- a registration object for removing an event listener
-
addFileUploadFinishListener
public Subscription addFileUploadFinishListener(Consumer<UploadField.FileUploadFinishEvent> listener) Description copied from interface:UploadFieldAdds file upload finish listener. It is invoked when file is uploaded.- Specified by:
addFileUploadFinishListenerin interfaceUploadField- Parameters:
listener- a listener to add- Returns:
- a registration object for removing an event listener
-
addFileUploadErrorListener
Description copied from interface:UploadFieldAdds file upload error listener. It is invoked when the uploads are finished, but unsuccessful.- Specified by:
addFileUploadErrorListenerin interfaceUploadField- Parameters:
listener- a listener to add- Returns:
- a registration object for removing an event listener
-
setFileSizeLimit
public void setFileSizeLimit(long fileSizeLimit) Description copied from interface:UploadFieldSets maximum allowed file size in bytes. Default value is 0. In this case component uses system value.- Specified by:
setFileSizeLimitin interfaceUploadField
-
isShowFileName
public boolean isShowFileName()- Specified by:
isShowFileNamein interfaceSingleFileUploadField- Returns:
- true if name of uploaded file is shown.
-
setShowFileName
public void setShowFileName(boolean showFileName) Description copied from interface:SingleFileUploadFieldEnable or disable displaying name of uploaded file next to upload button.- Specified by:
setShowFileNamein interfaceSingleFileUploadField
-
setPermittedExtensions
Description copied from interface:UploadFieldSets white list of file extensions. Each extension should start with dot symbol, e.g. ".png".uploadField.setPermittedExtensions(Sets.newHashSet(".png", ".jpg"));- Specified by:
setPermittedExtensionsin interfaceUploadField- Parameters:
permittedExtensions- permitted extensions.
-
setShowClearButton
public void setShowClearButton(boolean showClearButton) Description copied from interface:SingleFileUploadFieldEnable or disable displaying name of clear button.- Specified by:
setShowClearButtonin interfaceSingleFileUploadField
-
isShowClearButton
public boolean isShowClearButton()- Specified by:
isShowClearButtonin interfaceSingleFileUploadField- Returns:
- true if clear button is shown.
-
setClearButtonCaption
Description copied from interface:SingleFileUploadFieldSetup clear button caption.- Specified by:
setClearButtonCaptionin interfaceSingleFileUploadField
-
getClearButtonCaption
- Specified by:
getClearButtonCaptionin interfaceSingleFileUploadField- Returns:
- clear button caption.
-
setClearButtonIcon
Description copied from interface:SingleFileUploadFieldSetup clear button icon.- Specified by:
setClearButtonIconin interfaceSingleFileUploadField
-
getClearButtonIcon
- Specified by:
getClearButtonIconin interfaceSingleFileUploadField- Returns:
- clear button icon.
-
setClearButtonDescription
Description copied from interface:SingleFileUploadFieldSetup clear button description.- Specified by:
setClearButtonDescriptionin interfaceSingleFileUploadField
-
getClearButtonDescription
- Specified by:
getClearButtonDescriptionin interfaceSingleFileUploadField- Returns:
- clear button description.
-
addBeforeValueClearListener
public Subscription addBeforeValueClearListener(Consumer<SingleFileUploadField.BeforeValueClearEvent> listener) Description copied from interface:SingleFileUploadFieldSets a callback interface which is invoked by theSingleFileUploadFieldbefore value clearing when user use clear button.Listener can prevent value clearing using
SingleFileUploadField.BeforeValueClearEvent.preventClearAction().- Specified by:
addBeforeValueClearListenerin interfaceSingleFileUploadField- Parameters:
listener- a listener to add- Returns:
- a registration object for removing an event listener
- See Also:
-
addAfterValueClearListener
public Subscription addAfterValueClearListener(Consumer<SingleFileUploadField.AfterValueClearEvent> listener) Description copied from interface:SingleFileUploadFieldAdds a callback interface which is invoked by theSingleFileUploadFieldafter value has been cleared using clear button.- Specified by:
addAfterValueClearListenerin interfaceSingleFileUploadField- Parameters:
listener- a listener to add- Returns:
- a registration object for removing an event listener
- See Also:
-
setUploadButtonCaption
Description copied from interface:SingleFileUploadFieldSetup caption of upload button.- Specified by:
setUploadButtonCaptionin interfaceSingleFileUploadField
-
getUploadButtonCaption
- Specified by:
getUploadButtonCaptionin interfaceSingleFileUploadField- Returns:
- upload button caption.
-
setUploadButtonIcon
Description copied from interface:SingleFileUploadFieldSetup upload button icon.- Specified by:
setUploadButtonIconin interfaceSingleFileUploadField
-
getUploadButtonIcon
- Specified by:
getUploadButtonIconin interfaceSingleFileUploadField- Returns:
- upload button icon.
-
setUploadButtonDescription
Description copied from interface:SingleFileUploadFieldSetup upload button description.- Specified by:
setUploadButtonDescriptionin interfaceSingleFileUploadField
-
getUploadButtonDescription
- Specified by:
getUploadButtonDescriptionin interfaceSingleFileUploadField- Returns:
- upload button description.
-
focus
public void focus()Description copied from interface:Component.FocusableSets focus to this component- Specified by:
focusin interfaceComponent.Focusable
-
getTabIndex
public int getTabIndex()Description copied from interface:Component.FocusableGets the tabulator index of theHasTabIndexcomponent.- Specified by:
getTabIndexin interfaceComponent.Focusable- Returns:
- tab index set for the
HasTabIndexcomponent
-
setTabIndex
public void setTabIndex(int tabIndex) Description copied from interface:Component.FocusableSets the tabulator index of theFocusablecomponent. The tab index property is used to specify the order in which the fields are focused when the user presses the Tab key. Components with a defined tab index are focused sequentially first, and then the components with no tab index.- Specified by:
setTabIndexin interfaceComponent.Focusable- Parameters:
tabIndex- tab index
-
commit
public void commit()Description copied from interface:BufferedUpdates all changes since the previous commit to the data source.- Specified by:
commitin interfaceBuffered- Overrides:
commitin classAbstractValueComponent<JmixFileUploadField,String, R>
-
discard
public void discard()Description copied from interface:BufferedDiscards all changes since last commit. The object updates its value from the data source.- Specified by:
discardin interfaceBuffered- Overrides:
discardin classAbstractValueComponent<JmixFileUploadField,String, R>
-
isBuffered
public boolean isBuffered()- Specified by:
isBufferedin interfaceBuffered- Overrides:
isBufferedin classAbstractValueComponent<JmixFileUploadField,String, R> - Returns:
trueif buffered mode is on,falseotherwise
-
setBuffered
public void setBuffered(boolean buffered) Description copied from interface:BufferedSets the buffered mode.When in buffered mode, an internal buffer will be used to store changes until
Buffered.commit()is called. CallingBuffered.discard()will revert the internal buffer to the value of the data source.When in non-buffered mode both read and write operations will be done directly on the data source. In this mode the
Buffered.commit()andBuffered.discard()methods serve no purpose.- Specified by:
setBufferedin interfaceBuffered- Overrides:
setBufferedin classAbstractValueComponent<JmixFileUploadField,String, R> - Parameters:
buffered-trueif buffered mode should be turned on,falseotherwise
-
isModified
public boolean isModified()Description copied from interface:BufferedTests if the value stored in the object has been modified since it was last updated from the data source.- Specified by:
isModifiedin interfaceBuffered- Overrides:
isModifiedin classAbstractValueComponent<JmixFileUploadField,String, R> - Returns:
trueif the value in the object has been modified since the last data source update,falseif not.
-