/* * Created on Aug 20, 2005 */ package org.seqcode.viz.utils; import java.util.LinkedList; /** * @author tdanford */ public interface ListPanelEventSource { public void addListPanelListener(ListPanelListener lpl); public void removeListPanelListener(ListPanelListener lpl); public static class Default implements ListPanelEventSource { private Object source; private LinkedList<ListPanelListener> listeners; public Default() { source = this; listeners = new LinkedList<ListPanelListener>(); } public Default(Object src) { source = src; listeners = new LinkedList<ListPanelListener>(); } public void firePanelEvent(int type, Object data) { ListPanelEvent evt = new ListPanelEvent(source, type, data); for(ListPanelListener lpl : listeners) { lpl.panelEvent(evt); } } public void addListPanelListener(ListPanelListener lpl) { listeners.addLast(lpl); } public void removeListPanelListener(ListPanelListener lpl) { listeners.remove(lpl); } } }