1
4
5 import org.aswing.*;
6
7
8
12 class org.aswing.DefaultButtonModel extends EventDispatcher implements ButtonModel{
13 private var stateMask:Number;
14 private var group:ButtonGroup;
15 private var enabled:Boolean;
16 private var rollOver:Boolean;
17 private var pressed:Boolean;
18 private var released:Boolean;
19 private var selected:Boolean;
20
21 public function DefaultButtonModel(){
22 super();
23 stateMask = 0;
24 enabled = true;
25 rollOver = false;
26 pressed = false;
27 released = false;
28 selected = false;
29 }
30
31
35 public function isPressed():Boolean{
36 return pressed;
37 }
38
39
42 public function isReleased():Boolean{
43 return released;
44 }
45
46
52 public function isSelected():Boolean {
53 return selected;
54 }
55
56
64 public function isEnabled():Boolean {
65 return enabled;
66 }
67
68
73 public function isRollOver():Boolean {
74 return rollOver;
75 }
76
77
80 public function setReleased(b:Boolean):Void{
81 if((released == b) || !isEnabled()) {
82 return;
83 }
84
85 released = b;
86 if(released){
87 pressed = false;
88 }
89
90 fireStateChanged();
91 }
92
93
94
100 public function setEnabled(b:Boolean):Void {
101 if(enabled == b) {
102 return;
103 }
104
105 enabled = b;
106 if (!b) {
107 pressed = false;
108 }
109
110
111 fireStateChanged();
112 }
113
114
120 public function setSelected(b:Boolean):Void {
121 if (selected == b) {
122 return;
123 }
124
125 selected = b;
126
127 fireStateChanged();
128 fireSelectionChanged();
129 }
130
131
132
138 public function setPressed(b:Boolean):Void {
139 if((pressed == b) || !isEnabled()) {
140 return;
141 }
142
143 pressed = b;
144 if(pressed){
145 released = false;
146 }
147
148 fireStateChanged();
149 }
150
151
157 public function setRollOver(b:Boolean):Void {
158 if((rollOver == b) || !isEnabled()) {
159 return;
160 }
161
162 rollOver = b;
163
164 fireStateChanged();
165 }
166
167
174 public function setGroup(group:ButtonGroup):Void {
175 this.group = group;
176 }
177
178
185 public function getGroup():ButtonGroup {
186 return group;
187 }
188
189 public function addChangeListener(func:Function, obj:Object):Object{
190 return addEventListener(AbstractButton.ON_STATE_CHANGED, func, obj);
191 }
192
193 public function addSelectionListener(func:Function, obj:Object):Object{
194 return addEventListener(AbstractButton.ON_SELECTION_CHANGED, func, obj);
195 }
196
197 private function fireStateChanged():Void{
198 dispatchEvent(AbstractButton.ON_STATE_CHANGED, createEventObj(AbstractButton.ON_STATE_CHANGED));
199 }
200 private function fireSelectionChanged() : Void {
201 dispatchEvent(AbstractButton.ON_SELECTION_CHANGED, createEventObj(AbstractButton.ON_SELECTION_CHANGED));
202 }
203
204 public function toString():String{
205 return "org.aswing.DefaultButtonModel[]";
206 }
207 }
208