Source code: com/virtuosotechnologies/lib/basiccommand/builder/SelectOnlyToggleButtonModel.java
1 /*
2 ================================================================================
3
4 FILE: SelectOnlyToggleButtonModel.java
5
6 PROJECT:
7
8 Virtuoso Utilities
9
10 CONTENTS:
11
12 ToggleButtonModel hacked so it only selects (for radio buttons)
13
14 PROGRAMMERS:
15
16 Daniel Azuma (DA) <dazuma@kagi.com>
17
18 COPYRIGHT:
19
20 Copyright (C) 2003 Daniel Azuma (dazuma@kagi.com)
21
22 This program is free software; you can redistribute it and/or
23 modify it under the terms of the GNU General Public License as
24 published by the Free Software Foundation; either version 2
25 of the License, or (at your option) any later version.
26
27 This program is distributed in the hope that it will be useful,
28 but WITHOUT ANY WARRANTY; without even the implied warranty of
29 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30 GNU General Public License for more details.
31
32 You should have received a copy of the GNU General Public
33 License along with this program; if not, write to
34 Free Software Foundation, Inc.
35 59 Temple Place, Suite 330
36 Boston, MA 02111-1307 USA
37
38 ================================================================================
39 */
40
41
42 package com.virtuosotechnologies.lib.basiccommand.builder;
43
44
45 import javax.swing.JToggleButton;
46 import java.awt.event.ActionEvent;
47
48
49 /**
50 * ToggleButtonModel hacked so it only selects (for radio buttons)
51 */
52 public class SelectOnlyToggleButtonModel
53 extends JToggleButton.ToggleButtonModel
54 {
55 public void setPressed(
56 boolean b)
57 {
58 if ((isPressed() == b) || !isEnabled())
59 {
60 return;
61 }
62 // This is different from ToggleButtonModel's version
63 if (b == false && isArmed() && !this.isSelected())
64 {
65 setSelected(true);
66 }
67 if (b)
68 {
69 stateMask |= PRESSED;
70 }
71 else
72 {
73 stateMask &= ~PRESSED;
74 }
75 fireStateChanged();
76 if (!isPressed() && isArmed())
77 {
78 fireActionPerformed(
79 new ActionEvent(this, ActionEvent.ACTION_PERFORMED,
80 getActionCommand()));
81 }
82 }
83 }