public class DatasetEventManager extends java.lang.Object implements MapView.EditLayerChangeListener, DataSetListenerAdapter.Listener
addDatasetListener(DataSetListener, FireMode)
Modifier and Type | Class and Description |
---|---|
private class |
DatasetEventManager.EdtRunnable |
static class |
DatasetEventManager.FireMode |
private static class |
DatasetEventManager.ListenerInfo |
Modifier and Type | Field and Description |
---|---|
private java.lang.Runnable |
edtRunnable |
private java.util.Queue<AbstractDatasetChangedEvent> |
eventsInEDT |
private java.util.concurrent.CopyOnWriteArrayList<DatasetEventManager.ListenerInfo> |
inEDTListeners |
private static DatasetEventManager |
instance |
private DataSetListener |
myListener |
private java.util.concurrent.CopyOnWriteArrayList<DatasetEventManager.ListenerInfo> |
normalListeners |
Constructor and Description |
---|
DatasetEventManager()
Constructs a new
DatasetEventManager . |
Modifier and Type | Method and Description |
---|---|
void |
addDatasetListener(DataSetListener listener,
DatasetEventManager.FireMode fireMode)
Register listener, that will receive events from currently active dataset
|
void |
editLayerChanged(OsmDataLayer oldLayer,
OsmDataLayer newLayer)
Called after the active edit layer was changed.
|
private static void |
fireConsolidatedEvents(java.util.List<DatasetEventManager.ListenerInfo> listeners,
AbstractDatasetChangedEvent event) |
private static void |
fireEvents(java.util.List<DatasetEventManager.ListenerInfo> listeners,
AbstractDatasetChangedEvent event) |
static DatasetEventManager |
getInstance()
Replies the unique instance.
|
void |
processDatasetEvent(AbstractDatasetChangedEvent event) |
void |
removeDatasetListener(DataSetListener listener) |
private static final DatasetEventManager instance
private final java.util.Queue<AbstractDatasetChangedEvent> eventsInEDT
private final java.util.concurrent.CopyOnWriteArrayList<DatasetEventManager.ListenerInfo> inEDTListeners
private final java.util.concurrent.CopyOnWriteArrayList<DatasetEventManager.ListenerInfo> normalListeners
private final DataSetListener myListener
private final java.lang.Runnable edtRunnable
public DatasetEventManager()
DatasetEventManager
.public static DatasetEventManager getInstance()
public void addDatasetListener(DataSetListener listener, DatasetEventManager.FireMode fireMode)
listener
- the listener to be registeredfireMode
- If DatasetEventManager.FireMode.IN_EDT
or DatasetEventManager.FireMode.IN_EDT_CONSOLIDATED
,
listener will be notified in event dispatch thread instead of thread that caused
the dataset changepublic void removeDatasetListener(DataSetListener listener)
public void editLayerChanged(OsmDataLayer oldLayer, OsmDataLayer newLayer)
MapView.EditLayerChangeListener
editLayerChanged
in interface MapView.EditLayerChangeListener
oldLayer
- The old edit layernewLayer
- The current (new) edit layerprivate static void fireEvents(java.util.List<DatasetEventManager.ListenerInfo> listeners, AbstractDatasetChangedEvent event)
private static void fireConsolidatedEvents(java.util.List<DatasetEventManager.ListenerInfo> listeners, AbstractDatasetChangedEvent event)
public void processDatasetEvent(AbstractDatasetChangedEvent event)
processDatasetEvent
in interface DataSetListenerAdapter.Listener