src/Tools/Graphview/shapes.scala
changeset 59241 541b95e94dc7
parent 59240 e411afcfaa29
child 59242 fda4091cc6b0
--- a/src/Tools/Graphview/shapes.scala	Fri Jan 02 21:19:34 2015 +0100
+++ b/src/Tools/Graphview/shapes.scala	Sat Jan 03 13:11:10 2015 +0100
@@ -16,7 +16,7 @@
 {
   trait Node
   {
-    def shape(g: Graphics2D, visualizer: Visualizer, peer: Option[String]): Shape
+    def shape(m: Visualizer.Metrics, visualizer: Visualizer, peer: Option[String]): Shape
     def paint(g: Graphics2D, visualizer: Visualizer, peer: Option[String]): Unit
   }
 
@@ -25,10 +25,10 @@
     private val stroke =
       new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)
 
-    def shape(g: Graphics2D, visualizer: Visualizer, peer: Option[String]): Rectangle2D.Double =
+    def shape(m: Visualizer.Metrics, visualizer: Visualizer, peer: Option[String])
+      : Rectangle2D.Double =
     {
       val (x, y) = visualizer.Coordinates(peer.get)
-      val m = visualizer.metrics(g)
       val bounds = m.string_bounds(visualizer.Caption(peer.get))
       val w = bounds.getWidth + m.pad
       val h = bounds.getHeight + m.pad
@@ -38,10 +38,10 @@
     def paint(g: Graphics2D, visualizer: Visualizer, peer: Option[String])
     {
       val caption = visualizer.Caption(peer.get)
-      val m = visualizer.metrics(g)
+      val m = Visualizer.Metrics(g)
       val bounds = m.string_bounds(caption)
 
-      val s = shape(g, visualizer, peer)
+      val s = shape(m, visualizer, peer)
 
       val c = visualizer.node_color(peer)
       g.setStroke(stroke)
@@ -60,10 +60,10 @@
   {
     private val stroke =
       new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)
-    private val shape = new Rectangle2D.Double(-5, -5, 10, 10)
+    private val shape = new Rectangle2D.Double(-5, -5, 10, 10)  // FIXME
     private val identity = new AffineTransform()
 
-    def shape(g: Graphics2D, visualizer: Visualizer, peer: Option[String]): Shape = shape
+    def shape(m: Visualizer.Metrics, visualizer: Visualizer, peer: Option[String]): Shape = shape
 
     def paint(g: Graphics2D, visualizer: Visualizer, peer: Option[String]): Unit =
       paint_transformed(g, visualizer, peer, identity)
@@ -118,7 +118,8 @@
       g.setColor(visualizer.edge_color(peer))
       g.draw(path)
 
-      if (head) Arrow_Head.paint(g, path, visualizer.Drawer.shape(g, Some(peer._2)))
+      if (head)
+        Arrow_Head.paint(g, path, visualizer.Drawer.shape(Visualizer.Metrics(g), Some(peer._2)))
     }
   }
 
@@ -178,7 +179,8 @@
         g.setColor(visualizer.edge_color(peer))
         g.draw(path)
 
-        if (head) Arrow_Head.paint(g, path, visualizer.Drawer.shape(g, Some(peer._2)))
+        if (head)
+          Arrow_Head.paint(g, path, visualizer.Drawer.shape(Visualizer.Metrics(g), Some(peer._2)))
       }
     }
   }