gishur.gui.inputhandler
Class Selector

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

public class Selector
extends DragHandler
implements java.awt.event.KeyListener

Selector ist ein Inputhandler, mit dem Objekte auf einem Layer selektiert und transformiert werden können. Damit sich DisplayObjekts selektieren lassen, müssen sie das Interface Selectable implementieren. Über einen Selektionsrahmen können die Objekte skaliert und gedreht werden. Die Skalierung und Drehung kann durch Drücken der Control-Taste vergröbert werden. Damit die DisplayObjects skaliert und rotiert werden können, sollten sie das Interface AffineTransformable implementieren.


Field Summary
static int ALLOW_SELECTION_BORDER
          Dieser Modus läßt einen Selektionsrahmen beim draggen außerhalb der selektierten Objekte zu.
static char[] arc_bmp
          Pfeil-Bitmap.
 byte arcradius
           
 java.awt.Color bordercolor
          Randfarbe.
 byte center_radius
          Radius des Rotationspunktes.
 java.awt.Color color
          Punktfarbe.
 int dragbutton
          Mousebutton(s), mit dem gedragged werden kann.
 java.awt.Color linecolor
          Linienfarbe.
static int MOVE_ON_OBJECT_DRAG
          In dem Modus werden alle Objekte verschoben, wenn auf einem selektierten Objekt eine Drag-Operation gestartet wird.
 byte objectspace
          Abstand vom Objekt zum Selektionsrand.
 byte radius
          Radius eines Griffes.
 int selectbutton
          Mousebutton(s), mit dem selektiert werden kann.
 java.awt.Color selectcolor
          Farbe des Selektionsrahmen (beim aufziehen).
 byte shape
          Punktform.
 int switchselectbutton
          Mousebutton(s), mit dem der Selektionsmodus umgeschaltet 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
Selector(InputManager inputs, Layer targetlayer)
          Konstruktor.
 
Method Summary
 boolean becomeActive(java.awt.event.MouseEvent e)
          Testet, ob der DragHandler aktiv werden soll.
 java.awt.Rectangle calculateBounds()
          Berechnet den neuen belegten Bereich.
 Shape calculateShape()
          Berechnet ein neues Shape-Objekt.
 void keyPressed(java.awt.event.KeyEvent e)
          Invoked when a key has been pressed.
 void keyReleased(java.awt.event.KeyEvent e)
          Invoked when a key has been released.
 void keyTyped(java.awt.event.KeyEvent e)
          Invoked when a key has been typed.
 void mouseReleased(java.awt.event.MouseEvent e)
          Maustaste losgelassen.
 void onActivate(java.awt.event.MouseEvent e)
          Wird beim aktivieren des Handlers aufgerufen.
 void onDeactivate(java.awt.event.MouseEvent e)
          Wird beim deaktivieren des Handlers aufgerufen.
 void onDisable()
          Wird bei disable aufgerufen.
 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 recalcSelectionBorder()
          Berechnet den Selektionsrand neu.
 void recalcSelectionBorders(int x, int y, int w, int h)
          Berechnet neue Ränder aufgrund der übergebenen Veränderungen an realBounds.
 void select(DisplayObject dob)
          Selektiert das übergebene DisplayObject (falls es Selectable implementiert und isSelectable() true liefert).
 void select(List L)
          Selektiert alle Objekte in der Liste L, sofern das möglich ist und sie das zulassen.
 void unselect(DisplayObject dob)
          Entfernt das Objekt dob aus der Selektionsliste.
 void unselectAll()
          Unselektiert alle selektierten Objekte.
 void update(java.awt.Graphics g)
          Malt den Cursor neu.
 
Methods inherited from class gishur.gui.inputhandler.DragHandler
clearMode, didRealDrag, getLastMouseX, getLastMouseY, hideCursor, isActive, isDragging, mouseClicked, mouseDragged, mouseEntered, mouseExited, mouseMoved, mousePressed, setMode, setSpecialCursor, showCursor, testMode
 
Methods inherited from class gishur.gui.InputHandler
allButtons, disable, dispatchEvent, enable, enabled, getComponent, getCursor, maxBounds, 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

arc_bmp

public static final char[] arc_bmp
Pfeil-Bitmap.

selectbutton

public int selectbutton
Mousebutton(s), mit dem selektiert werden kann.

switchselectbutton

public int switchselectbutton
Mousebutton(s), mit dem der Selektionsmodus umgeschaltet werden kann.

dragbutton

public int dragbutton
Mousebutton(s), mit dem gedragged werden kann.

ALLOW_SELECTION_BORDER

public static final int ALLOW_SELECTION_BORDER
Dieser Modus läßt einen Selektionsrahmen beim draggen außerhalb der selektierten Objekte zu.

MOVE_ON_OBJECT_DRAG

public static final int MOVE_ON_OBJECT_DRAG
In dem Modus werden alle Objekte verschoben, wenn auf einem selektierten Objekt eine Drag-Operation gestartet wird.

radius

public byte radius
Radius eines Griffes.

center_radius

public byte center_radius
Radius des Rotationspunktes.

arcradius

public byte arcradius

objectspace

public byte objectspace
Abstand vom Objekt zum Selektionsrand.

shape

public byte shape
Punktform.

color

public java.awt.Color color
Punktfarbe.

bordercolor

public java.awt.Color bordercolor
Randfarbe.

linecolor

public java.awt.Color linecolor
Linienfarbe.

selectcolor

public java.awt.Color selectcolor
Farbe des Selektionsrahmen (beim aufziehen).
Constructor Detail

Selector

public Selector(InputManager inputs,
                Layer targetlayer)
Konstruktor. Benötigt den Layer, auf dem der Punkt liegt.
Method Detail

recalcSelectionBorder

public void recalcSelectionBorder()
Berechnet den Selektionsrand neu.

recalcSelectionBorders

public void recalcSelectionBorders(int x,
                                   int y,
                                   int w,
                                   int h)
Berechnet neue Ränder aufgrund der übergebenen Veränderungen an realBounds.
Parameters:
x,y,w,h - Maße der neuen realBounds

calculateShape

public Shape calculateShape()
Berechnet ein neues Shape-Objekt.

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)
Malt den Cursor neu.
Overrides:
update in class InputHandler
Parameters:
g - Graphics, auf das gemalt werden soll.

select

public void select(DisplayObject dob)
Selektiert das übergebene DisplayObject (falls es Selectable implementiert und isSelectable() true liefert).
Parameters:
dob - zu selekiertendes DisplayObject

select

public void select(List L)
Selektiert alle Objekte in der Liste L, sofern das möglich ist und sie das zulassen.
Parameters:
L - Liste mit zu selektierenden Objekten

unselect

public void unselect(DisplayObject dob)
Entfernt das Objekt dob aus der Selektionsliste.
Parameters:
dob - Objekt, das aus der Selektion genommen werden soll

unselectAll

public void unselectAll()
Unselektiert alle selektierten Objekte.

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.

onActivate

public void onActivate(java.awt.event.MouseEvent e)
Wird beim aktivieren des Handlers aufgerufen.
Overrides:
onActivate in class DragHandler
Parameters:
e - Mausevent

onDeactivate

public void onDeactivate(java.awt.event.MouseEvent e)
Wird beim deaktivieren des Handlers aufgerufen.
Overrides:
onDeactivate in class DragHandler
Parameters:
e - Mausevent

mouseReleased

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

keyTyped

public void keyTyped(java.awt.event.KeyEvent e)
Invoked when a key has been typed. This event occurs when a key press is followed by a key release.
Specified by:
keyTyped in interface java.awt.event.KeyListener

keyPressed

public void keyPressed(java.awt.event.KeyEvent e)
Invoked when a key has been pressed.
Specified by:
keyPressed in interface java.awt.event.KeyListener

keyReleased

public void keyReleased(java.awt.event.KeyEvent e)
Invoked when a key has been released.
Specified by:
keyReleased in interface java.awt.event.KeyListener

onDisable

public void onDisable()
Wird bei disable aufgerufen.
Overrides:
onDisable in class InputHandler