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%2FDistrictNetworkStaticInfoNode.java;h=b86d0acb291b7c9355e97b9f5936154016861115;hb=0249f20bb127e61c58db4432b8609ff0cb441480;hp=347261c43a9dc462e8e4c56b77947c9eaa26690a;hpb=2f414faa80051f046a020840105847099c655195;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/nodes/DistrictNetworkStaticInfoNode.java b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/nodes/DistrictNetworkStaticInfoNode.java index 347261c4..b86d0acb 100644 --- a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/nodes/DistrictNetworkStaticInfoNode.java +++ b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/nodes/DistrictNetworkStaticInfoNode.java @@ -9,14 +9,16 @@ import java.awt.geom.NoninvertibleTransformException; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; -import org.simantics.district.network.DistrictNetworkUtil; -import org.simantics.district.network.ui.DistrictNetworkUIUtil; +import org.simantics.district.network.ui.styles.DistrictNetworkStaticInfoStyle; import org.simantics.maps.MapScalingTransform; +import org.simantics.scenegraph.ParentNode; import org.simantics.scenegraph.g2d.G2DNode; import org.simantics.scenegraph.g2d.G2DParentNode; +import org.simantics.scenegraph.g2d.nodes.spatial.RTreeNode; import org.simantics.scenegraph.utils.DPIUtil; +import org.simantics.scenegraph.utils.NodeUtil; -public class DistrictNetworkStaticInfoNode extends G2DNode { +public class DistrictNetworkStaticInfoNode extends G2DNode implements DeferredNode { private static final Font FONT = new Font("Tahoma", Font.PLAIN, (int)(DPIUtil.upscale(9) * MapScalingTransform.getScaleY() + 0.5)); @@ -32,6 +34,16 @@ public class DistrictNetworkStaticInfoNode extends G2DNode { @Override public void render(Graphics2D g) { + ParentNode root = (ParentNode) NodeUtil.getNearestParentOfType(this, RTreeNode.class); + DeferredRenderingNode deferred = root != null ? (DeferredRenderingNode) root.getNode(DistrictNetworkStaticInfoStyle.STATIC_INFO_DEFERRED) : null; + if (deferred != null) + deferred.deferNode(g.getTransform(), this); + else + renderDeferred(g); + } + + @Override + public void renderDeferred(Graphics2D g) { if (info == null || "".equals(info)) return; @@ -68,18 +80,18 @@ public class DistrictNetworkStaticInfoNode extends G2DNode { double scale = 1.5 / g.getTransform().getScaleX(); g.scale(scale, scale); - int width1 = g.getFontMetrics().stringWidth(info); - int height = g.getFontMetrics().getHeight(); - - g.setColor(Color.WHITE); - g.fillRect(-width1/2 - 5, -2, width1, height); - g.setFont(FONT); - g.setColor(Color.BLACK); + int width1 = g.getFontMetrics().stringWidth(info); +// int height = g.getFontMetrics().getHeight(); g.transform(AffineTransform.getRotateInstance(direction.getX(), direction.getY())); g.translate(0, 10); +// g.setColor(Color.WHITE); +// g.fillRect(-width1/2 - 5, -height-2, width1+10, height+4); + + g.setColor(Color.BLACK); + g.drawString(info, -width1/2, 0); }