Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/query/IUViewQueryContext.java')
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/query/IUViewQueryContext.java169
1 files changed, 169 insertions, 0 deletions
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/query/IUViewQueryContext.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/query/IUViewQueryContext.java
new file mode 100644
index 000000000..0aa3daf34
--- /dev/null
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/query/IUViewQueryContext.java
@@ -0,0 +1,169 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 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.query;
+
+import org.eclipse.equinox.internal.p2.ui.ProvUIMessages;
+import org.eclipse.equinox.internal.p2.ui.QueryProvider;
+
+/**
+ * IUViewQueryContext defines the different ways
+ * IUs can be viewed. Clients can use this context to
+ * control how the various IU views are represented and traversed.
+ *
+ * @since 2.0
+ */
+public class IUViewQueryContext {
+ public static final int AVAILABLE_VIEW_BY_CATEGORY = 1;
+ public static final int AVAILABLE_VIEW_BY_REPO = 2;
+ public static final int AVAILABLE_VIEW_FLAT = 3;
+
+ // Available view settings
+ // Default available view to repo as this provides the fastest information
+ private int view = AVAILABLE_VIEW_BY_REPO;
+ // Whether to show latest versions only, defaults to
+ // true. Clients typically use a pref setting or dialog
+ // setting to initialize
+ private boolean showLatestVersionsOnly = true;
+ // Whether to hide things that are already installed
+ // Defaults to false since we wouldn't know what profile to use
+ private boolean hideAlreadyInstalled = false;
+ // Whether to group items in repos by category. Note this only makes sense when the
+ // view type is AVAILABLE_VIEW_BY_REPO
+ private boolean useCategories = true;
+ // Whether to drill down into installed items
+ private boolean showInstallChildren = true;
+ // Whether to drill down into available items
+ private boolean showAvailableChildren = false;
+ // Whether to drill down into items in a provisioning plan
+ private boolean showProvisioningPlanChildren = true;
+
+ private String profileId = null;
+
+ private String hidingInstalledDescription = ProvUIMessages.IUViewQueryContext_AllAreInstalledDescription;
+ private String groupingCategoriesDescription = ProvUIMessages.IUViewQueryContext_NoCategorizedItemsDescription;
+
+ public IUViewQueryContext(int viewType) {
+ this.view = viewType;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.equinox.internal.provisional.p2.ui.query.QueryContext#getQueryType()
+ */
+ public int getQueryType() {
+ if (view == AVAILABLE_VIEW_BY_REPO)
+ return QueryProvider.METADATA_REPOS;
+ return QueryProvider.AVAILABLE_IUS;
+ }
+
+ public int getViewType() {
+ return view;
+ }
+
+ public void setViewType(int viewType) {
+ view = viewType;
+ }
+
+ public boolean getShowLatestVersionsOnly() {
+ return showLatestVersionsOnly;
+ }
+
+ public void setShowLatestVersionsOnly(boolean showLatest) {
+ showLatestVersionsOnly = showLatest;
+ }
+
+ public void hideAlreadyInstalled(String installedProfileId) {
+ profileId = installedProfileId;
+ hideAlreadyInstalled = true;
+ }
+
+ public void showAlreadyInstalled() {
+ hideAlreadyInstalled = false;
+ }
+
+ public boolean getHideAlreadyInstalled() {
+ return hideAlreadyInstalled;
+ }
+
+ public String getInstalledProfileId() {
+ return profileId;
+ }
+
+ public void setInstalledProfileId(String profileId) {
+ this.profileId = profileId;
+ }
+
+ /**
+ * Set a boolean that indicates whether categories should be used when
+ * viewing by repository.
+ *
+ * useCategories <code>true</code> if a site in a sites view should expand into categories,
+ * <code>false</code> if it should expand into IU's.
+ */
+
+ public void setUseCategories(boolean useCategories) {
+ this.useCategories = useCategories;
+ }
+
+ /**
+ * Return a boolean that indicates whether categories should be used when
+ * viewing by repository.
+ *
+ * @return <code>true</code> if a site in a sites view should expand into categories,
+ * <code>false</code> if it should expand into IU's.
+ */
+ public boolean getUseCategories() {
+ return useCategories;
+ }
+
+ public boolean getShowInstallChildren() {
+ return showInstallChildren;
+ }
+
+ public void setShowInstallChildren(boolean showChildren) {
+ showInstallChildren = showChildren;
+ }
+
+ public boolean getShowAvailableChildren() {
+ return showAvailableChildren;
+ }
+
+ public void setShowAvailableChildren(boolean showChildren) {
+ showAvailableChildren = showChildren;
+ }
+
+ public boolean getShowProvisioningPlanChildren() {
+ return showProvisioningPlanChildren;
+ }
+
+ public void setShowProvisioningPlanChildren(boolean showChildren) {
+ showProvisioningPlanChildren = showChildren;
+ }
+
+ public String getHidingInstalledDescription() {
+ return hidingInstalledDescription;
+ }
+
+ public void setHidingInstalledDescription(String description) {
+ hidingInstalledDescription = description;
+ }
+
+ public String getUsingCategoriesDescription() {
+ return groupingCategoriesDescription;
+ }
+
+ public void setUsingCategoriesDescription(String description) {
+ groupingCategoriesDescription = description;
+ }
+
+ public boolean shouldGroupByCategories() {
+ return view == AVAILABLE_VIEW_BY_CATEGORY || (view == AVAILABLE_VIEW_BY_REPO && useCategories);
+ }
+}

Back to the top