- private boolean hoverNodes(List<IElement> elements, boolean hover, boolean isConnectionTool, Point2D p) {
- boolean changed = false;
- for (IElement elem : elements) {
- Node node = elem.getHint(DistrictNetworkVertexElement.KEY_DN_VERTEX_NODE);
- if (node instanceof DistrictNetworkVertexNode) {
- changed |= ((DistrictNetworkVertexNode) node).hover(hover, isConnectionTool);
- if (hover)
- ((DistrictNetworkVertexNode) node).setMousePosition(p);
- } else {
+ private boolean updateHoveredElement(List<IElement> elements, boolean hover, boolean isConnectionTool, AffineTransform viewTransform) {
+ if (elements == null || elements.isEmpty()) {
+ currentHoverElement = null;
+ return dynamicVisualisationContributionsParticipant.doHover(false, isConnectionTool);
+ } else {
+ dynamicVisualisationContributionsParticipant.doHover(true, isConnectionTool);
+
+ // we prefer the first picked element only
+ IElement elem = elements.get(0);
+ if (elem.equals(currentHoverElement))
+ return false;
+
+ INode node = elem.getHint(DistrictNetworkVertexElement.KEY_DN_VERTEX_NODE);
+ if (node == null)