[jboss-svn-commits] JBL Code SVN: r21016 - in labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools: src/org/guvnor/tools and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Jul 12 17:24:20 EDT 2008
Author: john.graham at jboss.org
Date: 2008-07-12 17:24:19 -0400 (Sat, 12 Jul 2008)
New Revision: 21016
Modified:
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/META-INF/MANIFEST.MF
labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/ResourceChangeListener.java
Log:
Handle delete/move of Guvnor controlled resources
Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/META-INF/MANIFEST.MF
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/META-INF/MANIFEST.MF 2008-07-12 12:13:11 UTC (rev 21015)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/META-INF/MANIFEST.MF 2008-07-12 21:24:19 UTC (rev 21016)
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %plugin.name
Bundle-SymbolicName: org.guvnor.tools;singleton:=true
-Bundle-Version: 0.6.0.200807111736
+Bundle-Version: 0.6.0.200807121723
Bundle-Activator: org.guvnor.tools.Activator
Bundle-Vendor: %plugin.provider
Bundle-Localization: plugin
Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/ResourceChangeListener.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/ResourceChangeListener.java 2008-07-12 12:13:11 UTC (rev 21015)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/ResourceChangeListener.java 2008-07-12 21:24:19 UTC (rev 21016)
@@ -1,5 +1,8 @@
package org.guvnor.tools;
+import java.util.ArrayList;
+import java.util.List;
+
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceChangeEvent;
@@ -19,6 +22,7 @@
public class ResourceChangeListener implements IResourceChangeListener {
public void resourceChanged(IResourceChangeEvent event) {
+ final List<IResource> toDelete = new ArrayList<IResource>();
try {
event.getDelta().accept(new IResourceDeltaVisitor() {
public boolean visit(IResourceDelta delta) throws CoreException {
@@ -30,7 +34,7 @@
handleResourceChanged(delta.getResource());
}
if (delta.getKind() == IResourceDelta.REMOVED) {
- handleResourceDelete(delta.getResource());
+ handleResourceDelete(delta.getResource(), toDelete);
}
if (delta.getMovedFromPath() != null) {
handleResourceMoved(delta.getResource(), delta.getMovedFromPath());
@@ -41,13 +45,13 @@
return true;
}
});
+ deleteResources(toDelete);
} catch (Exception e) {
Activator.getDefault().writeLog(IStatus.ERROR, e.getMessage(), e);
}
}
private void handleResourceAdded(IResource resource) throws Exception {
-//System.out.println("Added: " + resource.getFullPath().toString());
if (GuvnorMetadataUtils.isGuvnorMetadata(resource)) {
// Look for the corresponding file
IFile target = GuvnorMetadataUtils.getGuvnorControlledResource(resource);
@@ -69,18 +73,15 @@
}
}
- private void handleResourceDelete(IResource resource) throws CoreException {
-//System.out.println("Deleted: " + resource.getFullPath().toString());
- final IFile mdFile = GuvnorMetadataUtils.findGuvnorMetadata(resource);
- if (mdFile == null) {
- return;
- }
- final IWorkspace ws = mdFile.getWorkspace();
+ private void deleteResources(final List<IResource> resources) throws CoreException {
Display display = PlatformUI.getWorkbench().getDisplay();
display.syncExec(new Runnable() {
public void run() {
+ IWorkspace ws = Activator.getDefault().getWorkspace();
try {
- ws.delete(new IResource[] { mdFile }, true, null);
+ IResource[] res = new IResource[resources.size()];
+ resources.toArray(res);
+ ws.delete(res, true, null);
} catch (CoreException e) {
Activator.getDefault().writeLog(IStatus.ERROR, e.getMessage(), e);
}
@@ -89,9 +90,15 @@
});
}
+ private void handleResourceDelete(IResource resource, List<IResource> resources) {
+ final IFile mdFile = GuvnorMetadataUtils.findGuvnorMetadata(resource);
+ if (mdFile == null) {
+ return;
+ }
+ resources.add(mdFile);
+ }
+
private void handleResourceMoved(final IResource resource, IPath fromPath) throws Exception {
-//System.out.println("Moved: " + resource.getFullPath().toString() + " from " + fromPath.toString());
-//System.out.println(GuvnorMetadataUtils.isGuvnorResourceCurrent(resource));
IFile mdFile = GuvnorMetadataUtils.findGuvnorMetadata(fromPath);
if (mdFile == null) {
return;
More information about the jboss-svn-commits
mailing list