--- /dev/null
+package org.simantics.debug.graphical;\r
+\r
+import java.awt.Toolkit;\r
+import java.awt.event.KeyAdapter;\r
+import java.awt.event.KeyEvent;\r
+import java.awt.event.WindowAdapter;\r
+import java.awt.event.WindowEvent;\r
+import java.util.Arrays;\r
+\r
+import javax.swing.JFrame;\r
+\r
+public class GraphicalDebugger {\r
+\r
+ public static void newGraphDebugger() {\r
+ final JFrame frame = new JFrame();\r
+ frame.setTitle("Graph debugger");\r
+ Toolkit tk = Toolkit.getDefaultToolkit();\r
+ frame.setIconImages(Arrays.asList(\r
+ tk.createImage(GraphicalDebugger.class.getResource("bug-icon1.png")),\r
+ tk.createImage(GraphicalDebugger.class.getResource("bug-icon2.png")),\r
+ tk.createImage(GraphicalDebugger.class.getResource("bug-icon3.png")),\r
+ tk.createImage(GraphicalDebugger.class.getResource("bug-icon4.png"))\r
+ ));\r
+ frame.setSize(800, 600);\r
+\r
+ final DebuggerCanvas canvas = new DebuggerCanvas();\r
+ frame.add(canvas);\r
+ \r
+ frame.addWindowListener(new WindowAdapter() {\r
+ @Override\r
+ public void windowGainedFocus(WindowEvent e) {\r
+ canvas.repaint();\r
+ }\r
+ });\r
+ frame.addKeyListener(new UsefulKeyAdapter(new KeyAdapter() {\r
+ @Override\r
+ public void keyPressed(KeyEvent e) {\r
+ canvas.keyPressed(e);\r
+ }\r
+ @Override\r
+ public void keyReleased(KeyEvent e) {\r
+ canvas.keyReleased(e);\r
+ }\r
+ }));\r
+ \r
+ frame.addWindowListener(new WindowAdapter() {\r
+ \r
+ @Override\r
+ public void windowClosing(WindowEvent e) {\r
+ frame.dispose();\r
+ }\r
+ \r
+ }); \r
+ frame.setVisible(true);\r
+ }\r
+ \r
+}\r