gishur.gui.inputhandler
Class ZoomHandler

java.lang.Object
  |
  +--gishur.gui.Painter
        |
        +--gishur.gui.InputHandler
              |
              +--gishur.gui.inputhandler.DragHandler
                    |
                    +--gishur.gui.inputhandler.ZoomHandler
All Implemented Interfaces:
java.util.EventListener, java.awt.event.MouseListener, java.awt.event.MouseMotionListener

public class ZoomHandler
extends DragHandler

Ein ZoomHandler ist ein InputHandler zum zoomen frei wählbarer Bereiche. Durch draggen mit der durch dragbutton festgelegten Maustaste kann man Bereich aufziehen, die dann so groß wie möglich dargestellt werden. Durch drücken der durch backbutton festgelegten Maustaste wird der Zustand vor dem letzten Zoomen wieder hergestellt. Damit der ZoomHandler richtig arbeiten kann, müssen ihm Layer übergeben werden, die er zoomen kann sowie der DisplayManager, dem sie angehören.


Field Summary
 int backbutton
          Mousetaste zum zurückzoomen.
 java.awt.Color color
          Punktfarbe.
 int dragbutton
          Mousebutton(s), mit dem gedragged werden kann.
 
Fields inherited from class gishur.gui.inputhandler.DragHandler
ALLOW_INACTIVE_DRAG, CONSUME_NEVER, CONSUME_ONLY_IF_ACTIVE, DRAGHANDLER_MODE_MAX_ID
 
Fields inherited from class gishur.gui.Painter
_layer, _nofixedborder
 
Constructor Summary
ZoomHandler(DisplayManager display, int maxlayers)
          Konstruktor.
 
Method Summary
 void add(Layer layer)
          Fügt einen zu Zoomenden Layer hinzu.
 void addStatusToZoomHistory()
          Speichert den aktuellen Status aller verknüpften Layer in der Zoom-History.
 boolean becomeActive(java.awt.event.MouseEvent e)
          Testet, ob der DragHandler aktiv werden soll.
 java.awt.Rectangle calculateBounds()
          Berechnet den neuen belegten Bereich.
 Layer[] getLayers()
          Liefert die gespeicherte Liste aller zoomenbaren Layer.
 void mouseReleased(java.awt.event.MouseEvent e)
          Maustaste losgelassen.
 void onDrag(int dx, int dy, java.awt.event.MouseEvent e)
          Wird während des Draggens aufgerufen.
 void onDrop(int dx, int dy, java.awt.event.MouseEvent e)
          Wird beim Loslassen der Maus nach einem Drag-Vorgang aufgerufen.
 void onPickup(java.awt.event.MouseEvent e)
          Wird aufgerufen, falls ein Drag-Vorgang begonnen wird (also nachdem picking true geliefert hat).
 boolean picking(java.awt.event.MouseEvent e)
          Wird aufgerufen, wenn die Mousetaste gedrückt wurde.
 void remove(Layer layer)
          Entfernt einen Layer aus der Liste der zu zoomenden Layer.
 void setLayers(Layer[] layers)
          Setzt das Feld mit den zu zoomenden Layer auf layers.
 void update(java.awt.Graphics g)
          Zeichnet das Objekt auf das Graphics g neu.
 
Methods inherited from class gishur.gui.inputhandler.DragHandler
clearMode, didRealDrag, getLastMouseX, getLastMouseY, hideCursor, isActive, isDragging, mouseClicked, mouseDragged, mouseEntered, mouseExited, mouseMoved, mousePressed, onActivate, onDeactivate, setMode, setSpecialCursor, showCursor, testMode
 
Methods inherited from class gishur.gui.InputHandler
allButtons, disable, dispatchEvent, enable, enabled, getComponent, getCursor, maxBounds, onDisable, oneButton, onEnable, setComponent, setCursor, setStatusTip, setToolTip, system_disable, system_enable, visible
 
Methods inherited from class gishur.gui.Painter
dirty, enlargeRectangleByPainter, equals, getBounds, getLayer, getPainterString, getPosition, getRegister, getTarget, getTargetClass, getTransformation, getVirtualScreen, hide, linkDirty, makeDirty, onHide, onShow, paint, recalcBounds, removeLinkDirty, setLayer, setRegister, setTarget, show, toString, unRegister
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

color

public java.awt.Color color
Punktfarbe.

dragbutton

public int dragbutton
Mousebutton(s), mit dem gedragged werden kann. Kann auch eine Kombination von Mousebuttonkonstanten aus java.awt.event.InputEvent bestehen.

backbutton

public int backbutton
Mousetaste zum zurückzoomen.
Constructor Detail

ZoomHandler

public ZoomHandler(DisplayManager display,
                   int maxlayers)
Konstruktor.
Method Detail

add

public void add(Layer layer)
Fügt einen zu Zoomenden Layer hinzu.
Parameters:
layer - neuer Layer

remove

public void remove(Layer layer)
Entfernt einen Layer aus der Liste der zu zoomenden Layer.
Parameters:
layer - zu entfernender Layer

setLayers

public void setLayers(Layer[] layers)
Setzt das Feld mit den zu zoomenden Layer auf layers.
Parameters:
layers - neues Layer-Array zum Zoomen

getLayers

public Layer[] getLayers()
Liefert die gespeicherte Liste aller zoomenbaren Layer.
Returns:
Array mit Layern

addStatusToZoomHistory

public void addStatusToZoomHistory()
Speichert den aktuellen Status aller verknüpften Layer in der Zoom-History. Damit kann der betreffende Status durch clicken der backbutton-Maustaste wieder hergestellt werden.

calculateBounds

public java.awt.Rectangle calculateBounds()
Berechnet den neuen belegten Bereich.
Overrides:
calculateBounds in class InputHandler
Returns:
neuer Bereich

update

public void update(java.awt.Graphics g)
Zeichnet das Objekt auf das Graphics g neu.
Overrides:
update in class InputHandler
Parameters:
g - Graphics, auf dem gezeichnet werden soll

onPickup

public void onPickup(java.awt.event.MouseEvent e)
Wird aufgerufen, falls ein Drag-Vorgang begonnen wird (also nachdem picking true geliefert hat).
Overrides:
onPickup in class DragHandler
Following copied from class: gishur.gui.inputhandler.DragHandler
Parameters:
e - Mausevent

onDrag

public void onDrag(int dx,
                   int dy,
                   java.awt.event.MouseEvent e)
Wird während des Draggens aufgerufen. Seit einem letzten Aufruf von onPickup bzw. onDrag wurde die Maus um dx und dy bewegt.
Overrides:
onDrag in class DragHandler
Following copied from class: gishur.gui.inputhandler.DragHandler
Parameters:
dx,dy - Vektor, um den verschoben wurde
e - Mausevent

onDrop

public void onDrop(int dx,
                   int dy,
                   java.awt.event.MouseEvent e)
Wird beim Loslassen der Maus nach einem Drag-Vorgang aufgerufen. Seit einem letzten Aufruf von onPickup bzw. onDrag wurde die Maus um dx und dy bewegt.
Overrides:
onDrop in class DragHandler
Following copied from class: gishur.gui.inputhandler.DragHandler
Parameters:
dx,dy - Vektor, um den verschoben wurde
e - Mausevent

picking

public boolean picking(java.awt.event.MouseEvent e)
Wird aufgerufen, wenn die Mousetaste gedrückt wurde. Liefert picking true zurück, so wird ein Drag-Vorgang begonnen.
Overrides:
picking in class DragHandler
Parameters:
e - Mausevent
Returns:
true, falls Drag-Vorgang eingeleitet werden wird

becomeActive

public boolean becomeActive(java.awt.event.MouseEvent e)
Testet, ob der DragHandler aktiv werden soll. Diese Methode wird sehr häufig aufgerufen (bei jeder Mausbewegung!) und sollte daher schnell bearbeitet werden. Wird true zurückgeliefert, so wird der Handler aktiviert und onActivate aufgerufen, wird false geliefert, so wird onDeactivate aufgerufen und der Handler deaktiviert. Nur ein aktivierter Handler kann Drag & Drop Operationen ausführen.
Overrides:
becomeActive in class DragHandler
Parameters:
e - Mausevent
Returns:
true, Handler aktiv werden soll.

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent e)
Maustaste losgelassen.
Overrides:
mouseReleased in class DragHandler
Parameters:
e - Event