AuD
Lecture 'Algorithmen und Datenstrukturen' (code examples)
SVGViewer.java
Go to the documentation of this file.
1package aud.util;
2
3import java.awt.*;
4import java.awt.event.*;
5import java.io.*;
6
7import javax.swing.*;
8
9import org.apache.batik.swing.JSVGCanvas;
10import org.apache.batik.swing.JSVGScrollPane;
11
33public class SVGViewer {
34
35 protected JFrame frame;
36 protected JSVGCanvas svgCanvas;
37 protected JLabel label;
38 protected File svgfile;
39
41 public SVGViewer(JFrame parent,File svgfile) {
43 svgCanvas=new JSVGCanvas();
44 //svgCanvas.setEnableRotateInteractor(false);
45
46 label=new JLabel();
47 parent.getContentPane().add(createComponents());
48
49 if (svgfile==null) {
50 try {
51 svgfile=File.createTempFile("aud-svgviewer-",".svg");
52 } catch (IOException e) {
53 System.err.println("ERROR: "+e.getMessage());
54 System.exit(-1);
55 }
56 svgfile.deleteOnExit();
57 }
58 }
59
61 public JFrame parent() { return frame; }
63 public JLabel statusbar() { return label; }
64
66 public void close() {
67 frame.setVisible(false);
68 frame.dispose();
69 }
70
71 protected JComponent createComponents() {
72 final JPanel panel = new JPanel(new BorderLayout());
73 @SuppressWarnings("unused")
74 final JSVGScrollPane pane = new JSVGScrollPane(svgCanvas);
75
76 panel.add("Center", svgCanvas);
77 panel.add("South", label);
78 return panel;
79 }
80
82 public void display(File file) {
83 svgfile=file;
84 display();
85 }
87 public void display() {
88 svgCanvas.setURI(svgfile.toURI().toString());
89 }
90
92 public static void help() {
93 System.out.println
94 ( "Batik JSVGCanvas overview\n"+
95 "-------------------------\n"+
96 "Shift+Mouse Left\tpan\n"+
97 "Shift+Mouse Right\tzoom in/out (drag)\n"+
98 "Ctrl+Mouse Left\trectangle zoom\n"+
99 "Ctrl+Mouse Right\trotate [disabled!]\n"+
100 "Ctrl+I\tzoom in\n"+
101 "Ctrl+O\tzoom out\n"
102 );
103 }
104
106 public static SVGViewer displayWindow(File file,String caption) {
107 JFrame f=new JFrame(caption!=null ? caption : "aud.util.SVGViewer");
108 SVGViewer svg=new SVGViewer(f,file);
109 f.setSize(800, 600);
110 f.setVisible(true);
111 if (file!=null)
112 svg.display(file);
113 return svg;
114 }
115
117 public void setExitOnClose() {
118 parent().addWindowListener(new WindowAdapter() {
119 public void windowClosing(WindowEvent e) {
120 System.exit(0);
121 }
122 });
123 }
124
126 public static void main(String[] args) {
127 if (args.length==0) {
128 System.err.println("usage: java aud.util.SVGViewer file.svg\n");
129 SVGViewer.help();
130 }
131 else
132 for (String arg : args) {
133 SVGViewer v=SVGViewer.displayWindow(new File(arg),arg);
134 v.setExitOnClose();
135 }
136 }
137}
Simple SVG viewer based on Batik's SVGCanvas.
Definition: SVGViewer.java:33
static void help()
print help (mouse/key bindings) to stdout
Definition: SVGViewer.java:92
JFrame parent()
get parent widget
Definition: SVGViewer.java:61
static SVGViewer displayWindow(File file, String caption)
create new SVGViewer (toplevel window) and display file
Definition: SVGViewer.java:106
void close()
close viewer
Definition: SVGViewer.java:66
JComponent createComponents()
Definition: SVGViewer.java:71
static void main(String[] args)
visualize given dot files (file names as command line arguments)
Definition: SVGViewer.java:126
SVGViewer(JFrame parent, File svgfile)
create new instance
Definition: SVGViewer.java:41
JLabel statusbar()
get status bar
Definition: SVGViewer.java:63
void display()
display current svg file
Definition: SVGViewer.java:87
JSVGCanvas svgCanvas
Definition: SVGViewer.java:36
void setExitOnClose()
exit application if viewer is closed
Definition: SVGViewer.java:117
void display(File file)
display svg file
Definition: SVGViewer.java:82