KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jgoodies > looks > windows > WindowsToggleButtonUI


1 /*
2  * Copyright (c) 2001-2005 JGoodies Karsten Lentzsch. All Rights Reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are met:
6  *
7  * o Redistributions of source code must retain the above copyright notice,
8  * this list of conditions and the following disclaimer.
9  *
10  * o Redistributions in binary form must reproduce the above copyright notice,
11  * this list of conditions and the following disclaimer in the documentation
12  * and/or other materials provided with the distribution.
13  *
14  * o Neither the name of JGoodies Karsten Lentzsch nor the names of
15  * its contributors may be used to endorse or promote products derived
16  * from this software without specific prior written permission.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
20  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
22  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
25  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
27  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
28  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */

30
31 package com.jgoodies.looks.windows;
32
33 import java.beans.PropertyChangeListener JavaDoc;
34
35 import javax.swing.AbstractButton JavaDoc;
36 import javax.swing.JComponent JavaDoc;
37 import javax.swing.plaf.ComponentUI JavaDoc;
38
39 import com.jgoodies.looks.LookUtils;
40 import com.jgoodies.looks.Options;
41 import com.jgoodies.looks.common.ButtonMarginListener;
42
43 /**
44  * Allows to use an optional narrow button margin.
45  *
46  * @author Karsten Lentzsch
47  * @version $Revision: 1.3 $
48  *
49  * @see com.jgoodies.looks.Options#IS_NARROW_KEY
50  */

51 public final class WindowsToggleButtonUI extends com.sun.java.swing.plaf.windows.WindowsToggleButtonUI {
52     
53     
54     private static final WindowsToggleButtonUI INSTANCE = new WindowsToggleButtonUI();
55     
56     private PropertyChangeListener JavaDoc buttonMarginListener;
57     
58     public static ComponentUI JavaDoc createUI(JComponent JavaDoc b) {
59         return INSTANCE;
60     }
61     
62     
63     /**
64      * Installs defaults and honors the client property <code>isNarrow</code>.
65      */

66     protected void installDefaults(AbstractButton JavaDoc b) {
67         super.installDefaults(b);
68         LookUtils.installNarrowMargin(b, getPropertyPrefix());
69     }
70     
71     
72     /**
73      * Installs an extra listener for a change of the isNarrow property.
74      */

75     public void installListeners(AbstractButton JavaDoc b) {
76         super.installListeners(b);
77         if (buttonMarginListener == null) {
78             buttonMarginListener = new ButtonMarginListener(getPropertyPrefix());
79         }
80         b.addPropertyChangeListener(Options.IS_NARROW_KEY, buttonMarginListener);
81     }
82
83
84     /**
85      * Uninstalls the extra listener for a change of the isNarrow property.
86      */

87     public void uninstallListeners(AbstractButton JavaDoc b) {
88         super.uninstallListeners(b);
89         b.removePropertyChangeListener(buttonMarginListener);
90     }
91     
92     
93 }
Popular Tags