summaryrefslogtreecommitdiffstats
path: root/server/src/com/vaadin/event/dd/DragSource.java
diff options
context:
space:
mode:
authorArtur Signell <artur@vaadin.com>2012-08-13 18:34:33 +0300
committerArtur Signell <artur@vaadin.com>2012-08-13 19:18:33 +0300
commite85d933b25cc3c5cc85eb7eb4b13b950fd8e1569 (patch)
tree9ab6f13f7188cab44bbd979b1cf620f15328a03f /server/src/com/vaadin/event/dd/DragSource.java
parent14dd4d0b28c76eb994b181a4570f3adec53342e6 (diff)
downloadvaadin-framework-e85d933b25cc3c5cc85eb7eb4b13b950fd8e1569.tar.gz
vaadin-framework-e85d933b25cc3c5cc85eb7eb4b13b950fd8e1569.zip
Moved server files to a server src folder (#9299)
Diffstat (limited to 'server/src/com/vaadin/event/dd/DragSource.java')
-rw-r--r--server/src/com/vaadin/event/dd/DragSource.java52
1 files changed, 52 insertions, 0 deletions
diff --git a/server/src/com/vaadin/event/dd/DragSource.java b/server/src/com/vaadin/event/dd/DragSource.java
new file mode 100644
index 0000000000..4daf0dcb18
--- /dev/null
+++ b/server/src/com/vaadin/event/dd/DragSource.java
@@ -0,0 +1,52 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+package com.vaadin.event.dd;
+
+import java.util.Map;
+
+import com.vaadin.event.Transferable;
+import com.vaadin.event.dd.acceptcriteria.AcceptCriterion;
+import com.vaadin.ui.Component;
+import com.vaadin.ui.Tree;
+
+/**
+ * DragSource is a {@link Component} that builds a {@link Transferable} for a
+ * drag and drop operation.
+ * <p>
+ * In Vaadin the drag and drop operation practically starts from client side
+ * component. The client side component initially defines the data that will be
+ * present in {@link Transferable} object on server side. If the server side
+ * counterpart of the component implements this interface, terminal
+ * implementation lets it create the {@link Transferable} instance from the raw
+ * client side "seed data". This way server side implementation may translate or
+ * extend the data that will be available for {@link DropHandler}.
+ *
+ * @since 6.3
+ *
+ */
+public interface DragSource extends Component {
+
+ /**
+ * DragSource may convert data added by client side component to meaningful
+ * values for server side developer or add other data based on it.
+ *
+ * <p>
+ * For example Tree converts item identifiers to generated string keys for
+ * the client side. Vaadin developer don't and can't know anything about
+ * these generated keys, only about item identifiers. When tree node is
+ * dragged client puts that key to {@link Transferable}s client side
+ * counterpart. In {@link Tree#getTransferable(Map)} the key is converted
+ * back to item identifier that the server side developer can use.
+ * <p>
+ *
+ * @since 6.3
+ * @param rawVariables
+ * the data that client side initially included in
+ * {@link Transferable}s client side counterpart.
+ * @return the {@link Transferable} instance that will be passed to
+ * {@link DropHandler} (and/or {@link AcceptCriterion})
+ */
+ public Transferable getTransferable(Map<String, Object> rawVariables);
+
+} \ No newline at end of file