X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.network.ui%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fnetwork%2Fui%2Fnodes%2FDistrictNetworkHoverInfoNode.java;h=4fc1bebae4ec12f3e013ff1f42ad187c11589447;hb=2f414faa80051f046a020840105847099c655195;hp=b8a1617bab12bafa050dd8bba2c21b19d4a4e572;hpb=9f6c68f86b52fac94cacb8f8c1e58d17e382830e;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/nodes/DistrictNetworkHoverInfoNode.java b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/nodes/DistrictNetworkHoverInfoNode.java index b8a1617b..4fc1beba 100644 --- a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/nodes/DistrictNetworkHoverInfoNode.java +++ b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/nodes/DistrictNetworkHoverInfoNode.java @@ -6,7 +6,9 @@ import java.awt.Graphics2D; import java.awt.geom.AffineTransform; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; +import java.util.Comparator; import java.util.List; +import java.util.Optional; import java.util.concurrent.atomic.AtomicReference; import org.simantics.maps.MapScalingTransform; @@ -55,6 +57,13 @@ public class DistrictNetworkHoverInfoNode extends G2DNode implements HoverSensit g.setFont(FONT); double rowHeight = g.getFontMetrics().getHeight() * 1.1; + // let's calculate the max width + Optional max = labels.stream().map(t -> g.getFontMetrics().stringWidth((String) t.c2)).max(Comparator.naturalOrder()); + int width = max.orElse(10); + g.setColor(Color.WHITE); + int totalHeight = (int)Math.round(rowHeight * labels.size()); + g.fillRect(-(W1 + PAD + W2 + 5), -(totalHeight + (int)Math.round(rowHeight)), (W1 + PAD + W2 + width + 10), totalHeight + 5); + g.setColor(Color.BLACK); for (Tuple3 t : labels) {