From f8a2192e8b0b0e9b7698e83e2be2e1da512c2171 Mon Sep 17 00:00:00 2001 From: Anton Leherbauer Date: Wed, 25 Apr 2007 09:49:23 +0000 Subject: [PATCH] Fix for 150404: [CommonNavigator] CDT Projects appear twice (in cooperation with Michael D. Elder) --- core/org.eclipse.cdt.ui/plugin.xml | 173 ++++++++++-------- .../ui/actions/AbstractUpdateIndexAction.java | 4 +- .../navigator/CNavigatorContentProvider.java | 71 ++++--- 3 files changed, 141 insertions(+), 107 deletions(-) diff --git a/core/org.eclipse.cdt.ui/plugin.xml b/core/org.eclipse.cdt.ui/plugin.xml index a18d52414a7..e4e82bb1996 100644 --- a/core/org.eclipse.cdt.ui/plugin.xml +++ b/core/org.eclipse.cdt.ui/plugin.xml @@ -699,7 +699,7 @@ - - - - - - - - + + + - - - + + + + + + + + - - - + + + + + + + + - + @@ -1899,96 +1914,96 @@ menuGroupId="org.eclipse.cdt.ui.newProject" type="new" wizardId="org.eclipse.cdt.ui.wizards.NewCWizard1"> - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + = 0) { - elements[i]= null; + cChildren[i]= null; } } } - for (int i= 0; i < elements.length; i++) { - Object element= elements[i]; + for (int i= 0; i < cChildren.length; i++) { + Object element= cChildren[i]; if (element instanceof ICElement) { ICElement cElement= (ICElement)element; IResource resource= cElement.getResource(); if (resource != null) { - currentElements.remove(resource); + proposedChildren.remove(resource); } - currentElements.add(element); + proposedChildren.add(element); } else if (element != null) { - currentElements.add(element); + proposedChildren.add(element); } } } @@ -286,11 +301,12 @@ public class CNavigatorContentProvider extends CViewContentProvider implements I private boolean convertToCElements( PipelinedShapeModification modification) { Object parent= modification.getParent(); + // don't convert projects if (parent instanceof IContainer) { ICElement element= CoreModel.getDefault().create((IContainer) parent); if (element != null) { - // don't convert the root - if( !(element instanceof ICModel)) { + // don't convert the root + if( !(element instanceof ICModel) && !(element instanceof ICProject) ) { modification.setParent(element); } return convertToCElements(modification.getChildren()); @@ -313,10 +329,11 @@ public class CNavigatorContentProvider extends CViewContentProvider implements I ICElement newChild; for (Iterator iter= currentChildren.iterator(); iter.hasNext();) { Object child= iter.next(); - if (child instanceof IResource) { + // do not convert IProject + if (child instanceof IFile || child instanceof IFolder) { IResource resource= (IResource)child; - if (resource.isAccessible()) { - if ((newChild= CoreModel.getDefault().create((IResource) child)) != null) { + if ( resource.isAccessible() ) { + if ((newChild= CoreModel.getDefault().create(resource)) != null) { iter.remove(); convertedChildren.add(newChild); }