Interface DisplayObjectPainter

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      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ü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.
        Parameters:
        mapPane - die Kartenansicht
        g2D - ein Graphics2D-Objekt zum Zeichnen
        displayObject - das DisplayObject
        selected - 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 Originalkoordinaten
        type - 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-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.
        Parameters:
        displayObject - das DisplayObject
        type - der gewünschte Koordinatentyp
        Returns:
        das umgebende Rechteck