public class LayerManager extends AbstractTableModel implements TableModel
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 | Field and Description |
---|---|
private static Debug |
_debug |
private static LayerManager |
_instance |
private Map<String,Layer> |
_layerHashMap |
private List<Layer> |
_layers |
private List<LayerManager.LayerManagerChangeListener> |
_listeners |
private Set<String> |
_notChangables |
private static String[] |
columnNames |
listenerList
Modifier | Constructor and Description |
---|---|
private |
LayerManager() |
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(String displayObjectTypeName)
Gibt
true zurück, falls der durch den Namen angegebene Darstellungstyp von einem
der Layer verwendet wrd. |
int |
getColumnCount() |
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(String layerName)
Gibt den Layer mit dem übergebenen Namen zurück.
|
List<Layer> |
getLayers()
Gibt die Liste aller Layer zurück.
|
List<String> |
getLayersUsingTheDisplayObjectType(String displayObjectTypeName)
Gibt die Namen all der Layer zurück, die den durch den Namen angegebene Darstellungstyp
verwenden.
|
static Preferences |
getPreferenceStartPath()
Gibt das Preferences-Objekt für den Ausgangspunkt zur Ablage der Präferenzen des
Layermanagers zurück.
|
int |
getRowCount() |
String |
getTooltipAt(int rowIndex,
int columnIndex)
Definiert den Tooltipp für die Felder der Tabelle.
|
Object |
getValueAt(int rowIndex,
int columnIndex) |
private void |
initDefaultLayers() |
private void |
initDefaultLayersLines() |
private void |
initDefaultLayersPoints() |
private void |
initUserDefinedLayers() |
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(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.
|
private int |
remove(String layerName) |
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.
|
String |
toString() |
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getColumnClass, getListeners, getTableModelListeners, isCellEditable, removeTableModelListener, setValueAt
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addTableModelListener, getColumnClass, isCellEditable, removeTableModelListener, setValueAt
private static final LayerManager _instance
private static final Debug _debug
private static final String[] columnNames
private final List<LayerManager.LayerManagerChangeListener> _listeners
public static LayerManager getInstance()
public static void refreshInstance()
public List<Layer> getLayers()
public Layer getLayer(String layerName)
public Layer getLayer(int i)
public int getColumnCount()
getColumnCount
in interface TableModel
public int getRowCount()
getRowCount
in interface TableModel
public Object getValueAt(int rowIndex, int columnIndex)
getValueAt
in interface TableModel
public String getTooltipAt(int rowIndex, int columnIndex)
rowIndex
- ein ZeilenindexcolumnIndex
- ein Spaltenindexpublic String getColumnName(int columnIndex)
getColumnName
in interface TableModel
getColumnName
in class AbstractTableModel
public void addLayer(Layer layer) throws IllegalArgumentException
layer
- ein LayerIllegalArgumentException
- wenn bereits ein gleichnamiger Layer existiertpublic void changeLayer(Layer layer) throws IllegalArgumentException
layer
- ein LayerIllegalArgumentException
- wenn der Layer nicht bekannt istpublic boolean removeLayer(Layer layer)
true
, sonst false.layer
- ein Layertrue
genau dann, wenn der Layer gelöscht wurdepublic void clearLayers()
private void initDefaultLayers()
private void initDefaultLayersLines()
private void initDefaultLayersPoints()
public static Preferences getPreferenceStartPath()
private void initUserDefinedLayers()
private int remove(String layerName)
public boolean isChangeable(Layer layer)
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)
listener
- ein Listenerpublic void removeChangeListener(LayerManager.LayerManagerChangeListener listener)
listener
- ein Listenerpublic void notifyChangeListenersLayerAdded(Layer layer)
layer
- ein Layerpublic void notifyChangeListenersLayerChanged(Layer layer)
layer
- ein Layerpublic void notifyChangeListenersLayerRemoved(String layerName)
layer
- ein Layerpublic boolean displayObjectTypeIsUsed(String displayObjectTypeName)
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 List<String> getLayersUsingTheDisplayObjectType(String displayObjectTypeName)
displayObjectTypeName
- der Name eines Darstellungstyps