home *** CD-ROM | disk | FTP | other *** search
/ Computer Active 2010 August / CA08.iso / Multimedija / shufflr.air / ShufflrClient.swf / scripts / com / Primitives / BasePrimitive.as next >
Encoding:
Text File  |  2010-06-23  |  10.4 KB  |  354 lines

  1. package com.Primitives
  2. {
  3.    import flash.display.SpreadMethod;
  4.    import flash.events.Event;
  5.    import flash.events.MouseEvent;
  6.    import flash.geom.*;
  7.    import mx.controls.dataGridClasses.DataGridListData;
  8.    import mx.controls.listClasses.BaseListData;
  9.    import mx.controls.listClasses.IDropInListItemRenderer;
  10.    import mx.controls.listClasses.IListItemRenderer;
  11.    import mx.core.IDataRenderer;
  12.    import mx.core.UIComponent;
  13.    import mx.core.mx_internal;
  14.    import mx.events.FlexEvent;
  15.    import mx.managers.IFocusManagerComponent;
  16.    
  17.    use namespace mx_internal;
  18.    
  19.    public class BasePrimitive extends UIComponent implements IDataRenderer, IDropInListItemRenderer, IFocusManagerComponent, IListItemRenderer
  20.    {
  21.       mx_internal var _selected:Boolean = false;
  22.       
  23.       private var _data:Object;
  24.       
  25.       public var selectedField:String = null;
  26.       
  27.       private var _backgroundEnabled:Boolean = true;
  28.       
  29.       mx_internal var toggleChanged:Boolean = false;
  30.       
  31.       private var selectedSet:Boolean;
  32.       
  33.       private var _listData:BaseListData;
  34.       
  35.       private var styleChangedFlag:Boolean = true;
  36.       
  37.       mx_internal var _toggle:Boolean = false;
  38.       
  39.       private var toolTipSet:Boolean = false;
  40.       
  41.       public function BasePrimitive()
  42.       {
  43.          super();
  44.          mouseChildren = false;
  45.          addEventListener(MouseEvent.ROLL_OVER,this.rollOverHandler);
  46.          addEventListener(MouseEvent.ROLL_OUT,this.rollOutHandler);
  47.          addEventListener(MouseEvent.MOUSE_DOWN,this.mouseDownHandler);
  48.          addEventListener(MouseEvent.MOUSE_UP,this.mouseUpHandler);
  49.          addEventListener(MouseEvent.CLICK,this.clickHandler);
  50.          addEventListener(FlexEvent.UPDATE_COMPLETE,this.handleUpdateComplete);
  51.       }
  52.       
  53.       override protected function updateDisplayList(param1:Number, param2:Number) : void
  54.       {
  55.          var _loc3_:uint = 0;
  56.          var _loc8_:Array = null;
  57.          var _loc9_:Array = null;
  58.          var _loc10_:Array = null;
  59.          var _loc11_:String = null;
  60.          var _loc12_:String = null;
  61.          var _loc13_:Number = NaN;
  62.          var _loc14_:Number = NaN;
  63.          var _loc15_:Matrix = null;
  64.          var _loc16_:Array = null;
  65.          var _loc17_:Array = null;
  66.          var _loc18_:Array = null;
  67.          var _loc19_:String = null;
  68.          var _loc20_:String = null;
  69.          var _loc21_:Number = NaN;
  70.          var _loc22_:Number = NaN;
  71.          var _loc23_:Matrix = null;
  72.          var _loc24_:uint = 0;
  73.          var _loc25_:Number = NaN;
  74.          super.updateDisplayList(param1,param2);
  75.          graphics.clear();
  76.          if(!this.selected)
  77.          {
  78.             _loc3_ = getStyle("borderColor");
  79.          }
  80.          else
  81.          {
  82.             _loc3_ = getStyle("borderSelectedColor");
  83.          }
  84.          if(_loc3_ == 0)
  85.          {
  86.             _loc3_ = 0;
  87.          }
  88.          var _loc4_:Number = getStyle("borderThickness");
  89.          var _loc5_:Number = getStyle("borderAlpha");
  90.          var _loc6_:Boolean = getStyle("borderPixelHinting");
  91.          var _loc7_:String = getStyle("borderJointStyle");
  92.          graphics.lineStyle(_loc4_,_loc3_,_loc5_,_loc6_,"normal",null,_loc7_);
  93.          if(getStyle("borderFillEnabled"))
  94.          {
  95.             if(!this.selected)
  96.             {
  97.                _loc8_ = getStyle("borderColors");
  98.             }
  99.             else
  100.             {
  101.                _loc8_ = getStyle("borderSelectedColors");
  102.             }
  103.             _loc9_ = getStyle("borderAlphas");
  104.             _loc10_ = getStyle("borderRatios");
  105.             if(_loc8_ == null)
  106.             {
  107.                _loc8_ = [0,16777215];
  108.             }
  109.             if(_loc9_ == null)
  110.             {
  111.                _loc9_ = [1,1];
  112.             }
  113.             if(_loc10_ == null)
  114.             {
  115.                _loc10_ = [0,255];
  116.             }
  117.             _loc11_ = getStyle("borderFillType");
  118.             _loc12_ = getStyle("borderSpreadMethod");
  119.             _loc13_ = getStyle("borderFocalPointRatio");
  120.             _loc14_ = getStyle("borderAngle");
  121.             if(!_loc14_)
  122.             {
  123.                _loc14_ = 0;
  124.             }
  125.             if(!_loc11_)
  126.             {
  127.                _loc11_ = "linear";
  128.             }
  129.             if(!_loc12_)
  130.             {
  131.                _loc12_ = "pad";
  132.             }
  133.             _loc15_ = new Matrix();
  134.             _loc15_.createGradientBox(param1,param2,_loc14_,0,0);
  135.             graphics.lineGradientStyle(_loc11_,_loc8_,_loc9_,_loc10_,_loc15_,_loc12_,"rgb",_loc13_);
  136.          }
  137.          if(getStyle("fillEnabled") && this.backgroundEnabled)
  138.          {
  139.             if(!this.selected)
  140.             {
  141.                _loc16_ = getStyle("fillColors");
  142.             }
  143.             else
  144.             {
  145.                _loc16_ = getStyle("fillSelectedColors");
  146.             }
  147.             _loc17_ = getStyle("fillAlphas");
  148.             _loc18_ = getStyle("fillRatios");
  149.             if(_loc16_ == null)
  150.             {
  151.                _loc16_ = [0,16777215];
  152.             }
  153.             if(_loc17_ == null)
  154.             {
  155.                _loc17_ = [1,1];
  156.             }
  157.             if(_loc18_ == null)
  158.             {
  159.                _loc18_ = [0,255];
  160.             }
  161.             _loc19_ = getStyle("fillType");
  162.             _loc20_ = getStyle("fillSpreadMethod");
  163.             _loc21_ = getStyle("fillFocalPointRatio");
  164.             _loc22_ = getStyle("fillAngle");
  165.             if(!_loc22_)
  166.             {
  167.                _loc22_ = 0;
  168.             }
  169.             if(!_loc19_)
  170.             {
  171.                _loc19_ = "linear";
  172.             }
  173.             if(!_loc20_)
  174.             {
  175.                _loc20_ = "pad";
  176.             }
  177.             _loc23_ = new Matrix();
  178.             _loc23_.createGradientBox(param1,param2,_loc22_,0,0);
  179.             graphics.beginGradientFill(_loc19_,_loc16_,_loc17_,_loc18_,_loc23_,SpreadMethod.REFLECT,"rgb",_loc21_);
  180.          }
  181.          else if(this.backgroundEnabled)
  182.          {
  183.             if(!this.selected)
  184.             {
  185.                _loc24_ = getStyle("backgroundColor");
  186.             }
  187.             else
  188.             {
  189.                _loc24_ = getStyle("backgroundSelectedColor");
  190.             }
  191.             _loc25_ = getStyle("backgroundAlpha");
  192.             if(_loc24_ != 0)
  193.             {
  194.                graphics.beginFill(_loc24_,_loc25_);
  195.             }
  196.          }
  197.       }
  198.       
  199.       protected function mouseUpHandler(param1:MouseEvent) : void
  200.       {
  201.       }
  202.       
  203.       [Bindable("valueCommit")]
  204.       [Bindable("click")]
  205.       public function get selected() : Boolean
  206.       {
  207.          return this.mx_internal::_selected;
  208.       }
  209.       
  210.       mx_internal function setSelected(param1:Boolean) : void
  211.       {
  212.          if(this.mx_internal::_selected != param1)
  213.          {
  214.             this.mx_internal::_selected = param1;
  215.             invalidateDisplayList();
  216.             if(this.toggle)
  217.             {
  218.                dispatchEvent(new Event(Event.CHANGE));
  219.             }
  220.             dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));
  221.          }
  222.       }
  223.       
  224.       protected function rollOverHandler(param1:MouseEvent) : void
  225.       {
  226.       }
  227.       
  228.       protected function clickHandler(param1:MouseEvent) : void
  229.       {
  230.          this.selected = !this.selected;
  231.       }
  232.       
  233.       public function set toggle(param1:Boolean) : void
  234.       {
  235.          this.mx_internal::_toggle = param1;
  236.          this.mx_internal::toggleChanged = true;
  237.          invalidateProperties();
  238.          invalidateDisplayList();
  239.          dispatchEvent(new Event("toggleChanged"));
  240.       }
  241.       
  242.       [Bindable("dataChange")]
  243.       public function get data() : Object
  244.       {
  245.          if(!this._data)
  246.          {
  247.             this._data = {};
  248.          }
  249.          return this._data;
  250.       }
  251.       
  252.       public function set selected(param1:Boolean) : void
  253.       {
  254.          this.selectedSet = true;
  255.          this.mx_internal::setSelected(param1);
  256.       }
  257.       
  258.       public function get backgroundEnabled() : Boolean
  259.       {
  260.          return this._backgroundEnabled;
  261.       }
  262.       
  263.       override public function styleChanged(param1:String) : void
  264.       {
  265.          this.styleChangedFlag = true;
  266.          super.styleChanged(param1);
  267.          invalidateProperties();
  268.          invalidateDisplayList();
  269.       }
  270.       
  271.       override public function set toolTip(param1:String) : void
  272.       {
  273.          super.toolTip = param1;
  274.          if(param1)
  275.          {
  276.             this.toolTipSet = true;
  277.          }
  278.          else
  279.          {
  280.             this.toolTipSet = false;
  281.             invalidateDisplayList();
  282.          }
  283.       }
  284.       
  285.       public function set listData(param1:BaseListData) : void
  286.       {
  287.          this._listData = param1;
  288.       }
  289.       
  290.       [Bindable("toggleChanged")]
  291.       public function get toggle() : Boolean
  292.       {
  293.          return this.mx_internal::_toggle;
  294.       }
  295.       
  296.       protected function mouseDownHandler(param1:MouseEvent) : void
  297.       {
  298.       }
  299.       
  300.       private function handleUpdateComplete(param1:FlexEvent) : void
  301.       {
  302.          if(this.backgroundEnabled)
  303.          {
  304.             graphics.endFill();
  305.          }
  306.       }
  307.       
  308.       public function set data(param1:Object) : void
  309.       {
  310.          var _loc2_:* = undefined;
  311.          this._data = param1;
  312.          if(Boolean(this._listData) && this._listData is DataGridListData)
  313.          {
  314.             _loc2_ = this._data[DataGridListData(this._listData).dataField];
  315.          }
  316.          else if(this._listData)
  317.          {
  318.             if(this.selectedField)
  319.             {
  320.                _loc2_ = this._data[this.selectedField];
  321.             }
  322.          }
  323.          else
  324.          {
  325.             _loc2_ = this._data;
  326.          }
  327.          if(_loc2_ !== undefined && !this.selectedSet)
  328.          {
  329.             this.selected = _loc2_ as Boolean;
  330.             this.selectedSet = false;
  331.          }
  332.          dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));
  333.       }
  334.       
  335.       public function set backgroundEnabled(param1:Boolean) : void
  336.       {
  337.          this._backgroundEnabled = param1;
  338.          invalidateProperties();
  339.          invalidateDisplayList();
  340.       }
  341.       
  342.       [Bindable("dataChange")]
  343.       public function get listData() : BaseListData
  344.       {
  345.          return this._listData;
  346.       }
  347.       
  348.       protected function rollOutHandler(param1:MouseEvent) : void
  349.       {
  350.       }
  351.    }
  352. }
  353.  
  354.