X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.modeling%2Fsrc%2Forg%2Fsimantics%2Fmodeling%2FSCLAction.java;h=ba7e7117fea1dc28202803be58e7961f6a34266d;hb=HEAD;hp=a236c0aadb5616b5f49bd33bf076096cec9f3d02;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.modeling/src/org/simantics/modeling/SCLAction.java b/bundles/org.simantics.modeling/src/org/simantics/modeling/SCLAction.java index a236c0aad..ba7e7117f 100644 --- a/bundles/org.simantics.modeling/src/org/simantics/modeling/SCLAction.java +++ b/bundles/org.simantics.modeling/src/org/simantics/modeling/SCLAction.java @@ -1,66 +1,69 @@ -package org.simantics.modeling; - -import org.simantics.Simantics; -import org.simantics.db.ReadGraph; -import org.simantics.db.Resource; -import org.simantics.db.common.request.ResourceRead; -import org.simantics.db.exception.DatabaseException; -import org.simantics.db.layer0.adapter.ActionFactory; -import org.simantics.db.layer0.variable.Variable; -import org.simantics.db.layer0.variable.Variables; -import org.simantics.diagram.Logger; -import org.simantics.scl.runtime.function.Function1; - -public class SCLAction implements ActionFactory { - - final private Resource rule; - - public SCLAction(ReadGraph graph, Resource rule) throws DatabaseException { - this.rule = rule; - } - - static class RuleFunctionRequest extends ResourceRead> { - - protected RuleFunctionRequest(Resource rule) { - super(rule); - } - - @Override - public Function1 perform(ReadGraph graph) throws DatabaseException { - Variable ruleVariable = Variables.getVariable(graph, resource); - ModelingResources MOD = ModelingResources.getInstance(graph); - return ruleVariable.getPossiblePropertyValue(graph, MOD.SCLAction_action); - } - - } - - public static class SCLActionRunnable implements Runnable { - - public Resource rule; - public Resource target; - - public SCLActionRunnable(Resource rule, Resource target) { - this.rule = rule; - this.target = target; - } - - @Override - public void run() { - Resource resource = (Resource)target; - Simantics.getSession().markUndoPoint(); - try { - Function1 function = Simantics.getSession().syncRequest(new RuleFunctionRequest(rule)); - function.apply(resource); - } catch (DatabaseException e) { - Logger.defaultLogError(e); - } - } - - } - - @Override - public Runnable create(final Object target) { - return new SCLActionRunnable(rule, (Resource)target); - } - -} +package org.simantics.modeling; + +import org.simantics.Simantics; +import org.simantics.db.ReadGraph; +import org.simantics.db.Resource; +import org.simantics.db.common.request.ResourceRead; +import org.simantics.db.exception.DatabaseException; +import org.simantics.db.layer0.adapter.ActionFactory; +import org.simantics.db.layer0.variable.Variable; +import org.simantics.db.layer0.variable.Variables; +import org.simantics.scl.runtime.function.Function1; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class SCLAction implements ActionFactory { + + private static final Logger LOGGER = LoggerFactory.getLogger(SCLAction.class); + + final private Resource rule; + + public SCLAction(ReadGraph graph, Resource rule) throws DatabaseException { + this.rule = rule; + } + + static class RuleFunctionRequest extends ResourceRead> { + + protected RuleFunctionRequest(Resource rule) { + super(rule); + } + + @Override + public Function1 perform(ReadGraph graph) throws DatabaseException { + Variable ruleVariable = Variables.getVariable(graph, resource); + ModelingResources MOD = ModelingResources.getInstance(graph); + return ruleVariable.getPossiblePropertyValue(graph, MOD.SCLAction_action); + } + + } + + public static class SCLActionRunnable implements Runnable { + + public Resource rule; + public Resource target; + + public SCLActionRunnable(Resource rule, Resource target) { + this.rule = rule; + this.target = target; + } + + @Override + public void run() { + Resource resource = (Resource)target; + Simantics.getSession().markUndoPoint(); + try { + Function1 function = Simantics.getSession().syncRequest(new RuleFunctionRequest(rule)); + function.apply(resource); + } catch (DatabaseException e) { + LOGGER.error("SCLActionRunnable failed to request/apply RuleFunction {}", rule, e); + } + } + + } + + @Override + public Runnable create(final Object target) { + return new SCLActionRunnable(rule, (Resource)target); + } + +}