23
23
import org .eclipse .jface .resource .ImageDescriptor ;
24
24
import org .eclipse .ui .IWorkbenchWindow ;
25
25
import org .eclipse .ui .PlatformUI ;
26
+ import org .eclipse .ui .activities .IActivityManager ;
27
+ import org .eclipse .ui .activities .IIdentifier ;
26
28
import org .eclipse .ui .activities .WorkbenchActivityHelper ;
27
29
import org .eclipse .ui .internal .IWorkbenchGraphicConstants ;
28
30
import org .eclipse .ui .internal .WorkbenchImages ;
39
41
*/
40
42
public class ViewProvider extends QuickAccessProvider {
41
43
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$
42
49
private MApplication application ;
43
50
private MWindow window ;
44
51
private Map <String , QuickAccessElement > idToElement = new HashMap <>();
@@ -69,6 +76,7 @@ public QuickAccessElement[] getElements() {
69
76
}
70
77
71
78
if (idToElement .isEmpty ()) {
79
+ IActivityManager activityManager = PlatformUI .getWorkbench ().getActivitySupport ().getActivityManager ();
72
80
for (MPartDescriptor descriptor : application .getDescriptors ()) {
73
81
String uri = descriptor .getContributionURI ();
74
82
if (uri != null ) {
@@ -85,7 +93,15 @@ public QuickAccessElement[] getElements() {
85
93
idToElement .put (element .getId (), element );
86
94
}
87
95
} 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
+ }
89
105
}
90
106
}
91
107
}
0 commit comments