diff options
-rw-r--r-- | bundles/org.eclipse.equinox.p2.ui.importexport/src/org/eclipse/equinox/internal/p2/importexport/internal/wizard/AbstractImportPage.java | 248 |
1 files changed, 125 insertions, 123 deletions
diff --git a/bundles/org.eclipse.equinox.p2.ui.importexport/src/org/eclipse/equinox/internal/p2/importexport/internal/wizard/AbstractImportPage.java b/bundles/org.eclipse.equinox.p2.ui.importexport/src/org/eclipse/equinox/internal/p2/importexport/internal/wizard/AbstractImportPage.java index 81936b0c2..8a17c9746 100644 --- a/bundles/org.eclipse.equinox.p2.ui.importexport/src/org/eclipse/equinox/internal/p2/importexport/internal/wizard/AbstractImportPage.java +++ b/bundles/org.eclipse.equinox.p2.ui.importexport/src/org/eclipse/equinox/internal/p2/importexport/internal/wizard/AbstractImportPage.java @@ -1,124 +1,126 @@ -/*******************************************************************************
- * Copyright (c) 2011 WindRiver Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * WindRiver Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.importexport.internal.wizard;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.internal.p2.importexport.internal.Messages;
-import org.eclipse.equinox.internal.p2.ui.ProvUI;
-import org.eclipse.equinox.internal.p2.ui.dialogs.ProvisioningOperationWizard;
-import org.eclipse.equinox.p2.engine.IProfile;
-import org.eclipse.equinox.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.p2.metadata.VersionRange;
-import org.eclipse.equinox.p2.query.IQueryResult;
-import org.eclipse.equinox.p2.query.QueryUtil;
-import org.eclipse.equinox.p2.ui.ProvisioningUI;
-import org.eclipse.jface.viewers.ICheckStateProvider;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.*;
-
-public abstract class AbstractImportPage extends AbstractPage {
-
- IProfile profile = null;
- private final ProvisioningOperationWizard wizard;
- private final ProvisioningUI ui;
-
- public AbstractImportPage(String pageName, ProvisioningUI ui, ProvisioningOperationWizard wizard) {
- super(pageName);
- this.wizard = wizard;
- this.ui = ui;
- profile = getSelfProfile();
- }
-
- protected ProvisioningOperationWizard getProvisioningWizard() {
- return wizard;
- }
-
- protected ProvisioningUI getProvisioningUI() {
- return ui;
- }
-
- @Override
- protected void createInstallationTable(Composite parent) {
- super.createInstallationTable(parent);
- viewer.getTree().addListener(SWT.Selection, new Listener() {
-
- public void handleEvent(Event event) {
- if (event.detail == SWT.CHECK) {
- if (hasInstalled(ProvUI.getAdapter(event.item.getData(), IInstallableUnit.class))) {
- viewer.getTree().setRedraw(false);
- ((TreeItem) event.item).setChecked(false);
- viewer.getTree().setRedraw(true);
- }
- }
- updatePageCompletion();
- }
- });
- }
-
- public boolean hasInstalled(IInstallableUnit iu) {
- IQueryResult<IInstallableUnit> results = profile.query(QueryUtil.createIUQuery(iu.getId(), new VersionRange(iu.getVersion(), true, null, false)), null);
- return !results.isEmpty();
- }
-
- public String getIUNameWithDetail(IInstallableUnit iu) {
- IQueryResult<IInstallableUnit> results = profile.query(QueryUtil.createIUQuery(iu.getId(), new VersionRange(iu.getVersion(), true, null, false)), null);
- final String text = iu.getProperty(IProfile.PROP_NAME, null);
- if (!results.isEmpty()) {
- boolean hasHigherVersion = false;
- boolean hasEqualVersion = false;
- for (IInstallableUnit installedIU : results.toSet()) {
- int compareValue = installedIU.getVersion().compareTo(iu.getVersion());
- if (compareValue > 0) {
- hasHigherVersion = true;
- break;
- } else if (compareValue == 0)
- hasEqualVersion = true;
- }
- if (hasHigherVersion)
- return NLS.bind(Messages.AbstractImportPage_HigherVersionInstalled, text);
- else if (hasEqualVersion)
- return NLS.bind(Messages.AbstractImportPage_SameVersionInstalled, text);
- }
- return text;
- }
-
- @Override
- protected ICheckStateProvider getViewerDefaultState() {
- return new ICheckStateProvider() {
-
- public boolean isGrayed(Object element) {
- return false;
- }
-
- public boolean isChecked(Object element) {
- if (profile != null) {
- IInstallableUnit iu = ProvUI.getAdapter(element, IInstallableUnit.class);
- IQueryResult<IInstallableUnit> collector = profile.query(QueryUtil.createIUQuery(iu.getId(), new VersionRange(iu.getVersion(), true, null, false)), new NullProgressMonitor());
- if (collector.isEmpty()) {
- return true;
- }
- }
- return false;
- }
- };
- }
-
- @Override
- protected void doFinish() throws Exception {
- // do nothing
- }
-
- @Override
- public boolean canFlipToNextPage() {
- return isPageComplete();
- }
+/******************************************************************************* + * Copyright (c) 2011 WindRiver Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * WindRiver Corporation - initial API and implementation + * Ericsson AB (Pascal Rapicault) - Bug 395210 + *******************************************************************************/ +package org.eclipse.equinox.internal.p2.importexport.internal.wizard; + +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.equinox.internal.p2.importexport.internal.Messages; +import org.eclipse.equinox.internal.p2.ui.ProvUI; +import org.eclipse.equinox.internal.p2.ui.dialogs.ProvisioningOperationWizard; +import org.eclipse.equinox.p2.engine.IProfile; +import org.eclipse.equinox.p2.metadata.IInstallableUnit; +import org.eclipse.equinox.p2.metadata.VersionRange; +import org.eclipse.equinox.p2.query.IQueryResult; +import org.eclipse.equinox.p2.query.QueryUtil; +import org.eclipse.equinox.p2.ui.ProvisioningUI; +import org.eclipse.jface.viewers.ICheckStateProvider; +import org.eclipse.osgi.util.NLS; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.*; + +public abstract class AbstractImportPage extends AbstractPage { + + IProfile profile = null; + private final ProvisioningOperationWizard wizard; + private final ProvisioningUI ui; + + public AbstractImportPage(String pageName, ProvisioningUI ui, ProvisioningOperationWizard wizard) { + super(pageName); + this.wizard = wizard; + this.ui = ui; + profile = getSelfProfile(); + } + + protected ProvisioningOperationWizard getProvisioningWizard() { + return wizard; + } + + protected ProvisioningUI getProvisioningUI() { + return ui; + } + + @Override + protected void createInstallationTable(Composite parent) { + super.createInstallationTable(parent); + viewer.getTree().addListener(SWT.Selection, new Listener() { + + public void handleEvent(Event event) { + if (event.detail == SWT.CHECK) { + if (hasInstalled(ProvUI.getAdapter(event.item.getData(), IInstallableUnit.class))) { + viewer.getTree().setRedraw(false); + ((TreeItem) event.item).setChecked(false); + viewer.getTree().setRedraw(true); + } + } + updatePageCompletion(); + } + }); + } + + public boolean hasInstalled(IInstallableUnit iu) { + IQueryResult<IInstallableUnit> results = profile.query(QueryUtil.createIUQuery(iu.getId(), new VersionRange(iu.getVersion(), true, null, false)), null); + return !results.isEmpty(); + } + + public String getIUNameWithDetail(IInstallableUnit iu) { + IQueryResult<IInstallableUnit> results = profile.query(QueryUtil.createIUQuery(iu.getId(), new VersionRange(iu.getVersion(), true, null, false)), null); + String text = iu.getProperty(IProfile.PROP_NAME, null); + text = (text != null) ? text : iu.getId(); + if (!results.isEmpty()) { + boolean hasHigherVersion = false; + boolean hasEqualVersion = false; + for (IInstallableUnit installedIU : results.toSet()) { + int compareValue = installedIU.getVersion().compareTo(iu.getVersion()); + if (compareValue > 0) { + hasHigherVersion = true; + break; + } else if (compareValue == 0) + hasEqualVersion = true; + } + if (hasHigherVersion) + return NLS.bind(Messages.AbstractImportPage_HigherVersionInstalled, text); + else if (hasEqualVersion) + return NLS.bind(Messages.AbstractImportPage_SameVersionInstalled, text); + } + return text; + } + + @Override + protected ICheckStateProvider getViewerDefaultState() { + return new ICheckStateProvider() { + + public boolean isGrayed(Object element) { + return false; + } + + public boolean isChecked(Object element) { + if (profile != null) { + IInstallableUnit iu = ProvUI.getAdapter(element, IInstallableUnit.class); + IQueryResult<IInstallableUnit> collector = profile.query(QueryUtil.createIUQuery(iu.getId(), new VersionRange(iu.getVersion(), true, null, false)), new NullProgressMonitor()); + if (collector.isEmpty()) { + return true; + } + } + return false; + } + }; + } + + @Override + protected void doFinish() throws Exception { + // do nothing + } + + @Override + public boolean canFlipToNextPage() { + return isPageComplete(); + } }
\ No newline at end of file |