/*
 * TabelleEventHandler.java	01.07.99
 *
 *
 * Beilage zum Buch "Software-Entwurf mit UML"
 * von J.Seemann & J. Wolff von Gudenberg,
 * Springer-Verlag, 1999
 * 
 */

import java.awt.event.*;

/** <i>Hilfsobjekt f&uuml;r die Anzeige der Tabelle - &uuml;bernimmt die Ereignisbehandlung</i> */

public class TabelleEventHandler implements MouseListener, KeyListener
{
    AnzeigeTabelle T;

    //    MouseListener Methoden
    //
    public void mousePressed(MouseEvent e) {}
    public void mouseReleased(MouseEvent e) {}
    public void mouseEntered(MouseEvent e) {}
    public void mouseExited(MouseEvent e) {}

	  /** Reaktion auf Mausklick des Benutzers */
    public void mouseClicked(MouseEvent e) 
    {
       T.showPopup(e.getX(), e.getY());
       T.MouseClickPoint = e.getPoint();
       T.requestFocus();
    }

    //    KeyListener Methoden
    //
    public void keyTyped(KeyEvent e) 
    {
    }

    /** Reaktion auf Tastendruck des Benutzers */
	  public void keyPressed(KeyEvent e) 
    {
       TabellenCursor c = T.getTabellenCursor();
       int k = e.getKeyCode();
       boolean shiftPressed = e.isShiftDown();
       switch (k)
       {
          case KeyEvent.VK_LEFT: c.links(shiftPressed);
                                 break;
          case KeyEvent.VK_RIGHT: c.rechts(shiftPressed);
                                  break;
          case KeyEvent.VK_UP: c.oben(shiftPressed);
                               break;
          case KeyEvent.VK_DOWN: c.unten(shiftPressed);
                                 break;
       }
    }
    
	  public void keyReleased(KeyEvent e) {}

    TabelleEventHandler (AnzeigeTabelle T)
    {
       this.T = T;
    }
}