source: simplerunner/src/main/java/geniusweb/simplerunner/gui/GUI.java@ 52

Last change on this file since 52 was 52, checked in by ruud, 14 months ago

Fixed small issues in domaineditor.

File size: 2.3 KB
Line 
1package geniusweb.simplerunner.gui;
2
3import java.awt.BorderLayout;
4import java.io.PrintWriter;
5import java.io.StringWriter;
6import java.util.logging.Level;
7
8import javax.swing.JButton;
9import javax.swing.JFrame;
10import javax.swing.JPanel;
11import javax.swing.JScrollPane;
12import javax.swing.JTextArea;
13import javax.swing.SwingUtilities;
14
15import geniusweb.simplerunner.ClassPathConnectionFactory;
16import geniusweb.simplerunner.Runner;
17import tudelft.utilities.logging.Reporter;
18
19/**
20 * Simple GUI allowing users to create the settings interactively, much like on
21 * the runserver
22 *
23 */
24public class GUI extends JPanel {
25 private JTextArea resultarea = new JTextArea(
26 "Results will appear here after run", 9, 40);
27 private final SettingsPanel settingsPanel;
28
29 public GUI() {
30 setLayout(new BorderLayout());
31 settingsPanel = new SettingsPanel();
32 add(settingsPanel, BorderLayout.CENTER);
33 add(startPanel(), BorderLayout.SOUTH);
34 }
35
36 private JPanel startPanel() {
37 JPanel startpanel = new JPanel();
38 startpanel.setLayout(new BorderLayout());
39 JButton startbutton = new JButton("Start Session");
40 startpanel.add(startbutton, BorderLayout.NORTH);
41 startpanel.add(new JScrollPane(resultarea), BorderLayout.CENTER);
42
43 startbutton.addActionListener(evt -> runsession());
44 return startpanel;
45 }
46
47 private void runsession() {
48 resultarea.setText("");
49 Reporter myreporter = new Reporter() {
50
51 @Override
52 public void log(Level level, String msg) {
53 SwingUtilities.invokeLater(new Runnable() {
54 @Override
55 public void run() {
56 resultarea.append("[" + level + "] " + msg + "\n");
57 }
58 });
59 }
60
61 @Override
62 public void log(Level level, String msg, Throwable thrown) {
63 SwingUtilities.invokeLater(new Runnable() {
64
65 @Override
66 public void run() {
67 resultarea
68 .append("[" + level + "] throws " + msg + "\n");
69 StringWriter errors = new StringWriter();
70 thrown.printStackTrace(new PrintWriter(errors));
71 resultarea.append(errors.toString() + "\n");
72 }
73 });
74 }
75 };
76 Runner runner = new Runner(settingsPanel.getSettings(),
77 new ClassPathConnectionFactory(), myreporter, 0);
78 runner.run();
79 }
80
81 public static void main(String[] args) {
82 JFrame frame = new JFrame("GeniusWeb SimpleRunner GUI");
83 frame.add(new GUI());
84 frame.pack();
85 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
86 frame.setVisible(true);
87 }
88}
Note: See TracBrowser for help on using the repository browser.