Interface DisplayObjectPainter
-
- All Known Implementing Classes:
DOTAreaPainter
,DOTAsbNodePainter
,DOTComplexPainter
,DOTKmPainter
,DOTLinePainter
,DOTNeedlePainter
,DOTPointPainter
,DOTRnPainter
,DOTStatPainter
public interface DisplayObjectPainter
Das Interface, das von der Klasse eines Plugins implementiert werden muss, die für das Zeichnen verantwortlich ist.
-
-
Method Summary
Modifier and Type Method 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.
-
-
-
Method Detail
-
paintDisplayObject
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ürdisplayObject
die MethodeDisplayObject.getCoordinates(int type)
aufgerufen werden. Diese bewerkstelligt einen lazy Cache; sind die Daten nicht vorhanden, so wird die Erzeugung an die MethodegetCoordinates(java.util.List<java.lang.Object>, int)
delegiert, wo auch die Auswertung des Integer-Wertes stattfindet.- Parameters:
mapPane
- die Kartenansichtg2D
- ein Graphics2D-Objekt zum ZeichnendisplayObject
- das DisplayObjectselected
-true
genau dann, wenn das DisplayObject selektiert ist
-
getCoordinates
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.
- Parameters:
coordinates
- die Originalkoordinatentype
- der gewünschte Koordinatentyp- Returns:
- die gewünschten Koordinaten
-
getBoundingRectangle
java.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-Wertestype
wird ingetCoordinates(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.- Parameters:
displayObject
- das DisplayObjecttype
- der gewünschte Koordinatentyp- Returns:
- das umgebende Rechteck
-
-