1  /*
     2   Copyright aswing.org, see the LICENCE.txt.
     3  */
     4   
     5  import org.aswing.*;
     6   
     7  /**
     8   * The ToggleButton model
     9   * @author iiley
    10   */
    11  class org.aswing.ToggleButtonModel extends DefaultButtonModel{
    12  
    13      /**
    14       * Creates a new ToggleButton Model
    15       */
    16      public function ToggleButtonModel() {
    17      	super();
    18      }
    19  
    20      /**
    21       * Sets the selected state of the button.
    22       * @param b true selects the toggle button,
    23       *          false deselects the toggle button.
    24       */
    25      public function setSelected(b:Boolean):Void {
    26          var group:ButtonGroup = getGroup();
    27          if (group != null) {
    28              // use the group model instead
    29              group.setSelected(this, b);
    30              b = group.isSelected(this);
    31          }
    32  
    33          super.setSelected(b);
    34      }
    35      
    36      /**
    37       * Sets the button to released or unreleased.
    38       */
    39  	public function setReleased(b:Boolean):Void{
    40          if((released == b) || !isEnabled()) {
    41              return;
    42          }
    43          
    44          if (b && isRollOver()) {
    45              setSelected(!isSelected());
    46          }
    47          
    48          released = b;
    49          if(released){
    50          	pressed = false;
    51          }
    52              
    53          fireStateChanged();
    54  	}
    55  }
    56