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 / RadioButton.as < prev    next >
Encoding:
Text File  |  2009-10-26  |  10.7 KB  |  360 lines

  1. package fl.controls
  2. {
  3.    import fl.managers.IFocusManager;
  4.    import fl.managers.IFocusManagerGroup;
  5.    import flash.display.DisplayObject;
  6.    import flash.display.Graphics;
  7.    import flash.display.Shape;
  8.    import flash.events.Event;
  9.    import flash.events.KeyboardEvent;
  10.    import flash.events.MouseEvent;
  11.    import flash.ui.Keyboard;
  12.    
  13.    [Embed(source="/_assets/assets.swf", symbol="symbol321")]
  14.    public class RadioButton extends LabelButton implements IFocusManagerGroup
  15.    {
  16.       public static var createAccessibilityImplementation:Function;
  17.       
  18.       private static var defaultStyles:Object = {
  19.          "icon":null,
  20.          "upIcon":"RadioButton_upIcon",
  21.          "downIcon":"RadioButton_downIcon",
  22.          "overIcon":"RadioButton_overIcon",
  23.          "disabledIcon":"RadioButton_disabledIcon",
  24.          "selectedDisabledIcon":"RadioButton_selectedDisabledIcon",
  25.          "selectedUpIcon":"RadioButton_selectedUpIcon",
  26.          "selectedDownIcon":"RadioButton_selectedDownIcon",
  27.          "selectedOverIcon":"RadioButton_selectedOverIcon",
  28.          "focusRectSkin":null,
  29.          "focusRectPadding":null,
  30.          "textFormat":null,
  31.          "disabledTextFormat":null,
  32.          "embedFonts":null,
  33.          "textPadding":5
  34.       };
  35.       
  36.       protected var _group:RadioButtonGroup;
  37.       
  38.       protected var defaultGroupName:String = "RadioButtonGroup";
  39.       
  40.       protected var _value:Object;
  41.       
  42.       public function RadioButton()
  43.       {
  44.          super();
  45.          mode = "border";
  46.          groupName = defaultGroupName;
  47.       }
  48.       
  49.       public static function getStyleDefinition() : Object
  50.       {
  51.          return defaultStyles;
  52.       }
  53.       
  54.       override protected function draw() : void
  55.       {
  56.          super.draw();
  57.       }
  58.       
  59.       override public function set selected(param1:Boolean) : void
  60.       {
  61.          if(param1 == false || selected)
  62.          {
  63.             return;
  64.          }
  65.          if(_group != null)
  66.          {
  67.             _group.selection = this;
  68.          }
  69.          else
  70.          {
  71.             super.selected = param1;
  72.          }
  73.       }
  74.       
  75.       override protected function drawLayout() : void
  76.       {
  77.          super.drawLayout();
  78.          var _loc1_:Number = Number(getStyleValue("textPadding"));
  79.          switch(_labelPlacement)
  80.          {
  81.             case ButtonLabelPlacement.RIGHT:
  82.                icon.x = _loc1_;
  83.                textField.x = icon.x + (icon.width + _loc1_);
  84.                background.width = textField.x + textField.width + _loc1_;
  85.                background.height = Math.max(textField.height,icon.height) + _loc1_ * 2;
  86.                break;
  87.             case ButtonLabelPlacement.LEFT:
  88.                icon.x = width - icon.width - _loc1_;
  89.                textField.x = width - icon.width - _loc1_ * 2 - textField.width;
  90.                background.width = textField.width + icon.width + _loc1_ * 3;
  91.                background.height = Math.max(textField.height,icon.height) + _loc1_ * 2;
  92.                break;
  93.             case ButtonLabelPlacement.TOP:
  94.             case ButtonLabelPlacement.BOTTOM:
  95.                background.width = Math.max(textField.width,icon.width) + _loc1_ * 2;
  96.                background.height = textField.height + icon.height + _loc1_ * 3;
  97.          }
  98.          background.x = Math.min(icon.x - _loc1_,textField.x - _loc1_);
  99.          background.y = Math.min(icon.y - _loc1_,textField.y - _loc1_);
  100.       }
  101.       
  102.       protected function handleClick(param1:MouseEvent) : void
  103.       {
  104.          if(_group == null)
  105.          {
  106.             return;
  107.          }
  108.          _group.dispatchEvent(new MouseEvent(MouseEvent.CLICK,true));
  109.       }
  110.       
  111.       protected function handleChange(param1:Event) : void
  112.       {
  113.          super.selected = _group.selection == this;
  114.          dispatchEvent(new Event(Event.CHANGE,true));
  115.       }
  116.       
  117.       public function set groupName(param1:String) : void
  118.       {
  119.          if(_group != null)
  120.          {
  121.             _group.removeRadioButton(this);
  122.             _group.removeEventListener(Event.CHANGE,handleChange);
  123.          }
  124.          _group = param1 == null ? null : RadioButtonGroup.getGroup(param1);
  125.          if(_group != null)
  126.          {
  127.             _group.addRadioButton(this);
  128.             _group.addEventListener(Event.CHANGE,handleChange,false,0,true);
  129.          }
  130.       }
  131.       
  132.       override protected function configUI() : void
  133.       {
  134.          super.configUI();
  135.          super.toggle = true;
  136.          var _loc1_:Shape = new Shape();
  137.          var _loc2_:Graphics = _loc1_.graphics;
  138.          _loc2_.beginFill(0,0);
  139.          _loc2_.drawRect(0,0,100,100);
  140.          _loc2_.endFill();
  141.          background = _loc1_ as DisplayObject;
  142.          addChildAt(background,0);
  143.          addEventListener(MouseEvent.CLICK,handleClick,false,0,true);
  144.       }
  145.       
  146.       override protected function keyUpHandler(param1:KeyboardEvent) : void
  147.       {
  148.          super.keyUpHandler(param1);
  149.          if(param1.keyCode == Keyboard.SPACE && !_toggle)
  150.          {
  151.             _toggle = true;
  152.          }
  153.       }
  154.       
  155.       override protected function drawBackground() : void
  156.       {
  157.       }
  158.       
  159.       override public function get selected() : Boolean
  160.       {
  161.          return super.selected;
  162.       }
  163.       
  164.       override protected function initializeAccessibility() : void
  165.       {
  166.          if(RadioButton.createAccessibilityImplementation != null)
  167.          {
  168.             RadioButton.createAccessibilityImplementation(this);
  169.          }
  170.       }
  171.       
  172.       private function setThis() : void
  173.       {
  174.          var _loc1_:RadioButtonGroup = _group;
  175.          if(_loc1_ != null)
  176.          {
  177.             if(_loc1_.selection != this)
  178.             {
  179.                _loc1_.selection = this;
  180.             }
  181.          }
  182.          else
  183.          {
  184.             super.selected = true;
  185.          }
  186.       }
  187.       
  188.       public function set value(param1:Object) : void
  189.       {
  190.          _value = param1;
  191.       }
  192.       
  193.       override public function set autoRepeat(param1:Boolean) : void
  194.       {
  195.       }
  196.       
  197.       override public function set toggle(param1:Boolean) : void
  198.       {
  199.          throw new Error("Warning: You cannot change a RadioButtons toggle.");
  200.       }
  201.       
  202.       override public function get autoRepeat() : Boolean
  203.       {
  204.          return false;
  205.       }
  206.       
  207.       override protected function keyDownHandler(param1:KeyboardEvent) : void
  208.       {
  209.          switch(param1.keyCode)
  210.          {
  211.             case Keyboard.DOWN:
  212.                setNext(!param1.ctrlKey);
  213.                param1.stopPropagation();
  214.                break;
  215.             case Keyboard.UP:
  216.                setPrev(!param1.ctrlKey);
  217.                param1.stopPropagation();
  218.                break;
  219.             case Keyboard.LEFT:
  220.                setPrev(!param1.ctrlKey);
  221.                param1.stopPropagation();
  222.                break;
  223.             case Keyboard.RIGHT:
  224.                setNext(!param1.ctrlKey);
  225.                param1.stopPropagation();
  226.                break;
  227.             case Keyboard.SPACE:
  228.                setThis();
  229.                _toggle = false;
  230.             default:
  231.                super.keyDownHandler(param1);
  232.          }
  233.       }
  234.       
  235.       override public function drawFocus(param1:Boolean) : void
  236.       {
  237.          var _loc2_:Number = NaN;
  238.          super.drawFocus(param1);
  239.          if(param1)
  240.          {
  241.             _loc2_ = Number(getStyleValue("focusRectPadding"));
  242.             uiFocusRect.x = background.x - _loc2_;
  243.             uiFocusRect.y = background.y - _loc2_;
  244.             uiFocusRect.width = background.width + _loc2_ * 2;
  245.             uiFocusRect.height = background.height + _loc2_ * 2;
  246.          }
  247.       }
  248.       
  249.       private function setPrev(param1:Boolean = true) : void
  250.       {
  251.          var _loc6_:* = undefined;
  252.          var _loc2_:RadioButtonGroup = _group;
  253.          if(_loc2_ == null)
  254.          {
  255.             return;
  256.          }
  257.          var _loc3_:IFocusManager = focusManager;
  258.          if(_loc3_)
  259.          {
  260.             _loc3_.showFocusIndicator = true;
  261.          }
  262.          var _loc4_:int;
  263.          var _loc5_:int = _loc4_ = _loc2_.getRadioButtonIndex(this);
  264.          if(_loc4_ != -1)
  265.          {
  266.             do
  267.             {
  268.                _loc5_ = --_loc5_ == -1 ? _loc2_.numRadioButtons - 1 : _loc5_;
  269.                _loc6_ = _loc2_.getRadioButtonAt(_loc5_);
  270.                if((_loc6_) && Boolean(_loc6_.enabled))
  271.                {
  272.                   if(param1)
  273.                   {
  274.                      _loc2_.selection = _loc6_;
  275.                   }
  276.                   _loc6_.setFocus();
  277.                   return;
  278.                }
  279.                if(param1 && _loc2_.getRadioButtonAt(_loc5_) != _loc2_.selection)
  280.                {
  281.                   _loc2_.selection = this;
  282.                }
  283.                this.drawFocus(true);
  284.             }
  285.             while(_loc5_ != _loc4_);
  286.             
  287.          }
  288.       }
  289.       
  290.       override public function get toggle() : Boolean
  291.       {
  292.          return true;
  293.       }
  294.       
  295.       public function get value() : Object
  296.       {
  297.          return _value;
  298.       }
  299.       
  300.       public function get groupName() : String
  301.       {
  302.          return _group == null ? null : _group.name;
  303.       }
  304.       
  305.       private function setNext(param1:Boolean = true) : void
  306.       {
  307.          var _loc7_:* = undefined;
  308.          var _loc2_:RadioButtonGroup = _group;
  309.          if(_loc2_ == null)
  310.          {
  311.             return;
  312.          }
  313.          var _loc3_:IFocusManager = focusManager;
  314.          if(_loc3_)
  315.          {
  316.             _loc3_.showFocusIndicator = true;
  317.          }
  318.          var _loc4_:int = _loc2_.getRadioButtonIndex(this);
  319.          var _loc5_:Number = _loc2_.numRadioButtons;
  320.          var _loc6_:int = _loc4_;
  321.          if(_loc4_ != -1)
  322.          {
  323.             do
  324.             {
  325.                _loc6_++;
  326.                _loc6_ = _loc6_ > _loc2_.numRadioButtons - 1 ? 0 : _loc6_;
  327.                _loc7_ = _loc2_.getRadioButtonAt(_loc6_);
  328.                if((_loc7_) && Boolean(_loc7_.enabled))
  329.                {
  330.                   if(param1)
  331.                   {
  332.                      _loc2_.selection = _loc7_;
  333.                   }
  334.                   _loc7_.setFocus();
  335.                   return;
  336.                }
  337.                if(param1 && _loc2_.getRadioButtonAt(_loc6_) != _loc2_.selection)
  338.                {
  339.                   _loc2_.selection = this;
  340.                }
  341.                this.drawFocus(true);
  342.             }
  343.             while(_loc6_ != _loc4_);
  344.             
  345.          }
  346.       }
  347.       
  348.       public function set group(param1:RadioButtonGroup) : void
  349.       {
  350.          groupName = param1.name;
  351.       }
  352.       
  353.       public function get group() : RadioButtonGroup
  354.       {
  355.          return _group;
  356.       }
  357.    }
  358. }
  359.  
  360.