package edu.cmu.cs.eyetrack.gui; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JPanel; import edu.cmu.cs.eyetrack.helper.Util.PanelID; @SuppressWarnings("serial") public abstract class Screen extends JPanel { protected final EyeTrack owner; protected PanelID nextScreen; public Screen(EyeTrack eyeTrack, PanelID nextScreen) { this.owner = eyeTrack; this.nextScreen = nextScreen; // // If the user ever presses Escape or Q, exit the entire program addKeyListener(new KeyListener() { public void keyPressed(KeyEvent key) { // Fire closing event on attempted exit if( key.getKeyCode() == KeyEvent.VK_ESCAPE ) { owner.killAndQuit(); } } //@Override //TODO Java 1.5 screams about this; remove when not caring about Java 1.5 public void keyReleased(KeyEvent e) {} //@Override //TODO Java 1.5 screams about this; remove when not caring about Java 1.5 public void keyTyped(KeyEvent e) {} }); } public PanelID getNextScreen() { return nextScreen; } public void setNextScreen(PanelID nextScreen) { this.nextScreen = nextScreen; } protected abstract void initialize(); protected abstract void tearDown(); }