2 * BasicIconButtonListener.java
\r
4 * Created on 31 October 2001, 00:24
\r
5 * $Header: /VisTA/CID/Components/BasicIconButtonListener.java 4 31/10/01 14:26 Tj $
\r
7 * $History: BasicIconButtonListener.java $
\r
9 * ***************** Version 4 *****************
\r
10 * User: Tj Date: 31/10/01 Time: 14:26
\r
11 * Updated in $/VisTA/CID/Components
\r
12 * Added GraphicsDebug support, Tested OK
\r
14 * ***************** Version 3 *****************
\r
15 * User: Tj Date: 31/10/01 Time: 5:06
\r
16 * Updated in $/VisTA/CID/Components
\r
19 package org.tjworld.components;
\r
21 import javax.swing.AbstractButton;
\r
22 import javax.swing.plaf.basic.BasicButtonListener;
\r
23 import javax.swing.DebugGraphics;
\r
24 import java.beans.PropertyChangeEvent;
\r
25 import org.tjworld.components.JIconToggleButton;
\r
28 * Extends BasicButtonListener to enable repainting when any of the Button's user or (JIconToggleButton) State
\r
31 * @see BasicButtonListener
\r
32 * @see JIconToggleButton
\r
37 public class BasicIconButtonListener extends BasicButtonListener {
\r
39 /** Creates new BasicIconButtonListener */
\r
40 public BasicIconButtonListener(AbstractButton b) {
\r
44 /** Overrides BasicButtonListener.propertyChange()
\r
45 * to intercept any icon ProprtyChange notifications, then passes the event
\r
46 * on to the super class
\r
48 public void propertyChange(PropertyChangeEvent e) {
\r
49 AbstractButton ab = (AbstractButton)e.getSource(); // cast the source object...
\r
50 JIconToggleButton ib = (JIconToggleButton) ab; // ...for accessing members
\r
51 String prop = e.getPropertyName();
\r
53 // graphics debugging info, not strictly applicable but an elegant-ish way to monitor
\r
54 // progress under control of a component property editor
\r
55 if((ab.getDebugGraphicsOptions() & DebugGraphics.LOG_OPTION) == DebugGraphics.LOG_OPTION)
\r
56 System.out.println("BasicIconButtonListener.propertyChange(...) property: " + prop);
\r
58 if(prop.equals(AbstractButton.ICON_CHANGED_PROPERTY)
\r
59 || prop.equals(AbstractButton.DISABLED_ICON_CHANGED_PROPERTY)
\r
60 || prop.equals(JIconToggleButton.SELECTED_STATEICON_CHANGED_PROPERTY)
\r
61 || prop.equals(JIconToggleButton.UNSELECTED_STATEICON_CHANGED_PROPERTY)
\r
62 || prop.equals(JIconToggleButton.DISABLED_SELECTED_STATEICON_CHANGED_PROPERTY)
\r
63 || prop.equals(JIconToggleButton.DISABLED_UNSELECTED_STATEICON_CHANGED_PROPERTY)) {
\r
64 ab.repaint(); // icon changed so update the display
\r
66 else // might be other properties changed ...
\r
67 super.propertyChange(e); // ...so pass it on
\r