]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.selectionview/src/org/simantics/selectionview/AbstractTypedVariableTabContribution.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.selectionview / src / org / simantics / selectionview / AbstractTypedVariableTabContribution.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 import org.simantics.db.layer0.variable.Variable;\r
7 \r
8 abstract public class AbstractTypedVariableTabContribution extends AbstractVariableTabContribution {\r
9 \r
10         public AbstractTypedVariableTabContribution(ReadGraph graph, Resource configuration) throws DatabaseException {\r
11                 super(graph, configuration);\r
12         }\r
13 \r
14         @Override\r
15         public boolean accept(ReadGraph graph, Variable variable, Object selection) throws DatabaseException {\r
16 \r
17                 SelectionViewResources SEL = SelectionViewResources.getInstance(graph);\r
18 \r
19                 Resource type = graph.getPossibleObject(configuration, SEL.AbstractTypedVariableTabContribution_HasType);\r
20                 if(type == null) throw new DatabaseException("No type for " + graph.getPossibleURI(configuration));\r
21 \r
22                 Resource resource = variable.getPossibleRepresents(graph);\r
23                 if(resource == null) return false;\r
24                 \r
25                 if(!graph.isInstanceOf(resource, type)) return false;\r
26                 \r
27                 return super.accept(graph, variable, selection);\r
28                 \r
29         }\r
30         \r
31 }\r