Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/registry/PerspectiveRegistry.java')
-rw-r--r--bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/registry/PerspectiveRegistry.java15
1 files changed, 13 insertions, 2 deletions
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/registry/PerspectiveRegistry.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/registry/PerspectiveRegistry.java
index 940ac53dc21..f57bf5cac5d 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/registry/PerspectiveRegistry.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/registry/PerspectiveRegistry.java
@@ -12,6 +12,7 @@
package org.eclipse.ui.internal.registry;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -32,6 +33,7 @@ import org.eclipse.ui.IPerspectiveDescriptor;
import org.eclipse.ui.IPerspectiveRegistry;
import org.eclipse.ui.IWorkbenchPreferenceConstants;
import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.activities.WorkbenchActivityHelper;
import org.eclipse.ui.internal.Workbench;
import org.eclipse.ui.internal.e4.compatibility.E4Util;
import org.eclipse.ui.internal.util.PrefUtil;
@@ -151,7 +153,11 @@ public class PerspectiveRegistry implements IPerspectiveRegistry, IExtensionChan
* )
*/
public IPerspectiveDescriptor findPerspectiveWithId(String perspectiveId) {
- return descriptors.get(perspectiveId);
+ IPerspectiveDescriptor candidate = descriptors.get(perspectiveId);
+ if (WorkbenchActivityHelper.restrictUseOf(candidate)) {
+ return null;
+ }
+ return candidate;
}
/*
@@ -164,6 +170,9 @@ public class PerspectiveRegistry implements IPerspectiveRegistry, IExtensionChan
public IPerspectiveDescriptor findPerspectiveWithLabel(String label) {
for (IPerspectiveDescriptor descriptor : descriptors.values()) {
if (descriptor.getLabel().equals(label)) {
+ if (WorkbenchActivityHelper.restrictUseOf(descriptor)) {
+ return null;
+ }
return descriptor;
}
}
@@ -194,7 +203,9 @@ public class PerspectiveRegistry implements IPerspectiveRegistry, IExtensionChan
* @see org.eclipse.ui.IPerspectiveRegistry#getPerspectives()
*/
public IPerspectiveDescriptor[] getPerspectives() {
- return descriptors.values().toArray(new IPerspectiveDescriptor[descriptors.size()]);
+ Collection<PerspectiveDescriptor> allowedDescriptors = WorkbenchActivityHelper
+ .restrictCollection(descriptors.values(), new ArrayList<PerspectiveDescriptor>());
+ return allowedDescriptors.toArray(new IPerspectiveDescriptor[allowedDescriptors.size()]);
}
/**

Back to the top