diff options
author | jlanuti | 2006-07-28 17:51:28 +0000 |
---|---|---|
committer | jlanuti | 2006-07-28 17:51:28 +0000 |
commit | a7790ac05e62b631bdb72871d5b421aa58906af9 (patch) | |
tree | b98480556fc2e28cd847afb995fe20318de5b025 | |
parent | b64c9586cd6255184151dbd0a4ea80730c67714d (diff) | |
download | webtools.javaee-a7790ac05e62b631bdb72871d5b421aa58906af9.tar.gz webtools.javaee-a7790ac05e62b631bdb72871d5b421aa58906af9.tar.xz webtools.javaee-a7790ac05e62b631bdb72871d5b421aa58906af9.zip |
[152023] fix for proper adapting of compressed java node
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; } |