public class DatasetEventManager extends Object implements MapView.EditLayerChangeListener, DataSetListenerAdapter.Listener
addDatasetListener(DataSetListener, FireMode)
Modifier and Type | Class and Description |
---|---|
static class |
DatasetEventManager.FireMode |
private static class |
DatasetEventManager.ListenerInfo |
Modifier and Type | Field and Description |
---|---|
private Runnable |
edtRunnable |
private Queue<AbstractDatasetChangedEvent> |
eventsInEDT |
private CopyOnWriteArrayList<DatasetEventManager.ListenerInfo> |
inEDTListeners |
private static DatasetEventManager |
instance |
private DataSetListener |
myListener |
private 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) |
private void |
fireConsolidatedEvents(List<DatasetEventManager.ListenerInfo> listeners,
AbstractDatasetChangedEvent event) |
private void |
fireEvents(List<DatasetEventManager.ListenerInfo> listeners,
AbstractDatasetChangedEvent event) |
static DatasetEventManager |
getInstance() |
void |
processDatasetEvent(AbstractDatasetChangedEvent event) |
void |
removeDatasetListener(DataSetListener listener) |
private static final DatasetEventManager instance
private final Queue<AbstractDatasetChangedEvent> eventsInEDT
private final CopyOnWriteArrayList<DatasetEventManager.ListenerInfo> inEDTListeners
private final CopyOnWriteArrayList<DatasetEventManager.ListenerInfo> normalListeners
private final DataSetListener myListener
private final 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)
editLayerChanged
in interface MapView.EditLayerChangeListener
private void fireEvents(List<DatasetEventManager.ListenerInfo> listeners, AbstractDatasetChangedEvent event)
private void fireConsolidatedEvents(List<DatasetEventManager.ListenerInfo> listeners, AbstractDatasetChangedEvent event)
public void processDatasetEvent(AbstractDatasetChangedEvent event)
processDatasetEvent
in interface DataSetListenerAdapter.Listener