Class LayerManager

java.lang.Object
javax.swing.table.AbstractTableModel
de.kappich.pat.gnd.layerManagement.LayerManager
All Implemented Interfaces:
Serializable, TableModel

public final class LayerManager extends AbstractTableModel
Eine Singleton-Klasse zur Verwaltung aller Layer, die das Interface TableModel implementiert, damit sie in einem JTable angezeigt werden kann.

Dass diese Klasse (wie z.B. auch der DOTManager als Singleton implementiert ist, ist hinsichtlich denkbarer Erweiterungen sicherlich keine optimale Lösung, aber erspart gegenwärtig die Implementation der Kommunikation zwischen verschiedenen Instanzen dieser Klasse.

See Also:
  • Method Details

    • getInstance

      public static LayerManager getInstance()
      Die für ein Singleton übliche Methode, um an die einzige Instanz der Klasse zu gelangen.
      Returns:
      den LayerManager
    • refreshInstance

      public static void refreshInstance()
      Mit Hilfe dieser Methode kann man den LayerManager dazu zwingen, sich erneut zu konstruieren, was etwa nach dem Importieren von Präferenzen sinnvoll ist.
    • getLayers

      public List<Layer> getLayers()
      Gibt eine sortierte Kopie der Liste aller Layer zurück.
      Returns:
      die Liste aller Layer
    • getIndexOfFirstLayer

      public int getIndexOfFirstLayer(char c)
      Gibt den Index des ersten Layers, dessen Name mit dem übergebenen Zeichen anfängt, zurück. Gibt es einen solchen Layer nicht, so wird -1 zurückgegeben.
      Parameters:
      c - ein Buchstabe
      Returns:
      ein gültiger Index oder -1
    • getLayer

      public Layer getLayer(String layerName)
      Gibt den Layer mit dem übergebenen Namen zurück.
      Parameters:
      layerName - der Name
      Returns:
      den geforderten Layer
    • getLayer

      public Layer getLayer(int i)
      Gibt den Layer an der i-ten Stelle der Layerliste zurück, wobei die Zählung mit 0 beginnt.
      Parameters:
      i - ein Index
      Returns:
      den geforderten Layer
    • hasLayerToLowerCase

      public boolean hasLayerToLowerCase(String layerName)
      Gibt true zurück, wenn es einen Layer gibt, dessen Name sich allenfalls bezüglich Klein-Groß-Schreibung unterseheidet. Sonst false.
      Parameters:
      layerName -
      Returns:
      s.o.
    • getColumnCount

      public int getColumnCount()
    • getRowCount

      public int getRowCount()
    • getValueAt

      public Object getValueAt(int rowIndex, int columnIndex)
    • getTooltipAt

      @Nullable public String getTooltipAt(int rowIndex)
      Definiert den Tooltipp für die Felder der Tabelle. Gehört zur Implementation des TableModel.
      Parameters:
      rowIndex - ein Zeilenindex
      Returns:
      ein Tooltipp
    • getColumnName

      public String getColumnName(int columnIndex)
      Specified by:
      getColumnName in interface TableModel
      Overrides:
      getColumnName in class AbstractTableModel
    • addLayer

      public void addLayer(Layer layer) throws IllegalArgumentException
      Fügt den Layer der Layerliste an, wenn nicht schon ein gleichnamiger Layer existiert.
      Parameters:
      layer - ein Layer
      Throws:
      IllegalArgumentException - wenn bereits ein gleichnamiger Layer existiert
    • changeLayer

      public void changeLayer(Layer layer) throws IllegalArgumentException
      Ändert den gleichnamigen Layer.
      Parameters:
      layer - ein Layer
      Throws:
      IllegalArgumentException - wenn der Layer nicht bekannt ist
    • removeLayer

      public boolean removeLayer(Layer layer)
      Entfernt den übergebenen Layer auf Basis eines Namensvergleichs aus der Liste aller Layer und damit auch aus den Präferenzen. Entspricht einer kompletten Löschung des Layers. Wirkt aber nicht für im Kode definierte Layer. Wird ein Layer gelöscht, so erhält man den Rückgabewert true, sonst false.
      Parameters:
      layer - ein Layer
      Returns:
      true genau dann, wenn der Layer gelöscht wurde
    • clearLayers

      public void clearLayers()
      Löscht alle benutzerdefinierten Layer.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • isChangeable

      public boolean isChangeable(Layer layer)
      Gibt true zurück, wenn der Layer veränderbar ist. Im Moment ist ein Layer genau dann unveränderbar, wenn er im Kode definiert ist.
      Parameters:
      layer - ein Layer
      Returns:
      true genau dann, wenn der Layer veränderbar ist
    • addChangeListener

      public void addChangeListener(LayerManager.LayerManagerChangeListener listener)
      Fügt das übergebene Objekt der Liste der auf Layeränderungen angemeldeten Objekte hinzu.
      Parameters:
      listener - ein Listener
    • removeChangeListener

      public void removeChangeListener(LayerManager.LayerManagerChangeListener listener)
      Entfernt das übergebene Objekt aus der Liste der auf Layeränderungen angemeldeten Objekte.
      Parameters:
      listener - ein Listener
    • displayObjectTypeIsUsed

      public boolean displayObjectTypeIsUsed(String displayObjectTypeName)
      Gibt true zurück, falls der durch den Namen angegebene Darstellungstyp von einem der Layer verwendet wrd.
      Parameters:
      displayObjectTypeName - der Name eines Darstellungstyps
      Returns:
      true genau dann, wenn der Darstellungstyp benutzt wird
    • getLayersUsingTheDisplayObjectType

      public List<String> getLayersUsingTheDisplayObjectType(String displayObjectTypeName)
      Gibt die Namen all der Layer zurück, die den durch den Namen angegebene Darstellungstyp verwenden.
      Parameters:
      displayObjectTypeName - der Name eines Darstellungstyps
      Returns:
      eine Liste von Darstellungstypen