00001
00002
00003
00004
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
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
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
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);
00258 return ;
00259 }
00260
00261
00262
00263
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 }