X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.network.ui%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fnetwork%2Fui%2FDistrictDiagramViewer.java;h=7ee2f2faa03a2c5b771e7d52de2d05db1a21f034;hb=57e057d2e329240ddbef6ac693327fc8e2831265;hp=f0305fad2ce9ca663a10feab158abf90d2bb5b87;hpb=e764d663bb48dbc4ce86ca5d90c80167d30338a8;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/DistrictDiagramViewer.java b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/DistrictDiagramViewer.java index f0305fad..7ee2f2fa 100644 --- a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/DistrictDiagramViewer.java +++ b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/DistrictDiagramViewer.java @@ -11,6 +11,7 @@ import java.util.function.Supplier; import org.simantics.datatypes.literal.RGB; import org.simantics.db.ReadGraph; import org.simantics.db.Resource; +import org.simantics.db.common.request.IndexRoot; import org.simantics.db.common.request.UnaryRead; import org.simantics.db.exception.DatabaseException; import org.simantics.db.procedure.Listener; @@ -182,30 +183,38 @@ public class DistrictDiagramViewer extends DiagramViewer { private void queueColoringObjectsChangeEvent(Map result) { - if (result != null) { + if (result != null && !canvasContext.isDisposed()) { canvasContext.getDefaultHintContext().setHint(KEY_MAP_COLORING_OBJECTS, result); canvasContext.getEventQueue().queueEvent(new CommandEvent(canvasContext, System.currentTimeMillis(), MAP_COLORING_OBJECTS_CHANGE)); + } else { + LOGGER.info("Result is either null or canvasContext is disposed", String.valueOf(result)); } } private void queueColorBarOptionsChangeEvent(ColorBarOptions result) { - if (result != null) { + if (result != null && !canvasContext.isDisposed()) { canvasContext.getDefaultHintContext().setHint(KEY_MAP_COLOR_BAR_OPTIONS, result); canvasContext.getEventQueue().queueEvent(new CommandEvent(canvasContext, System.currentTimeMillis(), MAP_COLOR_BAR_OPTIONS_CHANGE)); + } else { + LOGGER.info("Result is either null or canvasContext is disposed", String.valueOf(result)); } } private void queueSizingObjectsChangeEvent(Map result) { - if (result != null) { + if (result != null && !canvasContext.isDisposed()) { canvasContext.getDefaultHintContext().setHint(KEY_MAP_SIZING_OBJECTS, result); canvasContext.getEventQueue().queueEvent(new CommandEvent(canvasContext, System.currentTimeMillis(), MAP_SIZING_OBJECTS_CHANGE)); + } else { + LOGGER.info("Result is either null or canvasContext is disposed", String.valueOf(result)); } } private void queueSizeBarOptionsChangeEvent(SizeBarOptions result) { - if (result != null) { + if (result != null && !canvasContext.isDisposed()) { canvasContext.getDefaultHintContext().setHint(KEY_MAP_SIZE_BAR_OPTIONS, result); canvasContext.getEventQueue().queueEvent(new CommandEvent(canvasContext, System.currentTimeMillis(), MAP_SIZE_BAR_OPTIONS_CHANGE)); + } else { + LOGGER.info("Result is either null or canvasContext is disposed", String.valueOf(result)); } } @@ -298,9 +307,15 @@ public class DistrictDiagramViewer extends DiagramViewer { @Override public ColorBarOptions perform(ReadGraph graph) throws DatabaseException { DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph); - Resource activeVisualisation = graph.getPossibleObject(parameter, DN.Diagram_hasActiveVisualisation); - if (activeVisualisation != null) { - return DistrictNetworkUtil.colorBarOptions(graph, activeVisualisation); + Resource model = graph.syncRequest(new IndexRoot(parameter)); + Resource vf = DistrictNetworkUtil.getVisualisationFolder(graph, model); + if (vf != null) { + Resource activeVisualisation = graph.getPossibleObject(vf, DN.Diagram_hasActiveVisualisation); + if (activeVisualisation != null) { + return DistrictNetworkUtil.colorBarOptions(graph, activeVisualisation); + } + } else { + LOGGER.debug("No visualisation folder available for model {}", model); } return ColorBarOptions.useDefault(); } @@ -315,9 +330,15 @@ public class DistrictDiagramViewer extends DiagramViewer { @Override public Map perform(ReadGraph graph) throws DatabaseException { DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph); - Resource activeVisualisation = graph.getPossibleObject(parameter, DN.Diagram_hasActiveVisualisation); - if (activeVisualisation != null) { - return DistrictNetworkUtil.colorContributions(graph, activeVisualisation); + Resource model = graph.syncRequest(new IndexRoot(parameter)); + Resource vf = DistrictNetworkUtil.getVisualisationFolder(graph, model); + if (vf != null) { + Resource activeVisualisation = graph.getPossibleObject(vf, DN.Diagram_hasActiveVisualisation); + if (activeVisualisation != null) { + return DistrictNetworkUtil.colorContributions(graph, activeVisualisation); + } + } else { + LOGGER.debug("No visualisation folder available for model {}", model); } return Collections.emptyMap(); } @@ -388,9 +409,15 @@ public class DistrictDiagramViewer extends DiagramViewer { @Override public SizeBarOptions perform(ReadGraph graph) throws DatabaseException { DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph); - Resource activeVisualisation = graph.getPossibleObject(parameter, DN.Diagram_hasActiveVisualisation); - if (activeVisualisation != null) { - return DistrictNetworkUtil.sizeBarOptions(graph, activeVisualisation); + Resource model = graph.syncRequest(new IndexRoot(parameter)); + Resource vf = DistrictNetworkUtil.getVisualisationFolder(graph, model); + if (vf != null) { + Resource activeVisualisation = graph.getPossibleObject(vf, DN.Diagram_hasActiveVisualisation); + if (activeVisualisation != null) { + return DistrictNetworkUtil.sizeBarOptions(graph, activeVisualisation); + } + } else { + LOGGER.debug("No visualisation folder available for model {}", model); } return SizeBarOptions.useDefault(); } @@ -433,9 +460,15 @@ public class DistrictDiagramViewer extends DiagramViewer { @Override public Map perform(ReadGraph graph) throws DatabaseException { DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph); - Resource activeVisualisation = graph.getPossibleObject(parameter, DN.Diagram_hasActiveVisualisation); - if (activeVisualisation != null) { - return DistrictNetworkUtil.sizeContributions(graph, activeVisualisation); + Resource model = graph.syncRequest(new IndexRoot(parameter)); + Resource vf = DistrictNetworkUtil.getVisualisationFolder(graph, model); + if (vf != null) { + Resource activeVisualisation = graph.getPossibleObject(vf, DN.Diagram_hasActiveVisualisation); + if (activeVisualisation != null) { + return DistrictNetworkUtil.sizeContributions(graph, activeVisualisation); + } + } else { + LOGGER.debug("No visualisation folder available for model {}", model); } return Collections.emptyMap(); }