Skip to content

Commit 84d49c2

Browse files
raghucssitiloveeclipse
authored andcommitted
Add support for activities filtering in quick access view provider
Views hidden by activities should not be shown in Quick Access (Ctrl+3) See #2217
1 parent 55481d3 commit 84d49c2

File tree

1 file changed

+17
-1
lines changed
  • bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/quickaccess/providers

1 file changed

+17
-1
lines changed

bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/internal/quickaccess/providers/ViewProvider.java

+17-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import org.eclipse.jface.resource.ImageDescriptor;
2424
import org.eclipse.ui.IWorkbenchWindow;
2525
import org.eclipse.ui.PlatformUI;
26+
import org.eclipse.ui.activities.IActivityManager;
27+
import org.eclipse.ui.activities.IIdentifier;
2628
import org.eclipse.ui.activities.WorkbenchActivityHelper;
2729
import org.eclipse.ui.internal.IWorkbenchGraphicConstants;
2830
import org.eclipse.ui.internal.WorkbenchImages;
@@ -39,6 +41,11 @@
3941
*/
4042
public class ViewProvider extends QuickAccessProvider {
4143

44+
/**
45+
* URI of any view on the platform has this prefix. ex:
46+
* bundleclass://org.eclipse.pde.spy.bundle/org.eclipse.pde.spy.bundle.BundleSpyPart
47+
*/
48+
private static final String BUNDLE_CLASS_SCHEME = "bundleclass://"; //$NON-NLS-1$
4249
private MApplication application;
4350
private MWindow window;
4451
private Map<String, QuickAccessElement> idToElement = new HashMap<>();
@@ -69,6 +76,7 @@ public QuickAccessElement[] getElements() {
6976
}
7077

7178
if (idToElement.isEmpty()) {
79+
IActivityManager activityManager = PlatformUI.getWorkbench().getActivitySupport().getActivityManager();
7280
for (MPartDescriptor descriptor : application.getDescriptors()) {
7381
String uri = descriptor.getContributionURI();
7482
if (uri != null) {
@@ -85,7 +93,15 @@ public QuickAccessElement[] getElements() {
8593
idToElement.put(element.getId(), element);
8694
}
8795
} else {
88-
idToElement.put(id, element);
96+
if (uri.startsWith(BUNDLE_CLASS_SCHEME)) {
97+
String viewQualUri = uri.substring(BUNDLE_CLASS_SCHEME.length());
98+
IIdentifier identifier = activityManager.getIdentifier(viewQualUri);
99+
if (identifier.isEnabled()) {
100+
idToElement.put(element.getId(), element);
101+
}
102+
} else {
103+
idToElement.put(element.getId(), element);
104+
}
89105
}
90106
}
91107
}

0 commit comments

Comments
 (0)