1 package org.simantics.selectionview;
\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
8 abstract public class AbstractTypedVariableTabContribution extends AbstractVariableTabContribution {
\r
10 public AbstractTypedVariableTabContribution(ReadGraph graph, Resource configuration) throws DatabaseException {
\r
11 super(graph, configuration);
\r
15 public boolean accept(ReadGraph graph, Variable variable, Object selection) throws DatabaseException {
\r
17 SelectionViewResources SEL = SelectionViewResources.getInstance(graph);
\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
22 Resource resource = variable.getPossibleRepresents(graph);
\r
23 if(resource == null) return false;
\r
25 if(!graph.isInstanceOf(resource, type)) return false;
\r
27 return super.accept(graph, variable, selection);
\r