IResourceChangeListener: remove vs workspace close [message #903144] |
Wed, 22 August 2012 08:10 |
Lars Schmidt Messages: 1 Registered: August 2012 |
Junior Member |
|
|
Hi!
I've implementated an IResourceChangeListener in Eclipse for tracking deleted files. Everything is fine due to one exception: The event is also raised on workspace close. Understandable - the resources are removed. How can I distinguish these events?
Here some code:
IResourceChangeListener listener = new IResourceChangeListener() {
public void resourceChanged(final IResourceChangeEvent event) {
IResourceDelta rootDelta = event.getDelta();
if(rootDelta != null) {
traverseDelta(rootDelta);
}
}
};
private void traverseDelta(final IResourceDelta delta) {
int kind = delta.getKind();
if (kind == IResourceDelta.REMOVED) {
if (delta.getResource() instanceof IFile) {
final IFile f = (IFile) delta.getResource();
System.out.println(f.getName() + " deleted. State: " + delta.getFlags());
} else if (delta.getResource() instanceof IProject) {
// Method for whole Project
} else {
// Method for others
}
}
for (IResourceDelta d : delta.getAffectedChildren()) {
traverseDelta(d);
}
}
Any suggestions?
Thank you very much!
|
|
|
Powered by
FUDForum. Page generated in 0.02878 seconds