blob: d5649b19e5786b1a0d735be5a58a6cfcd4140e5f [file] [log] [blame]
package org.eclipse.nebula.widgets.nattable.core.layer.impl
import java.util.LinkedHashSet
import java.util.Set
import org.eclipse.nebula.widgets.nattable.core.layer.Layer
import org.eclipse.nebula.widgets.nattable.core.layer.LayerEvent
import org.eclipse.nebula.widgets.nattable.core.layer.LayerListener
abstract class AbstractLayer implements Layer {
val Set<LayerListener> listeners = new LinkedHashSet
// Layer interface
override addLayerListener(LayerListener listener) { listeners.add(listener) }
override removeLayerListener(LayerListener listener) { listeners.remove(listener) }
// LayerListener interface
override handleLayerEvent(LayerEvent event) {
fireLayerEvent(event);
}
//
/**
* Pass the event to all the {@link LayerListener}s registered on this layer.
*/
def fireLayerEvent(LayerEvent event) {
for (listener : listeners)
listener.handleLayerEvent(event)
}
}