gishur.gui
Class DisplayObject

java.lang.Object
  |
  +--gishur.gui.Painter
        |
        +--gishur.gui.DisplayObject
Direct Known Subclasses:
DisplayXCircle, DisplayXLine, DisplayXList, DisplayXParabola, DisplayXPoint, DisplayXPolyline, DisplayXRay, DisplayXSegment

public abstract class DisplayObject
extends Painter

Basisklasse für darstellbare Objekte, die Layer verwalten können. Zusätzlich zu den in Painter enthaltenen Informationen verwalten Displayobjects Shapes um Gebietinformationen für spätere Manipulation und umgewandelte Koordinaten zu speichern. Entsprechend wird nicht wie beim Painter calculateBounds aufgerufen, sondern calculateShape. Das eigentliche Neuzeichnen erfolgt nach wie vor über update.

Version:
1.3
Author:
Thomas Wolf
See Also:
Shape

Fields inherited from class gishur.gui.Painter
_layer, _nofixedborder
 
Constructor Summary
DisplayObject()
           
 
Method Summary
 java.awt.Rectangle calculateBounds()
          Berechnet den neuen belegten Bereich.
abstract  Shape calculateShape(ScreenTransformation transform)
          Berechnet ein neues Shape-Objekt mit Hilfe der Transformation transform.
 java.awt.Color[] getAllColors()
          Liefert alle Farben des DisplayObjects (zum Sichern des Status).
 java.lang.String getDOString()
          Hilfsmittel für toString.
 GraphicPrimitive getOuterShape()
          Liefert das GraphicPrimitive, das die äußere Umrandung beschreibt.
 Shape getShape()
          Liefert das zuletzt berechnete Shape-Objekt zurück.
 boolean hit(int x, int y)
          Liefert true, falls das Objekt den Punkt (x,y) enthält (das Objekt selbst; nicht der Breich!).
 boolean isContainedIn(java.awt.Rectangle r)
          Liefert true, falls das Rechteck r das Objekt vollständig enthält.
 void restoreColors(java.awt.Color[] colors)
          Stellt den in colors gespeicherten Farbzustand wieder her.
 void setBackground(java.awt.Color background)
          Setzt die Hintergrundfarben auf background.
 void setColor(java.awt.Color foreground)
          Setzt die Vordergrundfarben auf foreground.
 void setShape(Shape newshape)
          Setzt den Umriß.
 java.lang.String toString()
          Überschreibt Object.toString()
 
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, unRegister, update, visible
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DisplayObject

public DisplayObject()
Method Detail

calculateShape

public abstract Shape calculateShape(ScreenTransformation transform)
Berechnet ein neues Shape-Objekt mit Hilfe der Transformation transform. Ein Shape sollte alle zum Zeichnen benötigten Informationen des verknüpften Objektes speichern.
Parameters:
transform - Transformation
Returns:
neues Shape-Objekt

toString

public java.lang.String toString()
Überschreibt Object.toString()
Overrides:
toString in class Painter

getDOString

public final java.lang.String getDOString()
Hilfsmittel für toString.

getAllColors

public java.awt.Color[] getAllColors()
Liefert alle Farben des DisplayObjects (zum Sichern des Status).
Returns:
alle Farben

restoreColors

public void restoreColors(java.awt.Color[] colors)
Stellt den in colors gespeicherten Farbzustand wieder her.
Parameters:
colors - Array mit Farben (vorher mit getAllColors() erzeugt)

setColor

public void setColor(java.awt.Color foreground)
Setzt die Vordergrundfarben auf foreground.
Parameters:
foreground - Vordergrundfarbe

setBackground

public void setBackground(java.awt.Color background)
Setzt die Hintergrundfarben auf background.
Parameters:
background - Hintergrundfarbe

calculateBounds

public final java.awt.Rectangle calculateBounds()
Berechnet den neuen belegten Bereich. Bei DisplayObjects wird dazu das komplette Shape neuberechnet und gespeichert.
Overrides:
calculateBounds in class Painter
Returns:
neuer Bereich

getShape

public final Shape getShape()
Liefert das zuletzt berechnete Shape-Objekt zurück.
Returns:
aktuelles Shape

setShape

public final void setShape(Shape newshape)
Setzt den Umriß. Sollte nur aufgerufen werden, wenn das DisplayObject nicht selbst dargestllt wird (z.b. bei DisplayList).
Parameters:
newshape - neues Shape-Objekt

hit

public final boolean hit(int x,
                         int y)
Liefert true, falls das Objekt den Punkt (x,y) enthält (das Objekt selbst; nicht der Breich!).
Parameters:
x,y - zu testender Punkt
Returns:
true, falls (x,y) das Objekt trifft, sonst false

isContainedIn

public boolean isContainedIn(java.awt.Rectangle r)
Liefert true, falls das Rechteck r das Objekt vollständig enthält.
Parameters:
r - Bereich
Returns:
true, falls Objekt in r enthalten

getOuterShape

public GraphicPrimitive getOuterShape()
Liefert das GraphicPrimitive, das die äußere Umrandung beschreibt. Standardmäßig wird hier das letzte im Shape gespeicherte GraphicPrimitive zurückgegeben. Die Information wird hauptsächlich bei Kollisionsabfragen verwendet. Ist das Objekt unsichtbar, so muß null zurückgegeben werden.
Returns:
äußeres GraphicPrimitive