1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-07 17:56:01 +02:00

New method removeContainer() and clearRequestList.

This commit is contained in:
Alain Magloire 2002-11-12 20:52:17 +00:00
parent ec099b66f4
commit 10cc1418e2

View file

@ -24,7 +24,6 @@ import org.eclipse.cdt.core.model.IElementChangedListener;
import org.eclipse.cdt.core.model.ITranslationUnit; import org.eclipse.cdt.core.model.ITranslationUnit;
import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.resources.ResourcesPlugin;
@ -110,6 +109,7 @@ public class IndexManager implements IElementChangedListener {
if (filesMap == null) if (filesMap == null)
return; return;
clearRequestList(resource);
switch (resource.getType()) { switch (resource.getType()) {
case IResource.ROOT: case IResource.ROOT:
// PROBLEM? // PROBLEM?
@ -117,10 +117,10 @@ public class IndexManager implements IElementChangedListener {
case IResource.PROJECT: case IResource.PROJECT:
projectsMap.remove(resource.getLocation()); projectsMap.remove(resource.getLocation());
break; // FALL_THROUGHT
case IResource.FOLDER: case IResource.FOLDER:
removeFolder((IFolder)resource); removeContainer((IContainer)resource);
break; break;
case IResource.FILE: case IResource.FILE:
@ -129,12 +129,12 @@ public class IndexManager implements IElementChangedListener {
} }
} }
public void removeFolder(IFolder folder) { public void removeContainer(IContainer container) {
Map filesMap = (Map)projectsMap.get(folder.getProject().getLocation()); Map filesMap = (Map)projectsMap.get(container.getProject().getLocation());
if (filesMap == null) if (filesMap == null)
return; return;
IPath folderPath = folder.getLocation(); IPath folderPath = container.getLocation();
if (filesMap != null) { if (filesMap != null) {
Iterator keys = filesMap.keySet().iterator(); Iterator keys = filesMap.keySet().iterator();
while (keys.hasNext()) { while (keys.hasNext()) {
@ -154,6 +154,21 @@ public class IndexManager implements IElementChangedListener {
} }
} }
public void clearRequestList(IResource resource) {
if (resource instanceof IFile) {
requestList.removeItem(resource);
} else if (resource instanceof IContainer) {
try {
IContainer container = (IContainer)resource;
IResource[] resources = container.members(false);
for (int i = 0; i < resources.length; i++) {
clearRequestList(resources[i]);
}
} catch (CoreException e) {
}
}
}
public void addResource(IResource resource) { public void addResource(IResource resource) {
switch (resource.getType()) { switch (resource.getType()) {
case IResource.ROOT: case IResource.ROOT: