X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.network.ui%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fnetwork%2Fui%2Fparticipants%2FDynamicVisualisationContributionsParticipant.java;h=7dd11b7ab83225bcd5e943b42099fffa24df1d1f;hb=35bbcd22d5b667e88fb41aa98dfd772d0ab3ebe4;hp=0e0bace92245003ed5b7fec4f22745a4c9a5ede5;hpb=c12e4bf01324aac07efeac121a794cb98949ef20;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/participants/DynamicVisualisationContributionsParticipant.java b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/participants/DynamicVisualisationContributionsParticipant.java index 0e0bace9..7dd11b7a 100644 --- a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/participants/DynamicVisualisationContributionsParticipant.java +++ b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/participants/DynamicVisualisationContributionsParticipant.java @@ -75,6 +75,11 @@ public class DynamicVisualisationContributionsParticipant extends AbstractCanvas @Override public void removedFromContext(ICanvasContext ctx) { + // Ensure hover polling is stopped + if (hoverUpdateSchedule != null && !hoverUpdateSchedule.isDone()) { + hoverUpdateSchedule.cancel(false); + } + getHintStack().removeKeyHintListener(getThread(), DistrictDiagramViewer.KEY_MAP_COLORING_OBJECTS, hintListener); getHintStack().removeKeyHintListener(getThread(), DistrictDiagramViewer.KEY_MAP_COLOR_BAR_OPTIONS, hintListener); getHintStack().removeKeyHintListener(getThread(), DistrictDiagramViewer.KEY_MAP_SIZING_OBJECTS, hintListener); @@ -145,6 +150,7 @@ public class DynamicVisualisationContributionsParticipant extends AbstractCanvas } private ScheduledFuture hoverUpdateSchedule; + private static final Object COMPLETE = new Object(); public void hoverNode(Resource runtimeDiagram, Resource mapElement, G2DParentNode hoveredNode) { IThreadWorkQueue thread = getThread(); @@ -168,8 +174,13 @@ public class DynamicVisualisationContributionsParticipant extends AbstractCanvas public void run(ReadGraph graph) throws DatabaseException { boolean keyVariablesVertexHover = visualisation.isKeyVariablesVertexHover(); boolean keyVariablesEdgesHover = visualisation.isKeyVariablesEdgesHover(); - - Resource mapElementInstanceOf = graph.getSingleObject(mapElement, Layer0.getInstance(graph).InstanceOf); + + Resource mapElementInstanceOf = graph.getPossibleObject(mapElement, Layer0.getInstance(graph).InstanceOf); + if (mapElementInstanceOf == null) { + future.complete(COMPLETE); + return; + } + DistrictNetworkResource DN = DistrictNetworkResource.getInstance(graph); boolean doHover = true; @@ -195,10 +206,10 @@ public class DynamicVisualisationContributionsParticipant extends AbstractCanvas } else { hoverInfoNode.hover2(null); } - future.complete(new Object()); + future.complete(COMPLETE); }); } else { - future.complete(new Object()); + future.complete(COMPLETE); } } });