Author: mareshkau
Date: 2007-08-15 05:27:30 -0400 (Wed, 15 Aug 2007)
New Revision: 3134
Added:
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/selection/VpeSelectionController.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
Log:
http://jira.jboss.com/jira/browse/JBIDE-754, in progress
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-15
00:58:50 UTC (rev 3133)
+++
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java 2007-08-15
09:27:30 UTC (rev 3134)
@@ -117,6 +117,7 @@
import org.jboss.tools.vpe.editor.mozilla.EditorDomEventListener;
import org.jboss.tools.vpe.editor.mozilla.MozillaDropInfo;
import org.jboss.tools.vpe.editor.mozilla.MozillaEditor;
+import org.jboss.tools.vpe.editor.selection.VpeSelectionController;
import org.jboss.tools.vpe.editor.selection.VpeSelectionHelper;
import org.jboss.tools.vpe.editor.template.VpeAnyData;
import org.jboss.tools.vpe.editor.template.VpeEditAnyDialog;
@@ -146,6 +147,7 @@
import org.mozilla.interfaces.nsISupportsArray;
import org.mozilla.interfaces.nsITransferable;
import org.mozilla.xpcom.Mozilla;
+import org.mozilla.xpcom.XPCOMException;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -165,7 +167,7 @@
// TODO Sergey Vasilyev figure out with nsIPressShell
// private nsIPresShell presShell;
// TODO Max Areshkau figure out with nsISelectionController
-// private nsISelectionController visualSelectionController;
+ private VpeSelectionController visualSelectionController;
VpeDomMapping domMapping;
private VpeTemplateManager templateManager;
private VpeSourceDomBuilder sourceBuilder;
@@ -234,9 +236,9 @@
// TODO Sergey Vasilyev figure out with nsIPressShell
// presShell = browser.getPresShell();
// TODO Max Areshkau figure out with nsISelectionController
-// visualSelectionController = xulRunnerEditor.getSelectionController();
+ visualSelectionController = new
VpeSelectionController(xulRunnerEditor.getSelection());
// TODO Max Areshkau figure out with VpeSelectionBuilder
-// selectionBuilder = new VpeSelectionBuilder(domMapping, sourceBuilder, visualBuilder,
presShell, visualSelectionController);
+ selectionBuilder = new VpeSelectionBuilder(domMapping, sourceBuilder, visualBuilder,
visualSelectionController);
visualKeyHandler = new VpeVisualKeyHandler(sourceEditor, domMapping, pageContext){
public void doSave(IProgressMonitor monitor){
editPart.doSave(monitor);
@@ -304,10 +306,10 @@
if (visualEditor != null) {
visualEditor.setEditorDomEventListener(null);
// TODO Max Areshkau figure out with Selection Controller
-// if (visualSelectionController != null) {
+ if (visualSelectionController != null) {
// visualSelectionController.Release();
-// visualSelectionController = null;
-// }
+ visualSelectionController = null;
+ }
// TODO Sergey Vasilyev figure out with Press Shell
// if (presShell != null) {
// presShell.Release();
@@ -775,9 +777,10 @@
}
public void mouseClick(nsIDOMMouseEvent mouseEvent) {
- if (!switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
- return;
- }
+// if (!switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL)) {
+// return;
+// }
+ try{
nsIDOMNode visualNode = VisualDomUtil.getTargetNode(mouseEvent);
if (visualNode != null) {
if (!mouseUpSelectionReasonFlag) {
@@ -795,6 +798,9 @@
selectionBuilder.setClickContentAreaSelection();
}
}
+ } catch(Throwable exception) {
+ exception.printStackTrace();
+ }
switcher.stopActiveEditor();
}
@@ -840,11 +846,11 @@
try {
if (visualKeyHandler.keyPressHandler(keyEvent)) {
-// switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL);
-// sourceSelectionChanged1();
+ switcher.startActiveEditor(ActiveEditorSwitcher.ACTIVE_EDITOR_VISUAL);
+ sourceSelectionChanged1();
// TODO Max Areshkau figure out with Selection Controller
-// visualSelectionController.setCaretEnabled(true);
-// switcher.stopActiveEditor();
+ visualSelectionController.setCaretEnabled(true);
+ switcher.stopActiveEditor();
}
} catch (Exception e) {
VpePlugin.getPluginLog().logError(e);
@@ -873,7 +879,7 @@
// Edward
sourceSelectionChanged(true);
// TODO Max Areshkau figure out with Selection
-// visualSelectionController.setCaretEnabled(true);
+ visualSelectionController.setCaretEnabled(true);
switcher.stopActiveEditor();
} else {
//adding calls of core event handlers, for example 'CTR+H' or
'CTRL+M' event handler dialog
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-15
00:58:50 UTC (rev 3133)
+++
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeSelectionBuilder.java 2007-08-15
09:27:30 UTC (rev 3134)
@@ -20,6 +20,7 @@
import org.jboss.tools.vpe.editor.mapping.VpeDomMapping;
import org.jboss.tools.vpe.editor.mapping.VpeElementMapping;
import org.jboss.tools.vpe.editor.mapping.VpeNodeMapping;
+import org.jboss.tools.vpe.editor.selection.VpeSelectionController;
import org.jboss.tools.vpe.editor.template.VpePseudoContentCreator;
import org.jboss.tools.vpe.editor.util.HTML;
import org.jboss.tools.vpe.editor.util.TextUtil;
@@ -36,6 +37,7 @@
import org.mozilla.interfaces.nsIDOMRange;
import org.mozilla.interfaces.nsISelection;
import org.mozilla.interfaces.nsISelectionController;
+import org.mozilla.interfaces.nsISelectionDisplay;
import org.mozilla.interfaces.nsISupports;
import org.w3c.dom.Attr;
import org.w3c.dom.Element;
@@ -49,17 +51,17 @@
private VpeVisualDomBuilder visualBuilder;
// TODO Sergey Vasilyev figure out with press shell and selection controller
// private nsIPresShell presShell;
- private nsISelectionController visualSelectionController;
+ private VpeSelectionController visualSelectionController;
- VpeSelectionBuilder(VpeDomMapping domMapping, VpeSourceDomBuilder sourceBuilder,
VpeVisualDomBuilder visualBuilder, nsISelectionController visualSelectionController) {
+ VpeSelectionBuilder(VpeDomMapping domMapping, VpeSourceDomBuilder sourceBuilder,
VpeVisualDomBuilder visualBuilder, VpeSelectionController visualSelectionController) {
// VpeSelectionBuilder(VpeDomMapping domMapping, VpeSourceDomBuilder sourceBuilder,
VpeVisualDomBuilder visualBuilder, nsIPresShell presShell, nsISelectionController
visualSelectionController) {
this.domMapping = domMapping;
this.sourceBuilder = sourceBuilder;
this.visualBuilder = visualBuilder;
// TODO Sergey Vasilyev figure out with selection controller and press shell
// this.presShell = presShell;
-// this.visualSelectionController = visualSelectionController;
-// visualSelectionController.setSelectionFlags(nsISelectionDisplay.DISPLAY_ALL);
+ this.visualSelectionController = visualSelectionController;
+ visualSelectionController.setSelectionFlags(nsISelectionDisplay.DISPLAY_ALL);
}
void setVisualSelection(Node sourceNode, int caretPosition) {
@@ -328,7 +330,7 @@
void setClickContentAreaSelection(nsIDOMMouseEvent mouseEvent) {
// Node visualNode = mouseEvent.getTargetNode();
-// nsISelection selection = visualSelectionController.getSelection();
+// nsISelection selection =
visualSelectionController.getSelection(nsISelectionController.SELECTION_NORMAL);
// Node anchorNode = selection.getAnchorNode();
// Node focusNode = selection.getFocusNode();
}
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-15
00:58:50 UTC (rev 3133)
+++
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeVisualDomBuilder.java 2007-08-15
09:27:30 UTC (rev 3134)
@@ -62,6 +62,7 @@
import org.mozilla.interfaces.nsIDOMNodeList;
import org.mozilla.interfaces.nsIDOMRange;
import org.mozilla.interfaces.nsIDOMText;
+import org.mozilla.xpcom.XPCOMException;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -782,10 +783,13 @@
}
public boolean doToggle(nsIDOMNode visualNode) {
if (visualNode == null) return false;
-
- nsIDOMElement visualElement = (nsIDOMElement) (visualNode instanceof nsIDOMElement ?
- visualNode : visualNode.getParentNode());
-
+ nsIDOMElement visualElement = null;
+ try{
+
+ visualElement = (nsIDOMElement)
visualNode.queryInterface(nsIDOMElement.NS_IDOMELEMENT_IID);
+ } catch(XPCOMException exception) {
+ visualElement = (nsIDOMElement)
visualNode.getParentNode().queryInterface(nsIDOMElement.NS_IDOMELEMENT_IID);
+ }
if (visualElement == null) return false;
nsIDOMAttr toggleIdAttr =
visualElement.getAttributeNode("vpe-user-toggle-id");
Added:
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/selection/VpeSelectionController.java
===================================================================
---
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/selection/VpeSelectionController.java
(rev 0)
+++
branches/jbosstools_xulrunner/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/selection/VpeSelectionController.java 2007-08-15
09:27:30 UTC (rev 3134)
@@ -0,0 +1,44 @@
+/**
+ *
+ */
+package org.jboss.tools.vpe.editor.selection;
+
+import org.mozilla.interfaces.nsISelection;
+
+/**
+ * @author Maxim Areshkau
+ * Class which replace nsISelectionController functionality
+ */
+public class VpeSelectionController {
+
+ private nsISelection selection;
+
+ /**
+ * @param selection
+ */
+ public VpeSelectionController(nsISelection selection) {
+ this.selection = selection;
+ }
+
+ /**
+ * type - not used in
+ * @return the selection
+ */
+ public nsISelection getSelection(long type) {
+ return selection;
+ }
+
+ /**
+ * @param selection the selection to set
+ */
+ public void setSelection(nsISelection selection) {
+ this.selection = selection;
+ }
+
+ //method stub just because it is exist in nsISelectionController
+ public void setCaretEnabled(boolean value){
+ }
+ //method stub just because it is exist in nsISelectionController
+ public void setSelectionFlags(short selectionFlags){
+ }
+}