Author: vrubezhny
Date: 2011-09-14 11:42:46 -0400 (Wed, 14 Sep 2011)
New Revision: 34732
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/SeamCoreTest.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/SeamResourceBundleHyperlinkTest.java
Removed:
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/international/SeamCoreTest.java
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/META-INF/MANIFEST.MF
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/international/BundleModelTest.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/international/SeamResourceBundlesTest.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/jms/SeamJmsValidationTest.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/servlet/SeamServletValidationTest.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/META-INF/MANIFEST.MF
trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/CdiSeamTextExtAllTests.java
trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/META-INF/MANIFEST.MF
trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/CDIHyperlinkTestUtil.java
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/jspeditor/JSPMultiPageEditorPart.java
Log:
JBIDE-9288
Open On for bundle messages doesn't work for CDI projects with International Module
enabled
JUnit test is added.
Modified: trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/META-INF/MANIFEST.MF
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/META-INF/MANIFEST.MF 2011-09-14
14:25:45 UTC (rev 34731)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/META-INF/MANIFEST.MF 2011-09-14
15:42:46 UTC (rev 34732)
@@ -24,4 +24,5 @@
org.jboss.tools.jst.text.ext,
org.jboss.tools.jst.text.ext.test,
org.eclipse.wst.validation;bundle-version="1.2.300"
+Export-Package: org.jboss.tools.cdi.seam.core.test
Copied:
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/SeamCoreTest.java
(from rev 34667,
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/international/SeamCoreTest.java)
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/SeamCoreTest.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/SeamCoreTest.java 2011-09-14
15:42:46 UTC (rev 34732)
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.cdi.seam.core.test;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.jboss.tools.common.base.test.validation.TestUtil;
+import org.jboss.tools.test.util.ResourcesUtils;
+
+/**
+ * @author Alexey Kazakov
+ */
+public class SeamCoreTest extends TestCase {
+
+ protected IProject project;
+
+ protected IProject getTestProject() throws Exception {
+ if(project==null) {
+ project =
ResourcesPlugin.getWorkspace().getRoot().getProject(SeamCoreTestSetup.PROJECT_NAME);
+ if(!project.exists()) {
+ project = ResourcesUtils.importProject(SeamCoreTestSetup.PLUGIN_ID,
SeamCoreTestSetup.PROJECT_PATH);
+ TestUtil.waitForValidation();
+ }
+ }
+ return project;
+ }
+}
\ No newline at end of file
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/SeamCoreTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/international/BundleModelTest.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/international/BundleModelTest.java 2011-09-14
14:25:45 UTC (rev 34731)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/international/BundleModelTest.java 2011-09-14
15:42:46 UTC (rev 34732)
@@ -7,6 +7,7 @@
import org.jboss.tools.cdi.seam.core.international.IBundleModel;
import org.jboss.tools.cdi.seam.core.international.ILocalizedValue;
import org.jboss.tools.cdi.seam.core.international.IProperty;
+import org.jboss.tools.cdi.seam.core.test.SeamCoreTest;
public class BundleModelTest extends SeamCoreTest {
Deleted:
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/international/SeamCoreTest.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/international/SeamCoreTest.java 2011-09-14
14:25:45 UTC (rev 34731)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/international/SeamCoreTest.java 2011-09-14
15:42:46 UTC (rev 34732)
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at
http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.cdi.seam.core.test.international;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.jboss.tools.cdi.seam.core.test.SeamCoreTestSetup;
-import org.jboss.tools.common.base.test.validation.TestUtil;
-import org.jboss.tools.test.util.ResourcesUtils;
-
-/**
- * @author Alexey Kazakov
- */
-public class SeamCoreTest extends TestCase {
-
- protected IProject project;
-
- protected IProject getTestProject() throws Exception {
- if(project==null) {
- project =
ResourcesPlugin.getWorkspace().getRoot().getProject(SeamCoreTestSetup.PROJECT_NAME);
- if(!project.exists()) {
- project = ResourcesUtils.importProject(SeamCoreTestSetup.PLUGIN_ID,
SeamCoreTestSetup.PROJECT_PATH);
- TestUtil.waitForValidation();
- }
- }
- return project;
- }
-}
\ No newline at end of file
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/international/SeamResourceBundlesTest.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/international/SeamResourceBundlesTest.java 2011-09-14
14:25:45 UTC (rev 34731)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/international/SeamResourceBundlesTest.java 2011-09-14
15:42:46 UTC (rev 34732)
@@ -17,6 +17,7 @@
import org.jboss.tools.cdi.core.CDICorePlugin;
import org.jboss.tools.cdi.seam.core.CDISeamCorePlugin;
import
org.jboss.tools.cdi.seam.core.international.el.CDIInternationalMessagesELResolver;
+import org.jboss.tools.cdi.seam.core.test.SeamCoreTest;
import org.jboss.tools.common.el.core.resolver.ELContext;
import org.jboss.tools.common.el.core.resolver.ELResolver;
import org.jboss.tools.common.text.TextProposal;
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/jms/SeamJmsValidationTest.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/jms/SeamJmsValidationTest.java 2011-09-14
14:25:45 UTC (rev 34731)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/jms/SeamJmsValidationTest.java 2011-09-14
15:42:46 UTC (rev 34732)
@@ -12,7 +12,7 @@
import org.eclipse.core.resources.IFile;
import org.jboss.tools.cdi.internal.core.validation.CDIValidationMessages;
-import org.jboss.tools.cdi.seam.core.test.international.SeamCoreTest;
+import org.jboss.tools.cdi.seam.core.test.SeamCoreTest;
import org.jboss.tools.tests.AbstractResourceMarkerTest;
/**
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/servlet/SeamServletValidationTest.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/servlet/SeamServletValidationTest.java 2011-09-14
14:25:45 UTC (rev 34731)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.core.test/src/org/jboss/tools/cdi/seam/core/test/servlet/SeamServletValidationTest.java 2011-09-14
15:42:46 UTC (rev 34732)
@@ -12,7 +12,7 @@
import org.eclipse.core.resources.IFile;
import org.jboss.tools.cdi.internal.core.validation.CDIValidationMessages;
-import org.jboss.tools.cdi.seam.core.test.international.SeamCoreTest;
+import org.jboss.tools.cdi.seam.core.test.SeamCoreTest;
import org.jboss.tools.tests.AbstractResourceMarkerTest;
/**
Modified: trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/META-INF/MANIFEST.MF
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/META-INF/MANIFEST.MF 2011-09-14
14:25:45 UTC (rev 34731)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/META-INF/MANIFEST.MF 2011-09-14
15:42:46 UTC (rev 34732)
@@ -24,7 +24,10 @@
org.eclipse.jdt.ui,
org.jboss.tools.cdi.seam.solder.core.test,
org.jboss.tools.cdi.text.ext,
- org.eclipse.wst.validation
+ org.eclipse.wst.validation,
+ org.jboss.tools.common.base.test,
+ org.jboss.tools.cdi.seam.core.test,
+ org.jboss.tools.jst.text.ext
Bundle-ActivationPolicy: lazy
Bundle-Vendor: %Bundle-Vendor.0
Export-Package: org.jboss.tools.cdi.seam.text.ext.test
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/CdiSeamTextExtAllTests.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/CdiSeamTextExtAllTests.java 2011-09-14
14:25:45 UTC (rev 34731)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/CdiSeamTextExtAllTests.java 2011-09-14
15:42:46 UTC (rev 34732)
@@ -17,6 +17,7 @@
import org.eclipse.wst.validation.ValidationFramework;
import org.jboss.tools.cdi.core.test.CDICoreTestSetup;
import org.jboss.tools.cdi.seam.config.core.test.SeamConfigTestSetup;
+import org.jboss.tools.cdi.seam.core.test.SeamCoreTestSetup;
import org.jboss.tools.cdi.seam.solder.core.test.SeamSolderTestSetup;
public class CdiSeamTextExtAllTests {
@@ -30,9 +31,12 @@
TestSuite suite = new TestSuite("CDI Seam OpenOns Tests");
suite.addTestSuite(CDISeamResourceLoadingHyperlinkDetectorTest.class);
-
suiteAll.addTest(new CDICoreTestSetup(suite));
+ TestSuite suiteSeam = new TestSuite("CDI Seam Resource Bundle Tests");
+ suiteSeam.addTestSuite(SeamResourceBundleHyperlinkTest.class);
+ suiteAll.addTest(new SeamCoreTestSetup(suiteSeam));
+
TestSuite suiteConfig = new TestSuite("CDI Seam Config OpenOns Tests");
suiteConfig.addTestSuite(SeamConfigTagNameHyperlinkTest.class);
suiteConfig.addTestSuite(SeamConfigInjectedPointHyperlinkTest.class);
@@ -45,7 +49,7 @@
suiteSolder.addTestSuite(SeamGenericInjectedPointHyperlinkTest.class);
suiteAll.addTest(new SeamSolderTestSetup(suiteSolder));
-
+
return suiteAll;
}
}
\ No newline at end of file
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/SeamResourceBundleHyperlinkTest.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/SeamResourceBundleHyperlinkTest.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/SeamResourceBundleHyperlinkTest.java 2011-09-14
15:42:46 UTC (rev 34732)
@@ -0,0 +1,41 @@
+package org.jboss.tools.cdi.seam.text.ext.test;
+
+import java.util.ArrayList;
+
+import org.eclipse.jface.text.hyperlink.IHyperlink;
+import org.jboss.tools.cdi.seam.core.test.SeamCoreTest;
+import org.jboss.tools.cdi.text.ext.test.CDIHyperlinkTestUtil;
+import org.jboss.tools.jst.text.ext.hyperlink.ELHyperlink;
+
+public class SeamResourceBundleHyperlinkTest extends SeamCoreTest {
+ private static final String PAGE_NAME =
"WebContent/seam-international.xhtml";
+
+ /**
+ * The test case finds the hyperlinks for bundle property and checks that there are only
Messages Hyperlinks
+ * @throws Exception
+ */
+ public void testCDIInternationalMessagesHyperLink () throws Exception {
+ ArrayList<CDIHyperlinkTestUtil.TestRegion> regionList = new
ArrayList<CDIHyperlinkTestUtil.TestRegion>();
+ regionList.add(new CDIHyperlinkTestUtil.TestRegion(398, 11,
+ new CDIHyperlinkTestUtil.TestHyperlink[]{new
CDIHyperlinkTestUtil.TestHyperlink(ELHyperlink.class, "Open property
'home_header' of bundle 'messages'",
"messages.properties")}));
+ regionList.add(new CDIHyperlinkTestUtil.TestRegion(389, 8,
+ new CDIHyperlinkTestUtil.TestHyperlink[]{new
CDIHyperlinkTestUtil.TestHyperlink(ELHyperlink.class, "Open bundle
'messages'", (String)null)}));
+ regionList.add(new CDIHyperlinkTestUtil.TestRegion(381, 7,
+ new CDIHyperlinkTestUtil.TestHyperlink[]{new
CDIHyperlinkTestUtil.TestHyperlink(ELHyperlink.class, "Open bundle
'messages'", (String)null)}));
+ regionList.add(new CDIHyperlinkTestUtil.TestRegion(381, 16,
+ new CDIHyperlinkTestUtil.TestHyperlink[]{new
CDIHyperlinkTestUtil.TestHyperlink(ELHyperlink.class, "Open bundle
'messages'", (String)null)}));
+
+ for (CDIHyperlinkTestUtil.TestRegion testRegion : regionList) {
+ IHyperlink[] hyperlinks = CDIHyperlinkTestUtil.detectELHyperlinks(PAGE_NAME,
getTestProject(), testRegion.getRegion().getOffset());
+ assertNotNull("Hyperlink not found!", hyperlinks);
+ for (IHyperlink hyperlink : hyperlinks) {
+ assertTrue("Hyperlink found is not EL Hyperlink", (hyperlink instanceof
ELHyperlink));
+ }
+
+ CDIHyperlinkTestUtil.checkTestRegion(hyperlinks, testRegion);
+ }
+ }
+
+
+
+}
\ No newline at end of file
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.text.ext.test/src/org/jboss/tools/cdi/seam/text/ext/test/SeamResourceBundleHyperlinkTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/META-INF/MANIFEST.MF
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/META-INF/MANIFEST.MF 2011-09-14
14:25:45 UTC (rev 34731)
+++ trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/META-INF/MANIFEST.MF 2011-09-14
15:42:46 UTC (rev 34732)
@@ -20,7 +20,10 @@
org.jboss.tools.cdi.core,
org.jboss.tools.common.el.core,
org.jboss.tools.jst.web.ui,
- org.eclipse.wst.validation;bundle-version="1.2.300"
+ org.eclipse.wst.validation;bundle-version="1.2.300",
+ org.jboss.tools.jst.jsp,
+ org.jboss.tools.jst.web,
+ org.jboss.tools.jst.text.ext
Bundle-ActivationPolicy: lazy
Bundle-Vendor: %Bundle-Vendor.0
Export-Package: org.jboss.tools.cdi.text.ext.test
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/CDIHyperlinkTestUtil.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/CDIHyperlinkTestUtil.java 2011-09-14
14:25:45 UTC (rev 34731)
+++
trunk/cdi/tests/org.jboss.tools.cdi.text.ext.test/src/org/jboss/tools/cdi/text/ext/test/CDIHyperlinkTestUtil.java 2011-09-14
15:42:46 UTC (rev 34732)
@@ -20,7 +20,6 @@
import org.eclipse.jface.text.hyperlink.IHyperlink;
import org.eclipse.jface.text.source.ISourceViewer;
import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
@@ -43,6 +42,9 @@
import org.jboss.tools.common.text.ext.hyperlink.HyperlinkDetector;
import org.jboss.tools.common.text.ext.hyperlink.IHyperlinkRegion;
import org.jboss.tools.common.text.ext.util.AxisUtil;
+import org.jboss.tools.jst.jsp.jspeditor.JSPMultiPageEditor;
+import org.jboss.tools.jst.jsp.jspeditor.JSPMultiPageEditorPart;
+import org.jboss.tools.jst.text.ext.hyperlink.ELHyperlinkDetector;
import org.jboss.tools.jst.web.ui.editors.WebCompoundEditor;
public class CDIHyperlinkTestUtil extends TestCase{
@@ -137,7 +139,7 @@
documentProvider.disconnect(editorInput);
}
- private static void checkTestRegion(IHyperlink[] links, TestRegion testRegion){
+ public static void checkTestRegion(IHyperlink[] links, TestRegion testRegion){
for(IHyperlink link : links){
TestHyperlink testLink = findTestHyperlink(testRegion.hyperlinks, link);
assertNotNull("Unexpected hyperlink - "+link.getHyperlinkText(), testLink);
@@ -201,6 +203,20 @@
}
public static IHyperlink checkHyperLinkInXml(String fileName, IProject project, int
offset, String hyperlinkClassName) throws Exception {
+ IHyperlink[] links = detectHyperlinks(fileName, project, offset);
+
+ if(links!=null) {
+ for (IHyperlink hyperlink : links) {
+ if(hyperlink.getClass().getName().equals(hyperlinkClassName)) {
+ return hyperlink;
+ }
+ }
+ }
+ fail("Can't find HyperLink");
+ return null;
+ }
+
+ public static IHyperlink[] detectHyperlinks(String fileName, IProject project, int
offset) {
Region region = new Region(offset, 0);
IFile file = project.getFile(fileName);
@@ -217,24 +233,52 @@
if(parts.length>0) {
viewer = ((StructuredTextEditor)parts[0]).getTextViewer();
}
+ } else if (part instanceof JSPMultiPageEditor) {
+ IEditorPart[] parts = ((JSPMultiPageEditorPart)part).findEditors(editorInput);
+ if(parts.length>0) {
+ viewer = ((StructuredTextEditor)parts[0]).getTextViewer();
+ }
} else if(part instanceof ObjectMultiPageEditor) {
viewer = ((ObjectMultiPageEditor)part).getSourceEditor().getTextViewer();
} else if(part instanceof StructuredTextEditor) {
viewer = ((StructuredTextEditor)part).getTextViewer();
}
- IHyperlink[] links = HyperlinkDetector.getInstance().detectHyperlinks(viewer, region,
true);
- if(links!=null) {
- for (IHyperlink hyperlink : links) {
- if(hyperlink.getClass().getName().equals(hyperlinkClassName)) {
- return hyperlink;
- }
+ return HyperlinkDetector.getInstance().detectHyperlinks(viewer, region, true);
+ }
+
+ public static IHyperlink[] detectELHyperlinks(String fileName, IProject project, int
offset) {
+ Region region = new Region(offset, 0);
+ IFile file = project.getFile(fileName);
+
+ assertNotNull("The file \"" + fileName + "\" is not
found", file);
+ assertTrue("The file \"" + fileName + "\" is not found",
file.isAccessible());
+
+ FileEditorInput editorInput = new FileEditorInput(file);
+
+ IEditorPart part = openFileInEditor(file);
+ if(part instanceof EditorPartWrapper) part = ((EditorPartWrapper)part).getEditor();
+ ISourceViewer viewer = null;
+ if (part instanceof XMLMultiPageEditorPart) {
+ IEditorPart[] parts = ((XMLMultiPageEditorPart)part).findEditors(editorInput);
+ if(parts.length>0) {
+ viewer = ((StructuredTextEditor)parts[0]).getTextViewer();
}
+ } else if (part instanceof JSPMultiPageEditor) {
+ IEditorPart[] parts = ((JSPMultiPageEditorPart)part).findEditors(editorInput);
+ if(parts.length>0) {
+ viewer = ((StructuredTextEditor)parts[0]).getTextViewer();
+ }
+ } else if(part instanceof ObjectMultiPageEditor) {
+ viewer = ((ObjectMultiPageEditor)part).getSourceEditor().getTextViewer();
+ } else if(part instanceof StructuredTextEditor) {
+ viewer = ((StructuredTextEditor)part).getTextViewer();
}
- fail("Can't find HyperLink");
- return null;
+
+ return new ELHyperlinkDetector().detectHyperlinks(viewer, region, true);
}
+
private static TestRegion findOffsetInRegions(int offset, List<TestRegion>
regionList){
for(TestRegion testRegion : regionList){
if(offset >= testRegion.region.getOffset() && offset <=
testRegion.region.getOffset()+testRegion.region.getLength())
@@ -410,6 +454,9 @@
hyperlinks.add(testHyperlink);
}
}
+ public IRegion getRegion() {
+ return region;
+ }
}
public static class TestHyperlink{
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/jspeditor/JSPMultiPageEditorPart.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/jspeditor/JSPMultiPageEditorPart.java 2011-09-14
14:25:45 UTC (rev 34731)
+++
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/jspeditor/JSPMultiPageEditorPart.java 2011-09-14
15:42:46 UTC (rev 34732)
@@ -12,19 +12,15 @@
import java.util.ArrayList;
import java.util.Iterator;
+import java.util.List;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.SafeRunner;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.util.Assert;
import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
@@ -40,11 +36,9 @@
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Item;
-import org.eclipse.ui.IEditorActionBarContributor;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.IKeyBindingService;
import org.eclipse.ui.INestableKeyBindingService;
import org.eclipse.ui.IPropertyListener;
@@ -52,9 +46,7 @@
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.handlers.IHandlerService;
import org.eclipse.ui.part.EditorPart;
-import org.eclipse.ui.part.MultiPageEditorActionBarContributor;
import org.eclipse.ui.part.MultiPageEditorSite;
-import org.eclipse.ui.part.MultiPageSelectionProvider;
import org.eclipse.ui.part.PageSwitcher;
import org.eclipse.wst.sse.ui.StructuredTextEditor;
import org.jboss.tools.common.core.resources.XModelObjectEditorInput;
@@ -329,7 +321,31 @@
}
return null;
}
+
+ /**
+ * Find the editors contained in this multi-page editor
+ * whose editor input match the provided input.
+ * @param input the editor input
+ * @return the editors contained in this multi-page editor
+ * whose editor input match the provided input
+ * @since 3.3
+ */
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ public final IEditorPart[] findEditors(IEditorInput input) {
+ List result = new ArrayList();
+ int count = getPageCount();
+ for (int i = 0; i < count; i++) {
+ IEditorPart editor = getEditor(i);
+ if (editor != null
+ && editor.getEditorInput() != null
+ && editor.getEditorInput().equals(input)) {
+ result.add(editor);
+ }
+ }
+ return (IEditorPart[]) result.toArray(new IEditorPart[result.size()]);
+ }
+
private CTabItem getItem(int pageIndex) {
return getTabFolder().getItem(pageIndex);
}