X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/JavaModel.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/JavaModel.java index daa7f05..e184748 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/JavaModel.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/JavaModel.java @@ -18,7 +18,11 @@ import java.util.Map; import net.sourceforge.phpdt.core.IJavaElement; import net.sourceforge.phpdt.core.IJavaModel; import net.sourceforge.phpdt.core.IJavaProject; +import net.sourceforge.phpdt.core.IOpenable; import net.sourceforge.phpdt.core.JavaModelException; +import net.sourceforge.phpdt.core.WorkingCopyOwner; +import net.sourceforge.phpdt.internal.core.util.MementoTokenizer; +import net.sourceforge.phpdt.internal.core.util.Util; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IFile; @@ -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,22 @@ protected boolean generateInfos( // } // return type; //} + + +/* + * @see JavaElement + */ +public IJavaElement getHandleFromMemento(String token, MementoTokenizer memento, WorkingCopyOwner owner) { + switch (token.charAt(0)) { + case JEM_COUNT: + return getHandleUpdatingCountFromMemento(memento, owner); + case JEM_JAVAPROJECT: + String projectName = memento.nextToken(); + JavaElement project = (JavaElement)getJavaProject(projectName); + return project.getHandleFromMemento(memento, owner); + } + return null; +} /** * @see JavaElement#getHandleMemento() */ @@ -346,6 +386,7 @@ protected char getHandleMementoDelimiter(){ Assert.isTrue(false, "Should not be called"); //$NON-NLS-1$ return 0; } + /** * @see IJavaModel */ @@ -477,7 +518,8 @@ protected void runOperation(MultiOperation op, IJavaElement[] elements, IJavaEle op.setInsertBefore(elements[i], siblings[i]); } } - runOperation(op, monitor); +// runOperation(op, monitor); + op.runOperation(monitor); } /** * @private Debugging purposes