Author: scabanovich
Date: 2008-06-17 08:07:20 -0400 (Tue, 17 Jun 2008)
New Revision: 8808
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/SeamCorePlugin.java
Log:
JBIDE-2260
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/SeamCorePlugin.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/SeamCorePlugin.java 2008-06-17
06:04:14 UTC (rev 8807)
+++
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/SeamCorePlugin.java 2008-06-17
12:07:20 UTC (rev 8808)
@@ -15,6 +15,9 @@
import java.util.List;
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.ProjectScope;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
@@ -28,6 +31,7 @@
import org.jboss.tools.common.log.IPluginLog;
import org.jboss.tools.seam.core.event.ISeamProjectChangeListener;
import org.jboss.tools.seam.core.event.SeamProjectChangeEvent;
+import org.jboss.tools.seam.internal.core.SeamProject;
import org.osgi.framework.BundleContext;
/**
@@ -55,6 +59,7 @@
public void start(BundleContext context) throws Exception {
super.start(context);
cleanCachedProjects();
+ ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener);
}
static void cleanCachedProjects() {
@@ -76,11 +81,33 @@
}
+ IResourceChangeListener resourceChangeListener = new RCL();
+
+ class RCL implements IResourceChangeListener {
+
+ public void resourceChanged(IResourceChangeEvent event) {
+ if(event.getType() == IResourceChangeEvent.PRE_DELETE
+ || event.getType() == IResourceChangeEvent.PRE_CLOSE) {
+ IResource r = event.getResource();
+ if(r instanceof IProject) {
+ IProject p = (IProject)r;
+ SeamProject sp = (SeamProject)getSeamProject(p, false);
+ if(sp != null) {
+ sp.clearStorage();
+ }
+ }
+ }
+
+ }
+
+ }
+
/*
* (non-Javadoc)
* @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
*/
public void stop(BundleContext context) throws Exception {
+ ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
plugin = null;
super.stop(context);
}
Show replies by date