Thread: [Pydev-cvs] org.python.pydev/src/org/python/pydev/navigator PythonModelProvider.java, 1.6, 1.7 Pyt
Brought to you by:
fabioz
From: Fabio Z. <fa...@us...> - 2006-10-30 01:50:46
|
Update of /cvsroot/pydev/org.python.pydev/src/org/python/pydev/navigator In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25779/src/org/python/pydev/navigator Modified Files: PythonModelProvider.java PythonBaseModelProvider.java Log Message: Still not finished. Index: PythonModelProvider.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/navigator/PythonModelProvider.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** PythonModelProvider.java 23 Oct 2006 01:12:24 -0000 1.6 --- PythonModelProvider.java 30 Oct 2006 01:50:42 -0000 1.7 *************** *** 76,79 **** --- 76,83 ---- modification.setParent(parentResource); wrapChildren(parentResource, parentResource.getSourceFolder(), modification.getChildren(), isAdd); + }else if(pythonParent == null){ + //this may happen when a source folder is added + //TODO:Check if it is actually a source folder (and create it in the model as needed) + wrapChildren(null, null, modification.getChildren(), isAdd, false); } *************** *** 84,90 **** } @SuppressWarnings("unchecked") ! protected boolean wrapChildren(Object parent, PythonSourceFolder pythonSourceFolder, Set currentChildren, boolean isAdd) { LinkedHashSet convertedChildren = new LinkedHashSet(); for (Iterator childrenItr = currentChildren.iterator(); childrenItr.hasNext();) { --- 88,97 ---- } + protected boolean wrapChildren(Object parent, PythonSourceFolder pythonSourceFolder, Set currentChildren, boolean isAdd) { + return wrapChildren(parent, pythonSourceFolder, currentChildren, isAdd, true); + } @SuppressWarnings("unchecked") ! protected boolean wrapChildren(Object parent, PythonSourceFolder pythonSourceFolder, Set currentChildren, boolean isAdd, boolean createIfNonExisting) { LinkedHashSet convertedChildren = new LinkedHashSet(); for (Iterator childrenItr = currentChildren.iterator(); childrenItr.hasNext();) { *************** *** 96,103 **** } if(existing == null && !isAdd){ ! throw new RuntimeException("In the remove, the resource:"+child+" did not exist."); } ! if(existing == null){ //add if(child instanceof IFolder){ --- 103,110 ---- } if(existing == null && !isAdd){ ! return false; //it has already been removed } ! if(existing == null && createIfNonExisting){ //add if(child instanceof IFolder){ *************** *** 133,173 **** - @SuppressWarnings("unchecked") - private boolean convertToPythonElements(Set currentChildren) { - LinkedHashSet convertedChildren = new LinkedHashSet(); - for (Iterator childrenItr = currentChildren.iterator(); childrenItr.hasNext();) { - Object child = childrenItr.next(); - if(child instanceof IResource && !(child instanceof IWrappedResource)){ - childrenItr.remove(); - IResource res = (IResource) child; - - Object resourceInPythonModel = getResourceInPythonModel(res, true); - if(resourceInPythonModel != null){ - convertedChildren.add(resourceInPythonModel); - - }else{ - Object pythonParent = getResourceInPythonModel(res.getParent(), true); - if(pythonParent instanceof IWrappedResource){ - IWrappedResource parent = (IWrappedResource) pythonParent; - if(res instanceof IFolder){ - convertedChildren.add(new PythonFolder(parent, (IFolder) res, parent.getSourceFolder())); - }else if(res instanceof IFile){ - convertedChildren.add(new PythonFile(parent, (IFile) res, parent.getSourceFolder())); - }else if (child instanceof IResource){ - convertedChildren.add(new PythonResource(parent, (IResource) child, parent.getSourceFolder())); - } - } - } - - } - } - if (!convertedChildren.isEmpty()) { - currentChildren.addAll(convertedChildren); - return true; - } - return false; - - } - public boolean interceptRefresh(PipelinedViewerUpdate refreshSynchronization) { return convertToPythonElements(refreshSynchronization.getRefreshTargets()); --- 140,143 ---- Index: PythonBaseModelProvider.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/navigator/PythonBaseModelProvider.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** PythonBaseModelProvider.java 30 Oct 2006 01:06:38 -0000 1.7 --- PythonBaseModelProvider.java 30 Oct 2006 01:50:42 -0000 1.8 *************** *** 6,13 **** --- 6,16 ---- import java.util.ArrayList; + import java.util.Arrays; import java.util.Collection; + import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; + import java.util.LinkedHashSet; import java.util.List; import java.util.Map; *************** *** 589,592 **** --- 592,596 ---- Runnable addAndRemove = new Runnable() { + @SuppressWarnings("unchecked") public void run() { if (viewer instanceof AbstractTreeViewer) { *************** *** 610,613 **** --- 614,626 ---- if (removedObjects.length > 0) { treeViewer.remove(removedObjects); + for (Object object : removedObjects) { + if(object instanceof IResource){ + IResource rem = (IResource) object; + Object remInPythonModel = getResourceInPythonModel(rem, true); + if(remInPythonModel instanceof PythonSourceFolder){ + projectToSourceFolders.get(resource.getProject()).remove(remInPythonModel); + } + } + } } } finally { *************** *** 652,655 **** --- 665,704 ---- } + @SuppressWarnings("unchecked") + protected boolean convertToPythonElements(Set currentChildren) { + LinkedHashSet convertedChildren = new LinkedHashSet(); + for (Iterator childrenItr = currentChildren.iterator(); childrenItr.hasNext();) { + Object child = childrenItr.next(); + if(child instanceof IResource && !(child instanceof IWrappedResource)){ + childrenItr.remove(); + IResource res = (IResource) child; + + Object resourceInPythonModel = getResourceInPythonModel(res, true); + if(resourceInPythonModel != null){ + convertedChildren.add(resourceInPythonModel); + + }else{ + Object pythonParent = getResourceInPythonModel(res.getParent(), true); + if(pythonParent instanceof IWrappedResource){ + IWrappedResource parent = (IWrappedResource) pythonParent; + if(res instanceof IFolder){ + convertedChildren.add(new PythonFolder(parent, (IFolder) res, parent.getSourceFolder())); + }else if(res instanceof IFile){ + convertedChildren.add(new PythonFile(parent, (IFile) res, parent.getSourceFolder())); + }else if (child instanceof IResource){ + convertedChildren.add(new PythonResource(parent, (IResource) child, parent.getSourceFolder())); + } + } + } + + } + } + if (!convertedChildren.isEmpty()) { + currentChildren.addAll(convertedChildren); + return true; + } + return false; + + } } |