gishur.gui.displayobject
Class DisplayXSegment

java.lang.Object
  |
  +--gishur.gui.Painter
        |
        +--gishur.gui.DisplayObject
              |
              +--gishur.gui.displayobject.DisplayXSegment
All Implemented Interfaces:
AffineTransformable, ObjectEditorSupport, Selectable

public class DisplayXSegment
extends DisplayObject
implements ObjectEditorSupport, Selectable, AffineTransformable

DisplayObject für ein XSegment-Objekt. Neuerung: stellte auch alle linienobjekte dar!

Version:
2.0

Field Summary
 java.awt.Color bordercolor
          Randfarbe.
 java.awt.Color color
          Punktfarbe.
 java.awt.Color linecolor
          Linienfarbe.
 byte objecteditormode
          Objekteditormodus.
 byte radius
          Radius des Punktes.
static byte ROUND
          Runder Punkt.
 boolean selectable
          Falls true, ist das DisplayObject selektierbar.
 byte shape
          Punktform.
static byte SQUARE
          Quadratischer Punkt.
static byte TRIANGLE
          Dreieckiger Punkt.
 byte width
          Linienstärke.
 
Fields inherited from class gishur.gui.Painter
_layer, _nofixedborder
 
Fields inherited from interface gishur.gui.Selectable
ACTIVATE_OBJECTEDITOR_ON_SELECVT, CREATE_OBJECTEDITOR_ON_SELECT, NO_OBJECTEDITOR
 
Constructor Summary
DisplayXSegment(java.lang.Object p)
          Öffentlicher Konstruktor.
 
Method Summary
 Shape calculateShape(ScreenTransformation transform)
          Berechnet ein neues Shape-Objekt mit Hilfe der Transformation transform.
 void copyStyle(DisplayXSegment o)
          Übernimmt den Stil aus dem DisplayXSegment p.
 InputHandler createObjectEditor()
          Erzeugt einen neuen Objekteditor.
static void drawLine(java.awt.Graphics g, int x1, int y1, int x2, int y2, int width)
          Zeichnet eine Linie von (x1,y1) nach (x2,y2) mit Liniendicke width
 InputHandler getObjectEditor()
          Liefert den Objekteditor für das Objekt.
 byte getObjectEditorMode()
          Liefert den Objekteditormodus.
 java.awt.Rectangle getRealBounds()
          Liefert den Bereich, den alle Objekte belegen.
 java.awt.Rectangle getSelectionBorder()
          Liefert den Selektionsrahmen eines selektierbaren Objektes in aktuellen Bildschirmkoordinaten.
 java.lang.Object getTarget()
          Liefert das Objekt, das durch das DisplayObject dargestellt wird.
 java.lang.Class getTargetClass()
          Liefert ein Klassenobjekt des verknüpften Objektes, auch wenn getTarget()==null liefert.
 boolean isSelectable()
          Falls isSelectable true zurückgibt, kann das Objekt selektiert werden.
 void rotate(java.awt.Point center, double angle)
          Dreht das Objekt um den Punkt center mit dem Winkel angle.
 void rotate(java.awt.Point center, java.awt.Point start, java.awt.Point end)
          Dreht das Objekt um den Punkt center mit dem Winkel start-center-end.
 void scale(java.awt.Point center, double xscale, double yscale)
          Skaliert das Objekt mit xscale und yscale so, daß der Punkt middle davon unberührt bleibt.
 void setObjectEditor(InputHandler editor)
          Ordnet dem Objekt einen Objekteditor zu.
 boolean setTarget(java.lang.Object O)
          Setzt das verknüpfte Objekt neu.
 java.lang.String toString()
          Überschreibt Object.toString()
 void transform(double m00, double m01, double m02, double m10, double m11, double m12)
          Transformiert das Objekt mit der übergebenen Transformationsmatrix.
 void translate(int dx, int dy)
          Verschiebt das Objekt um den Vektor (dx,dy).
 void update(java.awt.Graphics g)
          Zeichnet das Objekt auf das Graphics g neu.
 
Methods inherited from class gishur.gui.DisplayObject
calculateBounds, getAllColors, getDOString, getOuterShape, getShape, hit, isContainedIn, restoreColors, setBackground, setColor, setShape
 
Methods inherited from class gishur.gui.Painter
dirty, enlargeRectangleByPainter, equals, getBounds, getLayer, getPainterString, getPosition, getRegister, getTransformation, getVirtualScreen, hide, linkDirty, makeDirty, onHide, onShow, paint, recalcBounds, removeLinkDirty, setLayer, setRegister, show, unRegister, visible
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

objecteditormode

public byte objecteditormode
Objekteditormodus.

radius

public byte radius
Radius des Punktes.

ROUND

public static final byte ROUND
Runder Punkt.

SQUARE

public static final byte SQUARE
Quadratischer Punkt.

TRIANGLE

public static final byte TRIANGLE
Dreieckiger Punkt.

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.

width

public byte width
Linienstärke.

selectable

public boolean selectable
Falls true, ist das DisplayObject selektierbar.
Constructor Detail

DisplayXSegment

public DisplayXSegment(java.lang.Object p)
Öffentlicher Konstruktor. Verknüpft das DisplayObjekt mit einem XSegment.
Method Detail

copyStyle

public void copyStyle(DisplayXSegment o)
Übernimmt den Stil aus dem DisplayXSegment p.
Parameters:
p - DisplayXSegment zum Übernehmen des Stiles

calculateShape

public 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.
Overrides:
calculateShape in class DisplayObject
Parameters:
transform - Transformation
Returns:
neues Shape-Objekt

update

public void update(java.awt.Graphics g)
Zeichnet das Objekt auf das Graphics g neu. Bei verknüpften Objekten sollten sämtliche zum Zeichnen benötigten Informationen des Verknüpften Objektes im Shape gespeichert sein!
Overrides:
update in class Painter
Parameters:
g - Graphics, auf dem gezeichnet werden soll

drawLine

public static void drawLine(java.awt.Graphics g,
                            int x1,
                            int y1,
                            int x2,
                            int y2,
                            int width)
Zeichnet eine Linie von (x1,y1) nach (x2,y2) mit Liniendicke width
Parameters:
g - Graphics, auf dem gemalt wird
x1,y1 - erster Segmentpunkt
x2,y2 - zweiter Segmentpunkt
width - Linienstärke

getTarget

public java.lang.Object getTarget()
Liefert das Objekt, das durch das DisplayObject dargestellt wird. Defaultmäßig wird ein Zeiger auf das DisplayObject selbst zurückgegeben.
Overrides:
getTarget in class Painter
Returns:
verknüpftes Objekt

setTarget

public boolean setTarget(java.lang.Object O)
Setzt das verknüpfte Objekt neu.
Overrides:
setTarget in class Painter
Parameters:
O - neues Objekt
Returns:
true, falls Änderung erfolgreich, ansonsten null

getTargetClass

public java.lang.Class getTargetClass()
Liefert ein Klassenobjekt des verknüpften Objektes, auch wenn getTarget()==null liefert.
Overrides:
getTargetClass in class Painter
Returns:
Class-Objekt des verknüpfbaren Objekttypes.

toString

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

getObjectEditor

public InputHandler getObjectEditor()
Liefert den Objekteditor für das Objekt.
Specified by:
getObjectEditor in interface ObjectEditorSupport
Returns:
InputHandler, der als Objekteditor agiert.

setObjectEditor

public void setObjectEditor(InputHandler editor)
Ordnet dem Objekt einen Objekteditor zu.
Specified by:
setObjectEditor in interface ObjectEditorSupport
Parameters:
editor - der Objekteditor

createObjectEditor

public InputHandler createObjectEditor()
Erzeugt einen neuen Objekteditor.
Specified by:
createObjectEditor in interface ObjectEditorSupport
Returns:
neuer Objekteditor

transform

public void transform(double m00,
                      double m01,
                      double m02,
                      double m10,
                      double m11,
                      double m12)
Transformiert das Objekt mit der übergebenen Transformationsmatrix.
Specified by:
transform in interface AffineTransformable
Parameters:
m00,m01,m02 - erste Zeile der Transformationsmatrix
m10,m11,m12 - zweite Zeile der Transformationsmatrix

scale

public void scale(java.awt.Point center,
                  double xscale,
                  double yscale)
Skaliert das Objekt mit xscale und yscale so, daß der Punkt middle davon unberührt bleibt.
Specified by:
scale in interface AffineTransformable
Parameters:
middle - Mittelpunkt, der nicht verschoben werden soll
xscale - Skalierung der X-Achse
yscale - Skalierung der Y-Achse

rotate

public void rotate(java.awt.Point center,
                   double angle)
Dreht das Objekt um den Punkt center mit dem Winkel angle.
Specified by:
rotate in interface AffineTransformable
Parameters:
center - Drehpunkt
angle - Drehwinkel

rotate

public void rotate(java.awt.Point center,
                   java.awt.Point start,
                   java.awt.Point end)
Dreht das Objekt um den Punkt center mit dem Winkel start-center-end.
Specified by:
rotate in interface AffineTransformable
Parameters:
center - Drehpunkt
start - Startpunkt
end - Endpunkt

translate

public void translate(int dx,
                      int dy)
Verschiebt das Objekt um den Vektor (dx,dy).
Specified by:
translate in interface AffineTransformable
Parameters:
(dx,dy) - Verschiebungsvektor

isSelectable

public boolean isSelectable()
Falls isSelectable true zurückgibt, kann das Objekt selektiert werden.
Specified by:
isSelectable in interface Selectable
Returns:
true, falls Objekt gerade selektierbar ist

getObjectEditorMode

public byte getObjectEditorMode()
Liefert den Objekteditormodus. Der Rückgabewert sollte eine der drei Konstanten aus Selectable sein.
Specified by:
getObjectEditorMode in interface Selectable

getSelectionBorder

public java.awt.Rectangle getSelectionBorder()
Liefert den Selektionsrahmen eines selektierbaren Objektes in aktuellen Bildschirmkoordinaten. Der Selektionsrahmen sollte bei endlichen Objekten dem kleinsten umschließenden Rechteck entsprechen.
Specified by:
getSelectionBorder in interface Selectable
Returns:
Selektionsrahmen

getRealBounds

public java.awt.Rectangle getRealBounds()
Liefert den Bereich, den alle Objekte belegen.
Specified by:
getRealBounds in interface Selectable
Returns:
belegter Bereich