package GCB; import Application.Constants; import java.awt.*; import java.awt.event.*; /* define an input field on the display constructor: name, field width name, field width, initial value */ public class InputField extends TextField { // input area on a window // attributes static String CODE_FILE = "InputField"; static int CODE_REVISION = 3; private int fieldType; private MainGUI mainGUI; // internal classes class InputActions implements ActionListener { // input from an input field public void actionPerformed(ActionEvent e) {} } class KeyEvents implements KeyListener { // key strokes made public void keyPressed(KeyEvent e) {} public void keyReleased(KeyEvent e) {} public void keyTyped(KeyEvent e) { char c = e.getKeyChar(); if(Character.isISOControl(c)) return; switch(fieldType) { case Constants.ALPHANUMERIC_FIELD: if(Character.isLetterOrDigit(c)) return; break; // error case Constants.POSITIVE_INT_FIELD: if(Character.isDigit(c)) return; break; // error case Constants.POSITIVE_FLOAT_FIELD: if(Character.isDigit(c) || (c=='.') || (c=='+')) return; break; case Constants.POSITIVE_FRACTION_FIELD: if(Character.isDigit(c) || (c=='.') || (c=='+')) return; break; case Constants.DOMAIN_NAME_FIELD: if(Character.isLetterOrDigit(c) || (c=='.') || (c=='_') || (c=='$')) return; break; // error case Constants.IP_ADDRESS_FIELD: if(Character.isDigit(c) || (c=='.')) return; break; case Constants.NAME_FIELD: if(Character.isLetterOrDigit(c) || (c=='.') || (c=='_') || (c=='$') || (c=='-') || (c==' ') || (c=='(') || (c==')')) return; break; // error } e.consume(); // do not process character mainGUI.error(CODE_FILE, "invalid character ("+ e.getKeyChar()+ ")"); } } // public methods // constructors public InputField(MainGUI g, String n, int c) { // create the input area super(c); // create the field mainGUI = g; setName(n); // listeners can identify events fieldType = Constants.ALPHANUMERIC_FIELD; addActionListener(new InputField.InputActions()); // wait for input addKeyListener(new InputField.KeyEvents()); } public InputField(MainGUI g, String n, int c, String t) { // create the input area super(c); // create the field mainGUI = g; setName(n); // listeners can identify events setText(t); // initial test in the field fieldType = Constants.ALPHANUMERIC_FIELD; addActionListener(new InputField.InputActions()); // wait for input addKeyListener(new InputField.KeyEvents()); } public InputField(MainGUI g, String n, int c, int f) { // create the input area super(c); // create the field mainGUI = g; setName(n); // listeners can identify events fieldType = f; addActionListener(new InputField.InputActions()); // wait for input addKeyListener(new InputField.KeyEvents()); } public InputField(MainGUI g, String n, int c, String t, int f) { // create the input area super(c); // create the field mainGUI = g; setName(n); // listeners can identify events setText(t); // initial test in the field fieldType = f; addActionListener(new InputField.InputActions()); // wait for input addKeyListener(new InputField.KeyEvents()); } }