1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-23 22:52:11 +02:00

Fix for 190665: Project Explorer view is not updated when a file is added to a folder

This commit is contained in:
Anton Leherbauer 2007-06-12 12:40:09 +00:00
parent 3ddfd0b436
commit e9132a0cf8
2 changed files with 10 additions and 22 deletions

View file

@ -1898,33 +1898,16 @@
property="org.eclipse.core.resources.projectNature" property="org.eclipse.core.resources.projectNature"
value="org.eclipse.cdt.core.cnature"/> value="org.eclipse.cdt.core.cnature"/>
</adapt> </adapt>
<instanceof value="org.eclipse.core.resources.IWorkspaceRoot"/> <instanceof value="org.eclipse.core.resources.IResource"/>
<instanceof value="org.eclipse.core.resources.IFolder" />
<instanceof value="org.eclipse.core.resources.IFile" />
<instanceof value="org.eclipse.core.resources.IStorage" />
<instanceof value="org.eclipse.cdt.core.model.ICProject"/>
<instanceof value="org.eclipse.cdt.core.model.ICContainer"/>
<instanceof value="org.eclipse.cdt.core.model.ICElement"/> <instanceof value="org.eclipse.cdt.core.model.ICElement"/>
<instanceof value="org.eclipse.cdt.ui.CElementGrouping"/> <instanceof value="org.eclipse.cdt.ui.CElementGrouping"/>
</or> </or>
</triggerPoints> </triggerPoints>
<possibleChildren> <possibleChildren>
<or> <or>
<instanceof value="org.eclipse.core.resources.IWorkspaceRoot"/> <instanceof value="org.eclipse.core.resources.IResource"/>
<instanceof value="org.eclipse.core.resources.IFolder" />
<instanceof value="org.eclipse.core.resources.IFile" />
<instanceof value="org.eclipse.core.resources.IStorage" />
<instanceof value="org.eclipse.cdt.core.model.ICProject"/>
<instanceof value="org.eclipse.cdt.core.model.ICContainer"/>
<instanceof value="org.eclipse.cdt.core.model.ICElement"/> <instanceof value="org.eclipse.cdt.core.model.ICElement"/>
<instanceof value="org.eclipse.cdt.ui.CElementGrouping"/> <instanceof value="org.eclipse.cdt.ui.CElementGrouping"/>
<adapt
type="org.eclipse.core.resources.IProject">
<test
property="org.eclipse.core.resources.projectNature"
value="org.eclipse.cdt.core.cnature">
</test>
</adapt>
</or> </or>
</possibleChildren> </possibleChildren>
<override <override

View file

@ -259,6 +259,9 @@ public class CNavigatorContentProvider extends CViewContentProvider implements I
* @see org.eclipse.ui.navigator.IPipelinedTreeContentProvider#interceptAdd(org.eclipse.ui.navigator.PipelinedShapeModification) * @see org.eclipse.ui.navigator.IPipelinedTreeContentProvider#interceptAdd(org.eclipse.ui.navigator.PipelinedShapeModification)
*/ */
public PipelinedShapeModification interceptAdd(PipelinedShapeModification addModification) { public PipelinedShapeModification interceptAdd(PipelinedShapeModification addModification) {
if(addModification.getParent() instanceof ICProject && fRealInput instanceof IWorkspaceRoot) {
addModification.setParent(((ICProject)addModification.getParent()).getProject());
}
convertToCElements(addModification); convertToCElements(addModification);
return addModification; return addModification;
} }
@ -307,7 +310,6 @@ public class CNavigatorContentProvider extends CViewContentProvider implements I
modification.setParent(element); modification.setParent(element);
} }
return convertToCElements(modification.getChildren()); return convertToCElements(modification.getChildren());
} }
} }
} }
@ -336,6 +338,9 @@ public class CNavigatorContentProvider extends CViewContentProvider implements I
convertedChildren.add(newChild); convertedChildren.add(newChild);
} }
} }
// } else if (child instanceof ICProject) {
// iter.remove();
// convertedChildren.add(((ICProject)child).getProject());
} }
} }
if (!convertedChildren.isEmpty()) { if (!convertedChildren.isEmpty()) {
@ -351,7 +356,7 @@ public class CNavigatorContentProvider extends CViewContentProvider implements I
protected void postRefresh(final Object element) { protected void postRefresh(final Object element) {
if (element instanceof ICModel) { if (element instanceof ICModel) {
super.postRefresh(fRealInput); super.postRefresh(fRealInput);
} else if (element instanceof ICProject) { } else if (element instanceof ICProject && fRealInput instanceof IWorkspaceRoot) {
super.postRefresh(((ICProject)element).getProject()); super.postRefresh(((ICProject)element).getProject());
} else { } else {
super.postRefresh(element); super.postRefresh(element);
@ -361,7 +366,7 @@ public class CNavigatorContentProvider extends CViewContentProvider implements I
protected void postAdd(final Object parent, final Object element) { protected void postAdd(final Object parent, final Object element) {
if (parent instanceof ICModel) { if (parent instanceof ICModel) {
super.postAdd(fRealInput, element); super.postAdd(fRealInput, element);
} else if (parent instanceof ICProject) { } else if (parent instanceof ICProject && fRealInput instanceof IWorkspaceRoot) {
super.postAdd(((ICProject)parent).getProject(), element); super.postAdd(((ICProject)parent).getProject(), element);
} else { } else {
super.postAdd(parent, element); super.postAdd(parent, element);