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 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
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
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
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);
00260 return ;
00261 }
00262
00263
00264
00265
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 }