home *** CD-ROM | disk | FTP | other *** search
/ PCGUIA 2010 Software/Programs / PCGuia_programas.iso / Software / Utils / Livebrush / Install-LivebrushLite.air / livebrush.swf / scripts / fl / controls / RadioButtonGroup.as < prev    next >
Encoding:
Text File  |  2009-10-26  |  4.1 KB  |  164 lines

  1. package fl.controls
  2. {
  3.    import flash.events.Event;
  4.    import flash.events.EventDispatcher;
  5.    
  6.    public class RadioButtonGroup extends EventDispatcher
  7.    {
  8.       private static var groups:Object;
  9.       
  10.       private static var groupCount:uint = 0;
  11.       
  12.       protected var radioButtons:Array;
  13.       
  14.       protected var _name:String;
  15.       
  16.       protected var _selection:RadioButton;
  17.       
  18.       public function RadioButtonGroup(param1:String)
  19.       {
  20.          super();
  21.          _name = param1;
  22.          radioButtons = [];
  23.          registerGroup(this);
  24.       }
  25.       
  26.       public static function getGroup(param1:String) : RadioButtonGroup
  27.       {
  28.          if(groups == null)
  29.          {
  30.             groups = {};
  31.          }
  32.          var _loc2_:RadioButtonGroup = groups[param1] as RadioButtonGroup;
  33.          if(_loc2_ == null)
  34.          {
  35.             _loc2_ = new RadioButtonGroup(param1);
  36.             if(++groupCount % 20 == 0)
  37.             {
  38.                cleanUpGroups();
  39.             }
  40.          }
  41.          return _loc2_;
  42.       }
  43.       
  44.       private static function registerGroup(param1:RadioButtonGroup) : void
  45.       {
  46.          if(groups == null)
  47.          {
  48.             groups = {};
  49.          }
  50.          groups[param1.name] = param1;
  51.       }
  52.       
  53.       private static function cleanUpGroups() : void
  54.       {
  55.          var _loc1_:String = null;
  56.          var _loc2_:RadioButtonGroup = null;
  57.          for(_loc1_ in groups)
  58.          {
  59.             _loc2_ = groups[_loc1_] as RadioButtonGroup;
  60.             if(_loc2_.radioButtons.length == 0)
  61.             {
  62.                delete groups[_loc1_];
  63.             }
  64.          }
  65.       }
  66.       
  67.       public function getRadioButtonIndex(param1:RadioButton) : int
  68.       {
  69.          var _loc3_:RadioButton = null;
  70.          var _loc2_:int = 0;
  71.          while(_loc2_ < radioButtons.length)
  72.          {
  73.             _loc3_ = radioButtons[_loc2_] as RadioButton;
  74.             if(_loc3_ == param1)
  75.             {
  76.                return _loc2_;
  77.             }
  78.             _loc2_++;
  79.          }
  80.          return -1;
  81.       }
  82.       
  83.       public function addRadioButton(param1:RadioButton) : void
  84.       {
  85.          if(param1.groupName != name)
  86.          {
  87.             param1.groupName = name;
  88.             return;
  89.          }
  90.          radioButtons.push(param1);
  91.          if(param1.selected)
  92.          {
  93.             selection = param1;
  94.          }
  95.       }
  96.       
  97.       public function get selectedData() : Object
  98.       {
  99.          var _loc1_:RadioButton = _selection;
  100.          return _loc1_ == null ? null : _loc1_.value;
  101.       }
  102.       
  103.       public function removeRadioButton(param1:RadioButton) : void
  104.       {
  105.          var _loc2_:int = getRadioButtonIndex(param1);
  106.          if(_loc2_ != -1)
  107.          {
  108.             radioButtons.splice(_loc2_,1);
  109.          }
  110.          if(_selection == param1)
  111.          {
  112.             _selection = null;
  113.          }
  114.       }
  115.       
  116.       public function get name() : String
  117.       {
  118.          return _name;
  119.       }
  120.       
  121.       public function get selection() : RadioButton
  122.       {
  123.          return _selection;
  124.       }
  125.       
  126.       public function get numRadioButtons() : int
  127.       {
  128.          return radioButtons.length;
  129.       }
  130.       
  131.       public function set selectedData(param1:Object) : void
  132.       {
  133.          var _loc3_:RadioButton = null;
  134.          var _loc2_:int = 0;
  135.          while(_loc2_ < radioButtons.length)
  136.          {
  137.             _loc3_ = radioButtons[_loc2_] as RadioButton;
  138.             if(_loc3_.value == param1)
  139.             {
  140.                selection = _loc3_;
  141.                return;
  142.             }
  143.             _loc2_++;
  144.          }
  145.       }
  146.       
  147.       public function set selection(param1:RadioButton) : void
  148.       {
  149.          if(_selection == param1 || param1 == null || getRadioButtonIndex(param1) == -1)
  150.          {
  151.             return;
  152.          }
  153.          _selection = param1;
  154.          dispatchEvent(new Event(Event.CHANGE,true));
  155.       }
  156.       
  157.       public function getRadioButtonAt(param1:int) : RadioButton
  158.       {
  159.          return RadioButton(radioButtons[param1]);
  160.       }
  161.    }
  162. }
  163.  
  164.