[Pydev-cvs] org.python.pydev/src/org/python/pydev/navigator ModelAdapter.java, NONE, 1.1 PythonFile
Brought to you by:
fabioz
From: Fabio Z. <fa...@us...> - 2006-10-23 01:12:28
|
Update of /cvsroot/pydev/org.python.pydev/src/org/python/pydev/navigator In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8460/src/org/python/pydev/navigator Modified Files: PythonFile.java IWrappedResource.java WrappedResource.java PythonSourceFolder.java PythonNode.java PythonModelProvider.java PythonResource.java PythonBaseModelProvider.java PythonFolder.java Added Files: ModelAdapter.java Log Message: Almost there with the navigator... still, the default resource actions are still not appearing if I don't make the model classes subclasses of IFile, IFolder... Index: PythonModelProvider.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/navigator/PythonModelProvider.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** PythonModelProvider.java 18 Oct 2006 02:02:27 -0000 1.5 --- PythonModelProvider.java 23 Oct 2006 01:12:24 -0000 1.6 *************** *** 58,62 **** public PipelinedShapeModification interceptAdd(PipelinedShapeModification addModification) { ! convertToPythonElements(addModification); return addModification; } --- 58,62 ---- public PipelinedShapeModification interceptAdd(PipelinedShapeModification addModification) { ! convertToPythonElements(addModification, true); return addModification; } *************** *** 67,71 **** * @param modification the shape modification to convert */ ! private boolean convertToPythonElements(PipelinedShapeModification modification) { Object parent = modification.getParent(); --- 67,71 ---- * @param modification the shape modification to convert */ ! private void convertToPythonElements(PipelinedShapeModification modification, boolean isAdd) { Object parent = modification.getParent(); *************** *** 75,83 **** IWrappedResource parentResource = (IWrappedResource) pythonParent; modification.setParent(parentResource); ! return wrapChildren(parentResource, parentResource.getSourceFolder(), modification.getChildren()); } } return false; } @SuppressWarnings("unchecked") --- 75,135 ---- IWrappedResource parentResource = (IWrappedResource) pythonParent; modification.setParent(parentResource); ! wrapChildren(parentResource, parentResource.getSourceFolder(), modification.getChildren(), isAdd); ! } ! ! }else if(parent == null){ ! wrapChildren(null, null, modification.getChildren(), isAdd); ! } ! ! } ! ! ! @SuppressWarnings("unchecked") ! protected boolean wrapChildren(Object parent, PythonSourceFolder pythonSourceFolder, Set currentChildren, boolean isAdd) { ! LinkedHashSet convertedChildren = new LinkedHashSet(); ! for (Iterator childrenItr = currentChildren.iterator(); childrenItr.hasNext();) { ! Object child = childrenItr.next(); ! Object existing = getResourceInPythonModel((IResource) child, true); ! if(existing != null && isAdd){ ! childrenItr.remove(); ! convertedChildren.add(existing); ! } ! if(existing == null && !isAdd){ ! throw new RuntimeException("In the remove, the resource:"+child+" did not exist."); ! } ! ! if(existing == null){ ! //add ! if(child instanceof IFolder){ ! childrenItr.remove(); ! IFolder folder = (IFolder) child; ! convertedChildren.add(new PythonFolder(parent, folder, pythonSourceFolder)); ! ! }else if(child instanceof IFile){ ! childrenItr.remove(); ! IFile file = (IFile) child; ! convertedChildren.add(new PythonFile(parent, file, pythonSourceFolder)); ! ! }else if (child instanceof IResource){ ! childrenItr.remove(); ! convertedChildren.add(new PythonResource(parent, (IResource) child, pythonSourceFolder)); ! }else{ ! throw new RuntimeException("Unexpected class:"+child.getClass()); ! } ! }else if(!isAdd){ ! //remove ! childrenItr.remove(); ! convertedChildren.add(existing); ! IWrappedResource wrapped = (IWrappedResource) existing; ! wrapped.getSourceFolder().removeChild((IResource) child); } } + if (!convertedChildren.isEmpty()) { + currentChildren.addAll(convertedChildren); + return true; + } return false; } + @SuppressWarnings("unchecked") *************** *** 123,127 **** public PipelinedShapeModification interceptRemove(PipelinedShapeModification removeModification) { ! convertToPythonElements(removeModification); return removeModification; } --- 175,179 ---- public PipelinedShapeModification interceptRemove(PipelinedShapeModification removeModification) { ! convertToPythonElements(removeModification, false); return removeModification; } Index: PythonFile.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/navigator/PythonFile.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** PythonFile.java 18 Oct 2006 02:02:27 -0000 1.7 --- PythonFile.java 23 Oct 2006 01:12:24 -0000 1.8 *************** *** 1,25 **** package org.python.pydev.navigator; - import java.io.InputStream; - import java.io.Reader; - import java.net.URI; - - import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IFile; - import org.eclipse.core.resources.IFileState; - import org.eclipse.core.resources.IMarker; - import org.eclipse.core.resources.IProject; - import org.eclipse.core.resources.IProjectDescription; - import org.eclipse.core.resources.IResourceProxy; - import org.eclipse.core.resources.IResourceProxyVisitor; - import org.eclipse.core.resources.IResourceVisitor; - import org.eclipse.core.resources.IWorkspace; - import org.eclipse.core.resources.ResourceAttributes; - import org.eclipse.core.runtime.CoreException; - import org.eclipse.core.runtime.IPath; - import org.eclipse.core.runtime.IProgressMonitor; - import org.eclipse.core.runtime.QualifiedName; - import org.eclipse.core.runtime.content.IContentDescription; - import org.eclipse.core.runtime.jobs.ISchedulingRule; /** --- 1,5 ---- *************** *** 29,292 **** * @author fabioz */ ! public class PythonFile extends WrappedResource<IFile> implements IFile{ public PythonFile(Object parentElement, IFile actualObject, PythonSourceFolder pythonSourceFolder) { super(parentElement, actualObject, pythonSourceFolder, IWrappedResource.RANK_PYTHON_FILE); } - public void accept(IResourceProxyVisitor visitor, int memberFlags) throws CoreException { - actualObject.accept(visitor, memberFlags); - } - public void accept(IResourceVisitor visitor, int depth, boolean includePhantoms) throws CoreException { - actualObject.accept(visitor, depth, includePhantoms); - } - public void accept(IResourceVisitor visitor, int depth, int memberFlags) throws CoreException { - actualObject.accept(visitor, depth, memberFlags); - } - public void accept(IResourceVisitor visitor) throws CoreException { - actualObject.accept(visitor); - } - public void appendContents(InputStream source, boolean force, boolean keepHistory, IProgressMonitor monitor) throws CoreException { - actualObject.appendContents(source, force, keepHistory, monitor); - } - public void appendContents(InputStream source, int updateFlags, IProgressMonitor monitor) throws CoreException { - actualObject.appendContents(source, updateFlags, monitor); - } - public void clearHistory(IProgressMonitor monitor) throws CoreException { - actualObject.clearHistory(monitor); - } - public boolean contains(ISchedulingRule rule) { - return actualObject.contains(rule); - } - public void copy(IPath destination, boolean force, IProgressMonitor monitor) throws CoreException { - actualObject.copy(destination, force, monitor); - } - public void copy(IPath destination, int updateFlags, IProgressMonitor monitor) throws CoreException { - actualObject.copy(destination, updateFlags, monitor); - } - public void copy(IProjectDescription description, boolean force, IProgressMonitor monitor) throws CoreException { - actualObject.copy(description, force, monitor); - } - public void copy(IProjectDescription description, int updateFlags, IProgressMonitor monitor) throws CoreException { - actualObject.copy(description, updateFlags, monitor); - } - public void create(InputStream source, boolean force, IProgressMonitor monitor) throws CoreException { - actualObject.create(source, force, monitor); - } - public void create(InputStream source, int updateFlags, IProgressMonitor monitor) throws CoreException { - actualObject.create(source, updateFlags, monitor); - } - public void createLink(IPath localLocation, int updateFlags, IProgressMonitor monitor) throws CoreException { - actualObject.createLink(localLocation, updateFlags, monitor); - } - public void createLink(URI location, int updateFlags, IProgressMonitor monitor) throws CoreException { - actualObject.createLink(location, updateFlags, monitor); - } - public IMarker createMarker(String type) throws CoreException { - return actualObject.createMarker(type); - } - public IResourceProxy createProxy() { - return actualObject.createProxy(); - } - public void delete(boolean force, boolean keepHistory, IProgressMonitor monitor) throws CoreException { - actualObject.delete(force, keepHistory, monitor); - } - public void delete(boolean force, IProgressMonitor monitor) throws CoreException { - actualObject.delete(force, monitor); - } - public void delete(int updateFlags, IProgressMonitor monitor) throws CoreException { - actualObject.delete(updateFlags, monitor); - } - public void deleteMarkers(String type, boolean includeSubtypes, int depth) throws CoreException { - actualObject.deleteMarkers(type, includeSubtypes, depth); - } - public boolean equals(Object other) { - return actualObject.equals(other); - } - public boolean exists() { - return actualObject.exists(); - } - public IMarker findMarker(long id) throws CoreException { - return actualObject.findMarker(id); - } - public IMarker[] findMarkers(String type, boolean includeSubtypes, int depth) throws CoreException { - return actualObject.findMarkers(type, includeSubtypes, depth); - } - public Object getAdapter(Class adapter) { - return actualObject.getAdapter(adapter); - } - public String getCharset() throws CoreException { - return actualObject.getCharset(); - } - public String getCharset(boolean checkImplicit) throws CoreException { - return actualObject.getCharset(checkImplicit); - } - public String getCharsetFor(Reader reader) throws CoreException { - return actualObject.getCharsetFor(reader); - } - public IContentDescription getContentDescription() throws CoreException { - return actualObject.getContentDescription(); - } - public InputStream getContents() throws CoreException { - return actualObject.getContents(); - } - public InputStream getContents(boolean force) throws CoreException { - return actualObject.getContents(force); - } - public int getEncoding() throws CoreException { - return actualObject.getEncoding(); - } - public String getFileExtension() { - return actualObject.getFileExtension(); - } - public IPath getFullPath() { - return actualObject.getFullPath(); - } - public IFileState[] getHistory(IProgressMonitor monitor) throws CoreException { - return actualObject.getHistory(monitor); - } - public long getLocalTimeStamp() { - return actualObject.getLocalTimeStamp(); - } - public IPath getLocation() { - return actualObject.getLocation(); - } - public URI getLocationURI() { - return actualObject.getLocationURI(); - } - public IMarker getMarker(long id) { - return actualObject.getMarker(id); - } - public long getModificationStamp() { - return actualObject.getModificationStamp(); - } - public String getName() { - return actualObject.getName(); - } - public IContainer getParent() { - return actualObject.getParent(); - } - public String getPersistentProperty(QualifiedName key) throws CoreException { - return actualObject.getPersistentProperty(key); - } - public IProject getProject() { - return actualObject.getProject(); - } - public IPath getProjectRelativePath() { - return actualObject.getProjectRelativePath(); - } - public IPath getRawLocation() { - return actualObject.getRawLocation(); - } - public URI getRawLocationURI() { - return actualObject.getRawLocationURI(); - } - public ResourceAttributes getResourceAttributes() { - return actualObject.getResourceAttributes(); - } - public Object getSessionProperty(QualifiedName key) throws CoreException { - return actualObject.getSessionProperty(key); - } - public int getType() { - return actualObject.getType(); - } - public IWorkspace getWorkspace() { - return actualObject.getWorkspace(); - } - public boolean isAccessible() { - return actualObject.isAccessible(); - } - public boolean isConflicting(ISchedulingRule rule) { - return actualObject.isConflicting(rule); - } - public boolean isDerived() { - return actualObject.isDerived(); - } - public boolean isLinked() { - return actualObject.isLinked(); - } - public boolean isLinked(int options) { - return actualObject.isLinked(options); - } - public boolean isLocal(int depth) { - return actualObject.isLocal(depth); - } - public boolean isPhantom() { - return actualObject.isPhantom(); - } - public boolean isReadOnly() { - return actualObject.isReadOnly(); - } - public boolean isSynchronized(int depth) { - return actualObject.isSynchronized(depth); - } - public boolean isTeamPrivateMember() { - return actualObject.isTeamPrivateMember(); - } - public void move(IPath destination, boolean force, boolean keepHistory, IProgressMonitor monitor) throws CoreException { - actualObject.move(destination, force, keepHistory, monitor); - } - public void move(IPath destination, boolean force, IProgressMonitor monitor) throws CoreException { - actualObject.move(destination, force, monitor); - } - public void move(IPath destination, int updateFlags, IProgressMonitor monitor) throws CoreException { - actualObject.move(destination, updateFlags, monitor); - } - public void move(IProjectDescription description, boolean force, boolean keepHistory, IProgressMonitor monitor) throws CoreException { - actualObject.move(description, force, keepHistory, monitor); - } - public void move(IProjectDescription description, int updateFlags, IProgressMonitor monitor) throws CoreException { - actualObject.move(description, updateFlags, monitor); - } - public void refreshLocal(int depth, IProgressMonitor monitor) throws CoreException { - actualObject.refreshLocal(depth, monitor); - } - public void revertModificationStamp(long value) throws CoreException { - actualObject.revertModificationStamp(value); - } - public void setCharset(String newCharset, IProgressMonitor monitor) throws CoreException { - actualObject.setCharset(newCharset, monitor); - } - public void setCharset(String newCharset) throws CoreException { - actualObject.setCharset(newCharset); - } - public void setContents(IFileState source, boolean force, boolean keepHistory, IProgressMonitor monitor) throws CoreException { - actualObject.setContents(source, force, keepHistory, monitor); - } - public void setContents(IFileState source, int updateFlags, IProgressMonitor monitor) throws CoreException { - actualObject.setContents(source, updateFlags, monitor); - } - public void setContents(InputStream source, boolean force, boolean keepHistory, IProgressMonitor monitor) throws CoreException { - actualObject.setContents(source, force, keepHistory, monitor); - } - public void setContents(InputStream source, int updateFlags, IProgressMonitor monitor) throws CoreException { - actualObject.setContents(source, updateFlags, monitor); - } - public void setDerived(boolean isDerived) throws CoreException { - actualObject.setDerived(isDerived); - } - public void setLocal(boolean flag, int depth, IProgressMonitor monitor) throws CoreException { - actualObject.setLocal(flag, depth, monitor); - } - public long setLocalTimeStamp(long value) throws CoreException { - return actualObject.setLocalTimeStamp(value); - } - public void setPersistentProperty(QualifiedName key, String value) throws CoreException { - actualObject.setPersistentProperty(key, value); - } - public void setReadOnly(boolean readOnly) { - actualObject.setReadOnly(readOnly); - } - public void setResourceAttributes(ResourceAttributes attributes) throws CoreException { - actualObject.setResourceAttributes(attributes); - } - public void setSessionProperty(QualifiedName key, Object value) throws CoreException { - actualObject.setSessionProperty(key, value); - } - public void setTeamPrivateMember(boolean isTeamPrivate) throws CoreException { - actualObject.setTeamPrivateMember(isTeamPrivate); - } - public void touch(IProgressMonitor monitor) throws CoreException { - actualObject.touch(monitor); - } - } --- 9,17 ---- * @author fabioz */ ! public class PythonFile extends WrappedResource<IFile> { public PythonFile(Object parentElement, IFile actualObject, PythonSourceFolder pythonSourceFolder) { super(parentElement, actualObject, pythonSourceFolder, IWrappedResource.RANK_PYTHON_FILE); + //System.out.println("Created PythonFile:"+this+" - "+actualObject+" parent:"+parentElement); } } Index: PythonResource.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/navigator/PythonResource.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** PythonResource.java 18 Oct 2006 01:24:36 -0000 1.5 --- PythonResource.java 23 Oct 2006 01:12:24 -0000 1.6 *************** *** 8,11 **** --- 8,12 ---- public PythonResource(Object parentElement, IResource object, PythonSourceFolder pythonSourceFolder) { super(parentElement, object, pythonSourceFolder, IWrappedResource.RANK_PYTHON_RESOURCE); + //System.out.println("Created PythonResource:"+this+" - "+actualObject+" parent:"+parentElement); } Index: PythonSourceFolder.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/navigator/PythonSourceFolder.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** PythonSourceFolder.java 18 Oct 2006 01:24:36 -0000 1.7 --- PythonSourceFolder.java 23 Oct 2006 01:12:24 -0000 1.8 *************** *** 5,13 **** --- 5,18 ---- package org.python.pydev.navigator; + import java.util.ArrayList; import java.util.HashMap; + import java.util.List; import java.util.Map; + import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IFolder; + import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.IAdaptable; + import org.eclipse.ui.IContributorResourceAdapter; /** *************** *** 19,29 **** public Object parentElement; public Map<Object, IWrappedResource> children = new HashMap<Object, IWrappedResource>(); public PythonSourceFolder(Object parentElement, IFolder folder) { this.parentElement = parentElement; this.folder = folder; } ! public Object getParent() { return parentElement; } --- 24,36 ---- public Object parentElement; public Map<Object, IWrappedResource> children = new HashMap<Object, IWrappedResource>(); + public Map<IContainer, List<IResource>> childrenForContainer = new HashMap<IContainer, List<IResource>>(); public PythonSourceFolder(Object parentElement, IFolder folder) { this.parentElement = parentElement; this.folder = folder; + //System.out.println("Created PythonSourceFolder:"+this+" - "+folder+" parent:"+parentElement); } ! public Object getParentElement() { return parentElement; } *************** *** 37,58 **** } ! public void addChild(Object actualObject, IWrappedResource child){ children.put(actualObject, child); } ! public void removeChild(Object actualObject){ ! children.remove(actualObject); } ! public Object getChild(Object actualObject){ ! return children.get(actualObject); } ! public Object getAdapter(Class adapter) { ! return folder.getAdapter(adapter); } ! public int getRank() { ! return IWrappedResource.RANK_SOURCE_FOLDER; } } --- 44,98 ---- } ! public void addChild(IResource actualObject, IWrappedResource child){ ! //System.out.println("Adding child:"+child+" for resource:"+actualObject); children.put(actualObject, child); + + IContainer container = actualObject.getParent(); + List<IResource> l = childrenForContainer.get(container); + if(l == null){ + l = new ArrayList<IResource>(); + childrenForContainer.put(container, l); + } + l.add(actualObject); } ! public void removeChild(IResource actualObject){ ! //System.out.println("Removing child:"+actualObject); ! children.remove(actualObject); ! if(actualObject instanceof IContainer){ ! List<IResource> l = childrenForContainer.get(actualObject); ! if(l != null){ ! for (IResource resource : l) { ! removeChild(resource); ! } ! childrenForContainer.remove(actualObject); ! } ! } } ! public Object getChild(IResource actualObject){ ! IWrappedResource ret = children.get(actualObject); ! //System.out.println("Gotten child:"+ret+" for resource:"+actualObject); ! return ret; ! } ! ! ! ! public int getRank() { ! return IWrappedResource.RANK_SOURCE_FOLDER; } + ! public IResource getAdaptedResource(IAdaptable adaptable) { ! return (IResource) getActualObject(); } ! public Object getAdapter(Class adapter) { ! if(adapter == IContributorResourceAdapter.class){ ! return this; ! } ! Object ret = ((IResource)this.getActualObject()).getAdapter(adapter); ! return ret; } + } Index: IWrappedResource.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/navigator/IWrappedResource.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** IWrappedResource.java 18 Oct 2006 01:24:36 -0000 1.1 --- IWrappedResource.java 23 Oct 2006 01:12:24 -0000 1.2 *************** *** 17,21 **** * @return the parent for this resource */ ! Object getParent(); /** --- 17,21 ---- * @return the parent for this resource */ ! Object getParentElement(); /** Index: PythonBaseModelProvider.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/navigator/PythonBaseModelProvider.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** PythonBaseModelProvider.java 18 Oct 2006 02:02:27 -0000 1.4 --- PythonBaseModelProvider.java 23 Oct 2006 01:12:24 -0000 1.5 *************** *** 283,316 **** } - @SuppressWarnings("unchecked") - protected boolean wrapChildren(Object parent, PythonSourceFolder pythonSourceFolder, Set currentChildren) { - LinkedHashSet convertedChildren = new LinkedHashSet(); - for (Iterator childrenItr = currentChildren.iterator(); childrenItr.hasNext();) { - Object child = childrenItr.next(); - Object existing = getResourceInPythonModel((IResource) child, true); - if(existing == null){ - if(child instanceof IFolder){ - childrenItr.remove(); - IFolder folder = (IFolder) child; - convertedChildren.add(new PythonFolder(parent, folder, pythonSourceFolder)); - - }else if(child instanceof IFile){ - childrenItr.remove(); - IFile file = (IFile) child; - convertedChildren.add(new PythonFile(parent, file, pythonSourceFolder)); - - }else if (child instanceof IResource){ - childrenItr.remove(); - convertedChildren.add(new PythonResource(parent, (IResource) child, pythonSourceFolder)); - } - } - } - if (!convertedChildren.isEmpty()) { - currentChildren.addAll(convertedChildren); - return true; - } - return false; - } - /** * @return the parent for some element. --- 283,286 ---- *************** *** 320,324 **** // just return the parent IWrappedResource resource = (IWrappedResource) element; ! return resource.getParent(); } return super.getParent(element); --- 290,294 ---- // just return the parent IWrappedResource resource = (IWrappedResource) element; ! return resource.getParentElement(); } return super.getParent(element); Index: PythonFolder.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/navigator/PythonFolder.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** PythonFolder.java 18 Oct 2006 02:02:27 -0000 1.7 --- PythonFolder.java 23 Oct 2006 01:12:24 -0000 1.8 *************** *** 1,288 **** package org.python.pydev.navigator; - import java.net.URI; - - import org.eclipse.core.resources.IContainer; - import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; - import org.eclipse.core.resources.IMarker; - import org.eclipse.core.resources.IProject; - import org.eclipse.core.resources.IProjectDescription; - import org.eclipse.core.resources.IResource; - import org.eclipse.core.resources.IResourceProxy; - import org.eclipse.core.resources.IResourceProxyVisitor; - import org.eclipse.core.resources.IResourceVisitor; - import org.eclipse.core.resources.IWorkspace; - import org.eclipse.core.resources.ResourceAttributes; - import org.eclipse.core.runtime.CoreException; - import org.eclipse.core.runtime.IPath; - import org.eclipse.core.runtime.IProgressMonitor; - import org.eclipse.core.runtime.QualifiedName; - import org.eclipse.core.runtime.jobs.ISchedulingRule; ! public class PythonFolder extends WrappedResource<IFolder> implements IFolder{ public PythonFolder(Object parentElement, IFolder folder, PythonSourceFolder pythonSourceFolder) { super(parentElement, folder, pythonSourceFolder, IWrappedResource.RANK_PYTHON_FOLDER); } - public void accept(IResourceProxyVisitor visitor, int memberFlags) throws CoreException { - actualObject.accept(visitor, memberFlags); - } - public void accept(IResourceVisitor visitor, int depth, boolean includePhantoms) throws CoreException { - actualObject.accept(visitor, depth, includePhantoms); - } - public void accept(IResourceVisitor visitor, int depth, int memberFlags) throws CoreException { - actualObject.accept(visitor, depth, memberFlags); - } - public void accept(IResourceVisitor visitor) throws CoreException { - actualObject.accept(visitor); - } - public void clearHistory(IProgressMonitor monitor) throws CoreException { - actualObject.clearHistory(monitor); - } - public boolean contains(ISchedulingRule rule) { - return actualObject.contains(rule); - } - public void copy(IPath destination, boolean force, IProgressMonitor monitor) throws CoreException { - actualObject.copy(destination, force, monitor); - } - public void copy(IPath destination, int updateFlags, IProgressMonitor monitor) throws CoreException { - actualObject.copy(destination, updateFlags, monitor); - } - public void copy(IProjectDescription description, boolean force, IProgressMonitor monitor) throws CoreException { - actualObject.copy(description, force, monitor); - } - public void copy(IProjectDescription description, int updateFlags, IProgressMonitor monitor) throws CoreException { - actualObject.copy(description, updateFlags, monitor); - } - public void create(boolean force, boolean local, IProgressMonitor monitor) throws CoreException { - actualObject.create(force, local, monitor); - } - public void create(int updateFlags, boolean local, IProgressMonitor monitor) throws CoreException { - actualObject.create(updateFlags, local, monitor); - } - public void createLink(IPath localLocation, int updateFlags, IProgressMonitor monitor) throws CoreException { - actualObject.createLink(localLocation, updateFlags, monitor); - } - public void createLink(URI location, int updateFlags, IProgressMonitor monitor) throws CoreException { - actualObject.createLink(location, updateFlags, monitor); - } - public IMarker createMarker(String type) throws CoreException { - return actualObject.createMarker(type); - } - public IResourceProxy createProxy() { - return actualObject.createProxy(); - } - public void delete(boolean force, boolean keepHistory, IProgressMonitor monitor) throws CoreException { - actualObject.delete(force, keepHistory, monitor); - } - public void delete(boolean force, IProgressMonitor monitor) throws CoreException { - actualObject.delete(force, monitor); - } - public void delete(int updateFlags, IProgressMonitor monitor) throws CoreException { - actualObject.delete(updateFlags, monitor); - } - public void deleteMarkers(String type, boolean includeSubtypes, int depth) throws CoreException { - actualObject.deleteMarkers(type, includeSubtypes, depth); - } - public boolean equals(Object other) { - return actualObject.equals(other); - } - public boolean exists() { - return actualObject.exists(); - } - public boolean exists(IPath path) { - return actualObject.exists(path); - } - public IFile[] findDeletedMembersWithHistory(int depth, IProgressMonitor monitor) throws CoreException { - return actualObject.findDeletedMembersWithHistory(depth, monitor); - } - public IMarker findMarker(long id) throws CoreException { - return actualObject.findMarker(id); - } - public IMarker[] findMarkers(String type, boolean includeSubtypes, int depth) throws CoreException { - return actualObject.findMarkers(type, includeSubtypes, depth); - } - public IResource findMember(IPath path, boolean includePhantoms) { - return actualObject.findMember(path, includePhantoms); - } - public IResource findMember(IPath path) { - return actualObject.findMember(path); - } - public IResource findMember(String name, boolean includePhantoms) { - return actualObject.findMember(name, includePhantoms); - } - public IResource findMember(String name) { - return actualObject.findMember(name); - } - public Object getAdapter(Class adapter) { - return actualObject.getAdapter(adapter); - } - public String getDefaultCharset() throws CoreException { - return actualObject.getDefaultCharset(); - } - public String getDefaultCharset(boolean checkImplicit) throws CoreException { - return actualObject.getDefaultCharset(checkImplicit); - } - public IFile getFile(IPath path) { - return actualObject.getFile(path); - } - public IFile getFile(String name) { - return actualObject.getFile(name); - } - public String getFileExtension() { - return actualObject.getFileExtension(); - } - public IFolder getFolder(IPath path) { - return actualObject.getFolder(path); - } - public IFolder getFolder(String name) { - return actualObject.getFolder(name); - } - public IPath getFullPath() { - return actualObject.getFullPath(); - } - public long getLocalTimeStamp() { - return actualObject.getLocalTimeStamp(); - } - public IPath getLocation() { - return actualObject.getLocation(); - } - public URI getLocationURI() { - return actualObject.getLocationURI(); - } - public IMarker getMarker(long id) { - return actualObject.getMarker(id); - } - public long getModificationStamp() { - return actualObject.getModificationStamp(); - } - public String getName() { - return actualObject.getName(); - } - public IContainer getParent() { - return actualObject.getParent(); - } - public String getPersistentProperty(QualifiedName key) throws CoreException { - return actualObject.getPersistentProperty(key); - } - public IProject getProject() { - return actualObject.getProject(); - } - public IPath getProjectRelativePath() { - return actualObject.getProjectRelativePath(); - } - public IPath getRawLocation() { - return actualObject.getRawLocation(); - } - public URI getRawLocationURI() { - return actualObject.getRawLocationURI(); - } - public ResourceAttributes getResourceAttributes() { - return actualObject.getResourceAttributes(); - } - public Object getSessionProperty(QualifiedName key) throws CoreException { - return actualObject.getSessionProperty(key); - } - public int getType() { - return actualObject.getType(); - } - public IWorkspace getWorkspace() { - return actualObject.getWorkspace(); - } - public boolean isAccessible() { - return actualObject.isAccessible(); - } - public boolean isConflicting(ISchedulingRule rule) { - return actualObject.isConflicting(rule); - } - public boolean isDerived() { - return actualObject.isDerived(); - } - public boolean isLinked() { - return actualObject.isLinked(); - } - public boolean isLinked(int options) { - return actualObject.isLinked(options); - } - public boolean isLocal(int depth) { - return actualObject.isLocal(depth); - } - public boolean isPhantom() { - return actualObject.isPhantom(); - } - public boolean isReadOnly() { - return actualObject.isReadOnly(); - } - public boolean isSynchronized(int depth) { - return actualObject.isSynchronized(depth); - } - public boolean isTeamPrivateMember() { - return actualObject.isTeamPrivateMember(); - } - public IResource[] members() throws CoreException { - return actualObject.members(); - } - public IResource[] members(boolean includePhantoms) throws CoreException { - return actualObject.members(includePhantoms); - } - public IResource[] members(int memberFlags) throws CoreException { - return actualObject.members(memberFlags); - } - public void move(IPath destination, boolean force, boolean keepHistory, IProgressMonitor monitor) throws CoreException { - actualObject.move(destination, force, keepHistory, monitor); - } - public void move(IPath destination, boolean force, IProgressMonitor monitor) throws CoreException { - actualObject.move(destination, force, monitor); - } - public void move(IPath destination, int updateFlags, IProgressMonitor monitor) throws CoreException { - actualObject.move(destination, updateFlags, monitor); - } - public void move(IProjectDescription description, boolean force, boolean keepHistory, IProgressMonitor monitor) throws CoreException { - actualObject.move(description, force, keepHistory, monitor); - } - public void move(IProjectDescription description, int updateFlags, IProgressMonitor monitor) throws CoreException { - actualObject.move(description, updateFlags, monitor); - } - public void refreshLocal(int depth, IProgressMonitor monitor) throws CoreException { - actualObject.refreshLocal(depth, monitor); - } - public void revertModificationStamp(long value) throws CoreException { - actualObject.revertModificationStamp(value); - } - public void setDefaultCharset(String charset, IProgressMonitor monitor) throws CoreException { - actualObject.setDefaultCharset(charset, monitor); - } - public void setDefaultCharset(String charset) throws CoreException { - actualObject.setDefaultCharset(charset); - } - public void setDerived(boolean isDerived) throws CoreException { - actualObject.setDerived(isDerived); - } - public void setLocal(boolean flag, int depth, IProgressMonitor monitor) throws CoreException { - actualObject.setLocal(flag, depth, monitor); - } - public long setLocalTimeStamp(long value) throws CoreException { - return actualObject.setLocalTimeStamp(value); - } - public void setPersistentProperty(QualifiedName key, String value) throws CoreException { - actualObject.setPersistentProperty(key, value); - } - public void setReadOnly(boolean readOnly) { - actualObject.setReadOnly(readOnly); - } - public void setResourceAttributes(ResourceAttributes attributes) throws CoreException { - actualObject.setResourceAttributes(attributes); - } - public void setSessionProperty(QualifiedName key, Object value) throws CoreException { - actualObject.setSessionProperty(key, value); - } - public void setTeamPrivateMember(boolean isTeamPrivate) throws CoreException { - actualObject.setTeamPrivateMember(isTeamPrivate); - } - public void touch(IProgressMonitor monitor) throws CoreException { - actualObject.touch(monitor); - } - - } --- 1,11 ---- package org.python.pydev.navigator; import org.eclipse.core.resources.IFolder; ! public class PythonFolder extends WrappedResource<IFolder>{ public PythonFolder(Object parentElement, IFolder folder, PythonSourceFolder pythonSourceFolder) { super(parentElement, folder, pythonSourceFolder, IWrappedResource.RANK_PYTHON_FOLDER); + //System.out.println("Created PythonFolder:"+this+" - "+actualObject+" parent:"+parentElement); } } Index: PythonNode.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/navigator/PythonNode.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** PythonNode.java 18 Oct 2006 01:24:36 -0000 1.6 --- PythonNode.java 23 Oct 2006 01:12:24 -0000 1.7 *************** *** 31,35 **** } ! public Object getParent() { return parent; } --- 31,35 ---- } ! public Object getParentElement() { return parent; } --- NEW FILE: ModelAdapter.java --- /* * Created on Oct 19, 2006 * @author Fabio */ package org.python.pydev.navigator; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IAdapterFactory; import org.python.pydev.core.FullRepIterable; public class ModelAdapter implements IAdapterFactory{ public Object getAdapter(Object adaptableObject, Class adapterType) { IAdaptable adapter = (IAdaptable) adaptableObject; Object ret = adapter.getAdapter(adapterType); //System.out.println("ModelAdapter adaptableObject="+FullRepIterable.getLastPart(adaptableObject.getClass().getName())+ // " adapterType="+FullRepIterable.getLastPart(adapterType.getName())+" ret="+ret); return ret; } public Class[] getAdapterList() { return new Class[]{IWrappedResource.class}; } } Index: WrappedResource.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/navigator/WrappedResource.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** WrappedResource.java 18 Oct 2006 01:24:36 -0000 1.1 --- WrappedResource.java 23 Oct 2006 01:12:24 -0000 1.2 *************** *** 6,10 **** ! public class WrappedResource<X> implements IWrappedResource, IContributorResourceAdapter, IAdaptable{ protected Object parentElement; --- 6,10 ---- ! public class WrappedResource<X extends IResource> implements IWrappedResource, IContributorResourceAdapter, IAdaptable{ protected Object parentElement; *************** *** 25,29 **** } ! public Object getParent() { return parentElement; } --- 25,29 ---- } ! public Object getParentElement() { return parentElement; } |