samer@0: /* samer@0: * CommandField.java samer@0: * samer@0: * Copyright (c) 2000, Samer Abdallah, King's College London. samer@0: * All rights reserved. samer@0: * samer@0: * This software is provided AS iS and WITHOUT ANY WARRANTY; samer@0: * without even the implied warranty of MERCHANTABILITY or samer@0: * FITNESS FOR A PARTICULAR PURPOSE. samer@0: */ samer@0: samer@0: package samer.core.util.swing; samer@0: import samer.core.*; samer@0: import java.awt.*; samer@0: import java.awt.event.*; samer@0: import java.io.*; samer@0: import javax.swing.*; samer@0: samer@0: public class CommandField extends JTextField samer@0: { samer@0: public CommandField(int w) samer@0: { samer@0: super(w); samer@0: samer@0: setBackground( X.color(Shell.datum("swing.input.console.background"), Color.white)); samer@0: setForeground( X.color(Shell.datum("swing.input.console.foreground"), Color.black)); samer@0: Font font=X.font(Shell.datum("swing.input.console.font"),null); samer@0: if (font!=null) setFont(font); samer@0: addActionListener(h); samer@0: addKeyListener(h); samer@0: } samer@0: samer@0: static Handler h = new Handler(); samer@0: static class Handler extends KeyAdapter implements ActionListener, java.io.Serializable samer@0: { samer@0: String last; samer@0: samer@0: public void actionPerformed(ActionEvent e) { samer@0: Object o = e.getSource(); samer@0: JTextField tc = ((JTextField)o); samer@0: last=tc.getText(); samer@0: Shell.print("> "+last); samer@0: Shell.interpret(new StringReader(last)); samer@0: tc.setText(""); samer@0: } samer@0: samer@0: public void keyPressed(KeyEvent e) { samer@0: if (e.getKeyCode()==KeyEvent.VK_UP) { samer@0: Object o = e.getSource(); samer@0: JTextField tc = ((JTextField)o); samer@0: tc.setText(last); samer@0: } samer@0: } samer@0: } samer@0: } samer@0: