View Javadoc

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   * @author tonyj
17   */
18  class EventHeaderPanel extends JPanel
19  {
20     private DefaultTableModel blockModel;
21     /** Creates new form EventHeaderPanel */
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           // Add additional event parameters for Norman.  --JM
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     /** This method is called from within the constructor to
83      * initialize the form.
84      * WARNING: Do NOT modify this code. The content of this method is
85      * always regenerated by the Form Editor.
86      */
87      // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
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     // </editor-fold>//GEN-END:initComponents
190    
191    
192     // Variables declaration - do not modify//GEN-BEGIN:variables
193     private javax.swing.JTable blockTable;
194     private javax.swing.JTable headerTable;
195     // End of variables declaration//GEN-END:variables
196    
197 }