[jboss-svn-commits] JBL Code SVN: r22332 - in labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools: src/org/guvnor/tools and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Sep 2 17:30:56 EDT 2008


Author: john.graham at jboss.org
Date: 2008-09-02 17:30:56 -0400 (Tue, 02 Sep 2008)
New Revision: 22332

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
   labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/PlatformUtils.java
   labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/views/RepositoryView.java
Log:
Fix move/delete hook for Ganymede; support multiple file drop from Repository View

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-09-02 20:58:29 UTC (rev 22331)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/META-INF/MANIFEST.MF	2008-09-02 21:30:56 UTC (rev 22332)
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %plugin.name
 Bundle-SymbolicName: org.guvnor.tools;singleton:=true
-Bundle-Version: 0.8.0.200808291411
+Bundle-Version: 0.8.0.200809021730
 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-09-02 20:58:29 UTC (rev 22331)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/ResourceChangeListener.java	2008-09-02 21:30:56 UTC (rev 22332)
@@ -75,7 +75,7 @@
 	
 	private void deleteResources(final List<IResource> resources) throws CoreException {
 		Display display = PlatformUI.getWorkbench().getDisplay();
-		display.syncExec(new Runnable() {
+		display.asyncExec(new Runnable() {
 			public void run() {
 				IWorkspace ws = Activator.getDefault().getWorkspace();
 				try {
@@ -105,7 +105,7 @@
 		}
 		final GuvnorMetadataProps mdProps = GuvnorMetadataUtils.loadGuvnorMetadata(mdFile);
 		Display display = PlatformUI.getWorkbench().getDisplay();
-		display.syncExec(new Runnable() {
+		display.asyncExec(new Runnable() {
 			public void run() {
 				try {
 					GuvnorMetadataUtils.setGuvnorMetadataProps(resource.getFullPath(), mdProps);

Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/PlatformUtils.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/PlatformUtils.java	2008-09-02 20:58:29 UTC (rev 22331)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/utils/PlatformUtils.java	2008-09-02 21:30:56 UTC (rev 22332)
@@ -76,8 +76,6 @@
 				manager.update(GuvnorDecorator.DECORATOR_ID);
 			}
 		});
-//		IDecoratorManager manager = Activator.getDefault().getWorkbench().getDecoratorManager();
-//		manager.update(GuvnorDecorator.DECORATOR_ID);
 	}
 	
 	/**

Modified: labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/views/RepositoryView.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/views/RepositoryView.java	2008-09-02 20:58:29 UTC (rev 22331)
+++ labs/jbossrules/trunk/drools-eclipse/org.guvnor.tools/src/org/guvnor/tools/views/RepositoryView.java	2008-09-02 21:30:56 UTC (rev 22332)
@@ -104,10 +104,10 @@
 	}
 	
 	private void addDragDropSupport() {
-		// TODO: Support drag and drop of multiple files, directories, etc.
+		// TODO: Support drag and drop of directories
 		Transfer[] transfers = new Transfer[] { FileTransfer.getInstance()};
 		viewer.addDragSupport(DND.DROP_COPY, transfers, new DragSourceListener() {
-			private TreeObject target;
+			private TreeObject[] target;
 			
 			public void dragFinished(DragSourceEvent event) {
 				target = null;
@@ -134,46 +134,77 @@
 			}
 			
 			public void dragStart(DragSourceEvent event) {
+				List<TreeObject> transferNodes = new ArrayList<TreeObject>();
 				ISelection selection = viewer.getSelection();
-				Object obj = ((IStructuredSelection)selection).getFirstElement();
-				if (obj instanceof TreeObject
-				   && ((TreeObject)obj).getNodeType() == TreeObject.Type.RESOURCE) {
-					target = (TreeObject)obj;
+				Object[] objs = ((IStructuredSelection)selection).toArray();
+				for (int i = 0; i < objs.length; i++) {
+					if (objs[i] instanceof TreeObject
+					    && ((TreeObject)objs[i]).getNodeType() == TreeObject.Type.RESOURCE) {
+						transferNodes.add((TreeObject)objs[i]);
+					}
+				}
+				if (transferNodes.size() > 0) {
 					event.doit = true;
+					target = new TreeObject[transferNodes.size()];
+					transferNodes.toArray(target);
 				} else {
 					event.doit = false;
 				}
 			}
 		});
+		
+//		viewer.addDropSupport(DND.DROP_COPY | DND.DROP_MOVE, transfers, new ViewerDropAdapter(viewer) {
+//			
+//			private TreeParent targetNode;
+//			
+//			@Override
+//			public boolean performDrop(Object data) {
+//				return false;
+//			}
+//
+//			@Override
+//			public boolean validateDrop(Object target, int operation,
+//					TransferData transferType) {
+//				if (target == null
+//					|| !(target instanceof TreeParent)) {
+//					targetNode = null;
+//					return false;
+//				}
+//				targetNode = (TreeParent)target;
+//				return true;
+//			}
+//			
+//		});
 	}
 	
-	private List<String> prepareFileTransfer(TreeObject node) throws Exception {
+	private List<String> prepareFileTransfer(TreeObject[] nodes) throws Exception {
 		List<String> res = new ArrayList<String>();
-		String contents = getResourceContents(node);
-		IPath path = new Path(Activator.getDefault().getStateLocation().toOSString() + 
-								File.separator + new UID().toString());
-		if (!path.toFile().mkdir()) {
-			throw new Exception("Could not create directory " + path.toOSString()); //$NON-NLS-1$
+		for (int i = 0; i < nodes.length; i++) {
+			String contents = getResourceContents(nodes[i]);
+			IPath path = new Path(Activator.getDefault().getStateLocation().toOSString() + 
+								  File.separator + new UID().toString());
+			if (!path.toFile().mkdir()) {
+				throw new Exception("Could not create directory " + path.toOSString()); //$NON-NLS-1$
+			}
+			path.toFile().deleteOnExit();
+			File transfer = new File(path + File.separator + nodes[i].getName());
+			transfer.deleteOnExit();
+			FileOutputStream fos = new FileOutputStream(transfer);
+			PrintWriter writer = new PrintWriter(fos);
+			writer.write(contents);
+			writer.flush();
+			writer.close();
+			res.add(transfer.getAbsolutePath());
+		
+			IPath metaPath = GuvnorMetadataUtils.
+								createGuvnorMetadataLocation(path.toOSString());
+			metaPath.toFile().deleteOnExit();
+			File metaFile = GuvnorMetadataUtils.
+								getGuvnorMetadataFile(metaPath.toOSString(), nodes[i].getName());
+			metaFile.deleteOnExit();
+			GuvnorMetadataUtils.writeGuvnorMetadataProps(metaFile, getGuvnorMetadataProps(nodes[i]));
+			res.add(metaFile.getAbsolutePath());
 		}
-		path.toFile().deleteOnExit();
-		File transfer = new File(path + File.separator + node.getName());
-		transfer.deleteOnExit();
-		FileOutputStream fos = new FileOutputStream(transfer);
-		PrintWriter writer = new PrintWriter(fos);
-		writer.write(contents);
-		writer.flush();
-		writer.close();
-		res.add(transfer.getAbsolutePath());
-		
-		IPath metaPath = GuvnorMetadataUtils.
-							createGuvnorMetadataLocation(path.toOSString());
-		metaPath.toFile().deleteOnExit();
-		File metaFile = GuvnorMetadataUtils.
-							getGuvnorMetadataFile(metaPath.toOSString(), node.getName());
-		metaFile.deleteOnExit();
-		GuvnorMetadataUtils.writeGuvnorMetadataProps(metaFile, getGuvnorMetadataProps(node));
-		res.add(metaFile.getAbsolutePath());
-		
 		return res;
 	}
 	




More information about the jboss-svn-commits mailing list