Author: mareshkau
Date: 2007-09-03 07:26:59 -0400 (Mon, 03 Sep 2007)
New Revision: 3420
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/mozilla/MozillaDomEventListener.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-744
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-09-03
11:24:06 UTC (rev 3419)
+++
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java 2007-09-03
11:26:59 UTC (rev 3420)
@@ -1312,7 +1312,7 @@
private boolean startActiveEditor(int newType) {
//TODO Max Areshkau( add in test purposes, remove after all)
- System.out.print("start");
+// System.out.print("start");
if (type == ACTIVE_EDITOR_NONE) {
if( newType == ACTIVE_EDITOR_SOURCE &&
editPart.getVisualMode() == VpeEditorPart.SOURCE_MODE) {
@@ -1327,7 +1327,7 @@
private void stopActiveEditor() {
//TODO Max Areshkau( add in test purposes, remove after all)
- System.out.println("stop");
+// System.out.println("stop");
onRefresh();
type = ACTIVE_EDITOR_NONE;
}
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-09-03
11:24:06 UTC (rev 3419)
+++
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeSelectionBuilder.java 2007-09-03
11:26:59 UTC (rev 3420)
@@ -105,12 +105,12 @@
sourceBuilder.setSelection(sourceNode, pos, 0);
break;
case nsIDOMNode.ELEMENT_NODE:
- if (VpeVisualDomBuilder.isIncludeElement((nsIDOMElement)visualSelectedNode)) {
- visualBuilder.setSelectionRectangle((nsIDOMElement)visualSelectedNode, false);
+ if
(VpeVisualDomBuilder.isIncludeElement((nsIDOMElement)visualSelectedNode.queryInterface(nsIDOMElement.NS_IDOMELEMENT_IID)))
{
+ visualBuilder.setSelectionRectangle((nsIDOMElement)visualSelectedNode.queryInterface(nsIDOMElement.NS_IDOMELEMENT_IID),
false);
visualSelectionController.setCaretEnabled(false);
sourceBuilder.setSelection(sourceNode, 0, 0);
} else if (sourceNode.getNodeType() == Node.COMMENT_NODE) {
- visualBuilder.setSelectionRectangle((nsIDOMElement)visualSelectedNode, false);
+ visualBuilder.setSelectionRectangle((nsIDOMElement)visualSelectedNode.queryInterface(nsIDOMElement.NS_IDOMELEMENT_IID),
false);
// pos = DataHelper.textPos(visualNode.getNodeValue(),
selection.getFocusOffset());
pos = selection.getFocusOffset();
try{
@@ -122,7 +122,7 @@
}
sourceBuilder.setSelection(sourceNode, pos, 0);
} else if (visualBuilder.isContentArea(visualSelectedNode) &&
visualBuilder.isEmptyDocument()) {
- visualBuilder.setSelectionRectangle((nsIDOMElement)visualSelectedNode, false);
+ visualBuilder.setSelectionRectangle((nsIDOMElement)visualSelectedNode.queryInterface(nsIDOMElement.NS_IDOMELEMENT_IID),
false);
sourceBuilder.setSelectionAtDocumentEnd();
} else {
nsIDOMNode containerForPseudoContent =
VpePseudoContentCreator.getContainerForPseudoContent(visualNode);
@@ -142,14 +142,14 @@
}
if (!border && visualNode.getNodeType() == Node.TEXT_NODE && node
== null) {
- visualBuilder.setSelectionRectangle((nsIDOMElement)visualSelectedNode, false);
+ visualBuilder.setSelectionRectangle((nsIDOMElement)visualSelectedNode.queryInterface(nsIDOMElement.NS_IDOMELEMENT_IID),
false);
sourceBuilder.setAttributeSelection(visualNode, selection.getFocusOffset(), 0);
if (!visualBuilder.isTextEditable(visualNode)) {
visualSelectionController.setCaretEnabled(false);
}
} else {
if (info.startFlag) {
- visualBuilder.setSelectionRectangle((nsIDOMElement)visualSelectedNode, false);
+ visualBuilder.setSelectionRectangle((nsIDOMElement)visualSelectedNode.queryInterface(nsIDOMElement.NS_IDOMELEMENT_IID),
false);
} else {
visualParentElement =
(nsIDOMElement)visualSelectedNode.getParentNode().queryInterface(nsIDOMElement.NS_IDOMELEMENT_IID);
visualBuilder.setSelectionRectangle(visualParentElement, false);
@@ -192,7 +192,7 @@
if (sourceAncestor != null) {
switch (visualSelectedAncestor.getNodeType()) {
case Node.TEXT_NODE:
- nsIDOMElement visualParentElement =
(nsIDOMElement)visualSelectedAncestor.getParentNode();
+ nsIDOMElement visualParentElement =
(nsIDOMElement)visualSelectedAncestor.getParentNode().queryInterface(nsIDOMElement.NS_IDOMELEMENT_IID);
visualBuilder.setSelectionRectangle(visualParentElement, false);
// int start = DataHelper.textPos(visualSelectedAncestor.getNodeValue(),
selection.getAnchorOffset());
@@ -212,7 +212,7 @@
break;
case Node.ELEMENT_NODE:
if (sourceAncestor.getNodeType() == Node.COMMENT_NODE) {
- visualBuilder.setSelectionRectangle((nsIDOMElement)visualSelectedAncestor, false);
+ visualBuilder.setSelectionRectangle((nsIDOMElement)visualSelectedAncestor.queryInterface(nsIDOMElement.NS_IDOMELEMENT_IID),
false);
// start = DataHelper.textPos(sourceAncestor.getNodeValue(),
selection.getAnchorOffset());
// end = DataHelper.textPos(sourceAncestor.getNodeValue(),
selection.getFocusOffset());
start = selection.getAnchorOffset();
@@ -243,7 +243,7 @@
sourceBuilder.setSelection(sourceNode, 0, sourceEndOffset - sourceStartOffset);
}
} else {
- visualBuilder.setSelectionRectangle((nsIDOMElement)visualSelectedAncestor,
false);
+ visualBuilder.setSelectionRectangle((nsIDOMElement)visualSelectedAncestor.queryInterface(nsIDOMElement.NS_IDOMELEMENT_IID),
false);
if (!border && visualAncestor.getNodeType() == Node.TEXT_NODE) {
sourceBuilder.setAttributeSelection(visualAncestor, visualAnchorOffset,
visualFocusOffset - visualAnchorOffset);
@@ -406,7 +406,7 @@
offset = text.length();
}
selection.collapse(visualText, offset);
- visualBuilder.setSelectionRectangle((nsIDOMElement)visualNode);
+ visualBuilder.setSelectionRectangle((nsIDOMElement)visualNode.queryInterface(nsIDOMElement.NS_IDOMELEMENT_IID));
}
} else {
if (offset == 0) {
@@ -414,7 +414,7 @@
nsIDOMNode visualParentNode = visualNode.getParentNode();
if (visualParentNode != null && visualParentNode.getNodeType() ==
Node.ELEMENT_NODE) {
selection.collapse(visualParentNode, offset);
- visualBuilder.setSelectionRectangle((nsIDOMElement)visualNode);
+ visualBuilder.setSelectionRectangle((nsIDOMElement)visualNode.queryInterface(nsIDOMElement.NS_IDOMELEMENT_IID));
} else {
selection.removeAllRanges();
visualBuilder.setSelectionRectangle(null);
@@ -425,23 +425,23 @@
if (appreciableVisualChild.getNodeType() == nsIDOMNode.TEXT_NODE) {
offset = appreciableVisualChild.getNodeValue().length();
selection.collapse(appreciableVisualChild, offset);
- visualBuilder.setSelectionRectangle((nsIDOMElement)visualNode);
+ visualBuilder.setSelectionRectangle((nsIDOMElement)visualNode.queryInterface(nsIDOMElement.NS_IDOMELEMENT_IID));
} else {
offset = (int)VisualDomUtil.getOffset(appreciableVisualChild) + 1;
selection.collapse((nsIDOMNode)visualNode, offset);
- visualBuilder.setSelectionRectangle((nsIDOMElement)visualNode);
+ visualBuilder.setSelectionRectangle((nsIDOMElement)visualNode.queryInterface(nsIDOMElement.NS_IDOMELEMENT_IID));
}
} else {
offset = 0;
selection.collapse(visualNode, offset);
- visualBuilder.setSelectionRectangle((nsIDOMElement)visualNode);
+ visualBuilder.setSelectionRectangle((nsIDOMElement)visualNode.queryInterface(nsIDOMElement.NS_IDOMELEMENT_IID));
}
} else {
offset = (int)VisualDomUtil.getOffset(visualNode);
nsIDOMNode visualParentNode = visualNode.getParentNode();
if (visualParentNode.getNodeType() == nsIDOMNode.ELEMENT_NODE) {
selection.collapse(visualParentNode, offset);
- visualBuilder.setSelectionRectangle((nsIDOMElement)visualParentNode);
+ visualBuilder.setSelectionRectangle((nsIDOMElement)visualParentNode.queryInterface(nsIDOMElement.NS_IDOMELEMENT_IID));
} else {
selection.removeAllRanges();
visualBuilder.setSelectionRectangle(null);
@@ -1181,14 +1181,28 @@
selection.removeAllRanges();
selection.collapse(visualParent, offset);
selection.extend(visualParent, offset + 1);
+
setSelection(selection);
}
VpeVisualInnerDragInfo getInnerDragInfo(nsIDOMMouseEvent event) {
VpeVisualInnerDragInfo info = null;
+
nsISelection selection =
visualSelectionController.getSelection(nsISelectionController.SELECTION_NORMAL);
nsIDOMNode focusNode = selection.getFocusNode();
nsIDOMNode anchorNode = selection.getAnchorNode();
+ //when we select input this function return null
+ //but we select elemnt
+ if(focusNode==null && anchorNode==null) {
+
+ nsIDOMNode visualNode =(nsIDOMNode)
event.getTarget().queryInterface(nsIDOMNode.NS_IDOMNODE_IID);
+ int offset = (int) VisualDomUtil.getOffset(visualNode);
+ selection.removeAllRanges();
+ selection.collapse(visualNode.getParentNode(), offset);
+ selection.extend(visualNode.getParentNode(), offset + 1);
+ focusNode = selection.getFocusNode();
+ anchorNode = selection.getAnchorNode();
+ }
if (focusNode != null && focusNode.equals(anchorNode)) {
int focusOffset = selection.getFocusOffset();
int anchorOffset = selection.getAnchorOffset();
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-09-03
11:24:06 UTC (rev 3419)
+++
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/mozilla/MozillaDomEventListener.java 2007-09-03
11:26:59 UTC (rev 3420)
@@ -372,7 +372,7 @@
getEditorDomEventListener().onShowContextMenu(0, domEvent, (nsIDOMNode)
domEvent.getTarget().queryInterface(nsIDOMNode.NS_IDOMNODE_IID));
} else if(DRAGGESTUREEVENT.equals(domEvent.getType())) {
nsIDOMMouseEvent mouseEvent = (nsIDOMMouseEvent)
domEvent.queryInterface(nsIDOMMouseEvent.NS_IDOMMOUSEEVENT_IID);
-
+
if (editorDomEventListener != null && !isXulElement(mouseEvent)) {
boolean canDragFlag = editorDomEventListener.canInnerDrag(mouseEvent);
//start drag sessionvpe-element
@@ -395,7 +395,6 @@
}
getEditorDomEventListener().onRefresh();
-
//not using default mozilla event handlers
}catch(Throwable th) {
//TODO Max Areshkau remove when all will be adjusted