Class LayerManager
- java.lang.Object
-
- javax.swing.table.AbstractTableModel
-
- de.kappich.pat.gnd.layerManagement.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.
-
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)
Gibttrue
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)
Gibttrue
zurück, wenn es einen Layer gibt, dessen Name sich allenfalls bezüglich Klein-Groß-Schreibung unterseheidet.boolean
isChangeable(Layer layer)
Gibttrue
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
-
-
-
-
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)
Gibttrue
zurück, wenn es einen Layer gibt, dessen Name sich allenfalls bezüglich Klein-Groß-Schreibung unterseheidet. Sonstfalse
.- 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 interfacejavax.swing.table.TableModel
- Overrides:
getColumnName
in classjavax.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ückgabewerttrue
, 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 classjava.lang.Object
-
isChangeable
public boolean isChangeable(Layer layer)
Gibttrue
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)
Gibttrue
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
-
-