Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSusan Franklin2009-01-06 19:45:18 +0000
committerSusan Franklin2009-01-06 19:45:18 +0000
commit29d3d43f092ba059efe70ba40c9b9040d9177d83 (patch)
treea0f432c429325ff83f41bc368aef679d6f549577 /bundles
parent01c8555d9d8a585e4e8b7e160920ce59b7ead8f4 (diff)
downloadrt.equinox.p2-29d3d43f092ba059efe70ba40c9b9040d9177d83.tar.gz
rt.equinox.p2-29d3d43f092ba059efe70ba40c9b9040d9177d83.tar.xz
rt.equinox.p2-29d3d43f092ba059efe70ba40c9b9040d9177d83.zip
Bug 227675 - [metadata] Generation of metadata to support visibility/nesting of features using categories
Diffstat (limited to 'bundles')
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/DefaultQueryProvider.java20
1 files changed, 7 insertions, 13 deletions
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/DefaultQueryProvider.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/DefaultQueryProvider.java
index b78577373..06d0a7fbb 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/DefaultQueryProvider.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/DefaultQueryProvider.java
@@ -109,20 +109,9 @@ public class DefaultQueryProvider extends QueryProvider {
return new ElementQueryDescriptor(queryable, topLevelQuery, collector);
}
// Installed content not a concern for collecting categories
- return new ElementQueryDescriptor(queryable, categoryQuery, new CategoryElementCollector(queryable, element, true));
+ return new ElementQueryDescriptor(queryable, categoryQuery, new CategoryElementCollector(queryable, element));
}
- // Showing children of categories that we've already collected
- // Must do this one before CategoryElement since it's a subclass
- if (element instanceof UncategorizedCategoryElement) {
- // Will have to look at all categories and groups and from there, figure out what's left
- Query firstPassQuery = new CompoundQuery(new Query[] {topLevelQuery, categoryQuery}, false);
- availableIUCollector = showLatest ? new LatestIUVersionElementCollector(queryable, element, false, context.getShowAvailableChildren()) : new AvailableIUCollector(queryable, element, false, context.getShowAvailableChildren());
- if (targetProfile != null)
- availableIUCollector.markInstalledIUs(targetProfile, hideInstalled);
- return new ElementQueryDescriptor(queryable, firstPassQuery, new UncategorizedElementCollector(queryable, element, availableIUCollector));
-
- }
// If it's a category or some other IUElement to drill down in, we get the requirements and show all requirements
// that are also visible in the available list.
if (element instanceof CategoryElement || (element instanceof IIUElement && ((IIUElement) element).shouldShowChildren())) {
@@ -136,7 +125,12 @@ public class DefaultQueryProvider extends QueryProvider {
availableIUCollector = new AvailableIUCollector(queryable, element, true, drillDown);
if (targetProfile != null)
availableIUCollector.markInstalledIUs(targetProfile, hideInstalled);
- return new ElementQueryDescriptor(queryable, new CompoundQuery(new Query[] {new CompoundQuery(new Query[] {topLevelQuery, categoryQuery}, false), meetsAnyRequirementQuery}, true), availableIUCollector);
+ // if it's a category, the metadata was specifically set up so that the requirements are the IU's that should
+ // be visible in the category.
+ if (element instanceof CategoryElement)
+ return new ElementQueryDescriptor(queryable, meetsAnyRequirementQuery, availableIUCollector);
+ // If it's not a category, these are generic requirements and should be filtered by the visibility property (topLevelQuery)
+ return new ElementQueryDescriptor(queryable, new CompoundQuery(new Query[] {topLevelQuery, meetsAnyRequirementQuery}, true), availableIUCollector);
}
return null;
case QueryProvider.AVAILABLE_UPDATES :

Back to the top