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;
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] && i!=TEST_NMASK) jComboBox1.addItem(testMenuNames[i]);
00056 }
00057 jLabel1 = new javax.swing.JLabel();
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(300, 150));
00069 jScrollPane1.setPreferredSize(new java.awt.Dimension(300, 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("Download Selected Test");
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 selectedRow = rowSM.getMinSelectionIndex();
00093 String testname = (String)dataList.getValueAt(selectedRow,1);
00094 Integer testIndex = (Integer)testMap.get(testname);
00095 String r = (String)dataList.getValueAt(selectedRow,2);
00096 String s = (String)dataList.getValueAt(selectedRow,3);
00097 SCTDBTestDownloader d = new SCTDBTestDownloader(r+"-"+s,testIndex.intValue(),Preferences.PreferencesInterface.getInstance().getPreference(Preferences.PreferencesInterface.INSTITUTE));
00098 if(d.downloadsRequired() && d.isOkToStart()) d.start();
00099 setVisible(false);
00100 }
00101 });
00102 jButton2.setEnabled(false);
00103
00104 gridBagConstraints = new java.awt.GridBagConstraints();
00105 gridBagConstraints.gridx = 1;
00106 gridBagConstraints.gridy = 0;
00107 gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
00108 gridBagConstraints.weightx = 0.5;
00109 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
00110 getContentPane().add(jComboBox1, gridBagConstraints);
00111
00112 jLabel1.setText("Select Test:");
00113 jLabel1.setFont(displayTextFont);
00114 gridBagConstraints = new java.awt.GridBagConstraints();
00115 gridBagConstraints.gridx = 0;
00116 gridBagConstraints.gridy = 0;
00117 gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
00118 gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
00119 gridBagConstraints.weightx = 0.2;
00120 getContentPane().add(jLabel1, gridBagConstraints);
00121
00122 jLabel2.setText("No Data listed...");
00123 jLabel2.setFont(displayScaleFont);
00124 gridBagConstraints = new java.awt.GridBagConstraints();
00125 gridBagConstraints.gridx = 0;
00126 gridBagConstraints.gridy = 1;
00127 gridBagConstraints.gridwidth = 3;
00128 gridBagConstraints.insets = new java.awt.Insets(2, 5, 0, 5);
00129 gridBagConstraints.weighty = 0.1;
00130 gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
00131
00132 getContentPane().add(jLabel2, gridBagConstraints);
00133
00134 gridBagConstraints = new java.awt.GridBagConstraints();
00135 gridBagConstraints.gridx = 0;
00136 gridBagConstraints.gridy = 2;
00137 gridBagConstraints.gridwidth = 3;
00138 gridBagConstraints.insets = new java.awt.Insets(0, 5, 5, 5);
00139 gridBagConstraints.weighty = 0.6;
00140 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
00141 getContentPane().add(jScrollPane1, gridBagConstraints);
00142
00143 jButton1.setText("List Available Data");
00144 gridBagConstraints = new java.awt.GridBagConstraints();
00145 gridBagConstraints.gridx = 2;
00146 gridBagConstraints.gridy = 0;
00147 gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
00148 gridBagConstraints.weightx = 0.3;
00149 gridBagConstraints.weighty = 0.2;
00150 getContentPane().add(jButton1, gridBagConstraints);
00151 jButton1.addActionListener(new java.awt.event.ActionListener() {
00152 public void actionPerformed(java.awt.event.ActionEvent evt) {
00153 Integer index = (Integer)testMap.get((String)jComboBox1.getSelectedItem());
00154 if(index==null) return;
00155 try {
00156 String locn = Preferences.PreferencesInterface.getInstance().getPreference(Preferences.PreferencesInterface.INSTITUTE);
00157 if(locn.equals(Preferences.PreferencesInterface.unDefinedString)) {
00158 javax.swing.JOptionPane.showMessageDialog(null,"You must define your location before downloading anything... use the Preferences menu.","SCT Database Download",javax.swing.JOptionPane.INFORMATION_MESSAGE);
00159 return;
00160 }
00161 dataList.reTable(GeneralUtilities.getTestList(index.intValue(),locn,testMenuNames[index.intValue()]));
00162 jLabel2.setText(dataList.getRowCount()+" "+(String)jComboBox1.getSelectedItem()+" tests are available.");
00163 }catch(Exception e){System.err.println("Failed to retrieve test list - "+e.toString());}
00164 }
00165 });
00166
00167 jButton3.setText("Close");
00168 gridBagConstraints = new java.awt.GridBagConstraints();
00169 gridBagConstraints.gridx = 2;
00170 gridBagConstraints.gridy = 3;
00171 gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
00172 gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST;
00173 gridBagConstraints.weighty = 0.1;
00174 getContentPane().add(jButton3, gridBagConstraints);
00175 jButton3.addActionListener(new java.awt.event.ActionListener() {
00176 public void actionPerformed(java.awt.event.ActionEvent evt) {
00177 exitForm(null);
00178 }
00179 });
00180 getContentPane().setBackground(new java.awt.Color(255, 255, 255));
00181
00182 pack();
00183 }
00184
00186 public void valueChanged(ListSelectionEvent e) {
00187
00188 if (e.getValueIsAdjusting()) return;
00189
00190 ListSelectionModel lsm = (ListSelectionModel)e.getSource();
00191
00192
00193 if (lsm.isSelectionEmpty()) {
00194 jButton2.setEnabled(false);
00195 return;
00196 }
00197
00198 jButton2.setEnabled(true);
00199 }
00200
00202 private void exitForm(java.awt.event.WindowEvent evt) {
00203 setVisible(false);
00204 dispose();
00205 }
00206
00210 public static void main(String args[]) {
00211 new DatabaseLister().show();
00212 }
00213
00214 public void createTestMap() {
00215 testMap = new HashMap();
00216 for(int i=0;i<testNames.length;i++) {
00217 testMap.put(testMenuNames[i],new Integer(i));
00218
00219 }
00220 }
00221
00222 public class DataList extends javax.swing.table.AbstractTableModel {
00223 private String[] columnNames = {"Date","Test","Run","Scan"};
00224 List rows;
00225
00226 public DataList() {
00227 rows=new ArrayList();
00228 }
00229
00230
00231 public void reTable(List rows) {
00232 this.rows=rows;
00233 fireTableChanged(null);
00234 return ;
00235 }
00236
00237
00238
00239
00240
00241 public String getColumnName(int column) {
00242 if (columnNames[column] != null) {
00243 return columnNames[column];
00244 } else {
00245 return "";
00246 }
00247 }
00248
00249 public Class getColumnClass(int column) {
00250 return getValueAt(0, column).getClass();
00251
00252 }
00253
00254 public boolean isCellEditable(int row, int column) {
00255 return false;
00256 }
00257
00258 public int getColumnCount() {
00259 return columnNames.length;
00260 }
00261
00262 public int getRowCount() {
00263 return rows.size();
00264 }
00265
00266 public Object getValueAt(int aRow, int column) {
00267
00268 List theRow = (ArrayList)rows.get(aRow);
00269 return theRow.get(column);
00270 }
00271
00272
00273 public void setValueAt(Object value, int row, int column) {
00274 List dataRow = (List)rows.get(row);
00275 dataRow.set(column, value);
00276 }
00277
00278
00279
00280 }
00281
00282
00283
00284
00285
00286 }