Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSusan Franklin2008-10-07 23:04:52 +0000
committerSusan Franklin2008-10-07 23:04:52 +0000
commit735d6298a583843820618099da83f7548e0a716d (patch)
treecbceb66562918cc53d9d0516edcf49dd5b5ad0aa /bundles/org.eclipse.equinox.p2.ui.admin
parent366f5d4c662f2fdae0015cf946ab4fcccfc3fd04 (diff)
downloadrt.equinox.p2-735d6298a583843820618099da83f7548e0a716d.tar.gz
rt.equinox.p2-735d6298a583843820618099da83f7548e0a716d.tar.xz
rt.equinox.p2-735d6298a583843820618099da83f7548e0a716d.zip
Bug 236740 - [ui] Inconsistent/Confusing UI Layout for Software Updates and Add-ons Dialog
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.ui.admin')
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.admin/META-INF/MANIFEST.MF2
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ArtifactRepositoriesView.java17
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/MetadataRepositoriesView.java142
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProfilesView.java19
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminQueryProvider.java199
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminUIActivator.java147
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminUIMessages.java2
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvView.java1
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/RepositoriesView.java14
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/AddArtifactRepositoryDialog.java4
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUProfilePropertiesGroup.java3
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUPropertiesGroup.java3
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/InstalledIUPropertyPage.java3
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/messages.properties6
14 files changed, 209 insertions, 353 deletions
diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.ui.admin/META-INF/MANIFEST.MF
index 5f820ac36..05b00b57e 100644
--- a/bundles/org.eclipse.equinox.p2.ui.admin/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.p2.ui.admin/META-INF/MANIFEST.MF
@@ -10,6 +10,7 @@ Bundle-RequiredExecutionEnvironment: J2SE-1.4,
CDC-1.1/Foundation-1.1
Import-Package: org.eclipse.equinox.internal.p2.core.helpers,
org.eclipse.equinox.internal.p2.ui.model,
+ org.eclipse.equinox.internal.p2.ui.query,
org.eclipse.equinox.internal.provisional.p2.artifact.repository,
org.eclipse.equinox.internal.provisional.p2.core,
org.eclipse.equinox.internal.provisional.p2.core.eventbus,
@@ -26,7 +27,6 @@ Import-Package: org.eclipse.equinox.internal.p2.core.helpers,
org.eclipse.equinox.internal.provisional.p2.ui.model,
org.eclipse.equinox.internal.provisional.p2.ui.operations,
org.eclipse.equinox.internal.provisional.p2.ui.policy,
- org.eclipse.equinox.internal.provisional.p2.ui.query,
org.eclipse.equinox.internal.provisional.p2.ui.viewers,
org.eclipse.equinox.internal.provisional.p2.updatechecker,
org.eclipse.osgi.service.environment;version="1.0.0",
diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ArtifactRepositoriesView.java b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ArtifactRepositoriesView.java
index a678bdd57..df183e6fe 100644
--- a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ArtifactRepositoriesView.java
+++ b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ArtifactRepositoriesView.java
@@ -14,9 +14,10 @@ import java.net.URL;
import java.util.ArrayList;
import org.eclipse.equinox.internal.p2.ui.admin.dialogs.AddArtifactRepositoryDialog;
import org.eclipse.equinox.internal.p2.ui.admin.preferences.PreferenceConstants;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
+import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepositoryManager;
import org.eclipse.equinox.internal.provisional.p2.ui.ProvisioningOperationRunner;
-import org.eclipse.equinox.internal.provisional.p2.ui.model.*;
+import org.eclipse.equinox.internal.provisional.p2.ui.model.ArtifactRepositories;
+import org.eclipse.equinox.internal.provisional.p2.ui.model.IRepositoryElement;
import org.eclipse.equinox.internal.provisional.p2.ui.operations.*;
import org.eclipse.equinox.internal.provisional.p2.ui.viewers.StructuredViewerProvisioningListener;
import org.eclipse.swt.widgets.Shell;
@@ -37,9 +38,7 @@ public class ArtifactRepositoriesView extends RepositoriesView {
}
protected Object getInput() {
- ArtifactRepositories input = new ArtifactRepositories();
- input.setQueryProvider(ProvAdminUIActivator.getDefault().getQueryProvider());
- return input;
+ return new ArtifactRepositories();
}
protected String getAddCommandLabel() {
@@ -67,14 +66,10 @@ public class ArtifactRepositoriesView extends RepositoriesView {
return new RemoveArtifactRepositoryOperation(ProvAdminUIMessages.ArtifactRepositoriesView_RemoveRepositoryOperationLabel, (URL[]) urls.toArray(new URL[urls.size()]));
}
- protected boolean isRepository(Object element) {
- return element instanceof ArtifactRepositoryElement;
- }
-
protected int getRepoFlags() {
if (ProvAdminUIActivator.getDefault().getPreferenceStore().getBoolean(PreferenceConstants.PREF_HIDE_SYSTEM_REPOS))
- return IArtifactRepositoryManager.REPOSITORIES_NON_SYSTEM;
- return IArtifactRepositoryManager.REPOSITORIES_ALL;
+ return IRepositoryManager.REPOSITORIES_NON_SYSTEM;
+ return IRepositoryManager.REPOSITORIES_ALL;
}
/*
diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/MetadataRepositoriesView.java b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/MetadataRepositoriesView.java
index 50b361d2f..7699c416c 100644
--- a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/MetadataRepositoriesView.java
+++ b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/MetadataRepositoriesView.java
@@ -11,28 +11,30 @@
*******************************************************************************/
package org.eclipse.equinox.internal.p2.ui.admin;
+import java.lang.reflect.InvocationTargetException;
import java.net.URL;
import java.util.ArrayList;
+import java.util.List;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.equinox.internal.p2.ui.admin.dialogs.AddMetadataRepositoryDialog;
-import org.eclipse.equinox.internal.p2.ui.admin.dialogs.AddProfileDialog;
import org.eclipse.equinox.internal.p2.ui.admin.preferences.PreferenceConstants;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
+import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
+import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepositoryManager;
+import org.eclipse.equinox.internal.provisional.p2.director.ProvisioningPlan;
+import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
import org.eclipse.equinox.internal.provisional.p2.ui.*;
import org.eclipse.equinox.internal.provisional.p2.ui.actions.InstallAction;
-import org.eclipse.equinox.internal.provisional.p2.ui.actions.RevertAction;
-import org.eclipse.equinox.internal.provisional.p2.ui.model.*;
+import org.eclipse.equinox.internal.provisional.p2.ui.model.IRepositoryElement;
+import org.eclipse.equinox.internal.provisional.p2.ui.model.MetadataRepositories;
import org.eclipse.equinox.internal.provisional.p2.ui.operations.*;
-import org.eclipse.equinox.internal.provisional.p2.ui.policy.IQueryProvider;
-import org.eclipse.equinox.internal.provisional.p2.ui.query.QueryContext;
-import org.eclipse.equinox.internal.provisional.p2.ui.viewers.*;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.window.Window;
+import org.eclipse.equinox.internal.provisional.p2.ui.viewers.IUDragAdapter;
+import org.eclipse.equinox.internal.provisional.p2.ui.viewers.StructuredViewerProvisioningListener;
+import org.eclipse.jface.action.*;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.viewers.*;
import org.eclipse.swt.dnd.*;
import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.dialogs.ListDialog;
import org.eclipse.ui.part.PluginTransfer;
import org.eclipse.ui.statushandlers.StatusManager;
@@ -43,6 +45,63 @@ import org.eclipse.ui.statushandlers.StatusManager;
*/
public class MetadataRepositoriesView extends RepositoriesView {
+ private class RevertAction extends Action {
+
+ RevertAction() {
+ setText(ProvUI.REVERT_COMMAND_LABEL);
+ setToolTipText(ProvUI.REVERT_COMMAND_TOOLTIP);
+ setImageDescriptor(ProvUIImages.getImageDescriptor(ProvUIImages.IMG_PROFILE));
+ }
+
+ public void run() {
+ IInstallableUnit[] ius = getSelectedIUs();
+ String targetProfileId = ProvAdminUIActivator.getDefault().getPolicy().getProfileChooser().getProfileId(getShell());
+ ProvisioningPlan plan = getProvisioningPlan(ius);
+ if (ProvAdminUIActivator.getDefault().getPolicy().getPlanValidator().continueWorkingWithPlan(plan, getShell())) {
+ ProvisioningOperation op = new ProfileModificationOperation(ProvAdminUIMessages.MetadataRepositoriesView_RevertLabel, targetProfileId, plan);
+ ProvisioningOperationRunner.schedule(op, getShell(), StatusManager.SHOW | StatusManager.LOG);
+ }
+ }
+
+ protected IInstallableUnit[] getSelectedIUs() {
+ ISelection selection = viewer.getSelection();
+ if (!(selection instanceof IStructuredSelection))
+ return new IInstallableUnit[0];
+ List elements = ((IStructuredSelection) selection).toList();
+ List iusList = new ArrayList(elements.size());
+
+ for (int i = 0; i < elements.size(); i++) {
+ IInstallableUnit iu = (IInstallableUnit) ProvUI.getAdapter(elements.get(i), IInstallableUnit.class);
+ if (iu != null && !ProvisioningUtil.isCategory(iu))
+ iusList.add(iu);
+ }
+ return (IInstallableUnit[]) iusList.toArray(new IInstallableUnit[iusList.size()]);
+ }
+
+ private ProvisioningPlan getProvisioningPlan(final IInstallableUnit[] ius) {
+ final ProvisioningPlan[] plan = new ProvisioningPlan[1];
+ IRunnableWithProgress runnable = new IRunnableWithProgress() {
+ public void run(IProgressMonitor monitor) {
+ try {
+ if (ius.length == 1)
+ plan[0] = ProvisioningUtil.getRevertPlan(ius[0], monitor);
+ } catch (ProvisionException e) {
+ ProvUI.handleException(e, ProvAdminUIMessages.MetadataRepositoriesView_UnexpectedRevertError, StatusManager.BLOCK | StatusManager.LOG);
+ }
+ }
+ };
+ try {
+ new ProgressMonitorDialog(getShell()).run(true, true, runnable);
+ } catch (InterruptedException e) {
+ // don't report thread interruption
+ } catch (InvocationTargetException e) {
+ ProvUI.handleException(e.getCause(), ProvAdminUIMessages.MetadataRepositoriesView_UnexpectedRevertError, StatusManager.BLOCK | StatusManager.LOG);
+ }
+ return plan[0];
+ }
+
+ }
+
private InstallAction installAction;
private RevertAction revertAction;
@@ -54,14 +113,7 @@ public class MetadataRepositoriesView extends RepositoriesView {
}
protected Object getInput() {
- MetadataRepositories input = new MetadataRepositories();
- input.setQueryProvider(ProvAdminUIActivator.getDefault().getQueryProvider());
- input.setQueryContext(new QueryContext() {
- public int getQueryType() {
- return IQueryProvider.METADATA_REPOS;
- }
- });
- return input;
+ return new MetadataRepositories(ProvAdminUIActivator.getDefault().getPolicy());
}
protected String getAddCommandLabel() {
@@ -91,44 +143,8 @@ public class MetadataRepositoriesView extends RepositoriesView {
protected void makeActions() {
super.makeActions();
- installAction = new InstallAction(viewer, null, getProfileChooser(), ProvAdminUIActivator.getDefault().getPolicies(), getShell());
- revertAction = new RevertAction(viewer, null, getProfileChooser(), ProvAdminUIActivator.getDefault().getPolicies(), getShell());
- }
-
- private IProfileChooser getProfileChooser() {
- return new IProfileChooser() {
-
- public String getProfileId(Shell shell) {
- // TODO would be nice if the profile chooser dialog let you
- // create a new profile
- DeferredQueryContentProvider provider = new DeferredQueryContentProvider(ProvAdminUIActivator.getDefault().getQueryProvider());
- if (provider.getElements(new Profiles()).length == 0) {
- AddProfileDialog dialog = new AddProfileDialog(shell, new String[0]);
- if (dialog.open() == Window.OK) {
- return dialog.getAddedProfileId();
- }
- return null;
- }
-
- ListDialog dialog = new ListDialog(getShell());
- dialog.setTitle(ProvAdminUIMessages.MetadataRepositoriesView_ChooseProfileDialogTitle);
- dialog.setLabelProvider(new ProvElementLabelProvider());
- dialog.setInput(new Profiles());
- dialog.setContentProvider(provider);
- dialog.open();
- Object[] result = dialog.getResult();
- if (result != null && result.length > 0) {
- IProfile profile = (IProfile) ProvUI.getAdapter(result[0], IProfile.class);
- if (profile != null)
- return profile.getProfileId();
- }
- return null;
- }
-
- public String getLabel() {
- return ProvAdminUIMessages.MetadataRepositoriesView_ChooseProfileDialogTitle;
- }
- };
+ installAction = new InstallAction(ProvAdminUIActivator.getDefault().getPolicy(), viewer, null);
+ revertAction = new RevertAction();
}
protected void fillContextMenu(IMenuManager manager) {
@@ -140,10 +156,6 @@ public class MetadataRepositoriesView extends RepositoriesView {
super.fillContextMenu(manager);
}
- protected boolean isRepository(Object element) {
- return element instanceof MetadataRepositoryElement;
- }
-
protected void configureViewer(final TreeViewer treeViewer) {
super.configureViewer(treeViewer);
// Add drag support for IU's
@@ -153,8 +165,8 @@ public class MetadataRepositoriesView extends RepositoriesView {
protected int getRepoFlags() {
if (ProvAdminUIActivator.getDefault().getPreferenceStore().getBoolean(PreferenceConstants.PREF_HIDE_SYSTEM_REPOS))
- return IMetadataRepositoryManager.REPOSITORIES_NON_SYSTEM;
- return IMetadataRepositoryManager.REPOSITORIES_ALL;
+ return IRepositoryManager.REPOSITORIES_NON_SYSTEM;
+ return IRepositoryManager.REPOSITORIES_ALL;
}
/*
diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProfilesView.java b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProfilesView.java
index 2871487a1..1db355cb3 100644
--- a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProfilesView.java
+++ b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProfilesView.java
@@ -23,6 +23,7 @@ import org.eclipse.equinox.internal.provisional.p2.ui.actions.UpdateAction;
import org.eclipse.equinox.internal.provisional.p2.ui.model.InstalledIUElement;
import org.eclipse.equinox.internal.provisional.p2.ui.model.Profiles;
import org.eclipse.equinox.internal.provisional.p2.ui.operations.*;
+import org.eclipse.equinox.internal.provisional.p2.ui.policy.ProfileChooser;
import org.eclipse.equinox.internal.provisional.p2.ui.viewers.*;
import org.eclipse.jface.action.*;
import org.eclipse.jface.viewers.*;
@@ -86,7 +87,7 @@ public class ProfilesView extends ProvView {
protected void addListeners() {
super.addListeners();
- listener = new StructuredViewerProvisioningListener(viewer, StructuredViewerProvisioningListener.PROV_EVENT_IU | StructuredViewerProvisioningListener.PROV_EVENT_PROFILE, ProvAdminUIActivator.getDefault().getQueryProvider());
+ listener = new StructuredViewerProvisioningListener(viewer, StructuredViewerProvisioningListener.PROV_EVENT_IU | StructuredViewerProvisioningListener.PROV_EVENT_PROFILE);
ProvUI.addProvisioningListener(listener);
}
@@ -97,7 +98,7 @@ public class ProfilesView extends ProvView {
protected void configureViewer(TreeViewer treeViewer) {
super.configureViewer(treeViewer);
- InstallIUDropAdapter adapter = new InstallIUDropAdapter(treeViewer, ProvAdminUIActivator.getDefault().getPolicies());
+ InstallIUDropAdapter adapter = new InstallIUDropAdapter(ProvAdminUIActivator.getDefault().getPolicy(), treeViewer);
adapter.setFeedbackEnabled(false);
Transfer[] transfers = new Transfer[] {org.eclipse.jface.util.LocalSelectionTransfer.getTransfer()};
treeViewer.addDropSupport(DND.DROP_COPY, transfers, adapter);
@@ -137,9 +138,9 @@ public class ProfilesView extends ProvView {
super.makeActions();
addProfileAction = new AddProfileAction();
removeProfileAction = new RemoveProfileAction();
- uninstallAction = new UninstallAction(viewer, null, getProfileChooser(), ProvAdminUIActivator.getDefault().getPolicies(), getShell());
- updateAction = new UpdateAction(viewer, null, getProfileChooser(), ProvAdminUIActivator.getDefault().getPolicies(), getShell());
+ uninstallAction = new UninstallAction(ProvAdminUIActivator.getDefault().getPolicy(), viewer, null);
propertiesAction = new PropertyDialogAction(this.getSite(), viewer);
+ updateAction = new UpdateAction(ProvAdminUIActivator.getDefault().getPolicy(), viewer, null, true);
getViewSite().getActionBars().setGlobalActionHandler(ActionFactory.PROPERTIES.getId(), propertiesAction);
viewer.addSelectionChangedListener(new ISelectionChangedListener() {
@@ -178,15 +179,15 @@ public class ProfilesView extends ProvView {
}
protected IContentProvider getContentProvider() {
- return new DeferredQueryContentProvider(ProvAdminUIActivator.getDefault().getQueryProvider());
+ return new ProvElementContentProvider();
}
protected Object getInput() {
return new Profiles();
}
- IProfileChooser getProfileChooser() {
- return new IProfileChooser() {
+ ProfileChooser getProfileChooser() {
+ return new ProfileChooser() {
public String getProfileId(Shell shell) {
Object firstElement = getSelection().getFirstElement();
if (firstElement instanceof InstalledIUElement) {
@@ -197,10 +198,6 @@ public class ProfilesView extends ProvView {
return profile.getProfileId();
return null;
}
-
- public String getLabel() {
- return ProvAdminUIMessages.MetadataRepositoriesView_ChooseProfileDialogTitle;
- }
};
}
diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminQueryProvider.java b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminQueryProvider.java
deleted file mode 100644
index 71bfaca79..000000000
--- a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminQueryProvider.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM 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:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.equinox.internal.p2.ui.admin;
-
-import java.net.URL;
-import org.eclipse.equinox.internal.p2.ui.admin.preferences.PreferenceConstants;
-import org.eclipse.equinox.internal.provisional.p2.artifact.repository.IArtifactRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
-import org.eclipse.equinox.internal.provisional.p2.director.IUProfilePropertyQuery;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.IUPropertyQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.query.*;
-import org.eclipse.equinox.internal.provisional.p2.ui.ProvUI;
-import org.eclipse.equinox.internal.provisional.p2.ui.model.*;
-import org.eclipse.equinox.internal.provisional.p2.ui.operations.ProvisioningUtil;
-import org.eclipse.equinox.internal.provisional.p2.ui.policy.IQueryProvider;
-import org.eclipse.equinox.internal.provisional.p2.ui.query.*;
-import org.eclipse.equinox.internal.provisional.p2.updatechecker.UpdateEvent;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.ui.statushandlers.StatusManager;
-
-/**
- * Provides the queries appropriate for the SDK UI.
- *
- * @since 3.4
- */
-
-public class ProvAdminQueryProvider implements IQueryProvider {
-
- private Query allQuery = new Query() {
- public boolean isMatch(Object candidate) {
- return true;
- }
-
- };
-
- public ElementQueryDescriptor getQueryDescriptor(Object element, int queryType) {
- IQueryable queryable;
- QueryContext queryContext = null;
- // We don't currently use the query context to alter the query, but as soon as we do, we'll
- // want to make sure it gets passed through to the appropriate elements. So
- // we do that now.
- if (element instanceof QueriedElement)
- queryContext = ((QueriedElement) element).getQueryContext();
- IPreferenceStore store = ProvAdminUIActivator.getDefault().getPreferenceStore();
- boolean showGroupsOnly = store.getBoolean(PreferenceConstants.PREF_SHOW_GROUPS_ONLY);
- boolean hideSystem = store.getBoolean(PreferenceConstants.PREF_HIDE_SYSTEM_REPOS);
- boolean showLatest = store.getBoolean(PreferenceConstants.PREF_COLLAPSE_IU_VERSIONS);
- boolean useCategories = store.getBoolean(PreferenceConstants.PREF_USE_CATEGORIES);
- boolean showRootsOnly = store.getBoolean(PreferenceConstants.PREF_SHOW_INSTALL_ROOTS_ONLY);
- Query groupQuery = new IUPropertyQuery(IInstallableUnit.PROP_TYPE_GROUP, Boolean.TRUE.toString());
- Query categoryQuery = new IUPropertyQuery(IInstallableUnit.PROP_TYPE_CATEGORY, Boolean.TRUE.toString());
- Query query;
- IProfile profile;
- switch (queryType) {
- case IQueryProvider.ARTIFACT_REPOS :
- int flags = hideSystem ? IArtifactRepositoryManager.REPOSITORIES_NON_SYSTEM : IArtifactRepositoryManager.REPOSITORIES_ALL;
- queryable = new QueryableArtifactRepositoryManager(flags);
- return new ElementQueryDescriptor(queryable, null, new Collector() {
- public boolean accept(Object object) {
- if (object instanceof URL)
- return super.accept(new ArtifactRepositoryElement((URL) object));
- return true;
- }
- });
- case IQueryProvider.AVAILABLE_IUS :
- // Is it a rollback repository?
- if (element instanceof RollbackRepositoryElement) {
- Query profileQuery = new InstallableUnitQuery(((RollbackRepositoryElement) element).getProfileId());
- return new ElementQueryDescriptor(((RollbackRepositoryElement) element).getQueryable(), profileQuery, new AvailableIUCollector(this, ((RollbackRepositoryElement) element).getQueryable(), queryContext, false));
- }
- // It is a regular repository.
- // What should we show as a child of a repository?
- if (element instanceof MetadataRepositoryElement) {
- if (useCategories)
- // We are using categories, group into categories first.
- return new ElementQueryDescriptor(((MetadataRepositoryElement) element).getQueryable(), categoryQuery, new CategoryElementCollector(this, ((MetadataRepositoryElement) element).getQueryable(), queryContext, true));
- if (showGroupsOnly)
- // Query all groups and use the query result to optionally select the latest version only
- return new ElementQueryDescriptor(((MetadataRepositoryElement) element).getQueryable(), groupQuery, showLatest ? new LatestIUVersionElementCollector(this, ((MetadataRepositoryElement) element).getQueryable(), queryContext, false) : new AvailableIUCollector(this, ((MetadataRepositoryElement) element).getQueryable(), queryContext, false));
- if (showLatest)
- // We are not querying groups, but we are showing the latest version only
- return new ElementQueryDescriptor(((MetadataRepositoryElement) element).getQueryable(), allQuery, new LatestIUVersionElementCollector(this, ((MetadataRepositoryElement) element).getQueryable(), queryContext, false));
- // Show 'em all!
- return new ElementQueryDescriptor(((MetadataRepositoryElement) element).getQueryable(), allQuery, new AvailableIUCollector(this, ((MetadataRepositoryElement) element).getQueryable(), queryContext, false));
- }
- if (element instanceof MetadataRepositories) {
- MetadataRepositories metaRepos = (MetadataRepositories) element;
- if (metaRepos.getMetadataRepositories() == null)
- metaRepos.setRepoFlags(IMetadataRepositoryManager.REPOSITORIES_NON_SYSTEM);
- queryable = new QueryableMetadataRepositoryManager(metaRepos);
-
- if (useCategories)
- // We are using categories, group into categories first.
- return new ElementQueryDescriptor(queryable, categoryQuery, new CategoryElementCollector(this, queryable, queryContext, true));
- if (showGroupsOnly)
- // Query all groups and use the query result to optionally select the latest version only
- return new ElementQueryDescriptor(queryable, groupQuery, showLatest ? new LatestIUVersionElementCollector(this, queryable, queryContext, false) : new AvailableIUCollector(this, queryable, queryContext, false));
- if (showLatest)
- // We are not querying groups, but we are showing the latest version only
- return new ElementQueryDescriptor(queryable, allQuery, new LatestIUVersionElementCollector(this, queryable, queryContext, false));
- // Show 'em all!
- return new ElementQueryDescriptor(queryable, allQuery, new AvailableIUCollector(this, queryable, queryContext, false));
- }
- // Things have been grouped by category, now what?
- // Handle uncategorized elements first
- if (element instanceof UncategorizedCategoryElement) {
- // Will have to look at all categories and other items first.
- queryable = ((UncategorizedCategoryElement) element).getQueryable();
- Query firstPassQuery = allQuery;
- if (showGroupsOnly)
- firstPassQuery = new CompoundQuery(new Query[] {groupQuery, categoryQuery}, false);
- queryable = ((UncategorizedCategoryElement) element).getQueryable();
- Collector collector = showLatest ? new LatestIUVersionElementCollector(this, queryable, queryContext, false) : new AvailableIUCollector(this, queryable, queryContext, false);
- return new ElementQueryDescriptor(queryable, firstPassQuery, new UncategorizedElementCollector(this, queryable, queryContext, collector));
-
- }
- if (element instanceof CategoryElement) {
- Query membersOfCategoryQuery = new AnyRequiredCapabilityQuery(((CategoryElement) element).getRequirements());
- if (showGroupsOnly)
- // Query all groups and use the query result to optionally select the latest version only
- return new ElementQueryDescriptor(((CategoryElement) element).getQueryable(), new CompoundQuery(new Query[] {new CompoundQuery(new Query[] {groupQuery, categoryQuery}, false), membersOfCategoryQuery}, true), showLatest ? new LatestIUVersionElementCollector(this, ((CategoryElement) element).getQueryable(), queryContext, true) : new AvailableIUCollector(this, ((CategoryElement) element).getQueryable(), queryContext, true));
- if (showLatest)
- // We are not querying groups, but we are showing the latest version only
- return new ElementQueryDescriptor(((CategoryElement) element).getQueryable(), membersOfCategoryQuery, new LatestIUVersionElementCollector(this, ((CategoryElement) element).getQueryable(), queryContext, true));
- // Show 'em all!
- return new ElementQueryDescriptor(((CategoryElement) element).getQueryable(), membersOfCategoryQuery, new AvailableIUCollector(this, ((CategoryElement) element).getQueryable(), queryContext, true));
- }
- // We've already collapsed all versions, show the rest
- if (element instanceof IUVersionsElement) {
- IInstallableUnit iu = ((IUVersionsElement) element).getIU();
- return new ElementQueryDescriptor(((IUVersionsElement) element).getQueryable(), new InstallableUnitQuery(iu.getId()), new OtherIUVersionsCollector(iu, this, ((IUVersionsElement) element).getQueryable(), queryContext));
- }
- case IQueryProvider.AVAILABLE_UPDATES :
- profile = (IProfile) ProvUI.getAdapter(element, IProfile.class);
- IInstallableUnit[] toUpdate;
- Collector collector;
- if (profile != null) {
- collector = profile.query(new IUProfilePropertyQuery(profile, IInstallableUnit.PROP_PROFILE_ROOT_IU, Boolean.toString(true)), new Collector(), null);
- toUpdate = (IInstallableUnit[]) collector.toArray(IInstallableUnit.class);
- } else if (element instanceof UpdateEvent) {
- try {
- profile = ProvisioningUtil.getProfile(((UpdateEvent) element).getProfileId());
- } catch (ProvisionException e) {
- ProvUI.handleException(e, ProvAdminUIMessages.ProvAdminQueryProvider_UpdateQueryError, StatusManager.LOG);
- return null;
- }
- toUpdate = ((UpdateEvent) element).getIUs();
- } else
- return null;
- QueryableUpdates updateQueryable = new QueryableUpdates(toUpdate);
- if (showLatest)
- collector = new LatestIUVersionCollector(this, updateQueryable, queryContext, useCategories);
- else
- collector = new Collector();
- return new ElementQueryDescriptor(updateQueryable, allQuery, collector);
- case IQueryProvider.INSTALLED_IUS :
- profile = (IProfile) ProvUI.getAdapter(element, IProfile.class);
- if (profile == null)
- return null;
- if (showRootsOnly)
- query = new IUProfilePropertyQuery(profile, IInstallableUnit.PROP_PROFILE_ROOT_IU, Boolean.toString(true));
- else
- query = allQuery;
- if (showGroupsOnly)
- return new ElementQueryDescriptor(profile, new CompoundQuery(new Query[] {groupQuery, query}, true), new InstalledIUCollector(this, profile, queryContext));
- return new ElementQueryDescriptor(profile, query, new InstalledIUCollector(this, profile, queryContext));
- case IQueryProvider.METADATA_REPOS :
- if (element instanceof MetadataRepositories) {
- MetadataRepositories metaRepos = (MetadataRepositories) element;
- if (metaRepos.getMetadataRepositories() == null)
- metaRepos.setRepoFlags(hideSystem ? IMetadataRepositoryManager.REPOSITORIES_NON_SYSTEM : IMetadataRepositoryManager.REPOSITORIES_ALL);
- queryable = new QueryableMetadataRepositoryManager(metaRepos);
- return new ElementQueryDescriptor(queryable, null, new MetadataRepositoryElementCollector(this, queryContext));
- }
- return null;
- case IQueryProvider.PROFILES :
- queryable = new QueryableProfileRegistry();
- return new ElementQueryDescriptor(queryable, new Query() {
- public boolean isMatch(Object candidate) {
- return ProvUI.getAdapter(candidate, IProfile.class) != null;
- }
- }, new ProfileElementCollector(this, null, queryContext));
- default :
- return null;
- }
- }
-}
diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminUIActivator.java b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminUIActivator.java
index c07c2a3bf..a6cda821f 100644
--- a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminUIActivator.java
+++ b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminUIActivator.java
@@ -10,15 +10,25 @@
*******************************************************************************/
package org.eclipse.equinox.internal.p2.ui.admin;
+import org.eclipse.equinox.internal.p2.ui.admin.dialogs.AddProfileDialog;
+import org.eclipse.equinox.internal.p2.ui.admin.preferences.PreferenceConstants;
import org.eclipse.equinox.internal.provisional.p2.core.IServiceUI;
+import org.eclipse.equinox.internal.provisional.p2.core.repository.IRepositoryManager;
import org.eclipse.equinox.internal.provisional.p2.director.ProvisioningPlan;
-import org.eclipse.equinox.internal.provisional.p2.ui.*;
+import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
+import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
+import org.eclipse.equinox.internal.provisional.p2.ui.ProvUI;
+import org.eclipse.equinox.internal.provisional.p2.ui.ValidationDialogServiceUI;
+import org.eclipse.equinox.internal.provisional.p2.ui.model.Profiles;
import org.eclipse.equinox.internal.provisional.p2.ui.policy.*;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.equinox.internal.provisional.p2.ui.viewers.ProvElementContentProvider;
+import org.eclipse.equinox.internal.provisional.p2.ui.viewers.ProvElementLabelProvider;
import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.custom.BusyIndicator;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.jface.window.Window;
import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.dialogs.ListDialog;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceRegistration;
@@ -34,11 +44,10 @@ public class ProvAdminUIActivator extends AbstractUIPlugin {
public static final String PLUGIN_ID = "org.eclipse.equinox.internal.provisional.p2.ui.admin"; //$NON-NLS-1$
public static final String PERSPECTIVE_ID = "org.eclipse.equinox.internal.provisional.p2.ui.admin.ProvisioningPerspective"; //$NON-NLS-1$
- private IQueryProvider queryProvider;
- private LicenseManager licenseManager;
- private IPlanValidator planValidator;
- private Policies policies;
private ServiceRegistration certificateUIRegistration;
+ private IPropertyChangeListener preferenceListener;
+
+ Policy policy;
public static BundleContext getContext() {
return context;
@@ -78,69 +87,99 @@ public class ProvAdminUIActivator extends AbstractUIPlugin {
super.start(bundleContext);
plugin = this;
ProvAdminUIActivator.context = bundleContext;
+ initializePolicy();
certificateUIRegistration = context.registerService(IServiceUI.class.getName(), new ValidationDialogServiceUI(), null);
+ getPreferenceStore().addPropertyChangeListener(getPreferenceListener());
}
public void stop(BundleContext bundleContext) throws Exception {
plugin = null;
certificateUIRegistration.unregister();
+ getPreferenceStore().removePropertyChangeListener(preferenceListener);
super.stop(bundleContext);
+ policy = null;
}
- public IQueryProvider getQueryProvider() {
- if (queryProvider == null)
- queryProvider = new ProvAdminQueryProvider();
- return queryProvider;
+ private IPropertyChangeListener getPreferenceListener() {
+ if (preferenceListener == null) {
+ preferenceListener = new IPropertyChangeListener() {
+ public void propertyChange(PropertyChangeEvent event) {
+ updateForPreferences(getPolicy().getQueryContext());
+ }
+ };
+ }
+ return preferenceListener;
}
- public LicenseManager getLicenseManager() {
- if (licenseManager == null)
- licenseManager = new SimpleLicenseManager();
- return licenseManager;
- }
+ void updateForPreferences(IUViewQueryContext queryContext) {
+ if (getPreferenceStore().getBoolean(PreferenceConstants.PREF_SHOW_GROUPS_ONLY))
+ queryContext.setVisibleAvailableIUProperty(IInstallableUnit.PROP_TYPE_GROUP);
+ else
+ queryContext.setVisibleAvailableIUProperty(null);
+ if (getPreferenceStore().getBoolean(PreferenceConstants.PREF_SHOW_INSTALL_ROOTS_ONLY))
+ queryContext.setVisibleInstalledIUProperty(IInstallableUnit.PROP_PROFILE_ROOT_IU);
+ else
+ queryContext.setVisibleInstalledIUProperty(null);
+
+ if (getPreferenceStore().getBoolean(PreferenceConstants.PREF_HIDE_SYSTEM_REPOS)) {
+ queryContext.setArtifactRepositoryFlags(IRepositoryManager.REPOSITORIES_NON_SYSTEM);
+ queryContext.setMetadataRepositoryFlags(IRepositoryManager.REPOSITORIES_NON_SYSTEM);
+ } else {
+ queryContext.setArtifactRepositoryFlags(IRepositoryManager.REPOSITORIES_ALL);
+ queryContext.setMetadataRepositoryFlags(IRepositoryManager.REPOSITORIES_ALL);
+ }
+ if (getPreferenceStore().getBoolean(PreferenceConstants.PREF_USE_CATEGORIES))
+ queryContext.setViewType(IUViewQueryContext.AVAILABLE_VIEW_BY_CATEGORY);
+ else
+ queryContext.setViewType(IUViewQueryContext.AVAILABLE_VIEW_FLAT);
+ queryContext.setShowLatestVersionsOnly(getPreferenceStore().getBoolean(PreferenceConstants.PREF_COLLAPSE_IU_VERSIONS));
- public IPlanValidator getPlanValidator() {
- if (planValidator == null)
- planValidator = new IPlanValidator() {
- public boolean continueWorkingWithPlan(ProvisioningPlan plan, Shell shell) {
- if (plan == null)
- return false;
- // If the plan requires install handler support, we want to open the old update UI
- if (UpdateManagerCompatibility.requiresInstallHandlerSupport(plan)) {
- MessageDialog dialog = new MessageDialog(shell, ProvAdminUIMessages.ProvAdminUIActivator_UnsupportedInstallHandler, null, ProvAdminUIMessages.ProvAdminUIActivator_UnsupportedInstallHandlerMessage, MessageDialog.WARNING, new String[] {ProvAdminUIMessages.ProvAdminUIActivator_LaunchUpdateManager, ProvAdminUIMessages.ProvAdminUIActivator_ContinueAnyway, IDialogConstants.CANCEL_LABEL}, 0);
- int ret = dialog.open();
- if (ret == 1) // continue anyway
- return true;
- if (ret == 0)
- BusyIndicator.showWhile(shell.getDisplay(), new Runnable() {
- public void run() {
- UpdateManagerCompatibility.openInstaller();
- }
- });
- return false;
- }
- return true;
- }
- };
- return planValidator;
}
- public Policies getPolicies() {
- if (policies == null) {
- policies = new Policies() {
- public LicenseManager getLicenseManager() {
- return ProvAdminUIActivator.this.getLicenseManager();
+ void initializePolicy() {
+ policy = new Policy();
+ // Manipulate the default query context according to our preferences
+ IUViewQueryContext queryContext = new IUViewQueryContext(IUViewQueryContext.AVAILABLE_VIEW_BY_REPO);
+ policy.setQueryContext(queryContext);
+ updateForPreferences(queryContext);
+ policy.setPlanValidator(new PlanValidator() {
+ public boolean continueWorkingWithPlan(ProvisioningPlan plan, Shell shell) {
+ if (plan == null)
+ return false;
+ return true;
+ }
+ });
+ policy.setProfileChooser(new ProfileChooser() {
+ public String getProfileId(Shell shell) {
+ // TODO would be nice if the profile chooser dialog let you
+ // create a new profile
+ ProvElementContentProvider provider = new ProvElementContentProvider();
+ if (provider.getElements(new Profiles()).length == 0) {
+ AddProfileDialog dialog = new AddProfileDialog(shell, new String[0]);
+ if (dialog.open() == Window.OK) {
+ return dialog.getAddedProfileId();
+ }
+ return null;
}
- public IPlanValidator getPlanValidator() {
- return ProvAdminUIActivator.this.getPlanValidator();
+ ListDialog dialog = new ListDialog(shell);
+ dialog.setTitle(ProvAdminUIMessages.MetadataRepositoriesView_ChooseProfileDialogTitle);
+ dialog.setLabelProvider(new ProvElementLabelProvider());
+ dialog.setInput(new Profiles());
+ dialog.setContentProvider(provider);
+ dialog.open();
+ Object[] result = dialog.getResult();
+ if (result != null && result.length > 0) {
+ IProfile profile = (IProfile) ProvUI.getAdapter(result[0], IProfile.class);
+ if (profile != null)
+ return profile.getProfileId();
}
+ return null;
+ }
+ });
+ }
- public IQueryProvider getQueryProvider() {
- return ProvAdminUIActivator.this.getQueryProvider();
- }
- };
- }
- return policies;
+ public Policy getPolicy() {
+ return policy;
}
}
diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminUIMessages.java b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminUIMessages.java
index e8c1bad14..aef597ca5 100644
--- a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminUIMessages.java
+++ b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminUIMessages.java
@@ -32,6 +32,8 @@ public class ProvAdminUIMessages extends NLS {
public static String MetadataRepositoriesView_AddRepositoryLabel;
public static String MetadataRepositoriesView_ChooseProfileDialogTitle;
public static String MetadataRepositoriesView_RemoveRepositoryTooltip;
+ public static String MetadataRepositoriesView_RevertLabel;
+ public static String MetadataRepositoriesView_UnexpectedRevertError;
public static String ArtifactRepositoriesView_AddRepositoryTooltip;
public static String ArtifactRepositoriesView_AddRepositoryLabel;
public static String ArtifactRepositoriesView_RemoveRepositoryTooltip;
diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvView.java b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvView.java
index f7e2c2f91..156d2b79e 100644
--- a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvView.java
+++ b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvView.java
@@ -156,6 +156,7 @@ abstract class ProvView extends ViewPart {
preferenceListener = new IPropertyChangeListener() {
public void propertyChange(PropertyChangeEvent event) {
if (getVisualProperties().contains(event.getProperty())) {
+ ProvAdminUIActivator.getDefault().initializePolicy();
ProvView.this.refreshAll();
}
}
diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/RepositoriesView.java b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/RepositoriesView.java
index ebab434a0..ac0adb79a 100644
--- a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/RepositoriesView.java
+++ b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/RepositoriesView.java
@@ -10,15 +10,17 @@
*******************************************************************************/
package org.eclipse.equinox.internal.p2.ui.admin;
+import org.eclipse.equinox.internal.provisional.p2.ui.viewers.StructuredViewerProvisioningListener;
+
+import org.eclipse.equinox.internal.provisional.p2.ui.model.IRepositoryElement;
+
import java.util.ArrayList;
import java.util.List;
import org.eclipse.equinox.internal.p2.ui.admin.preferences.PreferenceConstants;
import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
import org.eclipse.equinox.internal.provisional.p2.ui.*;
-import org.eclipse.equinox.internal.provisional.p2.ui.model.IRepositoryElement;
import org.eclipse.equinox.internal.provisional.p2.ui.operations.ProvisioningOperation;
import org.eclipse.equinox.internal.provisional.p2.ui.viewers.RepositoryContentProvider;
-import org.eclipse.equinox.internal.provisional.p2.ui.viewers.StructuredViewerProvisioningListener;
import org.eclipse.jface.action.*;
import org.eclipse.jface.viewers.*;
import org.eclipse.swt.widgets.Shell;
@@ -82,7 +84,7 @@ abstract class RepositoriesView extends ProvView {
protected void addListeners() {
super.addListeners();
- listener = new StructuredViewerProvisioningListener(viewer, getListenerEventTypes(), ProvAdminUIActivator.getDefault().getQueryProvider());
+ listener = new StructuredViewerProvisioningListener(viewer, getListenerEventTypes());
ProvUI.addProvisioningListener(listener);
}
@@ -156,7 +158,7 @@ abstract class RepositoriesView extends ProvView {
}
protected IContentProvider getContentProvider() {
- return new RepositoryContentProvider(ProvAdminUIActivator.getDefault().getQueryProvider());
+ return new RepositoryContentProvider();
}
@@ -174,7 +176,9 @@ abstract class RepositoriesView extends ProvView {
protected abstract String getRemoveCommandTooltip();
- protected abstract boolean isRepository(Object element);
+ protected boolean isRepository(Object element) {
+ return element instanceof IRepositoryElement;
+ }
protected abstract int getListenerEventTypes();
diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/AddArtifactRepositoryDialog.java b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/AddArtifactRepositoryDialog.java
index dea297304..c3a37207f 100644
--- a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/AddArtifactRepositoryDialog.java
+++ b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/AddArtifactRepositoryDialog.java
@@ -16,8 +16,8 @@ import org.eclipse.equinox.internal.p2.ui.admin.ProvAdminUIActivator;
import org.eclipse.equinox.internal.p2.ui.admin.ProvAdminUIMessages;
import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
import org.eclipse.equinox.internal.provisional.p2.ui.dialogs.AddRepositoryDialog;
-import org.eclipse.equinox.internal.provisional.p2.ui.dialogs.URLValidator;
import org.eclipse.equinox.internal.provisional.p2.ui.operations.*;
+import org.eclipse.equinox.internal.provisional.p2.ui.policy.URLValidator;
import org.eclipse.swt.widgets.Shell;
/**
@@ -38,7 +38,7 @@ public class AddArtifactRepositoryDialog extends AddRepositoryDialog {
protected URLValidator createURLValidator() {
return new URLValidator() {
- protected IStatus validateRepositoryURL(URL location, boolean contactRepositories, IProgressMonitor monitor) {
+ public IStatus validateRepositoryURL(URL location, boolean contactRepositories, IProgressMonitor monitor) {
IStatus duplicateStatus = Status.OK_STATUS;
URL[] knownRepositories;
try {
diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUProfilePropertiesGroup.java b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUProfilePropertiesGroup.java
index e71fd366e..9068eb14e 100644
--- a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUProfilePropertiesGroup.java
+++ b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUProfilePropertiesGroup.java
@@ -10,12 +10,13 @@
*******************************************************************************/
package org.eclipse.equinox.internal.p2.ui.admin.dialogs;
+import org.eclipse.equinox.internal.provisional.p2.ui.model.InstalledIUElement;
+
import org.eclipse.equinox.internal.p2.ui.admin.ProvAdminUIMessages;
import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
import org.eclipse.equinox.internal.provisional.p2.ui.ProvUI;
-import org.eclipse.equinox.internal.provisional.p2.ui.model.InstalledIUElement;
import org.eclipse.equinox.internal.provisional.p2.ui.operations.ProvisioningUtil;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.SWT;
diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUPropertiesGroup.java b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUPropertiesGroup.java
index 2ba63aeec..67c265a32 100644
--- a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUPropertiesGroup.java
+++ b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUPropertiesGroup.java
@@ -11,9 +11,10 @@
*******************************************************************************/
package org.eclipse.equinox.internal.p2.ui.admin.dialogs;
+import org.eclipse.equinox.internal.provisional.p2.ui.IUPropertyUtils;
+
import org.eclipse.equinox.internal.p2.ui.admin.ProvAdminUIMessages;
import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.ui.query.IUPropertyUtils;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.layout.GridData;
diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/InstalledIUPropertyPage.java b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/InstalledIUPropertyPage.java
index f9aa001be..ba3a56d39 100644
--- a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/InstalledIUPropertyPage.java
+++ b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/InstalledIUPropertyPage.java
@@ -10,8 +10,9 @@
*******************************************************************************/
package org.eclipse.equinox.internal.p2.ui.admin.dialogs;
-import org.eclipse.equinox.internal.p2.ui.admin.ProvAdminUIMessages;
import org.eclipse.equinox.internal.provisional.p2.ui.model.InstalledIUElement;
+
+import org.eclipse.equinox.internal.p2.ui.admin.ProvAdminUIMessages;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/messages.properties b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/messages.properties
index 84971d6a7..28a0a0237 100644
--- a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/messages.properties
+++ b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/messages.properties
@@ -14,10 +14,10 @@ ProvAdminUIActivator_ContinueAnyway=Continue
ProvAdminUIActivator_LaunchUpdateManager=Launch UM...
ProvAdminUIActivator_UnsupportedInstallHandler=Unsupported Install Handler
ProvAdminUIActivator_UnsupportedInstallHandlerMessage=The feature you are trying to install has defined an Update Manager install handler. You may launch the old Update Manager in order to get the install handler support, or continue the install and ignore the install handler.
-ProvisioningPrefPage_ShowGroupsOnly=Show only &group IU's in profile or repository views
+ProvisioningPrefPage_ShowGroupsOnly=Show only &group IU's in repository views
ProvisioningPrefPage_ShowInstallRootsOnly=Show only the install &roots in a profile
ProvisioningPrefPage_HideSystemRepos=Hide &system repositories in repository views
-ProvisioningPrefPage_CollapseIUVersions=Collapse multiple IU &versions underneath latest version
+ProvisioningPrefPage_CollapseIUVersions=Show only the latest &versions of IU's
ProvisioningPrefPage_UseCategories=Show IUs by &category in repository views
InstalledIUPropertyPage_NoInfoAvailable=No profile-specific properties are available.
AddProfileDialog_Title=Add Profile
@@ -29,7 +29,9 @@ MetadataRepositoriesView_AddRepositoryLabel=Add repository...
MetadataRepositoriesView_AddRepositoryTooltip=Add a new metadata repository
RepositoriesView_RemoveCommandLabel=Remove
MetadataRepositoriesView_RemoveRepositoryTooltip=Remove the selected metadata repositories
+MetadataRepositoriesView_RevertLabel=Revert to Snapshot
MetadataRepositoriesView_ChooseProfileDialogTitle=Choose Profile
+MetadataRepositoriesView_UnexpectedRevertError=Unexpected error while reverting profile.
ArtifactRepositoriesView_RemoveRepositoryOperationLabel=Remove Artifact Repositories
ArtifactRepositoriesView_AddRepositoryLabel=Add repository...
ArtifactRepositoriesView_AddRepositoryTooltip=Add a new artifact repository

Back to the top