Source code: plugins/EventBrowser/EventBrowserFrame.java
1 /*
2 * EventBrowserFrame.java
3 *
4 * Created on November 12, 2002, 1:03 PM
5 */
6
7 package plugins.EventBrowser;
8
9 import dexter.core.Dexter;
10 import dexter.swingExtensions.sortedTable.JSortableTable;
11 import dexter.events.Action;
12 import dexter.events.Event;
13
14 /**
15 *
16 * @author Tobias Riemer
17 */
18 public class EventBrowserFrame extends javax.swing.JFrame {
19
20 protected java.util.Vector events = new java.util.Vector();
21 protected plugins.EventBrowser.EventBrowserFrame.EventTableModel eventTableModel = new plugins.EventBrowser.EventBrowserFrame.EventTableModel();
22 protected JSortableTable jEventTable = new JSortableTable(eventTableModel, 1, true);
23
24 protected plugins.EventBrowser.EventBrowserFrame.ActionTableModel actionTableModel = new plugins.EventBrowser.EventBrowserFrame.ActionTableModel();
25 protected JSortableTable jActionTable = new JSortableTable(actionTableModel, 1, true);
26
27 /** Creates new form EventBrowserFrame */
28 public EventBrowserFrame() {
29 initComponents();
30 jActionTable.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
31 jActionTable.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
32
33 jScrollPane1.getViewport().setView(jActionTable);
34
35 jEventTable.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
36 jEventTable.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
37
38 jScrollPane2.getViewport().setView(jEventTable);
39
40 javax.swing.table.TableColumn column = null;
41 for (int i = 0; i < jActionTable.getColumnCount(); i++) {
42 column = jActionTable.getColumnModel().getColumn(i);
43 if (i == 0) {
44 column.setPreferredWidth(200);
45 } else {
46 column.setPreferredWidth(40);
47 }
48 }
49
50 column = null;
51 for (int i = 0; i < jEventTable.getColumnCount(); i++) {
52 column = jEventTable.getColumnModel().getColumn(i);
53 column.setPreferredWidth(200);
54 }
55
56 java.util.HashMap hm = Dexter.getInstance().getEventDispatcher().getActions();
57 java.util.Iterator it = hm.values().iterator();
58 Action action = null;
59 while (it.hasNext()) {
60 action = (Action) it.next();
61 Dexter.getInstance().getEventDispatcher().addActionListener(action.getName(),
62 new dexter.events.ActionListener() {
63 public void actionPerformed(Event event) {
64 addEvent(event);
65 }
66 });
67
68 }
69 }
70
71 private void addEvent(Event event) {
72 events.add(event);
73 eventTableModel.fireTableDataChanged();
74 }
75
76 /** This method is called from within the constructor to
77 * initialize the form.
78 * WARNING: Do NOT modify this code. The content of this method is
79 * always regenerated by the Form Editor.
80 */
81 private void initComponents() {//GEN-BEGIN:initComponents
82 jSplitPane1 = new javax.swing.JSplitPane();
83 jScrollPane1 = new javax.swing.JScrollPane();
84 jScrollPane2 = new javax.swing.JScrollPane();
85
86 setTitle("Event Browser");
87 addWindowListener(new java.awt.event.WindowAdapter() {
88 public void windowClosing(java.awt.event.WindowEvent evt) {
89 exitForm(evt);
90 }
91 });
92
93 jSplitPane1.setDividerLocation(200);
94 jSplitPane1.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
95 jScrollPane1.setPreferredSize(new java.awt.Dimension(600, 400));
96 jSplitPane1.setLeftComponent(jScrollPane1);
97
98 jSplitPane1.setRightComponent(jScrollPane2);
99
100 getContentPane().add(jSplitPane1, java.awt.BorderLayout.NORTH);
101
102 pack();
103 java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
104 setSize(new java.awt.Dimension(400, 300));
105 setLocation((screenSize.width-400)/2,(screenSize.height-300)/2);
106 }//GEN-END:initComponents
107
108 /** Exit the Application */
109 private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm
110 System.exit(0);
111 }//GEN-LAST:event_exitForm
112
113 /**
114 * @param args the command line arguments
115 */
116 public static void main(String args[]) {
117 //new EventBrowserFrame().show();
118 java.awt.Font[] fonts = java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts();
119 for(int i=0;i<fonts.length;i++) System.out.println(fonts[i]);
120 }
121
122 class EventTableModel extends javax.swing.table.AbstractTableModel {
123 final String[] columnNames = {"Action", "Source", "Paramenter"};
124
125 public int getColumnCount() {
126 return columnNames.length;
127 }
128
129 public int getRowCount() {
130 return events.size();
131 }
132
133 public String getColumnName(int col) {
134 return columnNames[col];
135 }
136
137 public Object getValueAt(int row, int col) {
138
139 if (row >= events.size()) return "";
140 Event event = (Event) events.get(row);
141
142 switch (col) {
143 case 0: return event.getAction().getName();
144 case 1: return event.getSource();
145 case 2: return event.getValue();
146 }
147 return new String();
148 }
149
150 }
151
152 class ActionTableModel extends javax.swing.table.AbstractTableModel {
153 final String[] columnNames = {"Action"};
154
155 public int getColumnCount() {
156 return columnNames.length;
157 }
158
159 public int getRowCount() {
160 return Dexter.getInstance().getEventDispatcher().getActions().size();
161 }
162
163 public String getColumnName(int col) {
164 return columnNames[col];
165 }
166
167 public Object getValueAt(int row, int col) {
168
169 java.util.HashMap hm = Dexter.getInstance().getEventDispatcher().getActions();
170 java.util.Iterator it = hm.values().iterator();
171 Action action = (Action) it.next();
172 for (int i=0;i<row;i++) {
173 action = (Action) it.next();
174 }
175 if (action == null) return "";
176 switch (col) {
177 case 0: return action.getName();
178 }
179 return new String();
180 }
181
182 }
183
184 // Variables declaration - do not modify//GEN-BEGIN:variables
185 private javax.swing.JScrollPane jScrollPane1;
186 private javax.swing.JSplitPane jSplitPane1;
187 private javax.swing.JScrollPane jScrollPane2;
188 // End of variables declaration//GEN-END:variables
189
190 }