src/Tools/Graphview/graph_file.scala
changeset 59441 ab2c3597f1d3
child 59443 5b552b4f63a5
equal deleted inserted replaced
59440:07e3c15cb10c 59441:ab2c3597f1d3
       
     1 /*  Title:      Tools/Graphview/graph_file.scala
       
     2     Author:     Makarius
       
     3 
       
     4 File system operations for graph output.
       
     5 */
       
     6 
       
     7 package isabelle.graphview
       
     8 
       
     9 
       
    10 import isabelle._
       
    11 
       
    12 import java.io.{File => JFile}
       
    13 import java.awt.{Color, Graphics2D}
       
    14 
       
    15 
       
    16 object Graph_File
       
    17 {
       
    18   def write(visualizer: Visualizer, file: JFile)
       
    19   {
       
    20     val box = visualizer.bounding_box()
       
    21     val w = box.width.ceil.toInt
       
    22     val h = box.height.ceil.toInt
       
    23 
       
    24     def paint(gfx: Graphics2D)
       
    25     {
       
    26       gfx.setColor(Color.WHITE)
       
    27       gfx.fillRect(0, 0, w, h)
       
    28       gfx.translate(- box.x, - box.y)
       
    29       visualizer.paint_all_visible(gfx)
       
    30     }
       
    31 
       
    32     val name = file.getName
       
    33     if (name.endsWith(".png")) Graphics_File.write_png(file, paint _, w, h)
       
    34     else if (name.endsWith(".pdf")) Graphics_File.write_pdf(file, paint _, w, h)
       
    35     else error("Bad type of file: " + quote(name) + " (.png or .pdf expected)")
       
    36   }
       
    37 }