]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.ui/src/org/simantics/ui/workbench/editor/EditorAdapterDescriptorImpl.java
411f96e20cb42a7737c24d18bc97f24c0d195e45
[simantics/platform.git] / bundles / org.simantics.ui / src / org / simantics / ui / workbench / editor / EditorAdapterDescriptorImpl.java
1 /*******************************************************************************\r
2  * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
3  * in Industry THTH ry.\r
4  * All rights reserved. This program and the accompanying materials\r
5  * are made available under the terms of the Eclipse Public License v1.0\r
6  * which accompanies this distribution, and is available at\r
7  * http://www.eclipse.org/legal/epl-v10.html\r
8  *\r
9  * Contributors:\r
10  *     VTT Technical Research Centre of Finland - initial API and implementation\r
11  *******************************************************************************/\r
12 package org.simantics.ui.workbench.editor;\r
13 \r
14 import java.util.Arrays;\r
15 import java.util.Collection;\r
16 import java.util.Collections;\r
17 \r
18 \r
19 public class EditorAdapterDescriptorImpl implements EditorAdapterDescriptor {\r
20 \r
21     private final String                id;\r
22 \r
23     private final String                groupId;\r
24 \r
25     private final EditorAdapter adapter;\r
26 \r
27     /**\r
28      * Null if there is no context limitation\r
29      */\r
30     private final String[]              inContexts;\r
31 \r
32     public EditorAdapterDescriptorImpl(String id, String groupId, EditorAdapter adapter, String[] inContexts) {\r
33         this.id = id;\r
34         if (groupId != null && groupId.isEmpty())\r
35             groupId = null;\r
36         this.groupId = groupId;\r
37         this.adapter = adapter;\r
38         if (inContexts != null && inContexts.length == 0)\r
39             inContexts = null;\r
40         this.inContexts = inContexts;\r
41     }\r
42 \r
43     @Override\r
44     public String getId() {\r
45         return id;\r
46     }\r
47 \r
48     @Override\r
49     public String getGroupId() {\r
50         return groupId;\r
51     }\r
52 \r
53     @Override\r
54     public EditorAdapter getAdapter() {\r
55         return adapter;\r
56     }\r
57 \r
58     @Override\r
59     public Collection<String> getInContexts() {\r
60         if (inContexts == null)\r
61             return Collections.emptyList();\r
62         return Arrays.asList(inContexts);\r
63     }\r
64 \r
65     @Override\r
66     public boolean isActive(Collection<?> activeContextIds) {\r
67         // null indicates perpetually active\r
68         if (inContexts == null)\r
69             return true;\r
70 \r
71         for (Object o : inContexts)\r
72             if (activeContextIds.contains(o))\r
73                 return true;\r
74         return false;\r
75     }\r
76 \r
77 }\r