package simbad.sim;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JPanel;
import simbad.gui.Simbad;
public class KeyInputSensor extends SensorDevice implements KeyListener{
/** Last input , -1 if none */
int lastKey;
JPanel panel;
public KeyInputSensor(){
super.create3D(true);
lastKey = -1;
//KeyboardFocusManager kfm = KeyboardFocusManager.getCurrentKeyboardFocusManager();
//Component comp = kfm.getPermanentFocusOwner();
//comp.addKeyListener(this);
}
public JPanel createInspectorPanel(){
panel = new KeyInputSensorJPanel(this);
return panel;
}
/*
* a JPanel for displaying the eye image.
*/
public class KeyInputSensorJPanel extends JPanel {
private static final long serialVersionUID = 1L;
Font font;
Color color;
final static int HEIGHT=12;
public KeyInputSensorJPanel(KeyListener listener){
color = new Color(0,0,0);
Dimension d= new Dimension(50,HEIGHT);
setPreferredSize(d);
setMinimumSize(d);
font = new Font("Arial",Font.PLAIN,HEIGHT-2);
/* // receive key event in parent
this.addKeyListener(parent);
// this.requestFocusInWindow(true);
this.requestFocus();
setFocusable(true);
*/
Simbad.getSimbadInstance().getDesktopPane().addKeyListener(listener);
}
protected void paintComponent( Graphics g){
super.paintComponent(g);
g.setFont(font);
g.drawString("last key :"+KeyEvent.getKeyText(lastKey),HEIGHT+10,HEIGHT-1);
}
}
public void keyTyped(KeyEvent event) {
}
public void keyPressed(KeyEvent event) {
lastKey = event.getKeyCode();
panel.repaint();
}
public void keyReleased(KeyEvent arg0) {
lastKey = -1;
panel.repaint();
}
public int getLastKey() {
return lastKey;
}
}