Class UploadFileHandler
java.lang.Object
com.vaadin.flow.component.Component
org.vaadin.firitin.components.upload.UploadFileHandler
- All Implemented Interfaces:
com.vaadin.flow.component.AttachNotifier,com.vaadin.flow.component.DetachNotifier,com.vaadin.flow.component.HasElement,com.vaadin.flow.component.HasEnabled,com.vaadin.flow.component.HasSize,com.vaadin.flow.component.HasStyle,Serializable,FluentAttachNotifier<UploadFileHandler>,FluentComponent<UploadFileHandler>,FluentDetachNotifier<UploadFileHandler>,FluentHasEnabled<UploadFileHandler>,FluentHasSize<UploadFileHandler>,FluentHasStyle<UploadFileHandler>
@Uses(com.vaadin.flow.component.upload.Upload.class)
@Tag("vaadin-upload")
public class UploadFileHandler
extends com.vaadin.flow.component.Component
implements FluentComponent<UploadFileHandler>, FluentHasStyle<UploadFileHandler>, FluentHasSize<UploadFileHandler>, FluentHasEnabled<UploadFileHandler>
A vaadin-upload component that just passes the input stream (and name and
mime type) of the uploaded file for the developer to handle (constructor
parameter). This is essentially Upload component as it should be implemented.
More context from
https://vaadin.com/blog/uploads-and-downloads-inputs-and-outputs
Note, that the FileHandler you write is not executed in the UI thread. If you want to modify the UI from it, by sure to use UI.access to handle locking properly.
- Author:
- mstahv
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceAn interface accepting file uploads.static final recordA collection of metadata about the uploaded files.static interfacestatic classEvent fired after succesful uploads. -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionUploadFileHandler(UploadFileHandler.CallbackFileHandler fileHandler) Creates a FileUploadHandler with provided CallbackFileHandler.UploadFileHandler(UploadFileHandler.FileHandler fileHandler) Creates a basic FileUploadHandler with provided FileHandler -
Method Summary
Modifier and TypeMethodDescriptioncom.vaadin.flow.shared.RegistrationaddUploadSucceededListener(com.vaadin.flow.component.ComponentEventListener<UploadFileHandler.UploadSucceededEvent> listener) voidClears the uploaded files shown in the component.protected voidonAttach(com.vaadin.flow.component.AttachEvent attachEvent) protected voidonDetach(com.vaadin.flow.component.DetachEvent detachEvent) voidonEnabledStateChanged(boolean enabled) voidsetAcceptedFileTypes(String... acceptedFileTypes) Specify the types of files that the server accepts.voidsetDropLabel(com.vaadin.flow.component.Component label) Set the component to show as a message to the user to drop files in the upload component.voidsetDropLabelIcon(com.vaadin.flow.component.Component icon) Set the component to show as the drop label icon.voidsetI18n(com.vaadin.flow.component.upload.UploadI18N i18n) Set the internationalization properties for this component.voidsetMaxConcurrentUploads(int maxConcurrentUploads) Sets the maximum number of server connections this upload uses if multiple files are chosen.voidsetUploadButton(com.vaadin.flow.component.Component button) Set the component as the actionable button inside the upload component, that opens the dialog for choosing the files to be upload.withAcceptedFileTypes(String... acceptedFileTypes) withAllowMultiple(boolean allowMultiple) Configures the component to allow multiple files to be selected at once.withClearAutomatically(boolean clear) withDragAndDrop(boolean enableDragAndDrop) Configures the component to allow drag and dropping of files on selected devices (mainly desktop browsers).withDropLabel(com.vaadin.flow.component.Component label) withDropLabelIcon(com.vaadin.flow.component.Component icon) withMaxFiles(int maxFiles) withUploadButton(com.vaadin.flow.component.Component button) Set the component as the actionable button inside the upload component, that opens the dialog for choosing the files to be upload.Methods inherited from class com.vaadin.flow.component.Component
addListener, findAncestor, fireEvent, from, get, getChildren, getElement, getEventBus, getId, getListeners, getLocale, getParent, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getUI, hasListener, isAttached, isTemplateMapped, isVisible, removeFromParent, scrollIntoView, scrollIntoView, set, setElement, setId, setVisibleMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.vaadin.flow.component.AttachNotifier
addAttachListenerMethods inherited from interface com.vaadin.flow.component.DetachNotifier
addDetachListenerMethods inherited from interface org.vaadin.firitin.fluency.ui.FluentAttachNotifier
withAttachListenerMethods inherited from interface org.vaadin.firitin.fluency.ui.FluentComponent
navigate, setId, setVisible, withId, withVisibleMethods inherited from interface org.vaadin.firitin.fluency.ui.FluentDetachNotifier
withDetachListenerMethods inherited from interface org.vaadin.firitin.fluency.ui.FluentHasEnabled
withEnabledMethods inherited from interface org.vaadin.firitin.fluency.ui.FluentHasSize
addResizeListener, withFullHeight, withFullWidth, withHeight, withMaxHeight, withMaxSize, withMaxWidth, withMinHeight, withMinSize, withMinWidth, withSize, withSizeFull, withSizeUndefined, withWidthMethods inherited from interface org.vaadin.firitin.fluency.ui.FluentHasStyle
withAddedClassName, withClassName, withStyleMethods inherited from interface com.vaadin.flow.component.HasElement
getElementMethods inherited from interface com.vaadin.flow.component.HasEnabled
isEnabled, setEnabledMethods inherited from interface com.vaadin.flow.component.HasSize
getHeight, getHeightUnit, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getWidth, getWidthUnit, setHeight, setHeight, setHeightFull, setMaxHeight, setMaxHeight, setMaxWidth, setMaxWidth, setMinHeight, setMinHeight, setMinWidth, setMinWidth, setSizeFull, setSizeUndefined, setWidth, setWidth, setWidthFullMethods inherited from interface com.vaadin.flow.component.HasStyle
addClassName, addClassNames, getClassName, getClassNames, getStyle, hasClassName, removeClassName, removeClassNames, setClassName, setClassName
-
Field Details
-
fileHandler
-
-
Constructor Details
-
UploadFileHandler
Creates a basic FileUploadHandler with provided FileHandler- Parameters:
fileHandler- the handler that does something with the uploaded file
-
UploadFileHandler
Creates a FileUploadHandler with provided CallbackFileHandler. The Command returned by the handler is executed in UI after the file has been handled.- Parameters:
fileHandler- the handler that does something with the uploaded file
-
-
Method Details
-
clearFiles
public void clearFiles()Clears the uploaded files shown in the component. -
allowMultiple
-
withAllowMultiple
Configures the component to allow multiple files to be selected at once.- Parameters:
allowMultiple- true to allow multiple files- Returns:
- The component for further configuration
-
withDragAndDrop
Configures the component to allow drag and dropping of files on selected devices (mainly desktop browsers).- Parameters:
enableDragAndDrop- true to allow DnD- Returns:
- The component for further configuration
-
withClearAutomatically
- Parameters:
clear- true if the upload queue should be cleaned once all uploads are done.- Returns:
- The component for further conf
-
onAttach
protected void onAttach(com.vaadin.flow.component.AttachEvent attachEvent) - Overrides:
onAttachin classcom.vaadin.flow.component.Component
-
onDetach
protected void onDetach(com.vaadin.flow.component.DetachEvent detachEvent) - Overrides:
onDetachin classcom.vaadin.flow.component.Component
-
withMaxFiles
- Parameters:
maxFiles- the number of files allowed to be uploaded at once- Returns:
- The component for further configuration
-
addUploadSucceededListener
public com.vaadin.flow.shared.Registration addUploadSucceededListener(com.vaadin.flow.component.ComponentEventListener<UploadFileHandler.UploadSucceededEvent> listener) -
setMaxConcurrentUploads
public void setMaxConcurrentUploads(int maxConcurrentUploads) Sets the maximum number of server connections this upload uses if multiple files are chosen.- Parameters:
maxConcurrentUploads- the number of maximum connections for upload
-
setUploadButton
public void setUploadButton(com.vaadin.flow.component.Component button) Set the component as the actionable button inside the upload component, that opens the dialog for choosing the files to be upload.- Parameters:
button- the component to be clicked by the user to open the dialog, ornullto reset to the default button
-
withUploadButton
Set the component as the actionable button inside the upload component, that opens the dialog for choosing the files to be upload.- Parameters:
button- the component to be clicked by the user to open the dialog, ornullto reset to the default button- Returns:
- this for further config
-
setAcceptedFileTypes
Specify the types of files that the server accepts. Syntax: a MIME type pattern (wildcards are allowed) or file extensions. Notice that MIME types are widely supported, while file extensions are only implemented in certain browsers, so it should be avoided.Example:
"video/*","image/tiff"or".pdf","audio/mp3"- Parameters:
acceptedFileTypes- the allowed file types to be uploaded, ornullto clear any restrictions
-
withAcceptedFileTypes
-
setDropLabel
public void setDropLabel(com.vaadin.flow.component.Component label) Set the component to show as a message to the user to drop files in the upload component. Despite of the name, the label can be any component.- Parameters:
label- the label to show for the users when it's possible drop files, ornullto reset to the default label
-
withDropLabel
-
setDropLabelIcon
public void setDropLabelIcon(com.vaadin.flow.component.Component icon) Set the component to show as the drop label icon. The icon is visible when the user can drop files to this upload component. Despite of the name, the drop label icon can be any component.- Parameters:
icon- the label icon to show for the users when it's possible to drop files, ornullto reset to the default icon
-
withDropLabelIcon
-
setI18n
public void setI18n(com.vaadin.flow.component.upload.UploadI18N i18n) Set the internationalization properties for this component.- Parameters:
i18n- the internationalized properties, notnull
-
onEnabledStateChanged
public void onEnabledStateChanged(boolean enabled) - Overrides:
onEnabledStateChangedin classcom.vaadin.flow.component.Component
-