import org.simantics.db.layer0.variable.Variable;
import org.simantics.layer0.Layer0;
import org.simantics.modeling.scl.CompileProceduralSCLMonitorRequest;
-import org.simantics.modeling.scl.CompileSCLMonitorRequest;
import org.simantics.modeling.userComponent.ComponentTypeCommands;
-import org.simantics.scl.runtime.SCLContext;
-import org.simantics.scl.runtime.function.Function1;
+import org.simantics.modeling.utils.ComponentTypePropertiesResult;
+import org.simantics.modeling.utils.ComponentTypeViewerPropertyInfo;
+import org.simantics.modeling.utils.HeadlessComponentTypePropertiesResultRequest;
import org.simantics.scl.runtime.function.Function4;
import org.simantics.structural.stubs.StructuralResource2;
import org.slf4j.Logger;
if(graph.isInstanceOf(componentType, STR.ProceduralComponentType)) {
CompileProceduralSCLMonitorRequest.compileAndEvaluate(graph, context);
} else {
- compileAndEvaluate(graph, context, expression);
+ HeadlessComponentTypePropertiesResultRequest.compileAndEvaluate(graph, context, expression);
}
} catch (Exception e) {
return null;
}
- public static void compileAndEvaluate(ReadGraph graph, Variable context, String expression) throws DatabaseException {
- SCLContext sclContext = SCLContext.getCurrent();
- Object oldGraph = sclContext.get("graph");
- try {
- CompileSCLMonitorRequest compileSCLMonitorRequest = new ValidationCompilationRequest(graph, context, expression);
- Function1<Variable,Object> exp = graph.syncRequest(compileSCLMonitorRequest);
- sclContext.put("graph", graph);
- //return exp.apply(context.getParent(graph));
- } catch (DatabaseException e) {
- throw (DatabaseException)e;
- } catch (Throwable t) {
- throw new DatabaseException(t);
- } finally {
- sclContext.put("graph", oldGraph);
- }
- }
-
@Override
public void update(ComponentTypePropertiesResult result) {
if (table.isDisposed())
return 100.0;
}
- private static final class ValidationCompilationRequest extends CompileSCLMonitorRequest {
- private final String expression;
-
- private ValidationCompilationRequest(ReadGraph graph, Variable context, String expression)
- throws DatabaseException {
- super(graph, context);
- this.expression = expression;
- }
-
- @Override
- protected String getExpressionText(ReadGraph graph) throws DatabaseException {
- return expression;
- }
-
- @Override
- public int hashCode() {
- return super.hashCode() + 37 * expression.hashCode();
- }
-
- @Override
- public boolean equals(Object obj) {
- return super.equals(obj) && ((ValidationCompilationRequest)obj).expression.equals(expression);
- }
- }
-
}
\ No newline at end of file