summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--client/src/com/vaadin/client/ui/VDragAndDropWrapper.java2
-rw-r--r--client/src/com/vaadin/client/ui/draganddropwrapper/DragAndDropWrapperConnector.java12
-rw-r--r--server/src/com/vaadin/ui/DragAndDropWrapper.java13
3 files changed, 21 insertions, 6 deletions
diff --git a/client/src/com/vaadin/client/ui/VDragAndDropWrapper.java b/client/src/com/vaadin/client/ui/VDragAndDropWrapper.java
index 91edcc4db1..f23bf88969 100644
--- a/client/src/com/vaadin/client/ui/VDragAndDropWrapper.java
+++ b/client/src/com/vaadin/client/ui/VDragAndDropWrapper.java
@@ -373,6 +373,8 @@ public class VDragAndDropWrapper extends VCustomComponent implements
for (int i = 0; i < fileCount; i++) {
final int fileId = filecounter++;
final VHtml5File file = event.getFile(i);
+ VConsole.log("Preparing to upload file " + file.getName()
+ + " with id " + fileId);
transferable.setData("fi" + i, "" + fileId);
transferable.setData("fn" + i, file.getName());
transferable.setData("ft" + i, file.getType());
diff --git a/client/src/com/vaadin/client/ui/draganddropwrapper/DragAndDropWrapperConnector.java b/client/src/com/vaadin/client/ui/draganddropwrapper/DragAndDropWrapperConnector.java
index 60b9690321..f659e72e78 100644
--- a/client/src/com/vaadin/client/ui/draganddropwrapper/DragAndDropWrapperConnector.java
+++ b/client/src/com/vaadin/client/ui/draganddropwrapper/DragAndDropWrapperConnector.java
@@ -21,6 +21,7 @@ import java.util.Set;
import com.vaadin.client.ApplicationConnection;
import com.vaadin.client.Paintable;
import com.vaadin.client.UIDL;
+import com.vaadin.client.VConsole;
import com.vaadin.client.ui.VDragAndDropWrapper;
import com.vaadin.client.ui.customcomponent.CustomComponentConnector;
import com.vaadin.shared.ui.Connect;
@@ -61,6 +62,17 @@ public class DragAndDropWrapperConnector extends CustomComponentConnector
getWidget().fileIds.remove(indexOf);
}
} else {
+ if (getWidget().fileIdToReceiver.containsKey(fileId)
+ && receiverUrl != null
+ && !receiverUrl
+ .equals(getWidget().fileIdToReceiver
+ .get(fileId))) {
+ VConsole.error("Overwriting file receiver mapping for fileId "
+ + fileId
+ + " . Old receiver URL: "
+ + getWidget().fileIdToReceiver.get(fileId)
+ + " New receiver URL: " + receiverUrl);
+ }
getWidget().fileIdToReceiver.put(fileId, receiverUrl);
}
}
diff --git a/server/src/com/vaadin/ui/DragAndDropWrapper.java b/server/src/com/vaadin/ui/DragAndDropWrapper.java
index 23641f285e..6c6aa3c3f4 100644
--- a/server/src/com/vaadin/ui/DragAndDropWrapper.java
+++ b/server/src/com/vaadin/ui/DragAndDropWrapper.java
@@ -58,7 +58,7 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget,
(String) rawVariables.get("ft" + i)); // mime
String id = (String) rawVariables.get("fi" + i);
files[i] = file;
- receivers.put(id, file);
+ receivers.put(id, new ProxyReceiver(id, file));
markAsDirty(); // paint Receivers
}
}
@@ -106,7 +106,7 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget,
}
- private Map<String, Html5File> receivers = new HashMap<String, Html5File>();
+ private Map<String, ProxyReceiver> receivers = new HashMap<String, ProxyReceiver>();
public class WrapperTargetDetails extends TargetDetailsImpl {
@@ -222,11 +222,12 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget,
getDropHandler().getAcceptCriterion().paint(target);
}
if (receivers != null && receivers.size() > 0) {
- for (Iterator<Entry<String, Html5File>> it = receivers.entrySet()
- .iterator(); it.hasNext();) {
- Entry<String, com.vaadin.ui.Html5File> entry = it.next();
+ for (Iterator<Entry<String, ProxyReceiver>> it = receivers
+ .entrySet().iterator(); it.hasNext();) {
+ Entry<String, ProxyReceiver> entry = it.next();
String id = entry.getKey();
- Html5File html5File = entry.getValue();
+ ProxyReceiver proxyReceiver = entry.getValue();
+ Html5File html5File = proxyReceiver.file;
if (html5File.getStreamVariable() != null) {
target.addVariable(this, "rec-" + id, new ProxyReceiver(id,
html5File));