X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.diagram%2Fsrc%2Forg%2Fsimantics%2Fdiagram%2Fsymbolcontribution%2FSCLFilter.java;h=350678663ca4cd1e1a49056bfef80fc81bda0a7b;hb=785f638bab44e70ec6103c3891daea95bcda9a07;hp=d819de7936427ecde6dea7a68ea78ef272a6145b;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.diagram/src/org/simantics/diagram/symbolcontribution/SCLFilter.java b/bundles/org.simantics.diagram/src/org/simantics/diagram/symbolcontribution/SCLFilter.java index d819de793..350678663 100644 --- a/bundles/org.simantics.diagram/src/org/simantics/diagram/symbolcontribution/SCLFilter.java +++ b/bundles/org.simantics.diagram/src/org/simantics/diagram/symbolcontribution/SCLFilter.java @@ -1,46 +1,46 @@ -package org.simantics.diagram.symbolcontribution; - -import org.simantics.db.ReadGraph; -import org.simantics.db.Resource; -import org.simantics.db.exception.DatabaseException; -import org.simantics.db.layer0.variable.Variable; -import org.simantics.db.layer0.variable.Variables; -import org.simantics.diagram.stubs.DiagramResource; -import org.simantics.scl.runtime.SCLContext; -import org.simantics.scl.runtime.function.Function3; - -/** - * @author Antti Villberg - */ -public class SCLFilter implements SymbolContributionFilter { - - Resource filter; - - public SCLFilter(Resource filter) { - this.filter = filter; - } - - @Override - public boolean accept(ReadGraph graph, Resource contribution, Resource filter, Resource diagram) throws DatabaseException { - - DiagramResource DIA = DiagramResource.getInstance(graph); - - Variable ruleVariable = Variables.getVariable(graph, filter); - - Function3 fn = ruleVariable.getPossiblePropertyValue(graph, DIA.SCLFilter_filter); - if(fn == null) return true; - - SCLContext sclContext = SCLContext.getCurrent(); - Object oldGraph = sclContext.get("graph"); - try { - sclContext.put("graph", graph); - return fn.apply(contribution, filter, diagram); - } catch (Throwable t) { - throw new DatabaseException(t); - } finally { - sclContext.put("graph", oldGraph); - } - - } - -} +package org.simantics.diagram.symbolcontribution; + +import org.simantics.db.ReadGraph; +import org.simantics.db.Resource; +import org.simantics.db.exception.DatabaseException; +import org.simantics.db.layer0.variable.Variable; +import org.simantics.db.layer0.variable.Variables; +import org.simantics.diagram.stubs.DiagramResource; +import org.simantics.scl.runtime.SCLContext; +import org.simantics.scl.runtime.function.Function3; + +/** + * @author Antti Villberg + */ +public class SCLFilter implements SymbolContributionFilter { + + Resource filter; + + public SCLFilter(Resource filter) { + this.filter = filter; + } + + @Override + public boolean accept(ReadGraph graph, Resource contribution, Resource filter, Resource diagram) throws DatabaseException { + + DiagramResource DIA = DiagramResource.getInstance(graph); + + Variable ruleVariable = Variables.getVariable(graph, filter); + + Function3 fn = ruleVariable.getPossiblePropertyValue(graph, DIA.SCLFilter_filter); + if(fn == null) return true; + + SCLContext sclContext = SCLContext.getCurrent(); + Object oldGraph = sclContext.get("graph"); + try { + sclContext.put("graph", graph); + return fn.apply(contribution, filter, diagram); + } catch (Throwable t) { + throw new DatabaseException(t); + } finally { + sclContext.put("graph", oldGraph); + } + + } + +}