| 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) |
| } |
| |
| } |