Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

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

Generated on Thu Jul 15 09:55:44 2004 for SCT DAQ/DCS Software - Java by doxygen 1.3.5