1 package org.lcsim.plugin.browser;
2
3 import java.util.Date;
4 import java.util.List;
5 import java.util.Map;
6
7 import javax.swing.JPanel;
8 import javax.swing.table.DefaultTableModel;
9
10 import org.lcsim.event.EventHeader;
11 import org.lcsim.event.EventHeader.LCMetaData;
12 import org.lcsim.plugin.browser.sort.DefaultSortableTableModel;
13 import org.lcsim.plugin.browser.sort.TableSorter;
14
15
16
17
18 class EventHeaderPanel extends JPanel
19 {
20 private DefaultTableModel blockModel;
21
22 EventHeaderPanel()
23 {
24 initComponents();
25 blockModel = (DefaultTableModel) blockTable.getModel();
26 blockTable.setModel(new DefaultSortableTableModel(blockModel));
27
28 new TableSorter(blockTable).setSortOnColumn(0);
29 }
30 void setData(EventHeader event)
31 {
32 DefaultTableModel model = (DefaultTableModel) headerTable.getModel();
33 if (event != null)
34 {
35 model.setValueAt(String.valueOf(event.getRunNumber()),0,1);
36 model.setValueAt(String.valueOf(event.getEventNumber()),1,1);
37 long ts = event.getTimeStamp();
38 if (ts > 1e15) model.setValueAt(new Date(ts/1000000),2,1);
39 else model.setValueAt(String.valueOf(ts),2,1);
40 model.setValueAt(event.getDetectorName(),3,1);
41
42
43 Map<String,String[]> sparams = event.getStringParameters();
44 Map<String,int[]> iparams = event.getIntegerParameters();
45 Map<String,float[]> fparams = event.getFloatParameters();
46
47 float weight = 1.0f;
48 if (fparams.containsKey("_weight"))
49 weight = fparams.get("_weight")[0];
50
51 int idrup = 0;
52 if (iparams.containsKey("_idrup"))
53 idrup = iparams.get("_idrup")[0];
54
55 String slicVersion = "";
56 if (sparams.containsKey("SLIC_VERSION"))
57 slicVersion = sparams.get("SLIC_VERSION")[0];
58
59 String geantVersion = "";
60 if (sparams.containsKey("GEANT4_VERSION"))
61 geantVersion = sparams.get("GEANT4_VERSION")[0];
62
63 model.setValueAt(weight, 4, 1);
64 model.setValueAt(idrup, 5, 1);
65 model.setValueAt(slicVersion, 6, 1);
66 model.setValueAt(geantVersion, 7, 1);
67 }
68 else for (int i=0; i<8; i++) model.setValueAt("",i,1);
69
70 blockModel.setRowCount(0);
71 if (event != null)
72 {
73 List<List<Object>> collections = event.get(Object.class);
74 for (List<Object> list : collections)
75 {
76 LCMetaData meta = event.getMetaData(list);
77 blockModel.addRow(new Object[]{meta.getName(),meta.getType().getName(), list.size()});
78 }
79 }
80 }
81
82
83
84
85
86
87
88 private void initComponents()
89 {
90 javax.swing.JScrollPane blockScroll;
91 javax.swing.JPanel jPanel1;
92 javax.swing.JPanel jPanel2;
93
94 jPanel1 = new javax.swing.JPanel();
95 headerTable = new javax.swing.JTable();
96 jPanel2 = new javax.swing.JPanel();
97 blockScroll = new javax.swing.JScrollPane();
98 blockTable = new javax.swing.JTable();
99
100 setLayout(new java.awt.BorderLayout());
101
102 jPanel1.setLayout(new java.awt.BorderLayout());
103
104 jPanel1.setBorder(new javax.swing.border.TitledBorder("LCIO Event Header"));
105 headerTable.setModel(new javax.swing.table.DefaultTableModel(
106 new Object [][]
107 {
108 {"Run", null},
109 {"Event", null},
110 {"Time Stamp", null},
111 {"Detector Name", null},
112 {"Event Weight", null},
113 {"IDRUP", null},
114 {"SLIC Version", null},
115 {"Geant4 Version", null}
116 },
117 new String []
118 {
119 "Title 1", "Title 2"
120 }
121 )
122 {
123 Class[] types = new Class []
124 {
125 java.lang.String.class, java.lang.String.class
126 };
127 boolean[] canEdit = new boolean []
128 {
129 false, false
130 };
131
132 public Class getColumnClass(int columnIndex)
133 {
134 return types [columnIndex];
135 }
136
137 public boolean isCellEditable(int rowIndex, int columnIndex)
138 {
139 return canEdit [columnIndex];
140 }
141 });
142 jPanel1.add(headerTable, java.awt.BorderLayout.CENTER);
143
144 add(jPanel1, java.awt.BorderLayout.NORTH);
145
146 jPanel2.setLayout(new java.awt.BorderLayout());
147
148 jPanel2.setBorder(new javax.swing.border.TitledBorder("Collections"));
149 blockTable.setModel(new javax.swing.table.DefaultTableModel(
150 new Object [][]
151 {
152 {null, null, null},
153 {null, null, null},
154 {null, null, null},
155 {null, null, null}
156 },
157 new String []
158 {
159 "Name", "Type", "Size"
160 }
161 )
162 {
163 Class[] types = new Class []
164 {
165 java.lang.String.class, java.lang.String.class, java.lang.Integer.class
166 };
167 boolean[] canEdit = new boolean []
168 {
169 false, false, false
170 };
171
172 public Class getColumnClass(int columnIndex)
173 {
174 return types [columnIndex];
175 }
176
177 public boolean isCellEditable(int rowIndex, int columnIndex)
178 {
179 return canEdit [columnIndex];
180 }
181 });
182 blockScroll.setViewportView(blockTable);
183
184 jPanel2.add(blockScroll, java.awt.BorderLayout.CENTER);
185
186 add(jPanel2, java.awt.BorderLayout.CENTER);
187
188 }
189
190
191
192
193 private javax.swing.JTable blockTable;
194 private javax.swing.JTable headerTable;
195
196
197 }