Author: mareshkau
Date: 2007-08-23 11:36:38 -0400 (Thu, 23 Aug 2007)
New Revision: 3298
Added:
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/dnd/
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/dnd/VpeDnD.java
Removed:
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeDnD.java
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/VpeSelectionBuilder.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
Copied:
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/dnd/VpeDnD.java
(from rev 3282,
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeDnD.java)
===================================================================
---
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/dnd/VpeDnD.java
(rev 0)
+++
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/dnd/VpeDnD.java 2007-08-23
15:36:38 UTC (rev 3298)
@@ -0,0 +1,108 @@
+/*******************************************************************************
+
+* Copyright (c) 2007 Red Hat, Inc.
+* Distributed under license by Red Hat, Inc. All rights reserved.
+* This program is made available under the terms of the
+* Eclipse Public License v1.0 which accompanies this distribution,
+* and is available at
http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+* Red Hat, Inc. - initial API and implementation
+******************************************************************************/
+package org.jboss.tools.vpe.dnd;
+
+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.xpcom.Mozilla;
+import org.mozilla.xpcom.XPCOMException;
+
+/**
+ * @author Max Areshkau
+ *
+ *Class which response for drag and drop functionality
+ */
+public class VpeDnD {
+
+ private static final String
CID_DRAGSERVICE="(a)mozilla.org/widget/dragservice;1";
+ private static final String CID_SUPPORTSARRAY =
"(a)mozilla.org/supports-array;1";
+ /**
+ * service manager */
+ private nsIServiceManager serviceManager;
+
+ /**
+ * component manager
+ */
+ private nsIComponentManager componentManager;
+
+ /**
+ * drag service
+ */
+ private nsIDragService dragService;
+
+ public Rectangle getBounds(nsIDOMNode visualNode) {
+ try {
+
+ nsIDOMNSHTMLElement domNSHTMLElement = (nsIDOMNSHTMLElement)
visualNode.queryInterface(nsIDOMNSHTMLElement.NS_IDOMNSHTMLELEMENT_IID);
+ return new Rectangle(domNSHTMLElement.getOffsetLeft(),
domNSHTMLElement.getOffsetTop(),domNSHTMLElement.getOffsetWidth(),domNSHTMLElement.getOffsetHeight());
+
+ } catch(XPCOMException xpcomException) {
+
+ //TODO Max Areshkau
+ //If node not not implement nsIDOMNSHTMLElement, may be check best take a parent node
+ return new Rectangle(0, 0, 0,0);
+ }
+ }
+
+ /**
+ * Starts drag session
+ * @param dragetElement
+ */
+ public void startDragSession(nsIDOMEvent domEvent) {
+ //TODO Max Areshkau
+ }
+
+ /**
+ * @return the componentManager
+ */
+ public nsIComponentManager getComponentManager() {
+
+ if(componentManager==null) {
+
+ componentManager = Mozilla.getInstance()
+ .getComponentManager();
+ }
+ return componentManager;
+ }
+
+ /**
+ * @return the serviceManager
+ */
+ public nsIServiceManager getServiceManager() {
+
+ if(serviceManager==null) {
+ serviceManager = Mozilla.getInstance()
+ .getServiceManager();
+ }
+ return serviceManager;
+ }
+
+ /**
+ * @return the dragService
+ */
+ public nsIDragService getDragService() {
+
+ if(dragService==null) {
+ dragService = (nsIDragService) serviceManager
+ .getServiceByContractID(CID_DRAGSERVICE,
+ nsIDragService.NS_IDRAGSERVICE_IID);
+ }
+ return dragService;
+ }
+
+}
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-23
14:55:28 UTC (rev 3297)
+++
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java 2007-08-23
15:36:38 UTC (rev 3298)
@@ -2464,5 +2464,13 @@
public void setXulRunnerEditor(XulRunnerEditor xulRunnerEditor) {
this.xulRunnerEditor = xulRunnerEditor;
}
+
+ /**
+ * Start drag session
+ */
+ public void startDragSession() {
+ // TODO Auto-generated method stub
+
+ }
}
\ No newline at end of file
Deleted:
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeDnD.java
===================================================================
---
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeDnD.java 2007-08-23
14:55:28 UTC (rev 3297)
+++
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeDnD.java 2007-08-23
15:36:38 UTC (rev 3298)
@@ -1,40 +0,0 @@
-/*******************************************************************************
-
-* Copyright (c) 2007 Red Hat, Inc.
-* Distributed under license by Red Hat, Inc. All rights reserved.
-* This program is made available under the terms of the
-* Eclipse Public License v1.0 which accompanies this distribution,
-* and is available at
http://www.eclipse.org/legal/epl-v10.html
-*
-* Contributors:
-* Red Hat, Inc. - initial API and implementation
-******************************************************************************/
-package org.jboss.tools.vpe.editor;
-
-import org.eclipse.swt.graphics.Rectangle;
-import org.mozilla.interfaces.nsIDOMNSHTMLElement;
-import org.mozilla.interfaces.nsIDOMNode;
-import org.mozilla.xpcom.XPCOMException;
-
-/**
- * @author Max Areshkau
- *
- *Class which response for drag and drop functionality
- */
-public class VpeDnD {
-
- public Rectangle getBounds(nsIDOMNode visualNode) {
- try {
-
- nsIDOMNSHTMLElement domNSHTMLElement = (nsIDOMNSHTMLElement)
visualNode.queryInterface(nsIDOMNSHTMLElement.NS_IDOMNSHTMLELEMENT_IID);
- return new Rectangle(domNSHTMLElement.getOffsetLeft(),
domNSHTMLElement.getOffsetTop(),domNSHTMLElement.getOffsetWidth(),domNSHTMLElement.getOffsetHeight());
-
- } catch(XPCOMException xpcomException) {
-
- //TODO Max Areshkau
- //If node not not implement nsIDOMNSHTMLElement, may be check best take a parent node
- return new Rectangle(0, 0, 0,0);
- }
- }
-
-}
Modified:
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeSelectionBuilder.java
===================================================================
---
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeSelectionBuilder.java 2007-08-23
14:55:28 UTC (rev 3297)
+++
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeSelectionBuilder.java 2007-08-23
15:36:38 UTC (rev 3298)
@@ -1203,7 +1203,7 @@
if
(visualBuilder.getNodeBounds(selectedNode).contains(VisualDomUtil.getMousePoint(event)))
{
switch(selectedNode.getNodeType()) {
case nsIDOMNode.ELEMENT_NODE:
- info = new VpeVisualInnerDragInfo((nsIDOMElement)selectedNode);
+ info = new
VpeVisualInnerDragInfo((nsIDOMElement)selectedNode.queryInterface(nsIDOMElement.NS_IDOMELEMENT_IID));
break;
case nsIDOMNode.TEXT_NODE:
info = new VpeVisualInnerDragInfo(selectedNode, 0,
selectedNode.getNodeValue().length());
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-23
14:55:28 UTC (rev 3297)
+++
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeVisualDomBuilder.java 2007-08-23
15:36:38 UTC (rev 3298)
@@ -34,6 +34,7 @@
import org.jboss.tools.jst.jsp.preferences.VpePreference;
import org.jboss.tools.vpe.VpeDebug;
import org.jboss.tools.vpe.VpePlugin;
+import org.jboss.tools.vpe.dnd.VpeDnD;
import org.jboss.tools.vpe.editor.context.VpePageContext;
import org.jboss.tools.vpe.editor.css.CSSReferenceList;
import org.jboss.tools.vpe.editor.css.ResourceReference;
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-23
14:55:28 UTC (rev 3297)
+++
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mozilla/EditorDomEventListener.java 2007-08-23
15:36:38 UTC (rev 3298)
@@ -64,4 +64,5 @@
* Calls when editor content changed, and we should highlight selected element.
*/
void onRefresh();
+ void startDragSession();
}
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-23
14:55:28 UTC (rev 3297)
+++
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mozilla/MozillaDomEventListener.java 2007-08-23
15:36:38 UTC (rev 3298)
@@ -194,7 +194,7 @@
// XPCOM.memmove(offset, new int[] {0}, 4);
// return XPCOM.NS_OK;
// }
- //generates on external drop event
+// generates on external drop event
// int CanDropExternal(int aDropEvent, int aFlavor, int aTransData, int _retval, int
aNode, int offset) {
// int canDrop = 0;
// int aCaretParent = 0;
@@ -364,7 +364,31 @@
} else if(CONTEXTMENUEVENTTYPE.equals(domEvent.getType())) {
//first param are null 0, because this not used in event handler
getEditorDomEventListener().onShowContextMenu(0, domEvent, (nsIDOMNode)
domEvent.getTarget().queryInterface(nsIDOMNode.NS_IDOMNODE_IID));
- }
+ } else if(DRAGGESTUREEVENT.equals(domEvent.getType())) {
+ //here was moved functionality from can drag function
+ System.out.print(DRAGGESTUREEVENT);
+ nsIDOMMouseEvent mouseEvent = (nsIDOMMouseEvent)
domEvent.queryInterface(nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_IID);
+
+ if (editorDomEventListener != null && !isXulElement(mouseEvent)) {
+ 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
+ System.out.println("Can drag"+canDragFlag);
+ }
+ //TODO Max Areshkau Drag gesture event
+ } else if(DRAGDROPEVENT.equals(domEvent.getType())) {
+ System.out.println(DRAGDROPEVENT);
+ //TODO Max Areshkau drag drop gesture event
+ } else if(DRAGENTEREVENT.equals(domEvent.getType())) {
+ System.out.println(DRAGENTEREVENT);
+ //TODO Max Areshkau drag enter event
+ } else if(DRAGEXITEVENT.equals(domEvent.getType())) {
+ System.out.println(DRAGEXITEVENT);
+ //TODO Max Areshkau drag enter event
+ } else if(DRAGOVEREVENT.equals(domEvent.getType())) {
+ System.out.println(DRAGOVEREVENT);
+ //TODO Max Areshkau drag over event
+ }
getEditorDomEventListener().onRefresh();
//not using default mozilla event handlers