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
Event firing mode regarding Event Dispatch Thread.
|
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)
Called when notified about any type of dataset change event.
|
void |
removeDatasetListener(DataSetListener listener)
Unregister 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)
listener
- listener to removepublic 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)
DataSetListenerAdapter.Listener
processDatasetEvent
in interface DataSetListenerAdapter.Listener
event
- dataset change event