X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.network%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fnetwork%2Fprofile%2FDNElementSizeStyle.java;h=870f74578132d895dc53a850c614b2874eb9df25;hb=ae5159794b57b980f6f2d5e509e6a47843be8ca0;hp=0a454eef8f57a577a5a33f8aaee79afe37295b51;hpb=a2c485af95024784aa9de3378759ee94b8caea2e;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.network/src/org/simantics/district/network/profile/DNElementSizeStyle.java b/org.simantics.district.network/src/org/simantics/district/network/profile/DNElementSizeStyle.java index 0a454eef..870f7457 100644 --- a/org.simantics.district.network/src/org/simantics/district/network/profile/DNElementSizeStyle.java +++ b/org.simantics.district.network/src/org/simantics/district/network/profile/DNElementSizeStyle.java @@ -10,6 +10,9 @@ 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.DynamicVisualisationsContributions.DynamicSizingObject; +import org.simantics.district.network.visualisations.model.DynamicColorContribution; import org.simantics.district.network.visualisations.model.DynamicSizeContribution; import org.simantics.district.network.visualisations.model.DynamicSizeMap; import org.simantics.district.network.visualisations.model.DynamicVisualisation; @@ -20,6 +23,7 @@ import org.simantics.scenegraph.g2d.G2DSceneGraph; 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; @@ -68,10 +72,32 @@ public class DNElementSizeStyle extends ThrottledStyleBase { if (attribute != null) { Double possibleValue = attribute.getPossibleValue(graph, Bindings.DOUBLE); if (possibleValue != null) { + + + double minValue; + double maxValue; + if (dsc.isUseDefault()) { + DynamicSizingObject dynamicSizingObject = dv.getDefaultSizeContributions().get(mappingName); + + // This is required if ontology module needs to be compiled + Object currentGraph = SCLContext.getCurrent().get("graph"); + try { + SCLContext.getCurrent().put("graph", graph); + + DynamicSizeContribution ddcc = dynamicSizingObject.getSizeContributions().get(dsc.getLabel()); + minValue = ddcc.getDefaultMin(); + maxValue = ddcc.getDefaultMax(); + } finally { + SCLContext.getCurrent().put("graph", currentGraph); + } + } else { + minValue = dsc.getDefaultMin(); + maxValue = dsc.getDefaultMax(); + } // here we do the adjusting according to spec in #15038 double adjustedValue = possibleValue.doubleValue() * dsc.getVariableGain() + dsc.getVariableBias(); DynamicSizeMap defaultSizeMap = dsc.getDefaultSizeMap(); - double size = defaultSizeMap.getSize(adjustedValue, dv.getSizeBarOptions().isUseGradients(), dsc.getDefaultMin(), dsc.getDefaultMax()); + double size = defaultSizeMap.getSize(adjustedValue, dv.getSizeBarOptions().isUseGradients(), minValue, maxValue); return size; } else { LOGGER.warn("No value for {}", attribute.getURI(graph));