X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.network%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fnetwork%2Fprofile%2FDNElementColorStyle.java;h=1e50a92ef5aba2c02b109ee8c5d6c47d8209917c;hb=ae5159794b57b980f6f2d5e509e6a47843be8ca0;hp=9bcae2e5f42e907231694ca559d7b68e64184416;hpb=a2c485af95024784aa9de3378759ee94b8caea2e;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.network/src/org/simantics/district/network/profile/DNElementColorStyle.java b/org.simantics.district.network/src/org/simantics/district/network/profile/DNElementColorStyle.java index 9bcae2e5..1e50a92e 100644 --- a/org.simantics.district.network/src/org/simantics/district/network/profile/DNElementColorStyle.java +++ b/org.simantics.district.network/src/org/simantics/district/network/profile/DNElementColorStyle.java @@ -11,6 +11,7 @@ import org.simantics.db.exception.DatabaseException; import org.simantics.db.layer0.variable.Variable; import org.simantics.db.layer0.variable.Variables; import org.simantics.district.network.ontology.DistrictNetworkResource; +import org.simantics.district.network.visualisations.DynamicVisualisationsContributions.DynamicColoringObject; import org.simantics.district.network.visualisations.model.DynamicColorContribution; import org.simantics.district.network.visualisations.model.DynamicColorMap; import org.simantics.district.network.visualisations.model.DynamicVisualisation; @@ -20,6 +21,7 @@ import org.simantics.scenegraph.INode; import org.simantics.scenegraph.g2d.nodes.SingleElementNode; import org.simantics.scenegraph.profile.EvaluationContext; import org.simantics.scenegraph.profile.common.ProfileVariables; +import org.simantics.scl.runtime.SCLContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -67,10 +69,31 @@ public class DNElementColorStyle extends ThrottledStyleBase { if (attribute != null) { Double possibleValue = attribute.getPossibleValue(graph, Bindings.DOUBLE); if (possibleValue != null) { + + double minValue; + double maxValue; + if (dcc.isUseDefault()) { + DynamicColoringObject dynamicColoringObject = dv.getDefaultColorContributions().get(mappingName); + + // This is required if ontology module needs to be compiled + Object currentGraph = SCLContext.getCurrent().get("graph"); + try { + SCLContext.getCurrent().put("graph", graph); + + DynamicColorContribution ddcc = dynamicColoringObject.getColorContributions().get(dcc.getLabel()); + minValue = ddcc.getDefaultMin(); + maxValue = ddcc.getDefaultMax(); + } finally { + SCLContext.getCurrent().put("graph", currentGraph); + } + } else { + minValue = dcc.getDefaultMin(); + maxValue = dcc.getDefaultMax(); + } // here we do the adjusting according to spec in #15038 double adjustedValue = possibleValue.doubleValue() * dcc.getVariableGain() + dcc.getVariableBias(); DynamicColorMap defaultColorMap = dcc.getDefaultColorMap(); - Color color = defaultColorMap.getColor(adjustedValue, dv.getColorBarOptions().isUseGradients(), dcc.getDefaultMin(), dcc.getDefaultMax()); + Color color = defaultColorMap.getColor(adjustedValue, dv.getColorBarOptions().isUseGradients(), minValue, maxValue); return color; } else { LOGGER.warn("No value for {}", attribute.getURI(graph));