[Pydev-cvs] org.python.pydev/src_navigator/org/python/pydev/navigator PyPackageStateSaver.java, 1.
Brought to you by:
fabioz
From: Fabio Z. <fa...@us...> - 2007-07-06 17:45:22
|
Update of /cvsroot/pydev/org.python.pydev/src_navigator/org/python/pydev/navigator In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25663/src_navigator/org/python/pydev/navigator Modified Files: PyPackageStateSaver.java PythonBaseModelProvider.java Log Message: Notifications for the nature are now correct in the package explorer. Index: PyPackageStateSaver.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src_navigator/org/python/pydev/navigator/PyPackageStateSaver.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** PyPackageStateSaver.java 5 Jul 2007 00:32:12 -0000 1.3 --- PyPackageStateSaver.java 6 Jul 2007 17:45:23 -0000 1.4 *************** *** 44,48 **** TreeViewer treeViewer = (TreeViewer) viewer; - ArrayList<Object> expandedElements = new ArrayList<Object>(); IMemento[] expanded = memento.getChildren("expanded"); IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); --- 44,47 ---- *************** *** 50,60 **** Object resource = getResourceFromPath(root, m); if(resource != null){ - expandedElements.add(resource); if(DEBUG){ System.out.println("Expanding:"+resource); } } } - treeViewer.setExpandedElements(expandedElements.toArray()); --- 49,61 ---- Object resource = getResourceFromPath(root, m); if(resource != null){ if(DEBUG){ System.out.println("Expanding:"+resource); } + //it has to be done level by level because the children may be created + //for each expand (so, we 1st must expand the source folder in order to + //get the correct folders beneath it). + treeViewer.expandToLevel(resource, 1); } } Index: PythonBaseModelProvider.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src_navigator/org/python/pydev/navigator/PythonBaseModelProvider.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** PythonBaseModelProvider.java 5 Jul 2007 00:32:12 -0000 1.4 --- PythonBaseModelProvider.java 6 Jul 2007 17:45:23 -0000 1.5 *************** *** 27,30 **** --- 27,31 ---- import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IPath; + import org.eclipse.core.runtime.Path; import org.eclipse.jface.viewers.AbstractTreeViewer; import org.eclipse.jface.viewers.StructuredViewer; *************** *** 84,95 **** } /** * Notification received when the pythonpath has been changed or rebuilt. */ public void notifyPythonPathRebuilt(IProject project, List<String> projectPythonpath) { Map<IProject, Set<PythonSourceFolder>> p = projectToSourceFolders; if(p != null){ ! p.remove(project); } Runnable refreshRunnable = getRefreshRunnable(project); final Collection<Runnable> runnables = new ArrayList<Runnable>(); --- 85,118 ---- } + public static final boolean DEBUG = false; + /** * Notification received when the pythonpath has been changed or rebuilt. */ public void notifyPythonPathRebuilt(IProject project, List<String> projectPythonpath) { + if(DEBUG){ + System.out.println("\n\nRebuilding pythonpath: "+project+" - "+projectPythonpath); + } + HashSet<Path> projectPythonpathSet = new HashSet<Path>(); + for (String string : projectPythonpath) { + projectPythonpathSet.add(new Path(string)); + } + Map<IProject, Set<PythonSourceFolder>> p = projectToSourceFolders; if(p != null){ ! Set<PythonSourceFolder> existingSourceFolders = p.get(project); ! ! //iterate in a copy ! for (PythonSourceFolder pythonSourceFolder : new HashSet<PythonSourceFolder>(existingSourceFolders)) { ! IPath fullPath = pythonSourceFolder.folder.getLocation(); ! if(!projectPythonpathSet.contains(fullPath)){ ! existingSourceFolders.remove(pythonSourceFolder);//it's not a valid source folder anymore... ! if(DEBUG){ ! System.out.println("Removing:"+pythonSourceFolder+" - "+fullPath); ! } ! } ! } } + Runnable refreshRunnable = getRefreshRunnable(project); final Collection<Runnable> runnables = new ArrayList<Runnable>(); *************** *** 557,560 **** --- 580,587 ---- */ private void processRunnables(final Collection<Runnable> runnables) { + if(viewer == null){ + return; + } + Control ctrl = viewer.getControl(); if (ctrl == null || ctrl.isDisposed()) { *************** *** 596,600 **** Iterator<Runnable> runnableIterator = runnables.iterator(); while (runnableIterator.hasNext()) { ! runnableIterator.next().run(); } } --- 623,628 ---- Iterator<Runnable> runnableIterator = runnables.iterator(); while (runnableIterator.hasNext()) { ! Runnable runnable = runnableIterator.next(); ! runnable.run(); } } |