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