public class DatasetEventManager extends java.lang.Object implements MainLayerManager.ActiveLayerChangeListener, 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 |
activeOrEditLayerChanged(MainLayerManager.ActiveLayerChangeEvent e)
Called whenever the active or edit layer changed.
|
void |
addDatasetListener(DataSetListener listener,
DatasetEventManager.FireMode fireMode)
Register listener, that will receive events from currently active dataset
|
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 activeOrEditLayerChanged(MainLayerManager.ActiveLayerChangeEvent e)
MainLayerManager.ActiveLayerChangeListener
You can be sure that this layer is still contained in this set.
Listeners are called in the EDT thread and you can manipulate the layer manager in the current thread.
activeOrEditLayerChanged
in interface MainLayerManager.ActiveLayerChangeListener
e
- The change event.private 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