public class LayerManager
extends javax.swing.table.AbstractTableModel
implements javax.swing.table.TableModel
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.
Modifier and Type | Class and Description |
---|---|
static interface |
LayerManager.LayerManagerChangeListener
Ein Interface für Listener, die über das Hinzufügen, Löschen und Ändern von Layern informiert werden wollen.
|
Modifier and Type | Method and 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) |
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 die 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.
|
static java.util.prefs.Preferences |
getPreferenceStartPath()
Gibt das Preferences-Objekt für den Ausgangspunkt zur Ablage der Präferenzen des Layermanagers zurück.
|
int |
getRowCount() |
java.lang.String |
getTooltipAt(int rowIndex,
int columnIndex)
Definiert den Tooltipp für die Felder der Tabelle.
|
java.lang.Object |
getValueAt(int rowIndex,
int columnIndex) |
boolean |
isChangeable(Layer layer)
Gibt
true zurück, wenn der Layer veränderbar ist. |
void |
notifyChangeListenersLayerAdded(Layer layer)
Informiert die auf Layeränderungen angemeldeten Objekte über einen neu hinzugefügten Layer.
|
void |
notifyChangeListenersLayerChanged(Layer layer)
Informiert die auf Layeränderungen angemeldeten Objekte über einen geänderten Layer.
|
void |
notifyChangeListenersLayerRemoved(java.lang.String layerName)
Informiert die auf Layeränderungen angemeldeten Objekte über einen gelöschten Layer.
|
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() |
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getColumnClass, getListeners, getTableModelListeners, isCellEditable, removeTableModelListener, setValueAt
public static LayerManager getInstance()
Die für ein Singleton übliche Methode, um an die einzige Instanz der Klasse zu gelangen.
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.
public java.util.List<Layer> getLayers()
Gibt die Liste aller Layer zurück.
public Layer getLayer(java.lang.String layerName)
Gibt den Layer mit dem übergebenen Namen zurück.
public Layer getLayer(int i)
Gibt den Layer an der i-ten Stelle der Layerliste zurück, wobei die Zählung mit 0 beginnt.
public int getColumnCount()
getColumnCount
in interface javax.swing.table.TableModel
public int getRowCount()
getRowCount
in interface javax.swing.table.TableModel
public java.lang.Object getValueAt(int rowIndex, int columnIndex)
getValueAt
in interface javax.swing.table.TableModel
public java.lang.String getTooltipAt(int rowIndex, int columnIndex)
Definiert den Tooltipp für die Felder der Tabelle. Gehört zur Implementation des TableModel.
rowIndex
- ein ZeilenindexcolumnIndex
- ein Spaltenindexpublic java.lang.String getColumnName(int columnIndex)
getColumnName
in interface javax.swing.table.TableModel
getColumnName
in class javax.swing.table.AbstractTableModel
public void addLayer(Layer layer) throws java.lang.IllegalArgumentException
Fügt den Layer der Layerliste an, wenn nicht schon ein gleichnamiger Layer existiert.
layer
- ein Layerjava.lang.IllegalArgumentException
- wenn bereits ein gleichnamiger Layer existiertpublic void changeLayer(Layer layer) throws java.lang.IllegalArgumentException
Ändert den gleichnamigen Layer.
layer
- ein Layerjava.lang.IllegalArgumentException
- wenn der Layer nicht bekannt istpublic 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.
layer
- ein Layertrue
genau dann, wenn der Layer gelöscht wurdepublic void clearLayers()
Löscht alle benutzerdefinierten Layer.
public static java.util.prefs.Preferences getPreferenceStartPath()
Gibt das Preferences-Objekt für den Ausgangspunkt zur Ablage der Präferenzen des Layermanagers zurück.
public java.lang.String toString()
toString
in class java.lang.Object
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.
layer
- ein Layertrue
genau dann, wenn der Layer veränderbar istpublic void addChangeListener(LayerManager.LayerManagerChangeListener listener)
Fügt das übergebene Objekt der Liste der auf Layeränderungen angemeldeten Objekte hinzu.
listener
- ein Listenerpublic void removeChangeListener(LayerManager.LayerManagerChangeListener listener)
Entfernt das übergebene Objekt aus der Liste der auf Layeränderungen angemeldeten Objekte.
listener
- ein Listenerpublic void notifyChangeListenersLayerAdded(Layer layer)
Informiert die auf Layeränderungen angemeldeten Objekte über einen neu hinzugefügten Layer.
layer
- ein Layerpublic void notifyChangeListenersLayerChanged(Layer layer)
Informiert die auf Layeränderungen angemeldeten Objekte über einen geänderten Layer.
layer
- ein Layerpublic void notifyChangeListenersLayerRemoved(java.lang.String layerName)
Informiert die auf Layeränderungen angemeldeten Objekte über einen gelöschten Layer.
layer
- ein Layerpublic boolean displayObjectTypeIsUsed(java.lang.String displayObjectTypeName)
Gibt true
zurück, falls der durch den Namen angegebene Darstellungstyp von einem der Layer verwendet wrd.
displayObjectTypeName
- der Name eines Darstellungstypstrue
genau dann, wenn der Darstellungstyp benutzt wirdpublic 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.
displayObjectTypeName
- der Name eines Darstellungstyps