PHP perspective and new Project Wizard
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / resourcesview / ResourceAdapterFactory.java
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/resourcesview/ResourceAdapterFactory.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/resourcesview/ResourceAdapterFactory.java
new file mode 100644 (file)
index 0000000..1cc64d2
--- /dev/null
@@ -0,0 +1,42 @@
+package net.sourceforge.phpeclipse.resourcesview;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IAdapterFactory;
+
+import net.sourceforge.phpeclipse.PHPCore;
+import net.sourceforge.phpeclipse.resourcesview.PHPElement;
+import net.sourceforge.phpeclipse.resourcesview.PHPFile;
+import net.sourceforge.phpeclipse.resourcesview.PHPProject;
+
+public class ResourceAdapterFactory implements IAdapterFactory {
+
+       protected static Class[] ADAPTERS_I_CREATE = new Class[] { PHPElement.class, PHPFile.class, PHPProject.class };
+
+       public ResourceAdapterFactory() {
+               super();
+       }
+
+       public Object getAdapter(Object adaptableObject, Class adapterType) {
+               if (PHPFile.class.equals(adapterType))
+                       return PHPCore.create((IFile) adaptableObject);
+
+               if (PHPProject.class.equals(adapterType))
+                       return PHPCore.create((IProject) adaptableObject);
+
+               if (PHPElement.class.equals(adapterType)) {
+                       if (adaptableObject instanceof IFile)
+                               return PHPCore.create((IFile) adaptableObject);
+
+                       if (adaptableObject instanceof IProject)
+                               return PHPCore.create((IProject) adaptableObject);
+               }
+
+               return null;
+       }
+
+       public Class[] getAdapterList() {
+               return ADAPTERS_I_CREATE;
+       }
+
+}