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 ProdDatabase.*;
00014
00019 public class DatabaseLister extends javax.swing.JFrame implements displayParams, SCTDBInfo, TestDataInfo, ListSelectionListener {
00020
00021 DataList dataList;
00022 Map testMap;
00023 ListSelectionModel rowSM;
00024
00025 private javax.swing.JButton jButton1;
00026 private javax.swing.JTable jTable;
00027 private javax.swing.JButton jButton2;
00028 private javax.swing.JButton jButton3;
00029 private javax.swing.JComboBox jComboBox1,jComboBox2;
00030 private javax.swing.JLabel jLabel1,jLabel2;
00031 private javax.swing.JScrollPane jScrollPane1;
00032
00034 public DatabaseLister() {
00035 super("Download SctRodDaq Tests");
00036 createTestMap();
00037 initComponents();
00038 }
00039
00045 private void initComponents() {
00046
00047 java.awt.GridBagConstraints gridBagConstraints;
00048
00049 jButton2 = new javax.swing.JButton();
00050 jButton2.setFont(displayTextFont);
00051 jComboBox1 = new javax.swing.JComboBox();
00052 jComboBox1.setFont(displayTextFont);
00053 jComboBox1.setBackground(backgroundColor);
00054 for(int i=0;i<testNames.length;i++) {
00055 if(testIsDefined[i] && testIsSCTDAQ[i]) jComboBox1.addItem(testMenuNames[i]);
00056 }
00057 jComboBox2 = new javax.swing.JComboBox();
00058 jComboBox2.setFont(displayTextFont);
00059 jComboBox2.setBackground(backgroundColor);
00060 try {
00061 Vector listOfInstitutes = ProdDatabase.GeneralUtilities.getLocationList();
00062 if(listOfInstitutes.size()==0) jComboBox2.addItem("Not Available");
00063 else for(int i=0;i<listOfInstitutes.size();i++) jComboBox2.addItem((String)listOfInstitutes.elementAt(i));
00064 jComboBox2.setSelectedItem(Preferences.PreferencesInterface.getInstance().getPreference(Preferences.PreferencesInterface.INSTITUTE));
00065 }catch(Exception e){}
00066
00067 jLabel1 = new javax.swing.JLabel();
00068 jLabel2 = new javax.swing.JLabel();
00069 dataList = new DataList();
00070 jTable = new javax.swing.JTable(dataList);
00071 jTable.setFont(tableFont);
00072 jTable.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
00073 rowSM = jTable.getSelectionModel();
00074 rowSM.addListSelectionListener(this);
00075 jScrollPane1 = new javax.swing.JScrollPane(jTable);
00076 jScrollPane1.setBackground(new java.awt.Color(255, 255, 255));
00077 jScrollPane1.setBorder(new javax.swing.border.BevelBorder(javax.swing.border.BevelBorder.LOWERED));
00078 jScrollPane1.setMinimumSize(new java.awt.Dimension(300, 150));
00079 jScrollPane1.setPreferredSize(new java.awt.Dimension(300, 200));
00080 jButton1 = new javax.swing.JButton();
00081 jButton1.setFont(displayTextFont);
00082 jButton3 = new javax.swing.JButton();
00083 jButton3.setFont(displayTextFont);
00084
00085 getContentPane().setLayout(new java.awt.GridBagLayout());
00086
00087 addWindowListener(new java.awt.event.WindowAdapter() {
00088 public void windowClosing(java.awt.event.WindowEvent evt) {
00089 exitForm(evt);
00090 }
00091 });
00092
00093 jButton2.setText("Download Selected Test");
00094 gridBagConstraints = new java.awt.GridBagConstraints();
00095 gridBagConstraints.gridx = 0;
00096 gridBagConstraints.gridy = 3;
00097 gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
00098 gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
00099 getContentPane().add(jButton2, gridBagConstraints);
00100 jButton2.addActionListener(new java.awt.event.ActionListener() {
00101 public void actionPerformed(java.awt.event.ActionEvent evt) {
00102 int minRow = rowSM.getMinSelectionIndex();
00103 int maxRow = rowSM.getMaxSelectionIndex();
00104 Vector runStrings = new Vector();
00105 for(int i=minRow;i<=maxRow;i++) {
00106 String r = (String)dataList.getValueAt(i,3);
00107 String s = (String)dataList.getValueAt(i,4);
00108 runStrings.addElement(r+"-"+s);
00109 }
00110 String testname = (String)dataList.getValueAt(minRow,1);
00111 Integer testIndex = (Integer)testMap.get(testname);
00112 String locn = (String)dataList.getValueAt(minRow,2);
00113 SCTDBTestDownloader d = new SCTDBTestDownloader(runStrings,testIndex.intValue(),locn);
00114 if(d.downloadsRequired() && d.isOkToStart()) d.start();
00115 setVisible(false);
00116 }
00117 });
00118 jButton2.setEnabled(false);
00119
00120 gridBagConstraints = new java.awt.GridBagConstraints();
00121 gridBagConstraints.gridx = 1;
00122 gridBagConstraints.gridy = 0;
00123 gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
00124 gridBagConstraints.weightx = 0.5;
00125 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
00126 getContentPane().add(jComboBox1, gridBagConstraints);
00127
00128 jLabel1.setText("List Tests of type:");
00129 jLabel1.setFont(displayTextFont);
00130 gridBagConstraints = new java.awt.GridBagConstraints();
00131 gridBagConstraints.gridx = 0;
00132 gridBagConstraints.gridy = 0;
00133 gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
00134 gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
00135 gridBagConstraints.weightx = 0.2;
00136 getContentPane().add(jLabel1, gridBagConstraints);
00137
00138 gridBagConstraints = new java.awt.GridBagConstraints();
00139 gridBagConstraints.gridx = 3;
00140 gridBagConstraints.gridy = 0;
00141 gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
00142 gridBagConstraints.weightx = 0.2;
00143 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
00144 getContentPane().add(jComboBox2, gridBagConstraints);
00145
00146 javax.swing.JLabel jLabel3 = new javax.swing.JLabel();
00147 jLabel3.setText("from:");
00148 jLabel3.setFont(displayTextFont);
00149 gridBagConstraints = new java.awt.GridBagConstraints();
00150 gridBagConstraints.gridx = 2;
00151 gridBagConstraints.gridy = 0;
00152 gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
00153 gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
00154 gridBagConstraints.weightx = 0.2;
00155 getContentPane().add(jLabel3, gridBagConstraints);
00156
00157 jLabel2.setText("No Data listed...");
00158 jLabel2.setFont(displayScaleFont);
00159 gridBagConstraints = new java.awt.GridBagConstraints();
00160 gridBagConstraints.gridx = 0;
00161 gridBagConstraints.gridy = 1;
00162 gridBagConstraints.gridwidth = 5;
00163 gridBagConstraints.insets = new java.awt.Insets(2, 5, 0, 5);
00164 gridBagConstraints.weighty = 0.1;
00165 gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
00166
00167 getContentPane().add(jLabel2, gridBagConstraints);
00168
00169 gridBagConstraints = new java.awt.GridBagConstraints();
00170 gridBagConstraints.gridx = 0;
00171 gridBagConstraints.gridy = 2;
00172 gridBagConstraints.gridwidth = 5;
00173 gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5);
00174 gridBagConstraints.weighty = 0.6;
00175 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
00176 getContentPane().add(jScrollPane1, gridBagConstraints);
00177
00178 jButton1.setText("List Available Data");
00179 jButton1.setEnabled(!((String)jComboBox2.getSelectedItem()).equals("Not Available"));
00180 gridBagConstraints = new java.awt.GridBagConstraints();
00181 gridBagConstraints.gridx = 4;
00182 gridBagConstraints.gridy = 0;
00183 gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
00184 gridBagConstraints.weightx = 0.3;
00185 gridBagConstraints.weighty = 0.2;
00186 getContentPane().add(jButton1, gridBagConstraints);
00187 jButton1.addActionListener(new java.awt.event.ActionListener() {
00188 public void actionPerformed(java.awt.event.ActionEvent evt) {
00189 Integer index = (Integer)testMap.get((String)jComboBox1.getSelectedItem());
00190 if(index==null) return;
00191 try {
00192 String locn = (String)jComboBox2.getSelectedItem();
00193 dataList.reTable(GeneralUtilities.getTestList(index.intValue(),locn,testMenuNames[index.intValue()]));
00194 jLabel2.setText(dataList.getRowCount()+" "+(String)jComboBox1.getSelectedItem()+" tests are available.");
00195 }catch(Exception e){System.err.println("Failed to retrieve test list - "+e.toString());}
00196 }
00197 });
00198
00199 jButton3.setText("Close");
00200 gridBagConstraints = new java.awt.GridBagConstraints();
00201 gridBagConstraints.gridx = 4;
00202 gridBagConstraints.gridy = 3;
00203 gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
00204 gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST;
00205 gridBagConstraints.weighty = 0.1;
00206 getContentPane().add(jButton3, gridBagConstraints);
00207 jButton3.addActionListener(new java.awt.event.ActionListener() {
00208 public void actionPerformed(java.awt.event.ActionEvent evt) {
00209 exitForm(null);
00210 }
00211 });
00212 getContentPane().setBackground(new java.awt.Color(255, 255, 255));
00213
00214 pack();
00215 }
00216
00218 public void valueChanged(ListSelectionEvent e) {
00219
00220 if (e.getValueIsAdjusting()) return;
00221
00222 ListSelectionModel lsm = (ListSelectionModel)e.getSource();
00223
00224
00225 if (lsm.isSelectionEmpty()) {
00226 jButton2.setEnabled(false);
00227 return;
00228 }
00229
00230 jButton2.setEnabled(true);
00231 }
00232
00234 private void exitForm(java.awt.event.WindowEvent evt) {
00235 setVisible(false);
00236 dispose();
00237 }
00238
00242 public static void main(String args[]) {
00243 new DatabaseLister().show();
00244 }
00245
00246 public void createTestMap() {
00247 testMap = new HashMap();
00248 for(int i=0;i<testNames.length;i++) {
00249 testMap.put(testMenuNames[i],new Integer(i));
00250
00251 }
00252 }
00253
00254 public class DataList extends javax.swing.table.AbstractTableModel {
00255 private String[] columnNames = {"Date","Test","Location","Run","Scan"};
00256 List rows;
00257
00258 public DataList() {
00259 rows=new ArrayList();
00260 }
00261
00262
00263 public void reTable(List rows) {
00264 this.rows=rows;
00265 fireTableChanged(null);
00266 return ;
00267 }
00268
00269
00270
00271
00272
00273 public String getColumnName(int column) {
00274 if (columnNames[column] != null) {
00275 return columnNames[column];
00276 } else {
00277 return "";
00278 }
00279 }
00280
00281 public Class getColumnClass(int column) {
00282 return getValueAt(0, column).getClass();
00283
00284 }
00285
00286 public boolean isCellEditable(int row, int column) {
00287 return false;
00288 }
00289
00290 public int getColumnCount() {
00291 return columnNames.length;
00292 }
00293
00294 public int getRowCount() {
00295 return rows.size();
00296 }
00297
00298 public Object getValueAt(int aRow, int column) {
00299
00300 List theRow = (ArrayList)rows.get(aRow);
00301 return theRow.get(column);
00302 }
00303
00304
00305 public void setValueAt(Object value, int row, int column) {
00306 List dataRow = (List)rows.get(row);
00307 dataRow.set(column, value);
00308 }
00309
00310
00311
00312 }
00313
00314
00315
00316
00317
00318 }