Class DOTStatPainter

java.lang.Object
de.kappich.pat.gnd.statPlugin.DOTStatPainter
All Implemented Interfaces:
DisplayObjectPainter

public class DOTStatPainter extends Object implements DisplayObjectPainter
Der DOTStatPainter ist die Implemenation des DisplayObjectPainter im Stationierungs-Plugin.
  • Constructor Details

    • DOTStatPainter

      public DOTStatPainter()
  • Method Details

    • paintDisplayObject

      public void paintDisplayObject(MapPane mapPane, Graphics2D g2D, DisplayObject displayObject, boolean selected)
      Description copied from interface: DisplayObjectPainter
      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 DisplayObjectPainter.getCoordinates(java.util.List<java.lang.Object>, int) delegiert, wo auch die Auswertung des Integer-Wertes stattfindet.
      Specified by:
      paintDisplayObject in interface DisplayObjectPainter
      Parameters:
      mapPane - die Kartenansicht
      g2D - ein Graphics2D-Objekt zum Zeichnen
      displayObject - das DisplayObject
      selected - true genau dann, wenn das DisplayObject selektiert ist
    • getCoordinates

      @Nullable public List<Object> getCoordinates(List<Object> coordinates, int type)
      Description copied from interface: DisplayObjectPainter
      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.

      Specified by:
      getCoordinates in interface DisplayObjectPainter
      Parameters:
      coordinates - die Originalkoordinaten
      type - der gewünschte Koordinatentyp
      Returns:
      die gewünschten Koordinaten
    • getBoundingRectangle

      @Nullable public Rectangle getBoundingRectangle(DisplayObject displayObject, int type)
      Description copied from interface: DisplayObjectPainter
      Diese Methode gibt das umgebende Rechteck des DisplayObjects für den angebenen Typen zurück. Über die Bedeutung des Integer-Wertes type wird in DisplayObjectPainter.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.
      Specified by:
      getBoundingRectangle in interface DisplayObjectPainter
      Parameters:
      displayObject - das DisplayObject
      type - der gewünschte Koordinatentyp
      Returns:
      das umgebende Rechteck