--- a/src/Tools/Graphview/src/shapes.scala Mon Dec 10 17:05:51 2012 +0100
+++ b/src/Tools/Graphview/src/shapes.scala Mon Dec 10 17:44:17 2012 +0100
@@ -21,7 +21,7 @@
private val stroke =
new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)
- def shape(g: Graphics2D, visualizer: Visualizer, peer: Option[String]) = {
+ def shape(g: Graphics2D, visualizer: Visualizer, peer: Option[String]): Rectangle2D.Double = {
val caption = visualizer.Caption(peer.get)
val bounds = g.getFontMetrics.getStringBounds(caption, g)
val (x, y) = visualizer.Coordinates(peer.get)
@@ -59,13 +59,14 @@
private val shape = new Rectangle2D.Double(-8, -8, 16, 16)
private val identity = new AffineTransform()
- def shape(g: Graphics2D, visualizer: Visualizer, peer: Option[String]) = shape
+ def shape(g: Graphics2D, visualizer: Visualizer, peer: Option[String]): Shape = shape
- def paint(g: Graphics2D, visualizer: Visualizer, peer: Option[String]) =
+ def paint(g: Graphics2D, visualizer: Visualizer, peer: Option[String]): Unit =
paint_transformed(g, visualizer, peer, identity)
def paint_transformed(g: Graphics2D, visualizer: Visualizer,
- peer: Option[String], at: AffineTransform) = {
+ peer: Option[String], at: AffineTransform)
+ {
val (border, background, foreground) = visualizer.Color(peer)
g.setStroke(stroke)
g.setColor(border)
@@ -83,7 +84,8 @@
new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)
def paint(g: Graphics2D, visualizer: Visualizer,
- peer: (String, String), head: Boolean, dummies: Boolean) {
+ peer: (String, String), head: Boolean, dummies: Boolean)
+ {
val ((fx, fy), (tx, ty)) =
(visualizer.Coordinates(peer._1), visualizer.Coordinates(peer._2))
val ds = {
@@ -120,7 +122,8 @@
private val slack = 0.1
def paint(g: Graphics2D, visualizer: Visualizer,
- peer: (String, String), head: Boolean, dummies: Boolean) {
+ peer: (String, String), head: Boolean, dummies: Boolean)
+ {
val ((fx, fy), (tx, ty)) =
(visualizer.Coordinates(peer._1), visualizer.Coordinates(peer._2))
val ds = {
@@ -230,7 +233,8 @@
}
}
- def paint(g: Graphics2D, path: GeneralPath, shape: Shape) {
+ def paint(g: Graphics2D, path: GeneralPath, shape: Shape)
+ {
position(path, shape) match {
case None =>
case Some(at) => {
--- a/src/Tools/Graphview/src/visualizer.scala Mon Dec 10 17:05:51 2012 +0100
+++ b/src/Tools/Graphview/src/visualizer.scala Mon Dec 10 17:44:17 2012 +0100
@@ -6,8 +6,11 @@
package isabelle.graphview
+
import isabelle._
+
+import java.awt.{Font => JFont, Color => JColor, Shape}
import java.awt.{RenderingHints, Graphics2D}
import javax.swing.JComponent
@@ -76,9 +79,9 @@
}
private val visualizer = this
- object Drawer {
+ object Drawer
+ {
import Shapes._
- import java.awt.Shape
def apply(g: Graphics2D, n: Option[String]) = n match {
case None =>
@@ -89,8 +92,10 @@
Cardinal_Spline_Edge.paint(g, visualizer, e, head, dummies)
}
- def paint_all_visible(g: Graphics2D, dummies: Boolean) = {
+ def paint_all_visible(g: Graphics2D, dummies: Boolean)
+ {
g.setFont(Font())
+
g.setRenderingHints(rendering_hints)
model.visible_edges().foreach(e => {
@@ -119,35 +124,33 @@
def clear() { selected = Nil }
}
- object Color {
- import java.awt.{Color => awtColor}
-
- def apply(l: Option[String]): (awtColor, awtColor, awtColor) = l match {
- case None => (awtColor.GRAY, awtColor.WHITE, awtColor.BLACK)
+ object Color
+ {
+ def apply(l: Option[String]): (JColor, JColor, JColor) = l match {
+ case None => (JColor.GRAY, JColor.WHITE, JColor.BLACK)
case Some(c) => {
if (Selection(c))
- (awtColor.BLUE, awtColor.GREEN, awtColor.BLACK)
+ (JColor.BLUE, JColor.GREEN, JColor.BLACK)
else
- (awtColor.BLACK,
- model.colors.getOrElse(c, awtColor.WHITE), awtColor.BLACK)
+ (JColor.BLACK,
+ model.colors.getOrElse(c, JColor.WHITE), JColor.BLACK)
}
}
- def apply(e: (String, String)): awtColor = awtColor.BLACK
+ def apply(e: (String, String)): JColor = JColor.BLACK
}
+
+ object Font
+ {
+ def apply(): JFont =
+ new JFont(Parameters.font_family, JFont.BOLD, Parameters.font_size)
+ }
object Caption {
def apply(key: String) =
if (Parameters.long_names) key
else model.complete.get_node(key).name
}
-
- object Font {
- import java.awt.{Font => awtFont}
-
- def apply() = new awtFont(Parameters.font_family,
- awtFont.BOLD, Parameters.font_size)
- }
val rendering_hints =
new RenderingHints(