[jbosstools-commits] JBoss Tools SVN: r41988 - in trunk: jsf/tests/org.jboss.tools.jsf.vpe.seam.test/resources/SeamTest/WebContent/pages/components and 2 other directories.
jbosstools-commits at lists.jboss.org
jbosstools-commits at lists.jboss.org
Thu Jun 14 12:16:51 EDT 2012
Author: dmaliarevich
Date: 2012-06-14 12:16:50 -0400 (Thu, 14 Jun 2012)
New Revision: 41988
Modified:
trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/resources/jsfTest/WebContent/pages/components/selectItem.jsp.xml
trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/resources/jsfTest/WebContent/pages/components/selectItems.jsp.xml
trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/resources/jsfTest/WebContent/pages/components/selectManyCheckbox.jsp.xml
trunk/jsf/tests/org.jboss.tools.jsf.vpe.seam.test/resources/SeamTest/WebContent/pages/components/enumItem.xhtml.xml
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java
trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/SelectionManager.java
Log:
https://issues.jboss.org/browse/JBIDE-8062 - Cannot properly edit value of <f:selectItem> tag via Visual Editor
Modified: trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/resources/jsfTest/WebContent/pages/components/selectItem.jsp.xml
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/resources/jsfTest/WebContent/pages/components/selectItem.jsp.xml 2012-06-14 15:57:24 UTC (rev 41987)
+++ trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/resources/jsfTest/WebContent/pages/components/selectItem.jsp.xml 2012-06-14 16:16:50 UTC (rev 41988)
@@ -1,10 +1,10 @@
<tests>
<test id="selectItem1">
- <SPAN>
+ <DIV>
<INPUT TYPE="checkbox" />
<LABEL CLASS="myClass1">check1</LABEL>
- </SPAN>
+ </DIV>
</test>
<test id="selectItem2">
<OPTION> value1</OPTION>
@@ -58,9 +58,9 @@
</DIV>
</test>
<test id="selectItem4">
- <SPAN >
+ <DIV>
<INPUT TYPE="checkbox" DIR="ltr" />
<LABEL CLASS="myClass">check1</LABEL>
- </SPAN>
+ </DIV>
</test>
</tests>
\ No newline at end of file
Modified: trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/resources/jsfTest/WebContent/pages/components/selectItems.jsp.xml
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/resources/jsfTest/WebContent/pages/components/selectItems.jsp.xml 2012-06-14 15:57:24 UTC (rev 41987)
+++ trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/resources/jsfTest/WebContent/pages/components/selectItems.jsp.xml 2012-06-14 16:16:50 UTC (rev 41988)
@@ -1,9 +1,9 @@
<tests>
<test id="selectItems1">
- <SPAN STYLE="-moz-user-modify: read-write;">
+ <DIV>
<INPUT TYPE="checkbox"/>
<LABEL>someValue</LABEL>
- </SPAN>
+ </DIV>
</test>
<test id="selectItems2">
<OPTION>someValue</OPTION>
Modified: trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/resources/jsfTest/WebContent/pages/components/selectManyCheckbox.jsp.xml
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/resources/jsfTest/WebContent/pages/components/selectManyCheckbox.jsp.xml 2012-06-14 15:57:24 UTC (rev 41987)
+++ trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/resources/jsfTest/WebContent/pages/components/selectManyCheckbox.jsp.xml 2012-06-14 16:16:50 UTC (rev 41988)
@@ -4,26 +4,26 @@
<TABLE>
<TR>
<TD>
- <SPAN STYLE="-moz-user-modify: read-write;">
+ <DIV>
<INPUT TYPE="checkbox" />
<LABEL> check1 </LABEL>
- </SPAN>
+ </DIV>
</TD>
</TR>
<TR>
<TD>
- <SPAN STYLE="-moz-user-modify: read-write;">
+ <DIV>
<INPUT TYPE="checkbox" />
<LABEL> check2 </LABEL>
- </SPAN>
+ </DIV>
</TD>
</TR>
<TR>
<TD>
- <SPAN STYLE="-moz-user-modify: read-write;">
+ <DIV>
<INPUT TYPE="checkbox" />
<LABEL>check3</LABEL>
- </SPAN>
+ </DIV>
</TD>
</TR>
</TABLE>
@@ -34,25 +34,25 @@
<TABLE BORDER="2" STYLE="color: red;" CLASS="myClass">
<TR>
<TD>
- <SPAN STYLE="-moz-user-modify: read-write;">
+ <DIV>
<INPUT TYPE="checkbox" />
<LABEL>check1</LABEL>
- </SPAN>
+ </DIV>
</TD>
<TD>
- <SPAN STYLE="-moz-user-modify: read-write;">
+ <DIV>
<INPUT TYPE="checkbox" />
<LABEL>check2</LABEL>
- </SPAN>
+ </DIV>
</TD>
<TD>
- <SPAN STYLE="-moz-user-modify: read-write;">
+ <DIV>
<INPUT TYPE="checkbox" />
<LABEL>check3</LABEL>
- </SPAN>
+ </DIV>
</TD>
</TR>
</TABLE>
Modified: trunk/jsf/tests/org.jboss.tools.jsf.vpe.seam.test/resources/SeamTest/WebContent/pages/components/enumItem.xhtml.xml
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.vpe.seam.test/resources/SeamTest/WebContent/pages/components/enumItem.xhtml.xml 2012-06-14 15:57:24 UTC (rev 41987)
+++ trunk/jsf/tests/org.jboss.tools.jsf.vpe.seam.test/resources/SeamTest/WebContent/pages/components/enumItem.xhtml.xml 2012-06-14 16:16:50 UTC (rev 41988)
@@ -1,6 +1,6 @@
<tests>
<test id="id1">
- <DIV STYLE="-moz-user-modify: read-write;">
+ <DIV>
<INPUT TYPE="radio" NAME="radio_name_394"/>
<LABEL>
Only Once
@@ -13,11 +13,11 @@
</OPTION>
</test>
<test id="id3">
- <SPAN STYLE="-moz-user-modify: read-write;">
+ <DIV>
<INPUT TYPE="checkbox" />
<LABEL>
Only Once
</LABEL>
- </SPAN>
+ </DIV>
</test>
</tests>
\ No newline at end of file
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java 2012-06-14 15:57:24 UTC (rev 41987)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/VpeController.java 2012-06-14 16:16:50 UTC (rev 41988)
@@ -146,6 +146,7 @@
import org.mozilla.interfaces.nsIDOMMutationEvent;
import org.mozilla.interfaces.nsIDOMNSUIEvent;
import org.mozilla.interfaces.nsIDOMNode;
+import org.mozilla.interfaces.nsIDOMRange;
import org.mozilla.interfaces.nsIDOMWindow;
import org.mozilla.interfaces.nsIDOMWindowInternal;
import org.mozilla.interfaces.nsISelection;
@@ -884,7 +885,30 @@
VpeDebugUtil.printVisualEvent(mutationEvent);
}
}
-
+
+ private String getVisualSelectionText(nsISelection selection) {
+ String result = null;
+ if (selection != null && selection.getRangeCount() > 0) {
+ nsIDOMRange firstSelectedRange = selection.getRangeAt(0);
+ nsIDOMNode selectedNode = selection.getFocusNode();
+ if (selectedNode.getNodeName().equals("#text")) { //$NON-NLS-1$
+ int startOffset = firstSelectedRange.getStartOffset();
+ int endOffset = firstSelectedRange.getEndOffset();
+ int beginIndex, endIndex;
+ if (startOffset > endOffset) {
+ beginIndex = endOffset;
+ endIndex = startOffset;
+ } else {
+ beginIndex = startOffset;
+ endIndex = endOffset;
+ }
+ result = selectedNode.getNodeValue()
+ .substring(beginIndex, endIndex);
+ }
+ }
+ return result;
+ }
+
public void notifySelectionChanged(nsIDOMDocument doc,
nsISelection selection, short reason) {
if (!visualSelectionIsAlreadyInProgress) {
@@ -911,8 +935,19 @@
* <select> node to be selected on the first click.
*/
if (node != null) {
+ int anchorOffset = selection.getAnchorOffset();
+ int focusOffset = selection.getFocusOffset();
+ /*
+ * https://issues.jboss.org/browse/JBIDE-8062
+ * Correct automatic selection after several clicks
+ * in the mozilla editor.
+ */
+ String text = getVisualSelectionText(selection);
+ if (text == null || text.length() == 0) {
+ focusOffset = anchorOffset;
+ }
selectionManager.setSelection(SelectionUtil.getSelectedNode(selection),
- selection.getFocusOffset(), selection.getAnchorOffset());
+ focusOffset, anchorOffset);
}
}
// enables cursor on selection event
@@ -1764,13 +1799,13 @@
visualBuilder.rebuildDom(null);
}
// reinits selection controller+ controller
- visualSelectionController = new VpeSelectionController(visualEditor
- .getEditor().getSelectionController());
-
+ visualSelectionController = new VpeSelectionController(
+ visualEditor.getEditor().getSelectionController());
+
visualSelectionController.setSelectionFlags(nsISelectionDisplay.DISPLAY_ALL);
-
- selectionManager = new SelectionManager(pageContext, sourceEditor,
- visualSelectionController);
+
+ selectionManager = new SelectionManager(
+ pageContext, sourceEditor, visualSelectionController);
// selection should be restored after full refresh
selectionManager.refreshVisualSelection();
Modified: trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/SelectionManager.java
===================================================================
--- trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/SelectionManager.java 2012-06-14 15:57:24 UTC (rev 41987)
+++ trunk/vpe/plugins/org.jboss.tools.vpe/src/org/jboss/tools/vpe/editor/template/SelectionManager.java 2012-06-14 16:16:50 UTC (rev 41988)
@@ -125,7 +125,7 @@
refreshVisualNodeSelection();
setUpdateSelectionEventFlag(false);
}
-
+
private SelectionData getSelectionData(nsIDOMNode visualNode) {
// get element mapping
VpeNodeMapping nodeMapping = VpeNodesManagingUtil.getNodeMapping(
@@ -227,9 +227,9 @@
if (range == null) {
return;
}
-
VpeNodeMapping nodeMapping = SelectionUtil
- .getNodeMappingBySourceSelection(getSourceEditor(), getDomMapping());
+ .getNodeMappingBySourceSelection(
+ getSourceEditor(), getDomMapping());
if (nodeMapping == null) {
return;
}
More information about the jbosstools-commits
mailing list