Resetowanie Upload'u

Witam

Czy zna ktoś jakąś rozsądną metodę resetowania Upload’a? Chciałbym zrobić czyszczenie formularza i nie wiem jak zmusić ten komponent żeby wrócił do stanu początkowego. Ze względu na sporą ilość handlerów wolałbym nie musieć go usuwać i wstawiać w jego miejsce nowej instancji…

Pozdrawia

Witaj Józefie
Niestety, w tym momencie podmiana instancji to jedyny sposób. Na poziomie JS i przeglądarki, element upload nie pozwala na ustawienie wartości ponieważ stanowiłoby to zagrożenie bezpieczeństwa; jedyna działająca metoda polega na podmianie elementu HTML na nowy, a tego komponent Upload w tym momencie nie obsługuje. Dzięki za zwrócenie na to uwagi – zgłoszę błąd na dev.vaadin.com.
W międzyczasie możesz rozważyć rozszerzenie istniejącej pary komponent/widget. Jeżeli jesteś zainteresowany w jaki sposób to zrobić, daj znać, to przedstawię pokrótce kroki.

Pozdrawiam

P.S. Zgłoszenie dostępne jest pod adresem
http://dev.vaadin.com/ticket/13332

Dzięki za odpowiedź, na razie musi mi wystarczyć podmiana komponentu, ale po lekkim refactorze jest to rozwiązanie akceptowalne.

Zbadałem sprawę. Jak się okazało, istnieje jeszcze inny sposób na zresetowanie elementu upload – należy zresetować element form (w HTML) który zawiera resetowany upload.
Dzięki tej wiedzy mogłem stworzyć rozszerzenie (Extension) które robi właśnie to – na żądanie resetuje upload, wykorzystując możliwość zresetowania formularza. Rozszerzenie dostępne jest jako add-on z Vaadinowego katalogu:
https://vaadin.com/directory#addon/resetupload-extension

Kod źródłowy dostępny jest na githubie:
https://github.com/pmatti/reset-upload

Niestety, wyglada na to, ze reset nie dziala, kiedy upload skonczy z bledem :-(.
Moja sytuacja jest taka: uzytkownik sprobuje nagrac plik a jesli sie to nie uda, moze zmenic parametry i sprobowac znowu. Niestety, kiedy juz raz komponent skonczy bledem przestaje dzialac, tzn. nie zmenia wybranego pliku a metoda
com.vaadin.ui.Upload.ChangeListener.filenameChanged(ChangeEvent)
nie zostaje wywolana.