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 void |
fireConsolidatedEvents(java.util.List<DatasetEventManager.ListenerInfo> listeners,
AbstractDatasetChangedEvent event) |
private 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.EditLayerChangeListenereditLayerChanged in interface MapView.EditLayerChangeListeneroldLayer - The old edit layernewLayer - The current (new) edit layerprivate void fireEvents(java.util.List<DatasetEventManager.ListenerInfo> listeners, AbstractDatasetChangedEvent event)
private void fireConsolidatedEvents(java.util.List<DatasetEventManager.ListenerInfo> listeners, AbstractDatasetChangedEvent event)
public void processDatasetEvent(AbstractDatasetChangedEvent event)
processDatasetEvent in interface DataSetListenerAdapter.Listener