/* ActionFocusSupport.java created 2007-11-17 * */ package org.signalml.app.action.selector; import javax.swing.event.EventListenerList; /** ActionFocusSupport * * * @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o. */ public class ActionFocusSupport { private Object source; private EventListenerList listenerList = new EventListenerList(); public ActionFocusSupport(Object source) { if (source == null) { throw new NullPointerException("No source"); } this.source = source; } public void addActionFocusListener(ActionFocusListener listener) { listenerList.add(ActionFocusListener.class, listener); } public void removeActionFocusListener(ActionFocusListener listener) { listenerList.remove(ActionFocusListener.class, listener); } public void fireActionFocusChanged() { Object[] listeners = listenerList.getListenerList(); ActionFocusEvent e = null; for (int i = listeners.length-2; i>=0; i-=2) { if (listeners[i]==ActionFocusListener.class) { if (e == null) { e = new ActionFocusEvent(source); } ((ActionFocusListener)listeners[i+1]).actionFocusChanged(e); } } } }