[jbosstools-commits] JBoss Tools SVN: r36074 - in trunk: jsf/tests/org.jboss.tools.jsf.text.ext.test/projects/jsfHyperlinkTests/WebContent/JBIDE-9930 and 3 other directories.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Fri Oct 28 13:05:25 EDT 2011


Author: vrubezhny
Date: 2011-10-28 13:05:25 -0400 (Fri, 28 Oct 2011)
New Revision: 36074

Added:
   trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/projects/jsfHyperlinkTests/JavaSource/resources.properties
   trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/projects/jsfHyperlinkTests/WebContent/JBIDE-9930/anotherELInTagBody.jsp
Modified:
   trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/projects/jsfHyperlinkTests/WebContent/WEB-INF/faces-config.xml
   trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/src/org/jboss/tools/jsf/text/ext/test/JSPELHyperlinkTestForELInTagBodyTest.java
   trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/PageContextFactory.java
Log:
JBIDE-9930 OpenOns for ELs don't work in text nodes of JSP

Issue with EL detection in TEXT Regions is fixed. JUnit test is created.


Added: trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/projects/jsfHyperlinkTests/JavaSource/resources.properties
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/projects/jsfHyperlinkTests/JavaSource/resources.properties	                        (rev 0)
+++ trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/projects/jsfHyperlinkTests/JavaSource/resources.properties	2011-10-28 17:05:25 UTC (rev 36074)
@@ -0,0 +1,2 @@
+prompt=Your Name\:
+greeting=Hello Hello1 Hello2 Hello3 Hello4 Hello5 Hello6 Hello7 Hello8 Hello9 Hello10 Hello11 Hello12 Hello13 Hello14 Hello15 Hello16 Hello17 Hello18 Hello19 Hello20 Hello21 Hello22 Hello23 Hello24 Hello25 Hello26 Hello27 Hello28 Hello29 Hello30 Hello31 Hello32 Hello33 Hello34 Hello35 Hello36 Hello37 Hello38 Hello39 


Property changes on: trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/projects/jsfHyperlinkTests/JavaSource/resources.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/projects/jsfHyperlinkTests/WebContent/JBIDE-9930/anotherELInTagBody.jsp
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/projects/jsfHyperlinkTests/WebContent/JBIDE-9930/anotherELInTagBody.jsp	                        (rev 0)
+++ trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/projects/jsfHyperlinkTests/WebContent/JBIDE-9930/anotherELInTagBody.jsp	2011-10-28 17:05:25 UTC (rev 36074)
@@ -0,0 +1,12 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+    pageEncoding="UTF-8"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Insert title here</title>
+</head>
+<body>
+#{msgs.greeting}
+</body>
+</html>
\ No newline at end of file


Property changes on: trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/projects/jsfHyperlinkTests/WebContent/JBIDE-9930/anotherELInTagBody.jsp
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Modified: trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/projects/jsfHyperlinkTests/WebContent/WEB-INF/faces-config.xml
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/projects/jsfHyperlinkTests/WebContent/WEB-INF/faces-config.xml	2011-10-28 16:44:25 UTC (rev 36073)
+++ trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/projects/jsfHyperlinkTests/WebContent/WEB-INF/faces-config.xml	2011-10-28 17:05:25 UTC (rev 36074)
@@ -122,4 +122,10 @@
    <to-view-id>/page3.jsp</to-view-id>
   </navigation-case>
  </navigation-rule>
+ <application>
+  <resource-bundle>
+   <base-name>resources</base-name>
+   <var>msgs</var>
+  </resource-bundle>
+ </application>
 </faces-config>

Modified: trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/src/org/jboss/tools/jsf/text/ext/test/JSPELHyperlinkTestForELInTagBodyTest.java
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/src/org/jboss/tools/jsf/text/ext/test/JSPELHyperlinkTestForELInTagBodyTest.java	2011-10-28 16:44:25 UTC (rev 36073)
+++ trunk/jsf/tests/org.jboss.tools.jsf.text.ext.test/src/org/jboss/tools/jsf/text/ext/test/JSPELHyperlinkTestForELInTagBodyTest.java	2011-10-28 17:05:25 UTC (rev 36074)
@@ -29,15 +29,24 @@
 import org.jboss.tools.test.util.WorkbenchUtils;
 
 /**
- * The JUnit test cases for JBIDE-5385 issue 
+ * The JUnit test cases for JBIDE-5385, JBIDE-9930 issues 
  * 
  * @author Victor Rubezhny
  */
 public class JSPELHyperlinkTestForELInTagBodyTest  extends TestCase {
 	private static final String PROJECT_NAME = "jsfHyperlinkTests";
-	private static final String PAGE_NAME =  PROJECT_NAME+"/WebContent/JBIDE-9930/elInTagBody.jsp";
-	private static final String[] TEXT_TO_FIND = new String [] {"bean1", "bean1.property1"};
-	private static final String[] RESULT_EDITORS = new String [] {"Bean1.java", "Bean1.java"};
+	private static final String[] PAGE_NAMES =  new String[] {
+		PROJECT_NAME+"/WebContent/JBIDE-9930/elInTagBody.jsp", 
+		PROJECT_NAME+"/WebContent/JBIDE-9930/anotherELInTagBody.jsp", 
+	};
+	private static final String[][] TEXT_TO_FIND = new String [][] {
+		{"bean1", "bean1.property1"},
+		{"msgs", "msgs.greeting"}
+	};
+	private static final String[][] RESULT_EDITORS = new String [][] {
+		{"Bean1.java", "Bean1.java"},
+		{"resources.properties", "resources.properties"}
+	};
 	
 	public IProject project = null;
 	public String naturesCheckProperty;
@@ -64,20 +73,22 @@
 	
 	public void testJSPELHyperlinkTestForELInTagBody() throws PartInitException, BadLocationException {
 		try {
-			for (int i = 0; i < TEXT_TO_FIND.length; i++) {
-				doJSPELHyperlinkTestForELInTagBodyTest(TEXT_TO_FIND[i], RESULT_EDITORS[i]);
+			for (int i = 0; i < PAGE_NAMES.length; i++) {
+				for (int j = 0; j < TEXT_TO_FIND.length; j++) {
+					doJSPELHyperlinkTestForELInTagBodyTest(PAGE_NAMES[i], TEXT_TO_FIND[i][j], RESULT_EDITORS[i][j]);
+				}
 			}
 		} finally {
 			WorkbenchUtils.closeAllEditors();
 		}
 	}
 	
-	private void doJSPELHyperlinkTestForELInTagBodyTest(String template, String editorName) throws BadLocationException {
-		IEditorPart editor = WorkbenchUtils.openEditor(PAGE_NAME);
+	private void doJSPELHyperlinkTestForELInTagBodyTest(String pageName, String template, String editorName) throws BadLocationException {
+		IEditorPart editor = WorkbenchUtils.openEditor(pageName);
 		assertTrue(editor instanceof JSPMultiPageEditor);
 		JSPMultiPageEditor jspMultyPageEditor = (JSPMultiPageEditor) editor;
 		ISourceViewer viewer = jspMultyPageEditor.getSourceEditor().getTextViewer(); 
-		assertNotNull("Viewer couldn't be found for " + PAGE_NAME, viewer);
+		assertNotNull("Viewer couldn't be found for " + pageName, viewer);
 		IDocument document = viewer.getDocument();
 		IRegion reg = new FindReplaceDocumentAdapter(document).find(0,
 				template, true, true, false, false);

Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/PageContextFactory.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/PageContextFactory.java	2011-10-28 16:44:25 UTC (rev 36073)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/PageContextFactory.java	2011-10-28 17:05:25 UTC (rev 36074)
@@ -480,10 +480,10 @@
 	}
 
 	private static void fillElReferencesForNode(IDocument document, IDOMNode node, XmlContextImpl context) {
-		if(Node.ELEMENT_NODE == node.getNodeType() || Node.TEXT_NODE == node.getNodeType()) {
-			IStructuredDocumentRegion regionNode = node.getFirstStructuredDocumentRegion(); 
-			if (regionNode == null) return;
-			
+		IStructuredDocumentRegion regionNode = node.getFirstStructuredDocumentRegion(); 
+		if (regionNode == null) return;
+		
+		if(Node.ELEMENT_NODE == node.getNodeType()) {
 			ITextRegionList regions = regionNode.getRegions();
 			if (regions == null) return;
 			
@@ -492,6 +492,20 @@
 					fillElReferencesForRegionNode(document, node, regionNode, region, context);
 				}
 			}
+		} else if (Node.TEXT_NODE == node.getNodeType()) {
+			IStructuredDocumentRegion lastRegionNode = node.getLastStructuredDocumentRegion();
+			while (regionNode != null) {
+				ITextRegionList regions = regionNode.getRegions();
+				if (regions == null) return;
+				
+				for (ITextRegion region : regions.toArray()) {
+					if (DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE  == region.getType() || DOMRegionContext.XML_CONTENT == region.getType()) {
+						fillElReferencesForRegionNode(document, node, regionNode, region, context);
+					}
+				}
+				if (regionNode == lastRegionNode) break;
+				regionNode = regionNode.getNext();
+			}
 		}
 	}
 



More information about the jbosstools-commits mailing list