Bug 495726: MetadataRepositoryElementWrapper ignores parent context
If have content set for MetadataRepositories and children of it is
MetedataRepository, because of this wrapper context is not passed
around, for example if I say I don't want filters, it will only
apply to root and not individual repos which does not make any sense
Change-Id: I8a89d9366f9cd7575f36c85c66e025b782d6019a
Signed-off-by: elaskavaia <elaskavaia.cdt@gmail.com>
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/query/MetadataRepositoryElementWrapper.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/query/MetadataRepositoryElementWrapper.java
index 70487fc..67f3207 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/query/MetadataRepositoryElementWrapper.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/query/MetadataRepositoryElementWrapper.java
@@ -16,6 +16,7 @@
import org.eclipse.equinox.internal.p2.ui.model.*;
import org.eclipse.equinox.p2.operations.ProvisioningSession;
import org.eclipse.equinox.p2.query.IQueryable;
+import org.eclipse.equinox.p2.ui.ProvisioningUI;
/**
* ElementWrapper that accepts the matched repo URLs and
@@ -47,13 +48,16 @@
*/
protected Object wrap(Object item) {
// Assume the item is enabled
- boolean enabled = true;
+
// if the parent is a queried element then use its provisioning UI to find out about enablement
if (parent instanceof QueriedElement) {
- ProvisioningSession session = ((QueriedElement) parent).getProvisioningUI().getSession();
- enabled = ProvUI.getMetadataRepositoryManager(session).isEnabled((URI) item);
- }
- return super.wrap(new MetadataRepositoryElement(parent, (URI) item, enabled));
+ QueriedElement qe = (QueriedElement) parent;
+ ProvisioningUI provisioningUI = qe.getProvisioningUI();
+ ProvisioningSession session = provisioningUI.getSession();
+ boolean enabled = ProvUI.getMetadataRepositoryManager(session).isEnabled((URI) item);
+ return super.wrap(new MetadataRepositoryElement(parent, qe.getQueryContext(), provisioningUI, (URI) item, enabled));
+ }
+ return super.wrap(new MetadataRepositoryElement(parent, (URI) item, true));
}
}