diff options
9 files changed, 37 insertions, 17 deletions
diff --git a/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/migration/MigrationPage.java b/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/migration/MigrationPage.java index 0c6f8763f..9d446d270 100644 --- a/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/migration/MigrationPage.java +++ b/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/migration/MigrationPage.java @@ -689,7 +689,7 @@ public class MigrationPage extends WizardPage implements ISelectableIUsPage, Lis protected Object getInput() { - IUElementListRoot root = new IUElementListRoot(); + IUElementListRoot root = new IUElementListRoot(ui); List<AvailableIUElement> elements = new ArrayList<AvailableIUElement>(unitsToMigrate.size()); for (IInstallableUnit unit : unitsToMigrate) { elements.add(new AvailableIUElement(root, unit, toImportFrom.getProfileId(), false)); @@ -756,10 +756,8 @@ public class MigrationPage extends WizardPage implements ISelectableIUsPage, Lis // Both checkedElements and checkedElementsUpdates and the logic inside the getCheckedIUElements method // are used to prevent unnecessary call to getUpdates method due to computational cost. - @SuppressWarnings("rawtypes") - private Set checkedElements; - @SuppressWarnings("rawtypes") - private Set checkedElementsUpdates; + @SuppressWarnings("rawtypes") private Set checkedElements; + @SuppressWarnings("rawtypes") private Set checkedElementsUpdates; private boolean getUpdatesCanceled; public Object[] getCheckedIUElements() { diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/InstallWizard.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/InstallWizard.java index dce1d523b..b94b06a7e 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/InstallWizard.java +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/InstallWizard.java @@ -63,7 +63,7 @@ public class InstallWizard extends WizardWithLicenses { protected void initializeResolutionModelElements(Object[] selectedElements) { if (selectedElements == null) return; - root = new IUElementListRoot(); + root = new IUElementListRoot(ui); if (operation instanceof RemediationOperation) { AvailableIUElement[] elements = ElementUtils.requestToElement(((RemediationOperation) operation).getCurrentRemedy(), true); root.setChildren(elements); diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/PreselectedIUInstallWizard.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/PreselectedIUInstallWizard.java index 8c1dcb9e8..83f09d7f0 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/PreselectedIUInstallWizard.java +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/PreselectedIUInstallWizard.java @@ -61,7 +61,7 @@ public class PreselectedIUInstallWizard extends WizardWithLicenses { } protected void initializeResolutionModelElements(Object[] selectedElements) { - root = new IUElementListRoot(); + root = new IUElementListRoot(ui); ArrayList<AvailableIUElement> list = new ArrayList<AvailableIUElement>(selectedElements.length); ArrayList<AvailableIUElement> selected = new ArrayList<AvailableIUElement>(selectedElements.length); for (int i = 0; i < selectedElements.length; i++) { diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/ResolutionResultsWizardPage.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/ResolutionResultsWizardPage.java index 86777edbb..4920d4ff2 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/ResolutionResultsWizardPage.java +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/ResolutionResultsWizardPage.java @@ -59,7 +59,7 @@ public abstract class ResolutionResultsWizardPage extends ResolutionStatusPage { super("ResolutionPage", ui, wizard); //$NON-NLS-1$ this.resolvedOperation = operation; if (input == null) - this.input = new IUElementListRoot(); + this.input = new IUElementListRoot(ui); else this.input = input; } diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/SelectableIUsPage.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/SelectableIUsPage.java index a2bddf191..93cec8be5 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/SelectableIUsPage.java +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/SelectableIUsPage.java @@ -59,7 +59,7 @@ public class SelectableIUsPage extends ResolutionStatusPage implements IResoluti super("IUSelectionPage", ui, wizard); //$NON-NLS-1$ this.root = root; if (root == null) - root = new IUElementListRoot(); + root = new IUElementListRoot(ui); if (initialSelections == null) this.initialSelections = new IInstallableUnit[0]; else diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/UninstallWizard.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/UninstallWizard.java index 9743c96f8..bfcb6334f 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/UninstallWizard.java +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/UninstallWizard.java @@ -48,7 +48,7 @@ public class UninstallWizard extends ProvisioningOperationWizard { } protected void initializeResolutionModelElements(Object[] selectedElements) { - root = new IUElementListRoot(); + root = new IUElementListRoot(ui); ArrayList<InstalledIUElement> list = new ArrayList<InstalledIUElement>(selectedElements.length); ArrayList<InstalledIUElement> selections = new ArrayList<InstalledIUElement>(selectedElements.length); for (int i = 0; i < selectedElements.length; i++) { diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/UpdateWizard.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/UpdateWizard.java index 1f6c53449..fa252f22c 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/UpdateWizard.java +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/UpdateWizard.java @@ -116,7 +116,7 @@ public class UpdateWizard extends WizardWithLicenses { protected void initializeResolutionModelElements(Object[] selectedElements) { if (selectedElements == null) return; - root = new IUElementListRoot(); + root = new IUElementListRoot(ui); if (operation instanceof RemediationOperation) { AvailableIUElement[] elements = ElementUtils.requestToElement(((RemediationOperation) operation).getCurrentRemedy(), false); root.setChildren(elements); @@ -176,7 +176,7 @@ public class UpdateWizard extends WizardWithLicenses { private IUElementListRoot getAllPossibleUpdatesRoot() { if (firstPageRoot == null) { - firstPageRoot = new IUElementListRoot(); + firstPageRoot = new IUElementListRoot(ui); if (operation != null && operation instanceof UpdateOperation) { Update[] updates; if (getPolicy().getShowLatestVersionsOnly()) { diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/model/ElementUtils.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/model/ElementUtils.java index 255bef63e..366bcc552 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/model/ElementUtils.java +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/model/ElementUtils.java @@ -129,12 +129,13 @@ public class ElementUtils { if (remedy == null) return new AvailableIUElement[0]; ArrayList<AvailableIUElement> temp = new ArrayList<AvailableIUElement>(); - IUElementListRoot root = new IUElementListRoot(); + ProvisioningUI ui = ProvisioningUI.getDefaultUI(); + IUElementListRoot root = new IUElementListRoot(ui); for (Iterator<RemedyIUDetail> iterator = remedy.getIusDetails().iterator(); iterator.hasNext();) { RemedyIUDetail iuDetail = iterator.next(); if (iuDetail.getStatus() == RemedyIUDetail.STATUS_NOT_ADDED) continue; - AvailableIUElement element = new AvailableIUElement(root, iuDetail.getIu(), ProvisioningUI.getDefaultUI().getProfileId(), true); + AvailableIUElement element = new AvailableIUElement(root, iuDetail.getIu(), ui.getProfileId(), true); if (iuDetail.getBeingInstalledVersion() != null && iuDetail.getRequestedVersion() != null && iuDetail.getBeingInstalledVersion().compareTo(iuDetail.getRequestedVersion()) < 0 && !installMode) element.setImageOverlayId(ProvUIImages.IMG_INFO); else if (iuDetail.getStatus() == RemedyIUDetail.STATUS_REMOVED) diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/model/IUElementListRoot.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/model/IUElementListRoot.java index efe0cc92b..99897e4ba 100644 --- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/model/IUElementListRoot.java +++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/model/IUElementListRoot.java @@ -10,7 +10,8 @@ *******************************************************************************/ package org.eclipse.equinox.internal.p2.ui.model; - +import org.eclipse.equinox.p2.ui.Policy; +import org.eclipse.equinox.p2.ui.ProvisioningUI; /** * Element class representing a fixed set of IU's. This element should @@ -18,9 +19,9 @@ package org.eclipse.equinox.internal.p2.ui.model; * * @since 3.5 */ -public class IUElementListRoot extends ProvElement { - +public class IUElementListRoot extends QueriedElement { Object[] children; + private ProvisioningUI ui; public IUElementListRoot(Object[] children) { super(null); @@ -31,6 +32,11 @@ public class IUElementListRoot extends ProvElement { this(new Object[0]); } + public IUElementListRoot(ProvisioningUI ui) { + this(new Object[0]); + this.ui = ui; + } + public void setChildren(Object[] children) { this.children = children; } @@ -54,4 +60,19 @@ public class IUElementListRoot extends ProvElement { public Object[] getChildren(Object o) { return children; } + + @Override + protected int getDefaultQueryType() { + throw new UnsupportedOperationException(); + } + + public Policy getPolicy() { + return getProvisioningUI().getPolicy(); + } + + public ProvisioningUI getProvisioningUI() { + if (ui != null) + return ui; + return super.getProvisioningUI(); + } } |