]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.selectionview/src/org/simantics/selectionview/AbstractTypedResourceTabContribution.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.selectionview / src / org / simantics / selectionview / AbstractTypedResourceTabContribution.java
1 package org.simantics.selectionview;\r
2 \r
3 import org.simantics.db.ReadGraph;\r
4 import org.simantics.db.Resource;\r
5 import org.simantics.db.exception.DatabaseException;\r
6 \r
7 abstract public class AbstractTypedResourceTabContribution extends AbstractResourceTabContribution {\r
8 \r
9         public AbstractTypedResourceTabContribution(ReadGraph graph, Resource configuration) throws DatabaseException {\r
10                 super(graph, configuration);\r
11         }\r
12 \r
13         \r
14         @Override\r
15         public boolean accept(ReadGraph graph, Object input) throws DatabaseException {\r
16 \r
17                 if (!(input instanceof Resource))\r
18                         return false;\r
19                 Resource resource = (Resource) input;\r
20 \r
21                 SelectionViewResources SEL = SelectionViewResources.getInstance(graph);\r
22 \r
23                 Resource type = graph.getPossibleObject(configuration, SEL.AbstractTypedResourceTabContribution_HasType);\r
24                 if(type == null) throw new DatabaseException("No type for " + graph.getPossibleURI(configuration));\r
25 \r
26                 if(!graph.isInstanceOf(resource, type)) return false;\r
27                 \r
28                 return super.accept(graph, resource);\r
29                 \r
30         }\r
31         \r
32 }\r