|
37 | 37 | public class ErrorDisplay { |
38 | 38 | public static ArrayList<ExceptionDialog> errorQueue; |
39 | 39 | public static ErrorDisplayPanel errorDisplayPanel; |
40 | | - public static JScrollPane errorDisplayScrollPane; |
41 | | - public static DefTable errorDisplayTable; |
42 | | - public static ContextMenu errorDisplayContextMenu; |
43 | | - public static JButton removeButton; |
44 | 40 |
|
45 | | - private JFrame frame; |
| 41 | + private Ui ui; |
46 | 42 |
|
47 | | - public ErrorDisplay() { |
48 | | - errorDisplayPanel = new ErrorDisplayPanel(); |
| 43 | + public static class Ui extends JFrame { |
| 44 | + public static JScrollPane errorDisplayScrollPane; |
| 45 | + public static DefTable errorDisplayTable; |
| 46 | + public static ContextMenu errorDisplayContextMenu; |
| 47 | + public static JButton removeButton; |
49 | 48 |
|
50 | | - errorDisplayTable = new DefTable(); |
51 | | - errorDisplayTable.setModel(new DefaultTableModel(new Object[][]{}, new String[]{""})); |
52 | | - errorDisplayTable.addMouseListener(new AsyncMouseListener(new MouseAdapter() { |
53 | | - @Override |
54 | | - public void mouseClicked(MouseEvent e) { |
55 | | - super.mouseClicked(e); |
56 | | - if (SwingUtilities.isRightMouseButton(e)) return; |
57 | | - if (e.getClickCount() == 2) { |
58 | | - if(errorDisplayTable.getSelectedRow() == -1) return; |
59 | | - errorQueue.get(errorDisplayTable.getSelectedRow()).openReal(); |
| 49 | + public Ui() { |
| 50 | + errorDisplayTable = new DefTable(); |
| 51 | + errorDisplayTable.setModel(new DefaultTableModel(new Object[][]{}, new String[]{""})); |
| 52 | + errorDisplayTable.addMouseListener(new AsyncMouseListener(new MouseAdapter() { |
| 53 | + @Override |
| 54 | + public void mouseClicked(MouseEvent e) { |
| 55 | + super.mouseClicked(e); |
| 56 | + if (SwingUtilities.isRightMouseButton(e)) return; |
| 57 | + if (e.getClickCount() == 2) { |
| 58 | + if(errorDisplayTable.getSelectedRow() == -1) return; |
| 59 | + errorQueue.get(errorDisplayTable.getSelectedRow()).openReal(); |
| 60 | + } |
60 | 61 | } |
61 | | - } |
62 | | - })); |
63 | | - |
64 | | - errorDisplayScrollPane = new JScrollPane(); |
65 | | - errorDisplayScrollPane.setViewportView(errorDisplayTable); |
66 | | - |
67 | | - errorDisplayContextMenu = new ContextMenu(errorDisplayTable, null, getClass()); |
68 | | - errorDisplayContextMenu.addItem(PublicValues.language.translate("ui.general.copy"), () -> ClipboardUtil.set(errorQueue.get(errorDisplayTable.getSelectedRow()).getAsFormattedText())); |
69 | | - errorDisplayContextMenu.addItem(PublicValues.language.translate("ui.general.remove"), () -> { |
70 | | - errorQueue.remove(errorDisplayTable.getSelectedRow()); |
71 | | - errorDisplayPanel.setText(String.valueOf(errorQueue.size())); |
72 | | - ((DefaultTableModel) errorDisplayTable.getModel()).removeRow(errorDisplayTable.getSelectedRow()); |
73 | | - if (errorDisplayTable.getModel().getRowCount() == 0) { |
| 62 | + })); |
| 63 | + |
| 64 | + errorDisplayScrollPane = new JScrollPane(); |
| 65 | + errorDisplayScrollPane.setViewportView(errorDisplayTable); |
| 66 | + |
| 67 | + errorDisplayContextMenu = new ContextMenu(errorDisplayTable, null, getClass()); |
| 68 | + errorDisplayContextMenu.addItem(PublicValues.language.translate("ui.general.copy"), () -> ClipboardUtil.set(errorQueue.get(errorDisplayTable.getSelectedRow()).getAsFormattedText())); |
| 69 | + errorDisplayContextMenu.addItem(PublicValues.language.translate("ui.general.remove"), () -> { |
| 70 | + errorQueue.remove(errorDisplayTable.getSelectedRow()); |
| 71 | + errorDisplayPanel.setText(String.valueOf(errorQueue.size())); |
| 72 | + ((DefaultTableModel) errorDisplayTable.getModel()).removeRow(errorDisplayTable.getSelectedRow()); |
| 73 | + if (errorDisplayTable.getModel().getRowCount() == 0) { |
| 74 | + errorDisplayPanel.setVisible(false); |
| 75 | + } |
| 76 | + }); |
| 77 | + |
| 78 | + removeButton = new JButton(PublicValues.language.translate("ui.errorqueue.clear")); |
| 79 | + removeButton.addActionListener(new AsyncActionListener(e1 -> { |
| 80 | + errorQueue.clear(); |
| 81 | + ((DefaultTableModel) errorDisplayTable.getModel()).setRowCount(0); |
74 | 82 | errorDisplayPanel.setVisible(false); |
75 | | - } |
76 | | - }); |
| 83 | + })); |
| 84 | + } |
77 | 85 |
|
78 | | - removeButton = new JButton(PublicValues.language.translate("ui.errorqueue.clear")); |
79 | | - removeButton.addActionListener(new AsyncActionListener(e1 -> { |
80 | | - errorQueue.clear(); |
| 86 | + @Override |
| 87 | + public void open() { |
81 | 88 | ((DefaultTableModel) errorDisplayTable.getModel()).setRowCount(0); |
82 | | - errorDisplayPanel.setVisible(false); |
83 | | - })); |
84 | | - } |
| 89 | + for (ExceptionDialog exd : errorQueue) { |
| 90 | + ((DefaultTableModel) errorDisplayTable.getModel()).addRow(new Object[]{exd.getPreview()}); |
| 91 | + } |
85 | 92 |
|
86 | | - public void open() { |
87 | | - ((DefaultTableModel) errorDisplayTable.getModel()).setRowCount(0); |
88 | | - for (ExceptionDialog exd : errorQueue) { |
89 | | - ((DefaultTableModel) errorDisplayTable.getModel()).addRow(new Object[]{exd.getPreview()}); |
| 93 | + setTitle(PublicValues.language.translate("ui.errorqueue.title")); |
| 94 | + add(removeButton, BorderLayout.SOUTH); |
| 95 | + setPreferredSize(new Dimension(ContentPanel.frame.getWidth() / 2, ContentPanel.frame.getHeight() / 2)); |
| 96 | + add(errorDisplayTable, BorderLayout.CENTER); |
| 97 | + setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); |
| 98 | + addWindowListener(new WindowAdapter() { |
| 99 | + @Override |
| 100 | + public void windowClosing(WindowEvent e) { |
| 101 | + close(); |
| 102 | + } |
| 103 | + }); |
| 104 | + |
| 105 | + super.open(); |
| 106 | + } |
| 107 | + |
| 108 | + public void close() { |
| 109 | + dispose(); |
90 | 110 | } |
91 | | - frame = new JFrame(); |
92 | | - frame.setTitle(PublicValues.language.translate("ui.errorqueue.title")); |
93 | | - frame.add(removeButton, BorderLayout.SOUTH); |
94 | | - frame.setPreferredSize(new Dimension(ContentPanel.frame.getWidth() / 2, ContentPanel.frame.getHeight() / 2)); |
95 | | - frame.add(errorDisplayTable, BorderLayout.CENTER); |
96 | | - frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); |
97 | | - frame.addWindowListener(new WindowAdapter() { |
98 | | - @Override |
99 | | - public void windowClosing(WindowEvent e) { |
100 | | - close(); |
101 | | - } |
102 | | - }); |
103 | | - frame.pack(); |
104 | | - frame.setVisible(true); |
105 | 111 | } |
106 | 112 |
|
107 | | - public void close() { |
108 | | - frame.dispose(); |
109 | | - frame = null; |
| 113 | + public ErrorDisplay() { |
| 114 | + errorDisplayPanel = new ErrorDisplayPanel(); |
110 | 115 | } |
111 | 116 |
|
112 | 117 | public static class ErrorDisplayPanel extends JButton { |
@@ -149,6 +154,16 @@ public void setText(String text) { |
149 | 154 | } |
150 | 155 | } |
151 | 156 |
|
| 157 | + public void open() { |
| 158 | + this.ui = new Ui(); |
| 159 | + this.ui.open(); |
| 160 | + } |
| 161 | + |
| 162 | + public void close() { |
| 163 | + this.ui.close(); |
| 164 | + this.ui = null; |
| 165 | + } |
| 166 | + |
152 | 167 | public JButton getDisplayPanel() { |
153 | 168 | return errorDisplayPanel; |
154 | 169 | } |
|
0 commit comments