import java.awt.*; import java.awt.event.*; public class ActionSource extends java.awt.Canvas implements ActionListener, ItemListener, KeyListener, MouseListener { protected ActionListener actionListenerChain = null; //------------------------------------------------------------------- // ActionSource Constructor //------------------------------------------------------------------- public ActionSource() { // empty } //------------------------------------------------------------------- // ActionListener management methods //------------------------------------------------------------------- public void addActionListener(ActionListener listener) { actionListenerChain = AWTEventMulticaster.add(actionListenerChain, listener); } public void removeActionListener(ActionListener listener) { actionListenerChain = AWTEventMulticaster.remove(actionListenerChain, listener); } //------------------------------------------------------------------- public void fireEvent() { ActionEvent action; action = new ActionEvent(this, 0, "Action from ActionSource"); actionListenerChain.actionPerformed(action); } //------------------------------------------------------------------- // ActionListener interface methods //------------------------------------------------------------------- public void actionPerformed(ActionEvent actionEvent) { fireEvent(); } //------------------------------------------------------------------- // ItemListener interface methods //------------------------------------------------------------------- public void itemStateChanged(ItemEvent itemEvent) { fireEvent(); } //------------------------------------------------------------------- // KeyListener interface methods //------------------------------------------------------------------- public void keyTyped (KeyEvent keyEvent) { fireEvent(); } public void keyPressed (KeyEvent keyEvent) { fireEvent(); } public void keyReleased (KeyEvent keyEvent) { fireEvent(); } //------------------------------------------------------------------- // MouseListener interface methods //------------------------------------------------------------------- public void mouseClicked (MouseEvent mouseEvent) { fireEvent(); } public void mousePressed (MouseEvent mouseEvent) { fireEvent(); } public void mouseReleased(MouseEvent mouseEvent) { fireEvent(); } public void mouseEntered (MouseEvent mouseEvent) { fireEvent(); } public void mouseExited (MouseEvent mouseEvent) { fireEvent(); } } // End of Class ActionSource