DatabaseLister.java

00001 /*
00002  * DatabaseLister.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 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);   // this is the same for all rows
00111                        Integer testIndex = (Integer)testMap.get(testname);
00112                        String locn = (String)dataList.getValueAt(minRow,2);       // this is the same for all rows
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 //        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
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); // Tell the listeners a new table has arrived.
00266          return ;
00267     }
00268 
00269 
00270 
00271     //  Now the Implementation of the TableModel Interface
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 }

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