PlotOptionsFrame.java

00001 /*
00002  * PlotOptionsFrame.java
00003  *
00004  * Created on 26 March 2004, 12:10
00005  */
00006 
00007 package DisplayGUI;
00008 import GuiComponents.Console.ExternalProcess;
00009 
00014 public class PlotOptionsFrame extends javax.swing.JFrame implements displayParams {
00015    
00016     String objectName;
00017     java.util.regex.Pattern objectPattern = java.util.regex.Pattern.compile(".*::(\\w+)\\.(\\d+)\\.(\\d+)\\.(\\d{14})");
00018     
00020     public PlotOptionsFrame() {
00021         initComponents();
00022     }
00023     
00029     private void initComponents() {
00030         java.awt.GridBagConstraints gridBagConstraints;
00031 
00032         getContentPane().setBackground(backgroundColor);
00033 
00034         jLabel1 = new javax.swing.JLabel();
00035         jTextField1 = new javax.swing.JTextField(14);
00036         jTextField2 = new javax.swing.JTextField(14);
00037         jLabel2 = new javax.swing.JLabel();
00038         jLabel3 = new javax.swing.JLabel();
00039         jCheckBox1 = new javax.swing.JCheckBox();
00040         jButton1 = new javax.swing.JButton();
00041         jButton2 = new javax.swing.JButton();
00042 
00043         getContentPane().setLayout(new java.awt.GridBagLayout());
00044 
00045         addWindowListener(new java.awt.event.WindowAdapter() {
00046             public void windowClosing(java.awt.event.WindowEvent evt) {
00047                 exitForm(evt);
00048             }
00049         });
00050 
00051         jLabel1.setText("Plot data for module 20220330200001");
00052         jLabel1.setFont(displayTextFont);
00053         jLabel1.setForeground(darkBlueColor);
00054         gridBagConstraints = new java.awt.GridBagConstraints();
00055         gridBagConstraints.gridwidth = 2;
00056         gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
00057         getContentPane().add(jLabel1, gridBagConstraints);
00058 
00059         jTextField1.setFont(displayScaleFont);
00060         gridBagConstraints = new java.awt.GridBagConstraints();
00061         gridBagConstraints.gridx = 1;
00062         gridBagConstraints.gridy = 1;
00063         gridBagConstraints.weightx = 0.5;
00064         gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
00065         gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
00066         getContentPane().add(jTextField1, gridBagConstraints);
00067 
00068         jTextField2.setFont(displayScaleFont);
00069         gridBagConstraints = new java.awt.GridBagConstraints();
00070         gridBagConstraints.gridx = 1;
00071         gridBagConstraints.gridy = 2;
00072         gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
00073         gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
00074         getContentPane().add(jTextField2, gridBagConstraints);
00075 
00076         jLabel2.setText("Chip(s):");
00077         jLabel2.setFont(displayScaleFont);
00078         gridBagConstraints = new java.awt.GridBagConstraints();
00079         gridBagConstraints.gridx = 0;
00080         gridBagConstraints.gridy = 1;
00081         gridBagConstraints.weightx = 0.5;
00082         gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
00083         gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
00084         getContentPane().add(jLabel2, gridBagConstraints);
00085 
00086         jLabel3.setText("Channel(s):");
00087         jLabel3.setFont(displayScaleFont);
00088         gridBagConstraints = new java.awt.GridBagConstraints();
00089         gridBagConstraints.gridx = 0;
00090         gridBagConstraints.gridy = 2;
00091         gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
00092         gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
00093         getContentPane().add(jLabel3, gridBagConstraints);
00094 
00095         jCheckBox1.setText("Occupancy plot?");
00096         jCheckBox1.setFont(displayScaleFont);
00097         jCheckBox1.setBackground(backgroundColor);
00098         gridBagConstraints = new java.awt.GridBagConstraints();
00099         gridBagConstraints.gridx = 0;
00100         gridBagConstraints.gridy = 3;
00101         gridBagConstraints.gridwidth = 2;
00102         gridBagConstraints.insets = new java.awt.Insets(2, 2, 2, 2);
00103         getContentPane().add(jCheckBox1, gridBagConstraints);
00104 
00105         jButton1.setText("Plot");
00106         jButton1.setFont(displayScaleFont);
00107         gridBagConstraints = new java.awt.GridBagConstraints();
00108         gridBagConstraints.gridx = 0;
00109         gridBagConstraints.gridy = 4;
00110         gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
00111         gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHWEST;
00112         getContentPane().add(jButton1, gridBagConstraints);
00113         jButton1.addActionListener(new java.awt.event.ActionListener() {
00114             public void actionPerformed(java.awt.event.ActionEvent evt) {
00115                 showPlot();
00116             }
00117         });
00118 
00119 
00120 
00121         jButton2.setText("Close");
00122         jButton2.setFont(displayScaleFont);
00123         gridBagConstraints = new java.awt.GridBagConstraints();
00124         gridBagConstraints.gridx = 1;
00125         gridBagConstraints.gridy = 4;
00126         gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
00127         gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST;
00128         getContentPane().add(jButton2, gridBagConstraints);
00129         jButton2.addActionListener(new java.awt.event.ActionListener() {
00130             public void actionPerformed(java.awt.event.ActionEvent evt) {
00131                 exitForm(null);
00132             }
00133         });
00134 
00135         pack();
00136         java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
00137         java.awt.Dimension WSize = getSize();
00138         setLocation((screenSize.width-(int)WSize.getWidth())/2,(screenSize.height-(int)WSize.getHeight())/2);
00139     }
00140     
00142     private void exitForm(java.awt.event.WindowEvent evt) {
00143         setVisible(false);
00144     }
00145     
00146 
00147     public void showFrame(String objectName) {
00148        this.objectName=objectName;
00149        java.util.regex.Matcher matcher = objectPattern.matcher(objectName);
00150        if(matcher.matches()) {
00151          String dataType = objectName.substring(matcher.start(1),matcher.end(1));
00152          String run = objectName.substring(matcher.start(2),matcher.end(2));
00153          String scan = objectName.substring(matcher.start(3),matcher.end(3));
00154          String sn = objectName.substring(matcher.start(4),matcher.end(4));
00155          jLabel1.setText("Plot "+dataType+" for "+sn+" (Run/Scan "+run+"/"+scan+")");
00156          }
00157        else jLabel1.setText("Plot data from "+objectName);
00158        pack();
00159        setVisible(true);
00160        }
00161 
00162 
00163     private void showPlot() {
00164         java.util.regex.Pattern rangePattern = java.util.regex.Pattern.compile("(\\d+)-(\\d+)");
00165         java.util.regex.Pattern iPattern = java.util.regex.Pattern.compile("(\\d+)");
00166         java.util.regex.Matcher matcher,matcher2;
00167         StringBuffer options = new StringBuffer();
00168         boolean error=false;
00169 
00170         if(!jTextField1.getText().equals("")) {
00171           String[] chips = jTextField1.getText().split(",");
00172           for(int i=0;i<chips.length;i++) {
00173              matcher = rangePattern.matcher(chips[i]);
00174              matcher2 = iPattern.matcher(chips[i]);
00175              if(matcher.matches()) options.append(" -chip "+chips[i].substring(matcher.start(1),matcher.end(1))+" "+chips[i].substring(matcher.start(2),matcher.end(2)));
00176              else if(matcher2.matches()) options.append(" -chip "+chips[i].substring(matcher2.start(1),matcher2.end(1))+" "+chips[i].substring(matcher2.start(1),matcher2.end(1)));
00177              else error=true;
00178              } 
00179            }
00180 
00181         if(!jTextField2.getText().equals("")) {
00182           String[] chans = jTextField2.getText().split(",");
00183           for(int i=0;i<chans.length;i++) {
00184              matcher = rangePattern.matcher(chans[i]);
00185              matcher2 = iPattern.matcher(chans[i]);
00186              if(matcher.matches()) options.append(" -chan "+chans[i].substring(matcher.start(1),matcher.end(1))+" "+chans[i].substring(matcher.start(2),matcher.end(2)));
00187              else if(matcher2.matches()) options.append(" -chan "+chans[i].substring(matcher2.start(1),matcher2.end(1))+" "+chans[i].substring(matcher2.start(1),matcher2.end(1)));
00188              else error=true;
00189              }
00190            } 
00191 
00192       if(error) {
00193          javax.swing.JOptionPane.showMessageDialog(null,"Your channels or chips contained a syntax error.\nEnter numbers separated by commas, and/or ranges separated by dashes\neg '0-3,6,9'");
00194          return;
00195          }
00196 
00197       if(jCheckBox1.isSelected()) options.append(" -occ");
00198 
00199 
00200 
00201         try {
00202 //              System.out.println("DataDisplayer " + options.toString()+" "+objectName);
00203             ExternalProcess p = new ExternalProcess("DataDisplayer " + options.toString()+" "+objectName);                                    
00204         } catch (Exception ioe) {
00205             System.out.println(ioe.getMessage());
00206             ioe.printStackTrace();
00207         }
00208    }
00209     
00210     
00211     // Variables declaration - do not modify
00212     private javax.swing.JButton jButton1;
00213     private javax.swing.JButton jButton2;
00214     private javax.swing.JCheckBox jCheckBox1;
00215     private javax.swing.JLabel jLabel1;
00216     private javax.swing.JLabel jLabel2;
00217     private javax.swing.JLabel jLabel3;
00218     private javax.swing.JTextField jTextField1;
00219     private javax.swing.JTextField jTextField2;
00220     // End of variables declaration
00221     
00222 }

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