org.openstreetmap.josm.data.osm.event
Class DatasetEventManager
java.lang.Object
org.openstreetmap.josm.data.osm.event.DatasetEventManager
- All Implemented Interfaces:
- DataSetListenerAdapter.Listener, MapView.EditLayerChangeListener
public class DatasetEventManager
- extends java.lang.Object
- implements MapView.EditLayerChangeListener, DataSetListenerAdapter.Listener
This class allows to add DatasetListener to currently active dataset. If active
layer is changed, listeners are automatically registered at new active dataset
(it's no longer necessary to register for layer events and reregister every time
new layer is selected)
Events in EDT are supported, see #addDatasetListener(DataSetListener, FireMode
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
instance
private static final DatasetEventManager instance
eventsInEDT
private final java.util.Queue<AbstractDatasetChangedEvent> eventsInEDT
inEDTListeners
private final java.util.concurrent.CopyOnWriteArrayList<DatasetEventManager.ListenerInfo> inEDTListeners
normalListeners
private final java.util.concurrent.CopyOnWriteArrayList<DatasetEventManager.ListenerInfo> normalListeners
myListener
private final DataSetListener myListener
edtRunnable
private final java.lang.Runnable edtRunnable
DatasetEventManager
public DatasetEventManager()
getInstance
public static DatasetEventManager getInstance()
addDatasetListener
public void addDatasetListener(DataSetListener listener,
DatasetEventManager.FireMode fireMode)
- Register listener, that will receive events from currently active dataset
- Parameters:
listener
- fireInEDT
- If true, listener will be notified in event dispatch thread
instead of thread that caused the dataset change
removeDatasetListener
public void removeDatasetListener(DataSetListener listener)
editLayerChanged
public void editLayerChanged(OsmDataLayer oldLayer,
OsmDataLayer newLayer)
- Specified by:
editLayerChanged
in interface MapView.EditLayerChangeListener
fireEvents
private void fireEvents(java.util.List<DatasetEventManager.ListenerInfo> listeners,
AbstractDatasetChangedEvent event)
fireConsolidatedEvents
private void fireConsolidatedEvents(java.util.List<DatasetEventManager.ListenerInfo> listeners,
AbstractDatasetChangedEvent event)
processDatasetEvent
public void processDatasetEvent(AbstractDatasetChangedEvent event)
- Specified by:
processDatasetEvent
in interface DataSetListenerAdapter.Listener
JOSM