Class LayerManager

  • All Implemented Interfaces:
    java.io.Serializable, javax.swing.table.TableModel

    public final class LayerManager
    extends javax.swing.table.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:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static interface  LayerManager.LayerManagerChangeListener
      Ein Interface für Listener, die über das Hinzufügen, Löschen und Ändern von Layern informiert werden wollen.
    • Field Summary

      • Fields inherited from class javax.swing.table.AbstractTableModel

        listenerList
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addChangeListener​(LayerManager.LayerManagerChangeListener listener)
      Fügt das übergebene Objekt der Liste der auf Layeränderungen angemeldeten Objekte hinzu.
      void addLayer​(Layer layer)
      Fügt den Layer der Layerliste an, wenn nicht schon ein gleichnamiger Layer existiert.
      void changeLayer​(Layer layer)
      Ändert den gleichnamigen Layer.
      void clearLayers()
      Löscht alle benutzerdefinierten Layer.
      boolean displayObjectTypeIsUsed​(java.lang.String displayObjectTypeName)
      Gibt true zurück, falls der durch den Namen angegebene Darstellungstyp von einem der Layer verwendet wrd.
      int getColumnCount()  
      java.lang.String getColumnName​(int columnIndex)  
      int getIndexOfFirstLayer​(char c)
      Gibt den Index des ersten Layers, dessen Name mit dem übergebenen Zeichen anfängt, zurück.
      static LayerManager getInstance()
      Die für ein Singleton übliche Methode, um an die einzige Instanz der Klasse zu gelangen.
      Layer getLayer​(int i)
      Gibt den Layer an der i-ten Stelle der Layerliste zurück, wobei die Zählung mit 0 beginnt.
      Layer getLayer​(java.lang.String layerName)
      Gibt den Layer mit dem übergebenen Namen zurück.
      java.util.List<Layer> getLayers()
      Gibt eine sortierte Kopie der Liste aller Layer zurück.
      java.util.List<java.lang.String> getLayersUsingTheDisplayObjectType​(java.lang.String displayObjectTypeName)
      Gibt die Namen all der Layer zurück, die den durch den Namen angegebene Darstellungstyp verwenden.
      int getRowCount()  
      java.lang.String getTooltipAt​(int rowIndex)
      Definiert den Tooltipp für die Felder der Tabelle.
      java.lang.Object getValueAt​(int rowIndex, int columnIndex)  
      boolean hasLayerToLowerCase​(java.lang.String layerName)
      Gibt true zurück, wenn es einen Layer gibt, dessen Name sich allenfalls bezüglich Klein-Groß-Schreibung unterseheidet.
      boolean isChangeable​(Layer layer)
      Gibt true zurück, wenn der Layer veränderbar ist.
      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.
      void removeChangeListener​(LayerManager.LayerManagerChangeListener listener)
      Entfernt das übergebene Objekt aus der Liste der auf Layeränderungen angemeldeten Objekte.
      boolean removeLayer​(Layer layer)
      Entfernt den übergebenen Layer auf Basis eines Namensvergleichs aus der Liste aller Layer und damit auch aus den Präferenzen.
      java.lang.String toString()  
      • Methods inherited from class javax.swing.table.AbstractTableModel

        addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getColumnClass, getListeners, getTableModelListeners, isCellEditable, removeTableModelListener, setValueAt
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Method Detail

      • 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 java.util.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​(java.lang.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​(java.lang.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 java.lang.Object getValueAt​(int rowIndex,
                                           int columnIndex)
      • getTooltipAt

        @Nullable
        public java.lang.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 java.lang.String getColumnName​(int columnIndex)
        Specified by:
        getColumnName in interface javax.swing.table.TableModel
        Overrides:
        getColumnName in class javax.swing.table.AbstractTableModel
      • addLayer

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

        public void changeLayer​(Layer layer)
                         throws java.lang.IllegalArgumentException
        Ändert den gleichnamigen Layer.
        Parameters:
        layer - ein Layer
        Throws:
        java.lang.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 java.lang.String toString()
        Overrides:
        toString in class java.lang.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​(java.lang.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 java.util.List<java.lang.String> getLayersUsingTheDisplayObjectType​(java.lang.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