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();
+ }
}
}