[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