Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrawagner2014-09-30 11:00:27 +0000
committerIgor Fedorenko2014-09-30 14:28:21 +0000
commit169e1a1348043936787be58099077ff60afbdd59 (patch)
tree95cd915f79f8a832b3134886ce1a93a46c7e1c82
parentba02bfc991792d73c0e2adcf7aa35366a043cf7b (diff)
downloadm2e-core-169e1a1348043936787be58099077ff60afbdd59.tar.gz
m2e-core-169e1a1348043936787be58099077ff60afbdd59.tar.xz
m2e-core-169e1a1348043936787be58099077ff60afbdd59.zip
445205 Disable cancel and finish buttons while opening installation wizard
Change-Id: I8400aff484ec5c4b8c8561781063412f8f45997c Signed-off-by: Rastislav Wagner <rawagner@redhat.com>
-rw-r--r--org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/MavenDiscoveryService.java2
-rw-r--r--org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/wizards/MavenDiscoveryUi.java54
2 files changed, 46 insertions, 10 deletions
diff --git a/org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/MavenDiscoveryService.java b/org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/MavenDiscoveryService.java
index 4d1a9403..8b120f8e 100644
--- a/org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/MavenDiscoveryService.java
+++ b/org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/MavenDiscoveryService.java
@@ -346,7 +346,7 @@ public class MavenDiscoveryService implements IMavenDiscoveryUI, IMavenDiscovery
MavenDiscoveryInstallOperation runner = new MavenDiscoveryInstallOperation(toCatalogItems(proposals),
postInstallHook, true, false, projectsToConfigure);
context.run(true, true, runner);
- int openInstallWizard = MavenDiscoveryUi.openInstallWizard(runner.getOperation(), true);
+ int openInstallWizard = MavenDiscoveryUi.openInstallWizard(runner.getOperation(), true, context);
return openInstallWizard == Window.OK;
} catch(InvocationTargetException e) {
IStatus status = new Status(IStatus.ERROR, DiscoveryActivator.PLUGIN_ID, NLS.bind(
diff --git a/org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/wizards/MavenDiscoveryUi.java b/org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/wizards/MavenDiscoveryUi.java
index 96411213..88560eb7 100644
--- a/org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/wizards/MavenDiscoveryUi.java
+++ b/org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/wizards/MavenDiscoveryUi.java
@@ -16,6 +16,7 @@ import java.lang.reflect.InvocationTargetException;
import java.util.List;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.equinox.internal.p2.discovery.model.CatalogItem;
@@ -26,6 +27,7 @@ import org.eclipse.equinox.internal.p2.ui.discovery.wizards.Messages;
import org.eclipse.equinox.p2.ui.ProvisioningUI;
import org.eclipse.jface.operation.IRunnableContext;
import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.window.Window;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.osgi.util.NLS;
import org.eclipse.ui.PlatformUI;
@@ -63,7 +65,7 @@ public abstract class MavenDiscoveryUi {
try {
MavenDiscoveryInstallOperation runner = new MavenDiscoveryInstallOperation(descriptors, postInstallHook, true);
context.run(true, true, runner);
- openInstallWizard(runner.getOperation(), true);
+ openInstallWizard(runner.getOperation(), true, context);
} catch(InvocationTargetException e) {
if(e.getCause() instanceof CoreException)
throw (CoreException) e.getCause();
@@ -78,13 +80,47 @@ public abstract class MavenDiscoveryUi {
return true;
}
- public static int openInstallWizard(RestartInstallOperation operation, boolean blockOnOpen) {
- MavenDiscoveryInstallWizard wizard = new MavenDiscoveryInstallWizard(ProvisioningUI.getDefaultUI(), operation,
- operation.getIUs(), null);
- WizardDialog dialog = new ProvisioningWizardDialog(ProvUI.getDefaultParentShell(), wizard);
- dialog.create();
- PlatformUI.getWorkbench().getHelpSystem().setHelp(dialog.getShell(), IProvHelpContextIds.INSTALL_WIZARD);
- dialog.setBlockOnOpen(blockOnOpen);
- return dialog.open();
+ public static int openInstallWizard(RestartInstallOperation operation, boolean blockOnOpen, IRunnableContext context) {
+ OpenInstallWizardRunner runner = new OpenInstallWizardRunner(operation, blockOnOpen);
+ try {
+ context.run(false, false, runner);
+ } catch(InvocationTargetException e) {
+ IStatus status = new Status(IStatus.ERROR, DiscoveryActivator.PLUGIN_ID, NLS.bind(
+ Messages.ConnectorDiscoveryWizard_installProblems, new Object[] {e.getCause().getMessage()}), e.getCause());
+ StatusManager.getManager().handle(status, StatusManager.SHOW | StatusManager.BLOCK | StatusManager.LOG);
+ return Window.CANCEL;
+ } catch(InterruptedException ex) {
+ return Window.CANCEL;
+ }
+ return runner.getStatus();
+ }
+
+ private static class OpenInstallWizardRunner implements IRunnableWithProgress {
+
+ private int status;
+
+ private RestartInstallOperation operation;
+
+ private boolean blockOnOpen;
+
+ public OpenInstallWizardRunner(RestartInstallOperation operation, boolean blockOnOpen) {
+ this.operation = operation;
+ this.blockOnOpen = blockOnOpen;
+ }
+
+ public void run(IProgressMonitor arg0) {
+ MavenDiscoveryInstallWizard wizard = new MavenDiscoveryInstallWizard(ProvisioningUI.getDefaultUI(), operation,
+ operation.getIUs(), null);
+ WizardDialog dialog = new ProvisioningWizardDialog(ProvUI.getDefaultParentShell(), wizard);
+ dialog.create();
+ PlatformUI.getWorkbench().getHelpSystem().setHelp(dialog.getShell(), IProvHelpContextIds.INSTALL_WIZARD);
+ dialog.setBlockOnOpen(blockOnOpen);
+ status = dialog.open();
+ }
+
+ public int getStatus() {
+ return status;
+ }
}
+
}

Back to the top