package org.simantics.selectionview; import org.simantics.databoard.Datatypes; import org.simantics.db.ReadGraph; import org.simantics.db.Resource; import org.simantics.db.common.adaption.SimpleContextualAdapter; import org.simantics.db.exception.DatabaseException; import org.simantics.db.layer0.variable.ConstantValueStandardGraphPropertyVariable; import org.simantics.db.layer0.variable.ModelledVariablePropertyDescriptor; import org.simantics.db.layer0.variable.Variable; import org.simantics.db.layer0.variable.Variables; public class DisplayUnitVariableAdapter extends SimpleContextualAdapter { public String getDisplayUnit(ReadGraph graph, Variable property) throws DatabaseException { return Variables.getPossibleUnit(graph, property); } @Override public Variable adapt(ReadGraph graph, Resource source, ModelledVariablePropertyDescriptor context) throws DatabaseException { String value = getDisplayUnit(graph, context.getVariable()); return new ConstantValueStandardGraphPropertyVariable(graph, context.getVariable(), context.getSubject(), SelectionViewResources.getInstance(graph).HasDisplayUnit, value != null ? value : "", Datatypes.STRING); } }