Author: scabanovich
Date: 2011-03-30 20:33:08 -0400 (Wed, 30 Mar 2011)
New Revision: 30169
Modified:
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/util/EclipseResourceUtil.java
Log:
JBIDE-3120
https://issues.jboss.org/browse/JBIDE-3120
Modified:
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/util/EclipseResourceUtil.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/util/EclipseResourceUtil.java 2011-03-30
21:29:12 UTC (rev 30168)
+++
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/util/EclipseResourceUtil.java 2011-03-31
00:33:08 UTC (rev 30169)
@@ -27,6 +27,8 @@
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.FileLocator;
@@ -356,6 +358,9 @@
properties.put(XModelObjectConstants.PROJECT, project);
properties.put("isProjectFragment", XModelObjectConstants.TRUE);
//$NON-NLS-1$
model = XModelFactory.getModel(properties);
+ if(deleteProjectListener == null) {
+ ResourcesPlugin.getWorkspace().addResourceChangeListener(deleteProjectListener = new
RCL());
+ }
models.put(project, model);
XModelObject fs = FileSystemsHelper.getFileSystems(model);
@@ -1033,4 +1038,17 @@
path = path.toLowerCase();
return path.endsWith(".jar") || path.endsWith(".zip");
//$NON-NLS-1$ //$NON-NLS-2$
}
+
+ private static IResourceChangeListener deleteProjectListener = null;
+ private static class RCL implements IResourceChangeListener {
+
+ public void resourceChanged(IResourceChangeEvent event) {
+ if(event.getType() == IResourceChangeEvent.PRE_DELETE) {
+ IResource resource = event.getResource();
+ IProject project = (IProject)resource.getAdapter(IProject.class);
+ if(project != null) models.remove(project);
+ }
+ }
+
+ }
}
\ No newline at end of file