Visual Color Imbalance Detector: Reconstructed project directories and files
[VistaCID.git] / org / tjworld / components / BasicIconButtonListener.java
1 /*\r
2         * BasicIconButtonListener.java\r
3  *\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
6         * \r
7         * $History: BasicIconButtonListener.java $\r
8  * \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
13  * \r
14  * *****************  Version 3  *****************\r
15  * User: Tj           Date: 31/10/01   Time: 5:06\r
16  * Updated in $/VisTA/CID/Components\r
17  * Updated header\r
18  */\r
19 package org.tjworld.components;\r
20 \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
26 \r
27 /**\r
28         * Extends BasicButtonListener to enable repainting when any of the Button's user or (JIconToggleButton) State\r
29         * Icons is changed.\r
30  *\r
31         * @see BasicButtonListener\r
32         * @see JIconToggleButton\r
33         * @author  TJ\r
34  * @version 1.4.1\r
35         * @since 1.4\r
36  */\r
37 public class BasicIconButtonListener extends BasicButtonListener {\r
38 \r
39         /** Creates new BasicIconButtonListener */\r
40  public BasicIconButtonListener(AbstractButton b) {\r
41                 super(b);\r
42  }\r
43  \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
47                 */\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
52 \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
57                 \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
65                 }\r
66                 else // might be other properties changed ...\r
67                         super.propertyChange(e); // ...so pass it on\r
68         }\r
69 }\r