diff options
author | Pascal Rapicault (JBoss) | 2013-04-29 19:24:06 +0000 |
---|---|---|
committer | Pascal Rapicault | 2013-04-29 20:55:35 +0000 |
commit | df57b8a2a5eb635cf3eddd4617dbeee19e213669 (patch) | |
tree | 0ed6b4273cffed0a2e765e9777246e9d08c9b15d /bundles/org.eclipse.equinox.p2.ui.discovery | |
parent | d287d7ac898af36e2e4aba587218528b5956ca80 (diff) | |
download | rt.equinox.p2-df57b8a2a5eb635cf3eddd4617dbeee19e213669.tar.gz rt.equinox.p2-df57b8a2a5eb635cf3eddd4617dbeee19e213669.tar.xz rt.equinox.p2-df57b8a2a5eb635cf3eddd4617dbeee19e213669.zip |
Add remediation support to Discovery UII20130430-0800I20130430-0031I20130429-2000
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.ui.discovery')
2 files changed, 21 insertions, 11 deletions
diff --git a/bundles/org.eclipse.equinox.p2.ui.discovery/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.ui.discovery/META-INF/MANIFEST.MF index 286ffc308..3a804d075 100644 --- a/bundles/org.eclipse.equinox.p2.ui.discovery/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.p2.ui.discovery/META-INF/MANIFEST.MF @@ -24,4 +24,5 @@ Export-Package: org.eclipse.equinox.internal.p2.ui.discovery;x-internal:=true, org.eclipse.equinox.internal.p2.ui.discovery.util;x-internal:=true, org.eclipse.equinox.internal.p2.ui.discovery.wizards;x-internal:=true Bundle-ClassPath: . -Import-Package: com.ibm.icu.text +Import-Package: com.ibm.icu.text, + org.eclipse.equinox.p2.planner;version="2.0.0" diff --git a/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/operations/DiscoveryInstallOperation.java b/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/operations/DiscoveryInstallOperation.java index cbeb28687..4212a5096 100644 --- a/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/operations/DiscoveryInstallOperation.java +++ b/bundles/org.eclipse.equinox.p2.ui.discovery/src/org/eclipse/equinox/internal/p2/ui/discovery/operations/DiscoveryInstallOperation.java @@ -16,6 +16,7 @@ import java.net.*; import java.util.*; import org.eclipse.core.runtime.*; import org.eclipse.equinox.internal.p2.discovery.model.CatalogItem; +import org.eclipse.equinox.internal.p2.ui.ProvUIMessages; import org.eclipse.equinox.internal.p2.ui.discovery.DiscoveryUi; import org.eclipse.equinox.internal.p2.ui.discovery.util.WorkbenchUtil; import org.eclipse.equinox.internal.p2.ui.discovery.wizards.Messages; @@ -59,7 +60,7 @@ public class DiscoveryInstallOperation implements IRunnableWithProgress { public void run(IProgressMonitor progressMonitor) throws InvocationTargetException, InterruptedException { try { - SubMonitor monitor = SubMonitor.convert(progressMonitor, Messages.InstallConnectorsJob_task_configuring, 100); + SubMonitor monitor = SubMonitor.convert(progressMonitor, Messages.InstallConnectorsJob_task_configuring, 150); try { final IInstallableUnit[] ius = computeInstallableUnits(monitor.newChild(50)); @@ -69,11 +70,22 @@ public class DiscoveryInstallOperation implements IRunnableWithProgress { checkCancelled(monitor); - Display.getDefault().asyncExec(new Runnable() { - public void run() { - provisioningUI.openInstallWizard(Arrays.asList(ius), installOperation, null); - } - }); + if (installOperation.getResolutionResult().getSeverity() > IStatus.WARNING) { + monitor.setTaskName(ProvUIMessages.ProvisioningOperationWizard_Remediation_Operation); + final RemediationOperation remediationOperation = new RemediationOperation(provisioningUI.getSession(), installOperation.getProfileChangeRequest()); + remediationOperation.getResolveJob(monitor.newChild(50)); + Display.getDefault().asyncExec(new Runnable() { + public void run() { + provisioningUI.openInstallWizard(Arrays.asList(ius), installOperation, remediationOperation, null); + } + }); + } else { + Display.getDefault().asyncExec(new Runnable() { + public void run() { + provisioningUI.openInstallWizard(Arrays.asList(ius), installOperation, null); + } + }); + } } finally { monitor.done(); } @@ -92,10 +104,7 @@ public class DiscoveryInstallOperation implements IRunnableWithProgress { private InstallOperation resolve(IProgressMonitor monitor, final IInstallableUnit[] ius, URI[] repositories) throws CoreException { final InstallOperation installOperation = provisioningUI.getInstallOperation(Arrays.asList(ius), repositories); - IStatus operationStatus = installOperation.resolveModal(new SubProgressMonitor(monitor, installableConnectors.size())); - if (operationStatus.getSeverity() > IStatus.WARNING) { - throw new CoreException(operationStatus); - } + installOperation.resolveModal(new SubProgressMonitor(monitor, installableConnectors.size())); return installOperation; } |