Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjlanuti2006-07-28 17:51:28 +0000
committerjlanuti2006-07-28 17:51:28 +0000
commita7790ac05e62b631bdb72871d5b421aa58906af9 (patch)
treeb98480556fc2e28cd847afb995fe20318de5b025
parentb64c9586cd6255184151dbd0a4ea80730c67714d (diff)
downloadwebtools.javaee-a7790ac05e62b631bdb72871d5b421aa58906af9.tar.gz
webtools.javaee-a7790ac05e62b631bdb72871d5b421aa58906af9.tar.xz
webtools.javaee-a7790ac05e62b631bdb72871d5b421aa58906af9.zip
[152023] fix for proper adapting of compressed java node
-rw-r--r--plugins/org.eclipse.jst.servlet.ui/plugin.xml1
-rw-r--r--plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/navigator/CompressedJavaProject.java6
-rw-r--r--plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/navigator/CompressedNodeAdapterFactory.java9
3 files changed, 13 insertions, 3 deletions
diff --git a/plugins/org.eclipse.jst.servlet.ui/plugin.xml b/plugins/org.eclipse.jst.servlet.ui/plugin.xml
index 21a7da5a5..81e3312e9 100644
--- a/plugins/org.eclipse.jst.servlet.ui/plugin.xml
+++ b/plugins/org.eclipse.jst.servlet.ui/plugin.xml
@@ -405,6 +405,7 @@
adaptableType="org.eclipse.jst.servlet.ui.internal.navigator.CompressedJavaProject"
class="org.eclipse.jst.servlet.ui.internal.navigator.CompressedNodeAdapterFactory">
<adapter type="org.eclipse.jdt.core.IJavaProject"/>
+ <adapter type="org.eclipse.jdt.core.IJavaElement"/>
</factory>
</extension>
diff --git a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/navigator/CompressedJavaProject.java b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/navigator/CompressedJavaProject.java
index b75a40505..2dc5d92bf 100644
--- a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/navigator/CompressedJavaProject.java
+++ b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/navigator/CompressedJavaProject.java
@@ -108,7 +108,11 @@ public class CompressedJavaProject implements ICompressedNode, IAdaptable {
return Platform.getAdapterManager().getAdapter(this, adapter);
}
- public IJavaElement getJavaElement() {
+ public IJavaElement getJavaElement() {
+ List nonExternalSourceFolders = getNonExternalSourceFolders();
+ if (nonExternalSourceFolders.size() == 1) {
+ return (IJavaElement) nonExternalSourceFolders.get(0);
+ }
return getProject();
}
diff --git a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/navigator/CompressedNodeAdapterFactory.java b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/navigator/CompressedNodeAdapterFactory.java
index b9851b587..8328b19a9 100644
--- a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/navigator/CompressedNodeAdapterFactory.java
+++ b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/navigator/CompressedNodeAdapterFactory.java
@@ -11,19 +11,24 @@
package org.eclipse.jst.servlet.ui.internal.navigator;
import org.eclipse.core.runtime.IAdapterFactory;
+import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaProject;
//
public class CompressedNodeAdapterFactory implements IAdapterFactory {
private static final Class IJAVA_PROJECT_CLASS = IJavaProject.class;
+ private static final Class IJAVA_ELEMENT_CLASS = IJavaElement.class;
private static final Class[] ADAPTER_LIST = new Class[] { IJAVA_PROJECT_CLASS };
public Object getAdapter(Object adaptableObject, Class adapterType) {
- if(adapterType == IJAVA_PROJECT_CLASS) {
- if(adaptableObject instanceof CompressedJavaProject)
+ if(adaptableObject instanceof CompressedJavaProject) {
+ if(adapterType == IJAVA_PROJECT_CLASS) {
return ((CompressedJavaProject)adaptableObject).getProject();
+ } else if (adapterType == IJAVA_ELEMENT_CLASS) {
+ return ((CompressedJavaProject)adaptableObject).getJavaElement();
+ }
}
return null;
}

Back to the top