diff options
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/MetadataRepositoriesView.java')
-rw-r--r-- | bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/MetadataRepositoriesView.java | 72 |
1 files changed, 37 insertions, 35 deletions
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 172726c5e..df1c314c1 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,27 +11,24 @@ *******************************************************************************/ package org.eclipse.equinox.internal.p2.ui.admin; -import org.eclipse.equinox.internal.provisional.p2.repository.IRepositoryManager; - -import java.net.URI; -import java.util.ArrayList; import java.util.List; +import org.eclipse.equinox.internal.p2.ui.ProvUIProvisioningListener; +import org.eclipse.equinox.internal.p2.ui.QueryableMetadataRepositoryManager; +import org.eclipse.equinox.internal.p2.ui.actions.InstallAction; import org.eclipse.equinox.internal.p2.ui.admin.dialogs.AddMetadataRepositoryDialog; import org.eclipse.equinox.internal.p2.ui.admin.preferences.PreferenceConstants; -import org.eclipse.equinox.internal.provisional.p2.ui.ProvisioningOperationRunner; -import org.eclipse.equinox.internal.provisional.p2.ui.actions.InstallAction; -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.RemoveRepositoryOperation; -import org.eclipse.equinox.internal.provisional.p2.ui.viewers.IUDragAdapter; -import org.eclipse.equinox.internal.provisional.p2.ui.viewers.StructuredViewerProvisioningListener; +import org.eclipse.equinox.internal.p2.ui.model.MetadataRepositories; +import org.eclipse.equinox.internal.p2.ui.query.IUViewQueryContext; +import org.eclipse.equinox.internal.p2.ui.viewers.IUDragAdapter; +import org.eclipse.equinox.p2.operations.RepositoryTracker; +import org.eclipse.equinox.p2.repository.IRepositoryManager; +import org.eclipse.equinox.p2.ui.Policy; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.Separator; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.dnd.*; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.part.PluginTransfer; -import org.eclipse.ui.statushandlers.StatusManager; /** * This view allows users to interact with metadata repositories @@ -41,6 +38,8 @@ import org.eclipse.ui.statushandlers.StatusManager; public class MetadataRepositoriesView extends RepositoriesView { private InstallAction installAction; + private RepositoryTracker tracker; + MetadataRepositories input; /** * The constructor. @@ -50,7 +49,18 @@ public class MetadataRepositoriesView extends RepositoriesView { } protected Object getInput() { - return new MetadataRepositories(ProvAdminUIActivator.getDefault().getPolicy()); + if (input == null) { + // view by repo + IUViewQueryContext context = new IUViewQueryContext(IUViewQueryContext.AVAILABLE_VIEW_BY_REPO); + Policy policy = ProvAdminUIActivator.getDefault().getPolicy(); + context.setShowLatestVersionsOnly(policy.getShowLatestVersionsOnly()); + context.setShowInstallChildren(policy.getShowDrilldownRequirements()); + context.setShowProvisioningPlanChildren(policy.getShowDrilldownRequirements()); + context.setUseCategories(policy.getGroupByCategory()); + + input = new MetadataRepositories(context, getProvisioningUI(), new QueryableMetadataRepositoryManager(getProvisioningUI(), false)); + } + return input; } protected String getAddCommandLabel() { @@ -66,21 +76,12 @@ public class MetadataRepositoriesView extends RepositoriesView { } protected int openAddRepositoryDialog(Shell shell) { - return new AddMetadataRepositoryDialog(shell, ProvAdminUIActivator.getDefault().getPolicy()).open(); - } - - protected RemoveRepositoryOperation getRemoveOperation(Object[] elements) { - ArrayList locations = new ArrayList(); - for (int i = 0; i < elements.length; i++) { - if (elements[i] instanceof IRepositoryElement) - locations.add(((IRepositoryElement) elements[i]).getLocation()); - } - return new RemoveMetadataRepositoryOperation(ProvAdminUIMessages.ArtifactRepositoriesView_RemoveRepositoryOperationLabel, (URI[]) locations.toArray(new URI[locations.size()])); + return new AddMetadataRepositoryDialog(shell, getProvisioningUI()).open(); } protected void makeActions() { super.makeActions(); - installAction = new InstallAction(ProvAdminUIActivator.getDefault().getPolicy(), viewer, null); + installAction = new InstallAction(getProvisioningUI(), viewer, null); } protected void fillContextMenu(IMenuManager manager) { @@ -109,21 +110,22 @@ public class MetadataRepositoriesView extends RepositoriesView { * @see org.eclipse.equinox.internal.p2.ui.admin.RepositoriesView#getListenerEventTypes() */ protected int getListenerEventTypes() { - return StructuredViewerProvisioningListener.PROV_EVENT_METADATA_REPOSITORY; + return ProvUIProvisioningListener.PROV_EVENT_METADATA_REPOSITORY; } - /* - * (non-Javadoc) - * @see org.eclipse.equinox.internal.p2.ui.admin.ProvView#refreshUnderlyingModel() - */ - protected void refreshUnderlyingModel() { - ProvisioningOperationRunner.schedule(new RefreshMetadataRepositoriesOperation(ProvAdminUIMessages.ProvView_RefreshCommandLabel, getRepoFlags()), StatusManager.SHOW | StatusManager.LOG); - } - - protected List getVisualProperties() { - List list = super.getVisualProperties(); + protected List<String> getVisualProperties() { + List<String> list = super.getVisualProperties(); list.add(PreferenceConstants.PREF_USE_CATEGORIES); list.add(PreferenceConstants.PREF_COLLAPSE_IU_VERSIONS); return list; } + + /* (non-Javadoc) + * @see org.eclipse.equinox.internal.p2.ui.admin.RepositoriesView#getRepositoryTracker() + */ + protected RepositoryTracker getRepositoryTracker() { + if (tracker == null) + tracker = new MetadataRepositoryTracker(getProvisioningUI()); + return tracker; + } } |