PDAP Public Review Draft

java.awt
Class AWTEventMulticaster

java.lang.Object
  |
  +--java.awt.AWTEventMulticaster
All Implemented Interfaces:
ActionListener, AdjustmentListener, ComponentListener, ContainerListener, EventListener, FocusListener, ItemListener, KeyListener, MouseListener, MouseMotionListener, TextListener, WindowListener

public class AWTEventMulticaster
extends java.lang.Object
implements ComponentListener, ContainerListener, FocusListener, KeyListener, MouseListener, MouseMotionListener, WindowListener, ActionListener, ItemListener, AdjustmentListener, TextListener

A class which implements efficient and thread-safe multi-cast event dispatching for the AWT events defined in the java.awt.event package. This class will manage an immutable structure consisting of a chain of event listeners and will dispatch events to those listeners. Because the structure is immutable, it is safe to use this API to add/remove listeners during the process of an event dispatch operation. An example of how this class could be used to implement a new component which fires "action" events:


 public myComponent extends Component {
     ActionListener actionListener = null;

     public synchronized void addActionListener(ActionListener l) {
	   actionListener = AWTEventMulticaster.add(actionListener, l);
     }
     public synchronized void removeActionListener(ActionListener l) {
  	   actionListener = AWTEventMulticaster.remove(actionListener, l);
     }
     public void processEvent(AWTEvent e) {
         // when event occurs which causes "action" semantic
         if (actionListener != null) {
             actionListener.actionPerformed(new ActionEvent());
         }         
 }
 

Since:
1.1

Field Summary
protected  EventListener a
           
protected  EventListener b
           
 
Constructor Summary
protected AWTEventMulticaster(EventListener a, EventListener b)
          Creates an event multicaster instance which chains listener-a with listener-b.
 
Method Summary
 void actionPerformed(ActionEvent e)
          Handles the actionPerformed event by invoking the actionPerformed methods on listener-a and listener-b.
static ActionListener add(ActionListener a, ActionListener b)
          Adds action-listener-a with action-listener-b and returns the resulting multicast listener.
static AdjustmentListener add(AdjustmentListener a, AdjustmentListener b)
          Adds adjustment-listener-a with adjustment-listener-b and returns the resulting multicast listener.
static ComponentListener add(ComponentListener a, ComponentListener b)
          Adds component-listener-a with component-listener-b and returns the resulting multicast listener.
static ContainerListener add(ContainerListener a, ContainerListener b)
          Adds container-listener-a with container-listener-b and returns the resulting multicast listener.
static FocusListener add(FocusListener a, FocusListener b)
          Adds focus-listener-a with focus-listener-b and returns the resulting multicast listener.
static ItemListener add(ItemListener a, ItemListener b)
          Adds item-listener-a with item-listener-b and returns the resulting multicast listener.
static KeyListener add(KeyListener a, KeyListener b)
          Adds key-listener-a with key-listener-b and returns the resulting multicast listener.
static MouseListener add(MouseListener a, MouseListener b)
          Adds mouse-listener-a with mouse-listener-b and returns the resulting multicast listener.
static MouseMotionListener add(MouseMotionListener a, MouseMotionListener b)
          Adds mouse-motion-listener-a with mouse-motion-listener-b and returns the resulting multicast listener.
static TextListener add(TextListener a, TextListener b)
           
static WindowListener add(WindowListener a, WindowListener b)
          Adds window-listener-a with window-listener-b and returns the resulting multicast listener.
protected static EventListener addInternal(EventListener a, EventListener b)
          Returns the resulting multicast listener from adding listener-a and listener-b together.
 void adjustmentValueChanged(AdjustmentEvent e)
          Handles the adjustmentValueChanged event by invoking the adjustmentValueChanged methods on listener-a and listener-b.
 void componentAdded(ContainerEvent e)
          Handles the componentAdded container event by invoking the componentAdded methods on listener-a and listener-b.
 void componentHidden(ComponentEvent e)
          Handles the componentHidden event by invoking the componentHidden methods on listener-a and listener-b.
 void componentMoved(ComponentEvent e)
          Handles the componentMoved event by invoking the componentMoved methods on listener-a and listener-b.
 void componentRemoved(ContainerEvent e)
          Handles the componentRemoved container event by invoking the componentRemoved methods on listener-a and listener-b.
 void componentResized(ComponentEvent e)
          Handles the componentResized event by invoking the componentResized methods on listener-a and listener-b.
 void componentShown(ComponentEvent e)
          Handles the componentShown event by invoking the componentShown methods on listener-a and listener-b.
 void focusGained(FocusEvent e)
          Handles the focusGained event by invoking the focusGained methods on listener-a and listener-b.
 void focusLost(FocusEvent e)
          Handles the focusLost event by invoking the focusLost methods on listener-a and listener-b.
 void itemStateChanged(ItemEvent e)
          Handles the itemStateChanged event by invoking the itemStateChanged methods on listener-a and listener-b.
 void keyPressed(KeyEvent e)
          Handles the keyPressed event by invoking the keyPressed methods on listener-a and listener-b.
 void keyReleased(KeyEvent e)
          Handles the keyReleased event by invoking the keyReleased methods on listener-a and listener-b.
 void keyTyped(KeyEvent e)
          Handles the keyTyped event by invoking the keyTyped methods on listener-a and listener-b.
 void mouseClicked(MouseEvent e)
          Handles the mouseClicked event by invoking the mouseClicked methods on listener-a and listener-b.
 void mouseDragged(MouseEvent e)
          Handles the mouseDragged event by invoking the mouseDragged methods on listener-a and listener-b.
 void mouseEntered(MouseEvent e)
          Handles the mouseEntered event by invoking the mouseEntered methods on listener-a and listener-b.
 void mouseExited(MouseEvent e)
          Handles the mouseExited event by invoking the mouseExited methods on listener-a and listener-b.
 void mouseMoved(MouseEvent e)
          Handles the mouseMoved event by invoking the mouseMoved methods on listener-a and listener-b.
 void mousePressed(MouseEvent e)
          Handles the mousePressed event by invoking the mousePressed methods on listener-a and listener-b.
 void mouseReleased(MouseEvent e)
          Handles the mouseReleased event by invoking the mouseReleased methods on listener-a and listener-b.
static ActionListener remove(ActionListener l, ActionListener oldl)
          Removes the old action-listener from action-listener-l and returns the resulting multicast listener.
static AdjustmentListener remove(AdjustmentListener l, AdjustmentListener oldl)
          Removes the old adjustment-listener from adjustment-listener-l and returns the resulting multicast listener.
static ComponentListener remove(ComponentListener l, ComponentListener oldl)
          Removes the old component-listener from component-listener-l and returns the resulting multicast listener.
static ContainerListener remove(ContainerListener l, ContainerListener oldl)
          Removes the old container-listener from container-listener-l and returns the resulting multicast listener.
protected  EventListener remove(EventListener oldl)
          Removes a listener from this multicaster and returns the resulting multicast listener.
static FocusListener remove(FocusListener l, FocusListener oldl)
          Removes the old focus-listener from focus-listener-l and returns the resulting multicast listener.
static ItemListener remove(ItemListener l, ItemListener oldl)
          Removes the old item-listener from item-listener-l and returns the resulting multicast listener.
static KeyListener remove(KeyListener l, KeyListener oldl)
          Removes the old key-listener from key-listener-l and returns the resulting multicast listener.
static MouseListener remove(MouseListener l, MouseListener oldl)
          Removes the old mouse-listener from mouse-listener-l and returns the resulting multicast listener.
static MouseMotionListener remove(MouseMotionListener l, MouseMotionListener oldl)
          Removes the old mouse-motion-listener from mouse-motion-listener-l and returns the resulting multicast listener.
static TextListener remove(TextListener l, TextListener oldl)
           
static WindowListener remove(WindowListener l, WindowListener oldl)
          Removes the old window-listener from window-listener-l and returns the resulting multicast listener.
protected static EventListener removeInternal(EventListener l, EventListener oldl)
          Returns the resulting multicast listener after removing the old listener from listener-l.
 void textValueChanged(TextEvent e)
          Invoked when the value of the text has changed.
 void windowActivated(WindowEvent e)
          Handles the windowActivated event by invoking the windowActivated methods on listener-a and listener-b.
 void windowClosed(WindowEvent e)
          Handles the windowClosed event by invoking the windowClosed methods on listener-a and listener-b.
 void windowClosing(WindowEvent e)
          Handles the windowClosing event by invoking the windowClosing methods on listener-a and listener-b.
 void windowDeactivated(WindowEvent e)
          Handles the windowDeactivated event by invoking the windowDeactivated methods on listener-a and listener-b.
 void windowDeiconified(WindowEvent e)
          Handles the windowDeiconfied event by invoking the windowDeiconified methods on listener-a and listener-b.
 void windowIconified(WindowEvent e)
          Handles the windowIconified event by invoking the windowIconified methods on listener-a and listener-b.
 void windowOpened(WindowEvent e)
          Handles the windowOpened event by invoking the windowOpened methods on listener-a and listener-b.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

a

protected final EventListener a

b

protected final EventListener b
Constructor Detail

AWTEventMulticaster

protected AWTEventMulticaster(EventListener a,
                              EventListener b)
Creates an event multicaster instance which chains listener-a with listener-b. Input parameters a and b should not be null, though implementations may vary in choosing whether or not to throw NullPointerException in that case.
Parameters:
a - listener-a
b - listener-b
Method Detail

remove

protected EventListener remove(EventListener oldl)
Removes a listener from this multicaster and returns the resulting multicast listener.
Parameters:
oldl - the listener to be removed

componentResized

public void componentResized(ComponentEvent e)
Handles the componentResized event by invoking the componentResized methods on listener-a and listener-b.
Specified by:
componentResized in interface ComponentListener
Parameters:
e - the component event

componentMoved

public void componentMoved(ComponentEvent e)
Handles the componentMoved event by invoking the componentMoved methods on listener-a and listener-b.
Specified by:
componentMoved in interface ComponentListener
Parameters:
e - the component event

componentShown

public void componentShown(ComponentEvent e)
Handles the componentShown event by invoking the componentShown methods on listener-a and listener-b.
Specified by:
componentShown in interface ComponentListener
Parameters:
e - the component event

componentHidden

public void componentHidden(ComponentEvent e)
Handles the componentHidden event by invoking the componentHidden methods on listener-a and listener-b.
Specified by:
componentHidden in interface ComponentListener
Parameters:
e - the component event

componentAdded

public void componentAdded(ContainerEvent e)
Handles the componentAdded container event by invoking the componentAdded methods on listener-a and listener-b.
Specified by:
componentAdded in interface ContainerListener
Parameters:
e - the component event

componentRemoved

public void componentRemoved(ContainerEvent e)
Handles the componentRemoved container event by invoking the componentRemoved methods on listener-a and listener-b.
Specified by:
componentRemoved in interface ContainerListener
Parameters:
e - the component event

focusGained

public void focusGained(FocusEvent e)
Handles the focusGained event by invoking the focusGained methods on listener-a and listener-b.
Specified by:
focusGained in interface FocusListener
Parameters:
e - the focus event

focusLost

public void focusLost(FocusEvent e)
Handles the focusLost event by invoking the focusLost methods on listener-a and listener-b.
Specified by:
focusLost in interface FocusListener
Parameters:
e - the focus event

keyTyped

public void keyTyped(KeyEvent e)
Handles the keyTyped event by invoking the keyTyped methods on listener-a and listener-b.
Specified by:
keyTyped in interface KeyListener
Parameters:
e - the key event

keyPressed

public void keyPressed(KeyEvent e)
Handles the keyPressed event by invoking the keyPressed methods on listener-a and listener-b.
Specified by:
keyPressed in interface KeyListener
Parameters:
e - the key event

keyReleased

public void keyReleased(KeyEvent e)
Handles the keyReleased event by invoking the keyReleased methods on listener-a and listener-b.
Specified by:
keyReleased in interface KeyListener
Parameters:
e - the key event

mouseClicked

public void mouseClicked(MouseEvent e)
Handles the mouseClicked event by invoking the mouseClicked methods on listener-a and listener-b.
Specified by:
mouseClicked in interface MouseListener
Parameters:
e - the mouse event

mousePressed

public void mousePressed(MouseEvent e)
Handles the mousePressed event by invoking the mousePressed methods on listener-a and listener-b.
Specified by:
mousePressed in interface MouseListener
Parameters:
e - the mouse event

mouseReleased

public void mouseReleased(MouseEvent e)
Handles the mouseReleased event by invoking the mouseReleased methods on listener-a and listener-b.
Specified by:
mouseReleased in interface MouseListener
Parameters:
e - the mouse event

mouseEntered

public void mouseEntered(MouseEvent e)
Handles the mouseEntered event by invoking the mouseEntered methods on listener-a and listener-b.
Specified by:
mouseEntered in interface MouseListener
Parameters:
e - the mouse event

mouseExited

public void mouseExited(MouseEvent e)
Handles the mouseExited event by invoking the mouseExited methods on listener-a and listener-b.
Specified by:
mouseExited in interface MouseListener
Parameters:
e - the mouse event

mouseDragged

public void mouseDragged(MouseEvent e)
Handles the mouseDragged event by invoking the mouseDragged methods on listener-a and listener-b.
Specified by:
mouseDragged in interface MouseMotionListener
Parameters:
e - the mouse event

mouseMoved

public void mouseMoved(MouseEvent e)
Handles the mouseMoved event by invoking the mouseMoved methods on listener-a and listener-b.
Specified by:
mouseMoved in interface MouseMotionListener
Parameters:
e - the mouse event

windowOpened

public void windowOpened(WindowEvent e)
Handles the windowOpened event by invoking the windowOpened methods on listener-a and listener-b.
Specified by:
windowOpened in interface WindowListener
Parameters:
e - the window event

windowClosing

public void windowClosing(WindowEvent e)
Handles the windowClosing event by invoking the windowClosing methods on listener-a and listener-b.
Specified by:
windowClosing in interface WindowListener
Parameters:
e - the window event

windowClosed

public void windowClosed(WindowEvent e)
Handles the windowClosed event by invoking the windowClosed methods on listener-a and listener-b.
Specified by:
windowClosed in interface WindowListener
Parameters:
e - the window event

windowIconified

public void windowIconified(WindowEvent e)
Handles the windowIconified event by invoking the windowIconified methods on listener-a and listener-b.
Specified by:
windowIconified in interface WindowListener
Parameters:
e - the window event

windowDeiconified

public void windowDeiconified(WindowEvent e)
Handles the windowDeiconfied event by invoking the windowDeiconified methods on listener-a and listener-b.
Specified by:
windowDeiconified in interface WindowListener
Parameters:
e - the window event

windowActivated

public void windowActivated(WindowEvent e)
Handles the windowActivated event by invoking the windowActivated methods on listener-a and listener-b.
Specified by:
windowActivated in interface WindowListener
Parameters:
e - the window event

windowDeactivated

public void windowDeactivated(WindowEvent e)
Handles the windowDeactivated event by invoking the windowDeactivated methods on listener-a and listener-b.
Specified by:
windowDeactivated in interface WindowListener
Parameters:
e - the window event

actionPerformed

public void actionPerformed(ActionEvent e)
Handles the actionPerformed event by invoking the actionPerformed methods on listener-a and listener-b.
Specified by:
actionPerformed in interface ActionListener
Parameters:
e - the action event

itemStateChanged

public void itemStateChanged(ItemEvent e)
Handles the itemStateChanged event by invoking the itemStateChanged methods on listener-a and listener-b.
Specified by:
itemStateChanged in interface ItemListener
Parameters:
e - the item event

adjustmentValueChanged

public void adjustmentValueChanged(AdjustmentEvent e)
Handles the adjustmentValueChanged event by invoking the adjustmentValueChanged methods on listener-a and listener-b.
Specified by:
adjustmentValueChanged in interface AdjustmentListener
Parameters:
e - the adjustment event

textValueChanged

public void textValueChanged(TextEvent e)
Description copied from interface: TextListener
Invoked when the value of the text has changed. The code written for this method performs the operations that need to occur when text changes.
Specified by:
textValueChanged in interface TextListener

add

public static ComponentListener add(ComponentListener a,
                                    ComponentListener b)
Adds component-listener-a with component-listener-b and returns the resulting multicast listener.
Parameters:
a - component-listener-a
b - component-listener-b

add

public static ContainerListener add(ContainerListener a,
                                    ContainerListener b)
Adds container-listener-a with container-listener-b and returns the resulting multicast listener.
Parameters:
a - container-listener-a
b - container-listener-b

add

public static FocusListener add(FocusListener a,
                                FocusListener b)
Adds focus-listener-a with focus-listener-b and returns the resulting multicast listener.
Parameters:
a - focus-listener-a
b - focus-listener-b

add

public static KeyListener add(KeyListener a,
                              KeyListener b)
Adds key-listener-a with key-listener-b and returns the resulting multicast listener.
Parameters:
a - key-listener-a
b - key-listener-b

add

public static MouseListener add(MouseListener a,
                                MouseListener b)
Adds mouse-listener-a with mouse-listener-b and returns the resulting multicast listener.
Parameters:
a - mouse-listener-a
b - mouse-listener-b

add

public static MouseMotionListener add(MouseMotionListener a,
                                      MouseMotionListener b)
Adds mouse-motion-listener-a with mouse-motion-listener-b and returns the resulting multicast listener.
Parameters:
a - mouse-motion-listener-a
b - mouse-motion-listener-b

add

public static WindowListener add(WindowListener a,
                                 WindowListener b)
Adds window-listener-a with window-listener-b and returns the resulting multicast listener.
Parameters:
a - window-listener-a
b - window-listener-b

add

public static ActionListener add(ActionListener a,
                                 ActionListener b)
Adds action-listener-a with action-listener-b and returns the resulting multicast listener.
Parameters:
a - action-listener-a
b - action-listener-b

add

public static ItemListener add(ItemListener a,
                               ItemListener b)
Adds item-listener-a with item-listener-b and returns the resulting multicast listener.
Parameters:
a - item-listener-a
b - item-listener-b

add

public static AdjustmentListener add(AdjustmentListener a,
                                     AdjustmentListener b)
Adds adjustment-listener-a with adjustment-listener-b and returns the resulting multicast listener.
Parameters:
a - adjustment-listener-a
b - adjustment-listener-b

add

public static TextListener add(TextListener a,
                               TextListener b)

remove

public static ComponentListener remove(ComponentListener l,
                                       ComponentListener oldl)
Removes the old component-listener from component-listener-l and returns the resulting multicast listener.
Parameters:
l - component-listener-l
oldl - the component-listener being removed

remove

public static ContainerListener remove(ContainerListener l,
                                       ContainerListener oldl)
Removes the old container-listener from container-listener-l and returns the resulting multicast listener.
Parameters:
l - container-listener-l
oldl - the container-listener being removed

remove

public static FocusListener remove(FocusListener l,
                                   FocusListener oldl)
Removes the old focus-listener from focus-listener-l and returns the resulting multicast listener.
Parameters:
l - focus-listener-l
oldl - the focus-listener being removed

remove

public static KeyListener remove(KeyListener l,
                                 KeyListener oldl)
Removes the old key-listener from key-listener-l and returns the resulting multicast listener.
Parameters:
l - key-listener-l
oldl - the key-listener being removed

remove

public static MouseListener remove(MouseListener l,
                                   MouseListener oldl)
Removes the old mouse-listener from mouse-listener-l and returns the resulting multicast listener.
Parameters:
l - mouse-listener-l
oldl - the mouse-listener being removed

remove

public static MouseMotionListener remove(MouseMotionListener l,
                                         MouseMotionListener oldl)
Removes the old mouse-motion-listener from mouse-motion-listener-l and returns the resulting multicast listener.
Parameters:
l - mouse-motion-listener-l
oldl - the mouse-motion-listener being removed

remove

public static WindowListener remove(WindowListener l,
                                    WindowListener oldl)
Removes the old window-listener from window-listener-l and returns the resulting multicast listener.
Parameters:
l - window-listener-l
oldl - the window-listener being removed

remove

public static ActionListener remove(ActionListener l,
                                    ActionListener oldl)
Removes the old action-listener from action-listener-l and returns the resulting multicast listener.
Parameters:
l - action-listener-l
oldl - the action-listener being removed

remove

public static ItemListener remove(ItemListener l,
                                  ItemListener oldl)
Removes the old item-listener from item-listener-l and returns the resulting multicast listener.
Parameters:
l - item-listener-l
oldl - the item-listener being removed

remove

public static AdjustmentListener remove(AdjustmentListener l,
                                        AdjustmentListener oldl)
Removes the old adjustment-listener from adjustment-listener-l and returns the resulting multicast listener.
Parameters:
l - adjustment-listener-l
oldl - the adjustment-listener being removed

remove

public static TextListener remove(TextListener l,
                                  TextListener oldl)

addInternal

protected static EventListener addInternal(EventListener a,
                                           EventListener b)
Returns the resulting multicast listener from adding listener-a and listener-b together. If listener-a is null, it returns listener-b; If listener-b is null, it returns listener-a If neither are null, then it creates and returns a new AWTEventMulticaster instance which chains a with b.
Parameters:
a - event listener-a
b - event listener-b

removeInternal

protected static EventListener removeInternal(EventListener l,
                                              EventListener oldl)
Returns the resulting multicast listener after removing the old listener from listener-l. If listener-l equals the old listener OR listener-l is null, returns null. Else if listener-l is an instance of AWTEventMulticaster, then it removes the old listener from it. Else, returns listener l.
Parameters:
l - the listener being removed from
oldl - the listener being removed

PDAP 1.0 Spec, Rev. 0.16