First of all, my thanks and congratulations to the Vaadin community for this great framework and all the work they do.
Now for the question, I have an upload component in my project, which is already working. What I’d like to have now is the ability to click a button, do some processing and validations and then start the upload.
As far as I know, the only way to start the upload is to use the component’s “submit” button, but then I’d be doing my processing while the upload is happening (probably in the Upload.StartedListener) , not before.
Is there a way to “submit” the component manually?
Not currently, no. It should technically be doable, though - perhaps even with some clever scripting via window.executeJS(). The “proper” way would be to make a modified Upload (client-side) widget, though.
Also note that if you do not have specific bandwidth/storage limitations, it might actually be better from a usability standpoint to start the upload at once, do the validation synchronously and store the file temporarily on the server if needed - this will save the users time. This might not be applicable in your case though, but I thought I’d mention it anyway.