public interface DisplayObjectPainter
Das Interface, das von der Klasse eines Plugins implementiert werden muss, die für das Zeichnen verantwortlich ist.
Modifier and Type | Method and Description |
---|---|
java.awt.Rectangle |
getBoundingRectangle(DisplayObject displayObject,
int type)
Diese Methode gibt das umgebende Rechteck des DisplayObjects für den angebenen Typen zurück.
|
java.util.List<java.lang.Object> |
getCoordinates(java.util.List<java.lang.Object> coordinates,
int type)
Diese Methode berechnet aus den übergebenen Koordinaten die Koordinaten zu dem übergebenen Typ.
|
void |
paintDisplayObject(MapPane mapPane,
java.awt.Graphics2D g2D,
DisplayObject displayObject,
boolean selected)
Implementationen dieser Methode werden aufgerufen, wenn das DisplayObject gezeichnet werden soll.
|
void paintDisplayObject(MapPane mapPane, java.awt.Graphics2D g2D, DisplayObject displayObject, boolean selected)
Implementationen dieser Methode werden aufgerufen, wenn das DisplayObject gezeichnet werden soll. Innerhalb seiner Implemantation sollte für displayObject
die Methode DisplayObject.getCoordinates(int type)
aufgerufen werden. Diese bewerkstelligt einen lazy Cache; sind die Daten nicht vorhanden, so wird die Erzeugung an die Methode getCoordinates(java.util.List<java.lang.Object>, int)
delegiert, wo auch die Auswertung des Integer-Wertes stattfindet.
mapPane
- die Kartenansichtg2D
- ein Graphics2D-Objekt zum ZeichnendisplayObject
- das DisplayObjectselected
- true genau dann, wenn das DisplayObject selektiert ist
java.util.List<java.lang.Object> getCoordinates(java.util.List<java.lang.Object> coordinates, int type)
Diese Methode berechnet aus den übergebenen Koordinaten die Koordinaten zu dem übergebenen Typ. Dieser Typ erlaubt es dem Programmierer unterschiedliche Koordinaten für das Objekt zu bekommen. Diese Methode wird nur in DisplayObject.getCoordinates( int type) aufgerufen, und die Ergebnisse werden dort gecached. Damit ergeben sich folgende Randbedingungen für den Plugin-Programmierer: einerseits muss er keinen eigenen Cache implementieren und andererseits kann er selber entscheiden, wofür die unterschiedlichen Integer-Werte stehen. Eine denkbare Anwendung wären unterschiedlich genaue Koordinaten für verschiedene Zoom-Stufen zwecks Optimierung der Zeichengeschwindigkeit.
In der 4 Standard-Plugins wird nur bei Linien von verschiedenen Typen Gebrauch gemacht: der Typ stellt hier die Verschiebung der Koordinaten dar. Alle anderen Implementation rufen die Methode nur mit dem Wert 0 auf.
coordinates
- die Originalkoordinatentype
- der gewünschte Koordinatentypjava.awt.Rectangle getBoundingRectangle(DisplayObject displayObject, int type)
Diese Methode gibt das umgebende Rechteck des DisplayObjects für den angebenen Typen zurück. Über die Bedeutung des Integer-Wertes type
wird in getCoordinates(java.util.List<java.lang.Object>, int)
informiert. Diese Methode wird nur aus DisplayObject.getBoundingRectangle( int type) heraus aufgerufen, wo bereits ein lazy Cache für die Rückgabewerte installiert ist.
displayObject
- das DisplayObject