diff options
author | Susan Franklin | 2009-01-06 19:45:18 +0000 |
---|---|---|
committer | Susan Franklin | 2009-01-06 19:45:18 +0000 |
commit | 29d3d43f092ba059efe70ba40c9b9040d9177d83 (patch) | |
tree | a0f432c429325ff83f41bc368aef679d6f549577 /bundles | |
parent | 01c8555d9d8a585e4e8b7e160920ce59b7ead8f4 (diff) | |
download | rt.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.java | 20 |
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 : |