From bda8acb85610f1532b9f11a8a9530c694051c2d9 Mon Sep 17 00:00:00 2001 From: Adam Wagner Date: Thu, 11 May 2017 16:49:19 +0300 Subject: Poll server for changes at the end of each file upload (#9300) * Poll server for changes at the end of each file upload --- .../main/java/com/vaadin/ui/FileDropTarget.java | 34 +++++++++++++--------- 1 file changed, 21 insertions(+), 13 deletions(-) (limited to 'server') diff --git a/server/src/main/java/com/vaadin/ui/FileDropTarget.java b/server/src/main/java/com/vaadin/ui/FileDropTarget.java index 654563dbd0..831d6723d9 100644 --- a/server/src/main/java/com/vaadin/ui/FileDropTarget.java +++ b/server/src/main/java/com/vaadin/ui/FileDropTarget.java @@ -30,6 +30,7 @@ import com.vaadin.shared.ApplicationConstants; import com.vaadin.shared.ui.dnd.FileDropTargetClientRpc; import com.vaadin.shared.ui.dnd.FileDropTargetRpc; import com.vaadin.shared.ui.dnd.FileDropTargetState; +import com.vaadin.shared.ui.dnd.FileParameters; /** * Extension to add drop target functionality to a widget for accepting and @@ -68,24 +69,31 @@ public class FileDropTarget extends protected void registerDropTargetRpc(T target) { super.registerDropTargetRpc(target); - registerRpc((FileDropTargetRpc) fileParams -> { + registerRpc(new FileDropTargetRpc() { + @Override + public void drop(Map fileParams) { + List files = new ArrayList<>(); + Map urls = new HashMap<>(); - List files = new ArrayList<>(); - Map urls = new HashMap<>(); + fileParams.forEach((id, fileParameters) -> { + Html5File html5File = new Html5File(fileParameters.getName(), + fileParameters.getSize(), fileParameters.getMime()); + String url = createUrl(html5File, id); - fileParams.forEach((id, fileParameters) -> { - Html5File html5File = new Html5File(fileParameters.getName(), - fileParameters.getSize(), fileParameters.getMime()); - String url = createUrl(html5File, id); + files.add(html5File); + urls.put(id, url); + }); - files.add(html5File); - urls.put(id, url); - }); + getRpcProxy(FileDropTargetClientRpc.class).sendUploadUrl(urls); - getRpcProxy(FileDropTargetClientRpc.class).sendUploadUrl(urls); + FileDropEvent event = new FileDropEvent<>(target, files); + fileDropHandler.drop(event); + } - FileDropEvent event = new FileDropEvent<>(target, files); - fileDropHandler.drop(event); + @Override + public void poll() { + // Polling server for changes after upload finished + } }); } -- cgit v1.2.3