/* * Ext GWT - Ext for GWT * Copyright(c) 2007-2009, Ext JS, LLC. * licensing@extjs.com * * http://extjs.com/license */ package com.extjs.gxt.ui.client.event; import java.util.List; /** * Abstract base class for objects that register listeners and fire events. * * <pre> Observable observable = new BaseObservable(); observable.addListener(Events.Select, new Listener<BaseEvent>() { public void handleEvent(BaseEvent be) { } }); observable.fireEvent(Events.Select, new BaseEvent()); * </pre> * * @see Listener * @see BaseEvent */ public interface Observable { /** * Adds a listener bound by the given event type. * * @param eventType the eventType * @param listener the listener to be added */ public void addListener(EventType eventType, Listener<? extends BaseEvent> listener); /** * Fires an event. * * @param eventType eventType the event type * @param be the base event * @return <code>true</code> if any listeners cancel the event. */ public boolean fireEvent(EventType eventType, BaseEvent be); /** * Returns a list of listeners registered for the given event type. The * returned list may be modified. * * @param eventType the event type * @return the list of listeners */ public List<Listener<? extends BaseEvent>> getListeners(EventType eventType); /** * Returns true if the observable has any listeners. * * @return true for any listeners */ public boolean hasListeners(); /** * Returns true if the observable has listeners for the given event type. * * @param eventType the event type * @return true for 1 or more listeners with the given event type */ public boolean hasListeners(EventType eventType); /** * Removes all listeners. */ public void removeAllListeners(); /** * Removes a listener. * * @param eventType the event type * @param listener the listener to be removed */ public void removeListener(EventType eventType, Listener<? extends BaseEvent> listener); }