Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

PowerMappings.java

00001 package GuiComponents.SctConf;
00002 
00003 import java.util.Enumeration;
00004 import java.util.Vector;
00005 import java.awt.Dimension;
00006 import java.awt.BorderLayout;
00007 import java.awt.event.ActionEvent;
00008 import java.awt.event.ActionListener;
00009 import java.awt.event.MouseAdapter;
00010 import java.awt.event.MouseEvent;
00011 import java.awt.event.WindowAdapter;
00012 import java.awt.event.WindowEvent;
00013 import javax.swing.JComponent;
00014 import javax.swing.JFrame;
00015 import javax.swing.JPanel;
00016 import javax.swing.JLabel;
00017 import javax.swing.JMenuItem;
00018 import javax.swing.JPopupMenu;
00019 import javax.swing.JOptionPane;
00020 import javax.swing.JScrollPane;
00021 import javax.swing.JSplitPane;
00022 import javax.swing.JTable;
00023 import javax.swing.table.AbstractTableModel;
00024 
00025 import org.omg.CORBA.IntHolder;
00026 
00027 import sctConf.Configuration;
00028 import sctConf.ConfigurationException;
00029 
00030 public class PowerMappings extends JPanel {
00031     private sctConf.Configuration config;
00032 
00033 //     private JTable table;
00034 
00035     private JPopupMenu popup;
00036 
00037     private FullModel fullModel;
00038     private DefaultModel defaultModel;
00039 
00040     String paramList[];
00041 
00042     String runMode;
00043 
00044     public PowerMappings(Configuration conf) {
00045         config = conf;
00046 
00047         try {
00048             paramList = config.listDefaultPowerParams();
00049         } catch(ConfigurationException cex) {
00050             paramList = new String[0];
00051         }
00052 
00053         fullModel = new FullModel(config);
00054         defaultModel = new DefaultModel(config);
00055 
00056 /*        JTable fullTable = new JTable(fullModel);
00057         JTable defaultTable = new JTable(defaultModel);
00058 
00059         setLayout(new BorderLayout());
00060 
00061         JScrollPane tableView1 = new JScrollPane(defaultTable);
00062         tableView1.setPreferredSize(new Dimension(100, 100));
00063 
00064         JScrollPane tableView2 = new JScrollPane(fullTable);
00065         tableView2.setPreferredSize(new Dimension(500, 300));
00066 
00067         JSplitPane split = new JSplitPane(JSplitPane.VERTICAL_SPLIT, tableView1, tableView2);
00068 
00069         add(split); */
00070 
00071 
00072 //         enableEvents(java.awt.AWTEvent.WINDOW_EVENT_MASK);
00073 // //         tree.addMouseListener(new MouseClickHandler());
00074 
00075 
00076 //         popup = new JPopupMenu();
00077 //         popup.add(new JMenuItem("Do nothing"));
00078 
00079         initComponents();
00080     }
00081 
00087     private void initComponents() {//GEN-BEGIN:initComponents
00088         java.awt.GridBagConstraints gridBagConstraints;
00089 
00090         jSplitPane1 = new javax.swing.JSplitPane();
00091         jScrollPane1 = new javax.swing.JScrollPane();
00092         jTable1 = new javax.swing.JTable();
00093         jScrollPane2 = new javax.swing.JScrollPane();
00094         jTable2 = new javax.swing.JTable();
00095         jPanel1 = new javax.swing.JPanel();
00096         stateCombo = new javax.swing.JComboBox();
00097 
00098         setLayout(new java.awt.BorderLayout());
00099 
00100         jSplitPane1.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
00101         jScrollPane1.setPreferredSize(new java.awt.Dimension(100, 100));
00102         jTable1.setModel(defaultModel);
00103         jScrollPane1.setViewportView(jTable1);
00104 
00105         jSplitPane1.setLeftComponent(jScrollPane1);
00106 
00107         jScrollPane2.setPreferredSize(new java.awt.Dimension(500, 300));
00108         jTable2.setModel(fullModel);
00109         jScrollPane2.setViewportView(jTable2);
00110 
00111         jSplitPane1.setRightComponent(jScrollPane2);
00112 
00113         add(jSplitPane1, java.awt.BorderLayout.CENTER);
00114 
00115         stateCombo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "OFF", "STANDBY", "ON" }));
00116         jPanel1.add(stateCombo);
00117 
00118         add(jPanel1, java.awt.BorderLayout.NORTH);
00119 
00120     }//GEN-END:initComponents
00121 
00122     private class MouseClickHandler extends MouseAdapter {
00123         private JMenuItem menuWithAction(String name, Object thing) {
00124             JMenuItem result = new JMenuItem(name);
00125 //             result.addActionListener(new ActionHandler(name, thing));
00126 
00127             return result;
00128         }
00129 
00130         private void checkPopup(MouseEvent event) {
00131         }
00132         public void mousePressed(MouseEvent event){
00133             checkPopup(event);
00134         }
00135         public void mouseReleased(MouseEvent event){
00136             checkPopup(event);
00137         }
00138     }   
00139 
00144     public class DefaultModel extends AbstractTableModel {
00145         String columnNames[] = {"Parameter", "Nominal", "LowWarning", "LowError", "HighWarning", "HighError"};
00146         
00147         Configuration conf;
00148 
00149 //         java.util.Vector listeners;
00150 
00151 //         String [] defaultList;
00152 
00153         public DefaultModel(Configuration c) {
00154             conf = c;
00155 //             listeners = new java.util.Vector();
00156         }
00157 
00158         public int getColumnCount() { 
00159             return 2; 
00160         }
00161 
00162         public int getRowCount() { 
00163 //             String [] defaultList = config.listDefaultPowerParams();
00164             return paramList.length + 1;
00165         }
00166 
00167         public Object getValueAt(int row, int col) { 
00168             if(row == paramList.length) {
00169                 return "";
00170             } else {
00171                 switch(col) {
00172                 case 0:
00173                     return paramList[row];
00174                 case 1:
00175 //                     try {
00176 //                         return "";// new Float(config.getDefaultPowerParam(paramList[row]));
00177 //                     } catch(ConfigurationException c) {
00178                     return "Undefined!";
00179 //                     }
00180                 default:
00181                     return null;
00182                 }
00183             }
00184         }
00185 
00186         public boolean isCellEditable(int rowIndex, int columnIndex) {
00187             if(rowIndex == paramList.length) {
00188                 if(columnIndex == 0) {
00189                     return true;
00190                 } else {
00191                     return false;
00192                 }
00193             } else {
00194                 if(columnIndex > 0) {
00195                     return true;
00196                 } else {
00197                     return false;
00198                 }
00199             }
00200         }
00201 
00202         public String getColumnName(int column) {
00203             if(column > 0 && column < columnNames.length) {
00204                 return columnNames[column];
00205             } else {
00206                 return "Unknown";
00207             }
00208         }
00209 
00210         public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
00211             if(columnIndex == 0) {
00212 //                 try {
00213 //                     float val = 0.0f;
00214 //                     // config.modifyDefaultPowerParam((String)aValue, val);
00215 
00216 //                     try {
00217 //                         paramList = config.listDefaultPowerParams();
00218 //                     } catch(ConfigurationException cex) {
00219 //                         // Hmmm...
00220 //                     }
00221 
00222 //                     // Rather over the top...
00223 //                     fireTableStructureChanged();
00224 //                 } catch(ConfigurationException c) {
00225                     JOptionPane.showMessageDialog(null, "Failed to configure default power param: Bad GUI");
00226 //                 }
00227             } else {
00228 //                 try {
00229 //                     // config.modifyDefaultPowerParam(paramList[rowIndex], Float.parseFloat((String)aValue));
00230 //                 } catch(ConfigurationException c) {
00231                     JOptionPane.showMessageDialog(null, "Failed to configure default power param: Bad GUI");
00232 //                 }
00233             }
00234         }
00235     }
00236 
00241     public class FullModel extends AbstractTableModel {
00242         String columnNames[] = {"Module", "Crate", "Channel", "Parameter", "Nominal", "LowWarning", "LowError", "HighWarning", "HighError"};
00243 
00244         Configuration config;
00245 
00246 //         java.util.Vector listeners;
00247 
00248 //         String [] paramList;
00249         String [] moduleList;
00250 
00251         public FullModel(Configuration c) {
00252             config = c;
00253 //             listeners = new java.util.Vector();
00254 
00255             try {
00256                 paramList = config.listDefaultPowerParams();
00257             } catch(ConfigurationException cex) {
00258                 paramList = null;
00259             }
00260 
00261             try {
00262                 moduleList = config.listAllModules();
00263             } catch(ConfigurationException cex) {
00264                 moduleList = null;
00265             }
00266         }
00267 
00268         public int getColumnCount() { 
00269             return columnNames.length; 
00270         }
00271 
00272         public int getRowCount() { 
00273             return paramList.length * moduleList.length;
00274         }
00275 
00276         public Object getValueAt(int row, int col) { 
00277             String name = columnNames[col];
00278 
00279             if(name.equals("Module")) {
00280                 return moduleList[row / paramList.length];
00281             } else if(name.equals("Parameter")) {
00282                 return paramList[row % paramList.length];
00283             } else if(name.equals("Crate")) {
00284                 return crateForModule(row);
00285             } else if(name.equals("Channel")) {
00286                 return channelForModule(row);
00287             } else if(name.equals("Nominal")) {
00288                 return parameterForModule(row, "N");
00289             } else if(name.equals("HighWarning")) {
00290                 return parameterForModule(row, "HW");
00291             } else if(name.equals("LowWarning")) {
00292                 return parameterForModule(row, "LW");
00293             } else if(name.equals("HighError")) {
00294                 return parameterForModule(row, "HE");
00295             } else if(name.equals("LowError")) {
00296                 return parameterForModule(row, "LE");
00297             } else {
00298                 return "Unknown";
00299             }
00300         }
00301 
00302         public boolean isCellEditable(int rowIndex, int columnIndex) {
00303             if(columnIndex > 1) {
00304                 return true;
00305             } else {
00306                 return false;
00307             }
00308         }
00309 
00310         public String getColumnName(int column) {
00311             if(column > 0 && column < columnNames.length) {
00312                 return columnNames[column];
00313             } else {
00314                 return "Unknown";
00315             }
00316         }
00317 
00318         public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
00319             if(columnIndex == 2) {
00320                 try {
00321                     IntHolder MUR = new IntHolder(), num = new IntHolder();
00322                     config.translateFromSN(moduleList[rowIndex / paramList.length], MUR, num);
00323 //                 return new Float(config.getPowerParam(MUR.value, num.value, paramList[row % paramList.length]));
00324 //                 } catch(ConfigurationException c) {
00325 
00326                     // config.modifyPowerParam(MUR.value, num.value, paramList[rowIndex % paramList.length], 
00327                     //                                       Float.parseFloat((String)aValue));
00328                 } catch(ConfigurationException c) {
00329                     JOptionPane.showMessageDialog(null, "Failed to configure power param: " + c.detail);
00330                 }
00331             } else {
00332                 // Impossible!
00333             }
00334         }
00335 
00336         Object crateForModule(int row) {
00337             return "unimplemented";
00338         }
00339 
00340         Object channelForModule(int row) {
00341             return "unimplemented";
00342         }
00343 
00344         Object parameterForModule(int row, String code) {
00345             String sn = moduleList[row / paramList.length];
00346             String param = paramList[row % paramList.length] + "_" + code;
00347             
00348             IntHolder MUR = new IntHolder(), num = new IntHolder();
00349             try {
00350                 config.translateFromSN(sn, MUR, num);
00351             } catch(ConfigurationException c) {
00352                 return "UnMapped!";
00353             }
00354 //             try {
00355 //                 return ""; // new Float(config.getPowerParam(MUR.value, num.value, param));
00356 //             } catch(ConfigurationException c) {
00357                 return "Undefined!";
00358 //             }
00359         }
00360     }  // End FullTableModel
00361 
00362     // Variables declaration - do not modify//GEN-BEGIN:variables
00363     private javax.swing.JPanel jPanel1;
00364     private javax.swing.JScrollPane jScrollPane1;
00365     private javax.swing.JScrollPane jScrollPane2;
00366     private javax.swing.JSplitPane jSplitPane1;
00367     private javax.swing.JTable jTable1;
00368     private javax.swing.JTable jTable2;
00369     private javax.swing.JComboBox stateCombo;
00370     // End of variables declaration//GEN-END:variables
00371     
00372 }

Generated on Thu Jul 15 09:55:47 2004 for SCT DAQ/DCS Software - Java by doxygen 1.3.5