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

SelectionDialog.java

00001 package Sct.gui;
00002 
00003 import java.awt.event.ActionEvent;
00004 import java.awt.event.ActionListener;
00005 import java.awt.event.WindowAdapter;
00006 import java.awt.event.WindowEvent;
00007 
00008 import javax.swing.JButton;
00009 import javax.swing.JDialog;
00010 import javax.swing.JLabel;
00011 import javax.swing.JPanel;
00012 import javax.swing.JTextField;
00013 import javax.swing.Box;
00014 
00015 
00019 public class SelectionDialog extends JDialog {
00020     JTextField textFields[];
00021     String fields[];
00022     String defaults[];
00023 
00024     boolean valid;
00025 
00032     public SelectionDialog(java.awt.Frame owner, String title, String fs[], String ds[]) {
00033         super(owner, title, true);
00034 
00035         fields = fs;
00036         defaults = ds;
00037 
00038         valid = true;
00039 
00040         buildGUI();
00041     }
00042 
00046     private void buildGUI() {
00047         getContentPane().removeAll();
00048 
00049         Box allBox = Box.createVerticalBox();
00050         Box box = Box.createVerticalBox();
00051 
00052         textFields = new JTextField[fields.length];
00053 
00054         for(int f=0; f<fields.length; f++) {
00055             JPanel panel = new JPanel();
00056             panel.add(new JLabel(fields[f] + ":"));
00057             textFields[f] = new JTextField(defaults[f], 5);
00058             panel.add(textFields[f]);
00059              box.add(panel);
00060         }
00061 
00062         allBox.add(box);
00063 
00064         JPanel buttonPanel = new JPanel();
00065 
00066         JButton cancel = new JButton("Cancel");
00067         cancel.addActionListener(new ActionListener() {
00068                 public void actionPerformed(ActionEvent e) {
00069                     valid = false;
00070                     dispose();
00071                 }
00072             });
00073         buttonPanel.add(cancel);
00074 
00075         JButton okButton = new JButton("OK");
00076         okButton.addActionListener(new ActionListener() {
00077                 public void actionPerformed(ActionEvent e) {
00078                     dispose();
00079                 }
00080             });
00081         buttonPanel.add(okButton);
00082 
00083         allBox.add(buttonPanel);
00084         getContentPane().add(allBox);
00085     }
00086 
00091     public int getIntFieldValue(int index) throws InvalidDialogException, CancelledDialogException {
00092         if(!valid) throw new CancelledDialogException();
00093         try {
00094             return Integer.decode(textFields[index].getText()).intValue();
00095         } catch(NumberFormatException n) {
00096             System.out.println("NumberFormatException: " + n);
00097             throw new InvalidDialogException();
00098         }
00099     }
00100 
00105     public String getStringFieldValue(int index) throws InvalidDialogException, CancelledDialogException {
00106         if(!valid) throw new CancelledDialogException();
00107         return textFields[index].getText();
00108     }
00109 
00113     public static class InvalidDialogException extends Exception {
00114     }
00115 
00119     public static class CancelledDialogException extends Exception {
00120     }
00121 }

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