IVScanLister.java

00001 /*
00002  * IVScanLister.java
00003  *
00004  * Created on 27 February 2004, 13:50
00005  */
00006 
00007 package DisplayGUI;
00008 import javax.swing.ListSelectionModel;
00009 import javax.swing.event.ListSelectionListener;
00010 import javax.swing.ListSelectionModel;
00011 import javax.swing.event.ListSelectionEvent;
00012 import java.util.*;
00013 import is.*;
00014 import Sct.Serializable;
00015 import Sct.IS.*;
00016 import ProdDatabase.*;
00017 
00022 public class IVScanLister extends javax.swing.JFrame implements displayParams, ListSelectionListener {
00023     
00024     DataList dataList;
00025     Map testMap;
00026     ListSelectionModel rowSM;
00027     IVTestInterface ivTestInterface;
00028 
00029     private javax.swing.JButton jButton1;
00030     private javax.swing.JTable jTable;
00031     private javax.swing.JButton jButton2;
00032     private javax.swing.JButton jButton3;
00033     private javax.swing.JLabel jLabel2;
00034     private javax.swing.JScrollPane jScrollPane1;
00035 
00037     public IVScanLister(Set moduleList) {
00038         super("Import IV scans");
00039         initComponents();
00040         ivTestInterface = new IVTestInterface(moduleList);
00041 
00042          refreshScanList();
00043     }
00044     
00050     private void initComponents() {
00051        
00052         java.awt.GridBagConstraints gridBagConstraints;
00053 
00054         jButton2 = new javax.swing.JButton();
00055         jButton2.setFont(displayTextFont);
00056         jLabel2 = new javax.swing.JLabel();
00057         dataList = new DataList();
00058         jTable = new javax.swing.JTable(dataList);
00059         jTable.setFont(tableFont);
00060         jTable.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
00061         rowSM = jTable.getSelectionModel();
00062         rowSM.addListSelectionListener(this);
00063         jScrollPane1 = new javax.swing.JScrollPane(jTable);
00064         jScrollPane1.setBackground(new java.awt.Color(255, 255, 255));
00065         jScrollPane1.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));
00066         jScrollPane1.setMinimumSize(new java.awt.Dimension(400, 150));
00067         jScrollPane1.setPreferredSize(new java.awt.Dimension(400, 200));
00068         jButton1 = new javax.swing.JButton();
00069         jButton1.setFont(displayTextFont);
00070         jButton3 = new javax.swing.JButton();
00071         jButton3.setFont(displayTextFont);
00072 
00073         getContentPane().setLayout(new java.awt.GridBagLayout());
00074 
00075         addWindowListener(new java.awt.event.WindowAdapter() {
00076             public void windowClosing(java.awt.event.WindowEvent evt) {
00077                 exitForm(evt);
00078             }
00079         });
00080 
00081         jButton2.setText("Import Selected Scan(s)");
00082         gridBagConstraints = new java.awt.GridBagConstraints();
00083         gridBagConstraints.gridx = 0;
00084         gridBagConstraints.gridy = 3;
00085         gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
00086         gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
00087         getContentPane().add(jButton2, gridBagConstraints);
00088         jButton2.addActionListener(new java.awt.event.ActionListener() {
00089                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00090                        int minSelectedRow = rowSM.getMinSelectionIndex();
00091                        int maxSelectedRow = rowSM.getMaxSelectionIndex();
00092                        for(int i=minSelectedRow;i<=maxSelectedRow;i++) {
00093                            publishControlObject(ivTestInterface.getIVInfo(i));
00094                            }
00095                        setVisible(false);
00096                      }
00097              });
00098         jButton2.setEnabled(false);
00099 
00100 
00101 
00102         jLabel2.setText("No Data listed...");
00103         jLabel2.setFont(displayScaleFont);  
00104         gridBagConstraints = new java.awt.GridBagConstraints();
00105         gridBagConstraints.gridx = 0;
00106         gridBagConstraints.gridy = 1;
00107         gridBagConstraints.gridwidth = 2;
00108         gridBagConstraints.insets = new java.awt.Insets(2, 5, 0, 5);
00109         gridBagConstraints.weighty = 0.1;
00110         gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
00111 //        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
00112         getContentPane().add(jLabel2, gridBagConstraints);
00113 
00114         gridBagConstraints = new java.awt.GridBagConstraints();
00115         gridBagConstraints.gridx = 0;
00116         gridBagConstraints.gridy = 2;
00117         gridBagConstraints.gridwidth = 2;
00118         gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5);
00119         gridBagConstraints.weighty = 0.6;
00120         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
00121         getContentPane().add(jScrollPane1, gridBagConstraints);
00122 
00123         jButton1.setText("Refresh Data List");
00124         gridBagConstraints = new java.awt.GridBagConstraints();
00125         gridBagConstraints.gridx = 0;
00126         gridBagConstraints.gridy = 0;
00127         gridBagConstraints.gridwidth = 2;
00128         gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
00129         gridBagConstraints.weighty = 0.2;
00130         gridBagConstraints.weightx = 0.5;
00131         gridBagConstraints.anchor = java.awt.GridBagConstraints.CENTER;
00132         getContentPane().add(jButton1, gridBagConstraints);
00133         jButton1.addActionListener(new java.awt.event.ActionListener() {
00134                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00135                             refreshScanList();
00136                     }
00137              });
00138 
00139         jButton3.setText("Close");
00140         gridBagConstraints = new java.awt.GridBagConstraints();
00141         gridBagConstraints.gridx = 1;
00142         gridBagConstraints.gridy = 3;
00143         gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
00144         gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST;
00145         gridBagConstraints.weighty = 0.1;
00146         gridBagConstraints.weightx = 0.5;
00147         getContentPane().add(jButton3, gridBagConstraints);
00148         jButton3.addActionListener(new java.awt.event.ActionListener() {
00149                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00150                      exitForm(null);
00151                      }
00152              });
00153         getContentPane().setBackground(new java.awt.Color(255, 255, 255));
00154 
00155         pack();
00156 
00157     }
00158 
00160     public void valueChanged(ListSelectionEvent e) {
00161 
00162               if (e.getValueIsAdjusting()) return;
00163 
00164               ListSelectionModel lsm = (ListSelectionModel)e.getSource();
00165  
00166         
00167               if (lsm.isSelectionEmpty()) {
00168                    jButton2.setEnabled(false);
00169                    return;
00170                    }
00171 
00172               jButton2.setEnabled(true);
00173               }
00174     
00176     private void exitForm(java.awt.event.WindowEvent evt) {
00177        setVisible(false);
00178        dispose();
00179     }
00180 
00181    private void publishControlObject(IVInfo ivInfo) {
00182 
00183          Integer run = ivInfo.getRun();
00184          Integer scan = ivInfo.getScan();
00185          String controlObjectName = "RetrievedData.ControlIVScanData."+run.toString()+"."+scan.toString();
00186 
00187          String[] modules = ivInfo.getModuleList();
00188          IVScanControl iv = new IVScanControl();
00189          iv.runNo= run.intValue();
00190          iv.scanNo= scan.intValue();
00191          iv.scanDate = ivInfo.getDate();
00192          iv.scanTime = ivInfo.getTime();
00193          iv.modules = modules;
00194          List vList = ivInfo.getVList();
00195          iv.voltageData = new String[vList.size()];
00196          for(int i=0;i<vList.size();i++) iv.voltageData[i] = new String("Current @ "+((Double)vList.get(i)).toString()+"V");
00197 // publish the control object!
00198          try {
00199          if(!SctNames.getISRepository().contains(controlObjectName)) SctNames.getISRepository().insert(controlObjectName, iv);  
00200          }catch(Exception e) {
00201               System.err.println("SctGUI::IVScanLister - Exception creating control object - "+e.toString());
00202               return;
00203               }
00204 // now publish the module detector objects
00205         for(int i=0;i<modules.length;i++) {
00206             String sn = modules[i];
00207             String filestem = ivInfo.getFileStem();
00208             String objectName = "RetrievedData.IVScanData."+run.toString()+"."+scan.toString()+"."+modules[i];
00209             TestSummaryIS isObject = new TestSummaryIS();
00210             String dataString = ivTestInterface.getDataString(run,scan,modules[i],filestem);
00211             if(dataString!=null) {
00212               isObject.dataString=dataString;
00213               try {
00214                 if(!SctNames.getISRepository().contains(objectName)) SctNames.getISRepository().insert(objectName, isObject);
00215               }catch(Exception e2){System.err.println("SctGUI::IVScanLister - Failed to publish "+objectName+" - "+e2.toString());}
00216               }
00217             }
00218          return;
00219          }
00220     private void refreshScanList() {
00221          try {
00222                          ivTestInterface.refresh();
00223                          List table = new ArrayList();
00224                          List ivInfoList = ivTestInterface.getTableList();
00225                          for(int i=0;i<ivInfoList.size();i++) {
00226                             IVInfo ivInfo = (IVInfo)ivInfoList.get(i);
00227                             Integer run = ivInfo.getRun();
00228                             Integer scan = ivInfo.getScan();        
00229                             List theLine = new ArrayList();
00230                             theLine.add(run);
00231                             theLine.add(scan);
00232                             theLine.add(ivInfo.getDate());
00233                             theLine.add(ivInfo.getTime());
00234                             theLine.add(new Integer(ivInfo.getModuleCount()));
00235                             try {
00236                               theLine.add(new Boolean(SctNames.getISRepository().contains("RetrievedData.ControlIVScanData."+run.toString()+"."+scan.toString())));
00237                               }catch(Exception e){theLine.add("Unknown");}
00238                             table.add(theLine);
00239                             }
00240                          dataList.reTable(table);
00241                          jLabel2.setText(dataList.getRowCount()+" IV scans are available.");
00242                        }catch(Exception e){System.err.println("Failed to retrieve IVScan list - "+e.toString());} 
00243    }
00244 
00245 
00246 public class DataList extends javax.swing.table.AbstractTableModel {
00247     private String[] columnNames = {"Run","Scan","Date","Time","#Modules","Imported?"};
00248     List rows;
00249 
00250     public DataList() {
00251          rows=new ArrayList();
00252          }
00253 
00254 
00255     public void reTable(List rows) {
00256          this.rows=rows;
00257          fireTableChanged(null); // Tell the listeners a new table has arrived.
00258          return ;
00259     }
00260 
00261 
00262 
00263     //  Now the Implementation of the TableModel Interface
00264    
00265     public String getColumnName(int column) {
00266         if (columnNames[column] != null) {
00267             return columnNames[column];
00268         } else {
00269             return "";
00270         }
00271     }
00272 
00273     public Class getColumnClass(int column) {
00274             return getValueAt(0, column).getClass();
00275 
00276    }
00277 
00278     public boolean isCellEditable(int row, int column) {
00279             return false; 
00280     }
00281 
00282     public int getColumnCount() {
00283         return columnNames.length;
00284     }
00285 
00286     public int getRowCount() {
00287         return rows.size();
00288     }
00289 
00290     public Object getValueAt(int aRow, int column) {
00291 
00292         List theRow = (ArrayList)rows.get(aRow);
00293         return theRow.get(column);
00294     }
00295 
00296 
00297     public void setValueAt(Object value, int row, int column) {
00298         List dataRow = (List)rows.get(row);
00299         dataRow.set(column, value);
00300     }
00301 
00302 
00303 
00304 
00305 
00306 
00307 }
00308 
00309     
00310     
00311 
00312     
00313 }

Generated on Mon Feb 6 14:12:13 2006 for SCT DAQ/DCS Software - Java by  doxygen 1.4.6