3m9 compatible;
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / core / JavaModel.java
index daa7f05..d24e00b 100644 (file)
@@ -19,6 +19,7 @@ import net.sourceforge.phpdt.core.IJavaElement;
 import net.sourceforge.phpdt.core.IJavaModel;
 import net.sourceforge.phpdt.core.IJavaProject;
 import net.sourceforge.phpdt.core.JavaModelException;
+import net.sourceforge.phpdt.internal.core.util.Util;
 
 import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.resources.IFile;
@@ -30,6 +31,9 @@ import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.Path;
+import net.sourceforge.phpdt.internal.core.JavaModelInfo;
+import net.sourceforge.phpdt.internal.core.JavaProject;
+import net.sourceforge.phpdt.internal.core.OpenableElementInfo;
 import org.eclipse.jface.util.Assert;
 
 
@@ -59,7 +63,22 @@ public class JavaModel extends Openable implements IJavaModel {
  * @exception Error if called more than once
  */
 protected JavaModel() throws Error {
-       super(JAVA_MODEL, null, "" /*workspace has empty name*/); //$NON-NLS-1$
+       super(null, "" /*workspace has empty name*/); //$NON-NLS-1$
+}
+protected boolean buildStructure(OpenableElementInfo info, IProgressMonitor pm, Map newElements, IResource underlyingResource) /*throws JavaModelException*/ {
+
+       // determine my children
+       IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
+       for (int i = 0, max = projects.length; i < max; i++) {
+               IProject project = projects[i];
+               if (JavaProject.hasJavaNature(project)) {
+                       info.addChild(getJavaProject(project));
+               }
+       }
+
+       newElements.put(this, info);
+       
+       return true;
 }
 /*
  * @see IJavaModel
@@ -99,7 +118,7 @@ public void copy(IJavaElement[] elements, IJavaElement[] containers, IJavaElemen
 /**
  * Returns a new element info for this element.
  */
-protected OpenableElementInfo createElementInfo() {
+protected Object createElementInfo() {
        return new JavaModelInfo();
 }
 
@@ -130,7 +149,12 @@ public IJavaProject findJavaProject(IProject project) {
        }
        return null;
 }
-
+/**
+ * @see IJavaElement
+ */
+public int getElementType() {
+       return JAVA_MODEL;
+}
 /**
  * Flushes the cache of external files known to be existing.
  */
@@ -332,6 +356,8 @@ protected boolean generateInfos(
 //     }
 //     return type;
 //}
+
+
 /**
  * @see JavaElement#getHandleMemento()
  */