[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