Author: mareshkau
Date: 2007-08-24 12:52:40 -0400 (Fri, 24 Aug 2007)
New Revision: 3328
Modified:
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/dnd/VpeDnD.java
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeVisualDomBuilder.java
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mozilla/EditorDomEventListener.java
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mozilla/MozillaDomEventListener.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-743
Modified:
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/dnd/VpeDnD.java
===================================================================
---
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/dnd/VpeDnD.java 2007-08-24
15:21:26 UTC (rev 3327)
+++
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/dnd/VpeDnD.java 2007-08-24
16:52:40 UTC (rev 3328)
@@ -13,12 +13,14 @@
import org.eclipse.swt.graphics.Rectangle;
import org.mozilla.interfaces.nsIComponentManager;
-import org.mozilla.interfaces.nsIDOMElement;
import org.mozilla.interfaces.nsIDOMEvent;
import org.mozilla.interfaces.nsIDOMNSHTMLElement;
import org.mozilla.interfaces.nsIDOMNode;
import org.mozilla.interfaces.nsIDragService;
import org.mozilla.interfaces.nsIServiceManager;
+import org.mozilla.interfaces.nsISupportsArray;
+import org.mozilla.interfaces.nsISupportsString;
+import org.mozilla.interfaces.nsITransferable;
import org.mozilla.xpcom.Mozilla;
import org.mozilla.xpcom.XPCOMException;
@@ -29,8 +31,14 @@
*/
public class VpeDnD {
- private static final String
CID_DRAGSERVICE="(a)mozilla.org/widget/dragservice;1";
+ private static final String CID_DRAGSERVICE =
"(a)mozilla.org/widget/dragservice;1";
+ private static final String CID_TRANSFERABLE =
"(a)mozilla.org/widget/transferable;1";
+ private static final String CID_SUPPORTSSTRING =
"(a)mozilla.org/supports-string;1";
+
private static final String CID_SUPPORTSARRAY =
"(a)mozilla.org/supports-array;1";
+
+ private static final String kVpeModelFlavor = "vpe/model";
+ private static final String kVpeModelTransport ="vpe/model";
/**
* service manager */
private nsIServiceManager serviceManager;
@@ -65,9 +73,47 @@
*/
public void startDragSession(nsIDOMEvent domEvent) {
//TODO Max Areshkau
+ nsISupportsArray transArray = (nsISupportsArray) getComponentManager()
+ .createInstanceByContractID(CID_SUPPORTSARRAY, null,
+ nsISupportsArray.NS_ISUPPORTSARRAY_IID);
+ transArray.appendElement(createTransferable());
+ getDragService().invokeDragSession((nsIDOMNode)
domEvent.getTarget().queryInterface(nsIDOMNode.NS_IDOMNODE_IID), transArray, null,
+ nsIDragService.DRAGDROP_ACTION_MOVE
+ | nsIDragService.DRAGDROP_ACTION_COPY
+ | nsIDragService.DRAGDROP_ACTION_LINK);
+
+ domEvent.stopPropagation();
+ domEvent.preventDefault();
+
}
-
+
/**
+ * Creates transferable object to start drag session
+ *
+ * @return transferable object
+ */
+ private nsITransferable createTransferable() {
+
+ nsITransferable iTransferable = (nsITransferable) componentManager
+ .createInstanceByContractID(CID_TRANSFERABLE, null,
+ nsITransferable.NS_ITRANSFERABLE_IID);
+ nsISupportsString transferData = (nsISupportsString) componentManager
+ .createInstanceByContractID(CID_SUPPORTSSTRING, null,
+ nsISupportsString.NS_ISUPPORTSSTRING_IID);
+ String data="vpe-element";
+ transferData.setData(data);
+ iTransferable.setTransferData("text/plain", transferData, data.length());
+ iTransferable.setTransferData("text/unicode", transferData,data.length()*2);
+ iTransferable.setTransferData("text/html", transferData, data.length()*2);
+ iTransferable.setTransferData("text/xml", transferData, data.length()*2);
+ iTransferable.setTransferData("text/rtf", transferData, data.length()*2);
+ iTransferable.setTransferData("text/enriched", transferData,
data.length()*2);
+ iTransferable.setTransferData("text/richtext", transferData,
data.length()*2);
+ iTransferable.setTransferData("text/t140", transferData, data.length()*2);
+
+ return iTransferable;
+ }
+ /**
* @return the componentManager
*/
public nsIComponentManager getComponentManager() {
@@ -98,7 +144,7 @@
public nsIDragService getDragService() {
if(dragService==null) {
- dragService = (nsIDragService) serviceManager
+ dragService = (nsIDragService) getServiceManager()
.getServiceByContractID(CID_DRAGSERVICE,
nsIDragService.NS_IDRAGSERVICE_IID);
}
Modified:
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java
===================================================================
---
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java 2007-08-24
15:21:26 UTC (rev 3327)
+++
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java 2007-08-24
16:52:40 UTC (rev 3328)
@@ -2468,9 +2468,9 @@
/**
* Start drag session
*/
- public void startDragSession() {
- // TODO Auto-generated method stub
+ public void startDragSession(nsIDOMEvent domEvent) {
+ visualBuilder.getDnd().startDragSession(domEvent);
}
-}
\ No newline at end of file
+}
Modified:
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeVisualDomBuilder.java
===================================================================
---
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeVisualDomBuilder.java 2007-08-24
15:21:26 UTC (rev 3327)
+++
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeVisualDomBuilder.java 2007-08-24
16:52:40 UTC (rev 3328)
@@ -1613,4 +1613,20 @@
pageContext.setTaglib(attr.hashCode(), attr.getNodeValue(), attr.getLocalName(), ns);
}
}
+
+ /**
+ * @return the dnd
+ */
+ public VpeDnD getDnd() {
+
+ return dnd;
+ }
+
+ /**
+ * @param dnd the dnd to set
+ */
+ public void setDnd(VpeDnD dnd) {
+
+ this.dnd = dnd;
+ }
}
Modified:
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mozilla/EditorDomEventListener.java
===================================================================
---
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mozilla/EditorDomEventListener.java 2007-08-24
15:21:26 UTC (rev 3327)
+++
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mozilla/EditorDomEventListener.java 2007-08-24
16:52:40 UTC (rev 3328)
@@ -64,5 +64,5 @@
* Calls when editor content changed, and we should highlight selected element.
*/
void onRefresh();
- void startDragSession();
+ void startDragSession(nsIDOMEvent domEvent);
}
Modified:
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mozilla/MozillaDomEventListener.java
===================================================================
---
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mozilla/MozillaDomEventListener.java 2007-08-24
15:21:26 UTC (rev 3327)
+++
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mozilla/MozillaDomEventListener.java 2007-08-24
16:52:40 UTC (rev 3328)
@@ -373,6 +373,7 @@
boolean canDragFlag = editorDomEventListener.canInnerDrag(mouseEvent);
//TODO Max Areshkau think about using can -or not can drag if we can drag we should
//start drag session
+ editorDomEventListener.startDragSession(domEvent);
System.out.println("Can drag"+canDragFlag);
}
//TODO Max Areshkau Drag gesture event