X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.network%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fnetwork%2Fprofile%2FActiveDynamicVisualisationsRequest.java;h=f8f4b9aa34ee2e85b18309048160ec6ed881b9ca;hb=c208db116abb1f2f56859f3b0fee2e28d8fdb569;hp=52cfd61ccc5951d496d3780a98ee9924571ca8fc;hpb=e764d663bb48dbc4ce86ca5d90c80167d30338a8;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.network/src/org/simantics/district/network/profile/ActiveDynamicVisualisationsRequest.java b/org.simantics.district.network/src/org/simantics/district/network/profile/ActiveDynamicVisualisationsRequest.java index 52cfd61c..f8f4b9aa 100644 --- a/org.simantics.district.network/src/org/simantics/district/network/profile/ActiveDynamicVisualisationsRequest.java +++ b/org.simantics.district.network/src/org/simantics/district/network/profile/ActiveDynamicVisualisationsRequest.java @@ -1,6 +1,8 @@ package org.simantics.district.network.profile; +import java.util.Collection; import java.util.Map; +import java.util.stream.Collectors; import org.simantics.db.ReadGraph; import org.simantics.db.Resource; @@ -8,6 +10,9 @@ import org.simantics.db.common.request.ResourceRead; import org.simantics.db.exception.DatabaseException; import org.simantics.district.network.DistrictNetworkUtil; import org.simantics.district.network.ontology.DistrictNetworkResource; +import org.simantics.district.network.visualisations.DynamicVisualisationsContributions; +import org.simantics.district.network.visualisations.DynamicVisualisationsContributions.DynamicColoringObject; +import org.simantics.district.network.visualisations.DynamicVisualisationsContributions.DynamicSizingObject; import org.simantics.district.network.visualisations.model.ColorBarOptions; import org.simantics.district.network.visualisations.model.DynamicColorContribution; import org.simantics.district.network.visualisations.model.DynamicSizeContribution; @@ -20,22 +25,32 @@ import org.simantics.layer0.Layer0; */ public class ActiveDynamicVisualisationsRequest extends ResourceRead { - public ActiveDynamicVisualisationsRequest(Resource diagram) { - super(diagram); + public ActiveDynamicVisualisationsRequest(Resource parent) { + super(parent); } @Override public DynamicVisualisation perform(ReadGraph graph) throws DatabaseException { DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph); - Resource visualisationResource = graph.getPossibleObject(resource, DN.Diagram_hasActiveVisualisation); - if (visualisationResource != null) { - String name = graph.getRelatedValue(visualisationResource, Layer0.getInstance(graph).HasName); - Map colorContributions = DistrictNetworkUtil.colorContributions(graph, visualisationResource); - ColorBarOptions colorBarOptions = DistrictNetworkUtil.colorBarOptions(graph, visualisationResource); - Map sizeContributions = DistrictNetworkUtil.sizeContributions(graph, visualisationResource); - SizeBarOptions sizeBarOptions = DistrictNetworkUtil.sizeBarOptions(graph, visualisationResource); - DynamicVisualisation visualisation = new DynamicVisualisation(name, visualisationResource, colorContributions, colorBarOptions, sizeContributions, sizeBarOptions); - return visualisation; + Resource visualisationFolder = DistrictNetworkUtil.getVisualisationFolder(graph, resource); + if (visualisationFolder != null) { + Resource visualisationResource = graph.getPossibleObject(visualisationFolder, DN.Diagram_hasActiveVisualisation); + if (visualisationResource != null) { + String name = graph.getRelatedValue(visualisationResource, Layer0.getInstance(graph).HasName); + + Collection dynamicColoringObjects = DynamicVisualisationsContributions.dynamicColoringObjects(graph); + Map defaultColoringObjects = dynamicColoringObjects.stream().collect(Collectors.toMap(dcc -> dcc.getColoringObject().getName(), dcc -> dcc)); + + Collection dynamicSizingObjects = DynamicVisualisationsContributions.dynamicSizingObjects(graph); + Map defaultSizingObjects = dynamicSizingObjects.stream().collect(Collectors.toMap(dcc -> dcc.getSizingObject().getName(), dcc -> dcc)); + + Map colorContributions = DistrictNetworkUtil.colorContributions(graph, visualisationResource); + ColorBarOptions colorBarOptions = DistrictNetworkUtil.colorBarOptions(graph, visualisationResource); + Map sizeContributions = DistrictNetworkUtil.sizeContributions(graph, visualisationResource); + SizeBarOptions sizeBarOptions = DistrictNetworkUtil.sizeBarOptions(graph, visualisationResource); + DynamicVisualisation visualisation = new DynamicVisualisation(name, visualisationResource, colorContributions, defaultColoringObjects, colorBarOptions, sizeContributions, defaultSizingObjects, sizeBarOptions); + return visualisation; + } } return null; }