Skip to main content

This CGIT instance is deprecated, and repositories have been moved to Gitlab or Github. See the repository descriptions for specific locations.

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcbridgha2005-08-10 13:33:45 +0000
committercbridgha2005-08-10 13:33:45 +0000
commit575e3b3efdcc8d72f606bf7ead3c82b4b4284acf (patch)
tree220d1f317be6fd3d0a0d417a070a0b77befeff0a
parentf29dd8f0383f36c6384def3c683ecfbf8506607a (diff)
downloadwebtools.common-575e3b3efdcc8d72f606bf7ead3c82b4b4284acf.tar.gz
webtools.common-575e3b3efdcc8d72f606bf7ead3c82b4b4284acf.tar.xz
webtools.common-575e3b3efdcc8d72f606bf7ead3c82b4b4284acf.zip
[nobug] Added adapter support for IResource
-rw-r--r--plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModulecorePlugin.java2
-rw-r--r--plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ModuleCoreEclipseAdapterFactory.java43
2 files changed, 40 insertions, 5 deletions
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModulecorePlugin.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModulecorePlugin.java
index eed6366f0..f9f70031c 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModulecorePlugin.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModulecorePlugin.java
@@ -3,6 +3,7 @@ package org.eclipse.wst.common.componentcore.internal;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
+import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IAdapterManager;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Plugin;
@@ -42,6 +43,7 @@ public class ModulecorePlugin extends Plugin {
manager.registerAdapters(new ModuleCoreEclipseAdapterFactory(), ModuleStructuralModel.class);
manager.registerAdapters(new ArtifactEditAdapterFactory(), ArtifactEditModel.class);
manager.registerAdapters(new ArtifactEditAdapterFactory(), ArtifactEdit.class);
+ manager.registerAdapters(new ModuleCoreEclipseAdapterFactory(), IResource.class);
PlatformURLModuleConnection.startup();
WTPModulesInit.init();
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ModuleCoreEclipseAdapterFactory.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ModuleCoreEclipseAdapterFactory.java
index e13a2cede..d668a9f83 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ModuleCoreEclipseAdapterFactory.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ModuleCoreEclipseAdapterFactory.java
@@ -10,9 +10,15 @@
*******************************************************************************/
package org.eclipse.wst.common.componentcore.internal.util;
+import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IAdapterFactory;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.UnresolveableURIException;
+import org.eclipse.wst.common.componentcore.internal.ComponentResource;
import org.eclipse.wst.common.componentcore.internal.ModuleStructuralModel;
import org.eclipse.wst.common.componentcore.internal.StructureEdit;
+import org.eclipse.wst.common.componentcore.internal.WorkbenchComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
/**
* <p>
@@ -22,19 +28,46 @@ import org.eclipse.wst.common.componentcore.internal.StructureEdit;
public class ModuleCoreEclipseAdapterFactory implements IAdapterFactory {
private static final Class MODULE_CORE_CLASS = StructureEdit.class;
- private static final Class[] ADAPTER_LIST = new Class[] { MODULE_CORE_CLASS };
+ private static final Class VIRTUAL_COMPONENT_CLASS = IVirtualComponent.class;
+ private static final Class[] ADAPTER_LIST = new Class[] { MODULE_CORE_CLASS, VIRTUAL_COMPONENT_CLASS};
/* (non-Javadoc)
* @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
*/
- public Object getAdapter(Object aModuleStructuralModel, Class anAdapterType) {
- if(aModuleStructuralModel instanceof ModuleStructuralModel)
- if(anAdapterType == MODULE_CORE_CLASS)
- return new StructureEdit((ModuleStructuralModel)aModuleStructuralModel);
+ public Object getAdapter(Object adaptable, Class anAdapterType) {
+ if(anAdapterType == MODULE_CORE_CLASS)
+ return new StructureEdit((ModuleStructuralModel)adaptable);
+ if(anAdapterType == VIRTUAL_COMPONENT_CLASS)
+ return getComponent((IResource)adaptable);
return null;
}
+ private Object getComponent(IResource resource) {
+ StructureEdit moduleCore = null;
+ WorkbenchComponent module = null;
+ if (!resource.exists()) return null;
+ try {
+ moduleCore = StructureEdit.getStructureEditForRead(resource.getProject());
+ if (moduleCore.getWorkbenchModules().length == 1)
+ module = moduleCore.getWorkbenchModules()[0];
+ else {
+ ComponentResource[] resources = moduleCore.findResourcesBySourcePath(resource.getFullPath());
+ for (int i = 0; i < resources.length; i++) {
+ module = resources[i].getComponent();
+ if (module != null)
+ break;
+ }
+ }
+ } catch (UnresolveableURIException e) {
+ // Ignore
+ } finally {
+ if (moduleCore != null)
+ moduleCore.dispose();
+ }
+ return ComponentCore.createComponent(resource.getProject(), module.getName());
+ }
+
/* (non-Javadoc)
* @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
*/

Back to the top