package org.simantics.modeling.ui.diagram.monitor; import org.simantics.common.format.Formatter; import org.simantics.databoard.Bindings; import org.simantics.db.ReadGraph; import org.simantics.db.common.utils.Logger; import org.simantics.db.exception.DatabaseException; import org.simantics.db.layer0.variable.Variable; import org.simantics.db.layer0.variable.Variables; import org.simantics.scl.runtime.function.FunctionImpl4; public class DefaultFormattedVariableLabel extends FunctionImpl4 { @Override public Object apply(Object p0, Object p1, Object p2, Object p3) { try { ReadGraph graph = (ReadGraph)p0; Variable root = (Variable)p1; Formatter formatter = (Formatter)p2; String rvi = (String)p3; Variable var = root.browse(graph, rvi); Object value = var.getPossiblePropertyValue(graph, Variables.CONVERTED_VALUE, Bindings.STRING); if(value == null) { value = var.getValue(graph); } return formatter.format(value); } catch (DatabaseException e) { Logger.defaultLogError(e); return null; } } }