summaryrefslogtreecommitdiffstats
path: root/server/src/com/vaadin/ui/Html5File.java
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/com/vaadin/ui/Html5File.java')
-rw-r--r--server/src/com/vaadin/ui/Html5File.java65
1 files changed, 65 insertions, 0 deletions
diff --git a/server/src/com/vaadin/ui/Html5File.java b/server/src/com/vaadin/ui/Html5File.java
new file mode 100644
index 0000000000..aa3fb558fa
--- /dev/null
+++ b/server/src/com/vaadin/ui/Html5File.java
@@ -0,0 +1,65 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+package com.vaadin.ui;
+
+import java.io.Serializable;
+
+import com.vaadin.event.dd.DropHandler;
+import com.vaadin.terminal.StreamVariable;
+
+/**
+ * {@link DragAndDropWrapper} can receive also files from client computer if
+ * appropriate HTML 5 features are supported on client side. This class wraps
+ * information about dragged file on server side.
+ */
+public class Html5File implements Serializable {
+
+ private String name;
+ private long size;
+ private StreamVariable streamVariable;
+ private String type;
+
+ Html5File(String name, long size, String mimeType) {
+ this.name = name;
+ this.size = size;
+ type = mimeType;
+ }
+
+ public String getFileName() {
+ return name;
+ }
+
+ public long getFileSize() {
+ return size;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * Sets the {@link StreamVariable} that into which the file contents will be
+ * written. Usage of StreamVariable is similar to {@link Upload} component.
+ * <p>
+ * If the {@link StreamVariable} is not set in the {@link DropHandler} the
+ * file contents will not be sent to server.
+ * <p>
+ * <em>Note!</em> receiving file contents is experimental feature depending
+ * on HTML 5 API's. It is supported only by modern web browsers like Firefox
+ * 3.6 and above and recent webkit based browsers (Safari 5, Chrome 6) at
+ * this time.
+ *
+ * @param streamVariable
+ * the callback that returns stream where the implementation
+ * writes the file contents as it arrives.
+ */
+ public void setStreamVariable(StreamVariable streamVariable) {
+ this.streamVariable = streamVariable;
+ }
+
+ public StreamVariable getStreamVariable() {
+ return streamVariable;
+ }
+
+} \ No newline at end of file