diff src/samer/core_/util/swing/CommandField.java @ 0:bf79fb79ee13

Initial Mercurial check in.
author samer
date Tue, 17 Jan 2012 17:50:20 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/samer/core_/util/swing/CommandField.java	Tue Jan 17 17:50:20 2012 +0000
@@ -0,0 +1,56 @@
+/*
+ *	CommandField.java	
+ *
+ *	Copyright (c) 2000, Samer Abdallah, King's College London.
+ *	All rights reserved.
+ *
+ *	This software is provided AS iS and WITHOUT ANY WARRANTY; 
+ *	without even the implied warranty of MERCHANTABILITY or 
+ *	FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+package samer.core.util.swing;
+import  samer.core.*;
+import  java.awt.*;
+import  java.awt.event.*;
+import  java.io.*;
+import  javax.swing.*;
+
+public class CommandField extends JTextField
+{
+	public CommandField(int w) 
+	{ 
+		super(w); 
+
+		setBackground( X.color(Shell.datum("swing.input.console.background"), Color.white));
+		setForeground( X.color(Shell.datum("swing.input.console.foreground"), Color.black));
+		Font font=X.font(Shell.datum("swing.input.console.font"),null);
+		if (font!=null) setFont(font);
+		addActionListener(h);
+		addKeyListener(h);
+	}
+
+	static Handler h = new Handler();
+	static class Handler extends KeyAdapter implements ActionListener, java.io.Serializable
+	{
+		String last;
+
+		public void actionPerformed(ActionEvent e) {
+			Object o = e.getSource();
+			JTextField tc = ((JTextField)o);			
+			last=tc.getText();
+			Shell.print("> "+last);
+			Shell.interpret(new StringReader(last)); 
+			tc.setText("");
+		}
+
+		public void keyPressed(KeyEvent e) {
+			if (e.getKeyCode()==KeyEvent.VK_UP) {
+				Object o = e.getSource();
+				JTextField tc = ((JTextField)o);			
+				tc.setText(last);
+			}
+		}
+	}
+}
+