[jbosstools-commits] JBoss Tools SVN: r39559 - in trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples: filetransfer and 1 other directory.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Fri Mar 16 08:46:58 EDT 2012


Author: snjeza
Date: 2012-03-16 08:46:57 -0400 (Fri, 16 Mar 2012)
New Revision: 39559

Modified:
   trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/dialog/DownloadRuntimeDialog.java
   trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/filetransfer/ECFExamplesTransport.java
Log:
JBIDE-11125 Runtime download should be able to work in background

Modified: trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/dialog/DownloadRuntimeDialog.java
===================================================================
--- trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/dialog/DownloadRuntimeDialog.java	2012-03-16 11:02:34 UTC (rev 39558)
+++ trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/dialog/DownloadRuntimeDialog.java	2012-03-16 12:46:57 UTC (rev 39559)
@@ -23,6 +23,7 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.jface.dialogs.IDialogSettings;
@@ -31,7 +32,6 @@
 import org.eclipse.jface.fieldassist.ControlDecoration;
 import org.eclipse.jface.fieldassist.FieldDecoration;
 import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
-import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
@@ -51,6 +51,7 @@
 import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
+import org.eclipse.ui.progress.IProgressService;
 import org.jboss.tools.project.examples.ProjectExamplesActivator;
 import org.jboss.tools.project.examples.filetransfer.ECFExamplesTransport;
 import org.jboss.tools.project.examples.runtimes.DownloadRuntime;
@@ -353,26 +354,22 @@
 	}
 
 	private void downloadRuntime(final String selectedDirectory,
-			final String destinationDirectory, final boolean deleteOnExit) {
-		final ProgressMonitorDialog dialog = new ProgressMonitorDialog(getShell());
-		dialog.setBlockOnOpen(false);
-		dialog.setCancelable(true);
-		dialog.open();
-		final IProgressMonitor monitor = dialog.getProgressMonitor();
-		monitor.beginTask("Download '" + downloadRuntime.getName() + "' ...", 100);
-		
-		IRunnableWithProgress runnable = new IRunnableWithProgress() {
-			public void run(IProgressMonitor monitor) {
+			final String destinationDirectory, final boolean deleteOnExit) {		
+		Job downloadJob = new Job("Download '" + downloadRuntime.getName()) {
+
+			@Override
+			public IStatus run(IProgressMonitor monitor) {
+				monitor.beginTask("Download '" + downloadRuntime.getName() + "' ...", 100);
 				downloadAndInstall(selectedDirectory,
 						destinationDirectory, deleteOnExit, monitor);
+				return Status.OK_STATUS;
 			}
+			
 		};
-		try {
-			dialog.run(true, true, runnable);
-		} catch (Exception e) {
-			ProjectExamplesActivator.log(e);
-			MessageDialog.openError(getActiveShell(), "Error", e.getMessage());
-		}
+		downloadJob.setUser(false);
+		downloadJob.schedule();
+		IProgressService progressService= PlatformUI.getWorkbench().getProgressService();
+		progressService.showInDialog(getActiveShell(), downloadJob);
 	}
 	
 	private IStatus downloadAndInstall(String selectedDirectory, String destinationDirectory, boolean deleteOnExit, IProgressMonitor monitor) {

Modified: trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/filetransfer/ECFExamplesTransport.java
===================================================================
--- trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/filetransfer/ECFExamplesTransport.java	2012-03-16 11:02:34 UTC (rev 39558)
+++ trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/filetransfer/ECFExamplesTransport.java	2012-03-16 12:46:57 UTC (rev 39559)
@@ -279,7 +279,11 @@
 					IIncomingFileTransfer source = ((IIncomingFileTransferReceiveDataEvent) event).getSource();
 					if (monitor != null) {
 						if (monitor.isCanceled()) {
-							source.cancel();
+							try {
+								source.cancel();
+							} catch (Throwable e) {
+								ProjectExamplesActivator.log("Operation canceled");
+							}
 							return;
 						}
 						long fileLength = source.getFileLength();



More information about the jbosstools-commits mailing list