Author: yzhishko
Date: 2010-01-19 06:34:13 -0500 (Tue, 19 Jan 2010)
New Revision: 19800
Added:
trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/jbide/OpenOnTLDPackedInJar_JBIDE5693.java
Modified:
trunk/common/plugins/org.jboss.tools.common.text.ext/src/org/jboss/tools/common/text/ext/hyperlink/ClassHyperlink.java
trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/JsfAllTests.java
trunk/vpe/tests/org.jboss.tools.vpe.ui.test/src/org/jboss/tools/vpe/ui/test/OpenOnUtil.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-5693 fixed
Modified:
trunk/common/plugins/org.jboss.tools.common.text.ext/src/org/jboss/tools/common/text/ext/hyperlink/ClassHyperlink.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.text.ext/src/org/jboss/tools/common/text/ext/hyperlink/ClassHyperlink.java 2010-01-19
11:18:37 UTC (rev 19799)
+++
trunk/common/plugins/org.jboss.tools.common.text.ext/src/org/jboss/tools/common/text/ext/hyperlink/ClassHyperlink.java 2010-01-19
11:34:13 UTC (rev 19800)
@@ -17,6 +17,7 @@
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IStorage;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
@@ -152,21 +153,20 @@
if (editorInput instanceof JarEntryEditorInput) {
JarEntryEditorInput jarEntryEditorInput = (JarEntryEditorInput) editorInput;
JarEntryResource jarEntryFile = (JarEntryResource)
jarEntryEditorInput.getStorage();
- Object parent = jarEntryFile.getParent();
- while( parent instanceof JarEntryResource) {
- parent = ((JarEntryResource)parent).getParent();
+ IJavaProject parentProject = getProjectForJarResource(jarEntryFile);
+ if (parentProject != null) {
+ return searchForClass(parentProject, className);
}
- while (parent instanceof PackageFragment) {
- parent = ((PackageFragment)parent).getParent();
- }
- if( (parent instanceof JarPackageFragmentRoot) &&
- (((JarPackageFragmentRoot)parent).getParent() instanceof IJavaProject)) {
- return searchForClass(((IJavaProject)
((JarPackageFragmentRoot)parent).getParent()), className);
- }
-
} else if (editorInput instanceof IStorageEditorInput) {
IStorageEditorInput moeInput = (IStorageEditorInput)editorInput;
- IPath p = moeInput.getStorage().getFullPath();
+ IStorage storage = moeInput.getStorage();
+ if (storage instanceof JarEntryFile) {
+ IJavaProject parentProject = getProjectForJarResource((JarEntryFile)storage);
+ if (parentProject != null) {
+ return searchForClass(parentProject, className);
+ }
+ }
+ IPath p = storage.getFullPath();
String s0 = p.segment(0);
project = ResourcesPlugin.getWorkspace().getRoot().getProject(s0);
}
@@ -187,6 +187,21 @@
}
}
+ private IJavaProject getProjectForJarResource(JarEntryResource jarResource){
+ Object parent = jarResource.getParent();
+ while( parent instanceof JarEntryResource) {
+ parent = ((JarEntryResource)parent).getParent();
+ }
+ while (parent instanceof PackageFragment) {
+ parent = ((PackageFragment)parent).getParent();
+ }
+ if( (parent instanceof JarPackageFragmentRoot) &&
+ (((JarPackageFragmentRoot)parent).getParent() instanceof IJavaProject)) {
+ return (IJavaProject)((JarPackageFragmentRoot)parent).getParent();
+ }
+ return null;
+ }
+
IRegion fLastRegion = null;
/*
* (non-Javadoc)
Modified:
trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/JsfAllTests.java
===================================================================
---
trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/JsfAllTests.java 2010-01-19
11:18:37 UTC (rev 19799)
+++
trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/JsfAllTests.java 2010-01-19
11:34:13 UTC (rev 19800)
@@ -70,6 +70,7 @@
import org.jboss.tools.jsf.vpe.jsf.test.jbide.MessageResolutionInPreviewTabTest;
import org.jboss.tools.jsf.vpe.jsf.test.jbide.OpenOnInJarPackageFragment_JBIDE5682;
import org.jboss.tools.jsf.vpe.jsf.test.jbide.OpenOnJsf20Test_JBIDE5382;
+import org.jboss.tools.jsf.vpe.jsf.test.jbide.OpenOnTLDPackedInJar_JBIDE5693;
import org.jboss.tools.jsf.vpe.jsf.test.jbide.TaglibXMLUnformatedDTD_JBIDE5642;
import org.jboss.tools.jsf.vpe.jsf.test.jbide.TestFViewLocaleAttribute_JBIDE5218;
import org.jboss.tools.jsf.vpe.jsf.test.jbide.JBIDE675Test;
@@ -192,6 +193,7 @@
suite.addTestSuite(TaglibXMLUnformatedDTD_JBIDE5642.class);
suite.addTestSuite(OpenOnInJarPackageFragment_JBIDE5682.class);
suite.addTestSuite(MessageResolutionInPreviewTabTest.class);
+ suite.addTestSuite(OpenOnTLDPackedInJar_JBIDE5693.class);
// $JUnit-END$
// added by Max Areshkau
Added:
trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/jbide/OpenOnTLDPackedInJar_JBIDE5693.java
===================================================================
---
trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/jbide/OpenOnTLDPackedInJar_JBIDE5693.java
(rev 0)
+++
trunk/jsf/tests/org.jboss.tools.jsf.vpe.jsf.test/src/org/jboss/tools/jsf/vpe/jsf/test/jbide/OpenOnTLDPackedInJar_JBIDE5693.java 2010-01-19
11:34:13 UTC (rev 19800)
@@ -0,0 +1,81 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2010 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
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.jsf.vpe.jsf.test.jbide;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.internal.core.JarEntryDirectory;
+import org.eclipse.jdt.internal.core.JarEntryFile;
+import org.eclipse.jdt.internal.core.JarPackageFragmentRoot;
+import org.eclipse.jdt.internal.ui.javaeditor.JarEntryEditorInput;
+import org.eclipse.ui.IEditorDescriptor;
+import org.eclipse.ui.IEditorRegistry;
+import org.eclipse.ui.IStorageEditorInput;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.editors.text.EditorsUI;
+import org.jboss.tools.common.model.ui.editor.ModelObjectStorageEditorInput;
+import org.jboss.tools.jsf.vpe.jsf.test.JsfAllTests;
+import org.jboss.tools.vpe.ui.test.OpenOnUtil;
+import org.jboss.tools.vpe.ui.test.VpeTest;
+
+/**
+ *
+ * @author yzhishko
+ *
+ */
+
+@SuppressWarnings("restriction")
+public class OpenOnTLDPackedInJar_JBIDE5693 extends VpeTest {
+
+ private static final String JAR_LIB_PATH =
"WebContent/WEB-INF/lib/jsf-impl-2.0.1-SNAPSHOT.jar"; //$NON-NLS-1$
+ private static final String TEST_FILE = "jsf_core.tld"; //$NON-NLS-1$
+ private static final String DIR = "META-INF"; //$NON-NLS-1$
+
+ public OpenOnTLDPackedInJar_JBIDE5693(String name) {
+ super(name);
+ }
+
+ public void testOpenOnTLDPackedInJar() throws Throwable{
+ IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(
+ JsfAllTests.IMPORT_JSF_20_PROJECT_NAME);
+ IJavaProject javaProject = JavaCore.create(project);
+ IPackageFragmentRoot fragmentRoot = javaProject
+ .getPackageFragmentRoot(""+project.getLocation() + "/"
//$NON-NLS-1$ //$NON-NLS-2$
+ + JAR_LIB_PATH);
+ JarPackageFragmentRoot jarPackageFragmentRoot = (JarPackageFragmentRoot) fragmentRoot;
+ JarEntryDirectory entryDirectory = new JarEntryDirectory(DIR);
+ entryDirectory.setParent(jarPackageFragmentRoot);
+ JarEntryFile fileInJar = new JarEntryFile(TEST_FILE);
+ fileInJar.setParent(entryDirectory);
+ JarEntryEditorInput editorInput = new JarEntryEditorInput(fileInJar);
+ OpenOnUtil.checkOpenOnInEditor(editorInput, getEditorId(fileInJar
+ .getName()), 71, 15, "CoreValidator.class"); //$NON-NLS-1$
+
+ }
+
+ private final String getEditorId(String filename) {
+ IWorkbench workbench = PlatformUI.getWorkbench();
+ IEditorRegistry editorRegistry = workbench.getEditorRegistry();
+ IEditorDescriptor descriptor = editorRegistry
+ .getDefaultEditor(filename);
+ if (descriptor != null)
+ return descriptor.getId();
+ return EditorsUI.DEFAULT_TEXT_EDITOR_ID;
+ }
+
+}
Modified:
trunk/vpe/tests/org.jboss.tools.vpe.ui.test/src/org/jboss/tools/vpe/ui/test/OpenOnUtil.java
===================================================================
---
trunk/vpe/tests/org.jboss.tools.vpe.ui.test/src/org/jboss/tools/vpe/ui/test/OpenOnUtil.java 2010-01-19
11:18:37 UTC (rev 19799)
+++
trunk/vpe/tests/org.jboss.tools.vpe.ui.test/src/org/jboss/tools/vpe/ui/test/OpenOnUtil.java 2010-01-19
11:34:13 UTC (rev 19800)
@@ -84,15 +84,15 @@
.openEditor(editorInput, editorId);
StructuredTextEditor textEditor = null;
if(editorPart instanceof MultiPageEditorPart){
- IEditorPart[] editorParts =
((MultiPageEditorPart)editorPart).findEditors(editorInput);
- ((MultiPageEditorPart)editorPart).setActiveEditor(editorParts[0]);
- textEditor = (StructuredTextEditor) editorParts[0];
+ StructuredTextEditor structuredTextEditor =
findStructEditor((MultiPageEditorPart)editorPart, editorInput);
+ ((MultiPageEditorPart)editorPart).setActiveEditor(structuredTextEditor);
+ textEditor = structuredTextEditor;
} else if(editorPart instanceof JSPMultiPageEditor) {
textEditor = ((JSPMultiPageEditor)editorPart).getSourceEditor();
} else if(editorPart instanceof EditorPartWrapper) {
- IEditorPart[] editorParts =
((MultiPageEditorPart)((EditorPartWrapper)editorPart).getEditor()).findEditors(editorInput);
- ((MultiPageEditorPart)((EditorPartWrapper)editorPart).getEditor()).setActiveEditor(editorParts[1]);
- textEditor = (StructuredTextEditor) editorParts[1];
+ StructuredTextEditor structuredTextEditor =
findStructEditor((MultiPageEditorPart)((EditorPartWrapper)editorPart).getEditor(),
editorInput);
+ ((MultiPageEditorPart)((EditorPartWrapper)editorPart).getEditor()).setActiveEditor(structuredTextEditor);
+ textEditor = structuredTextEditor;
}
int openOnPosition = TestUtil.getLinePositionOffcet(textEditor
.getTextViewer(),lineNumber, lineOffset);
@@ -122,4 +122,14 @@
}
+ private static StructuredTextEditor findStructEditor (MultiPageEditorPart part,
IEditorInput input){
+ IEditorPart[] editorParts = part.findEditors(input);
+ for (int i = 0; i < editorParts.length; i++) {
+ if (editorParts[i] instanceof StructuredTextEditor) {
+ return (StructuredTextEditor) editorParts[i];
+ }
+ }
+ return null;
+ }
+
}