home *** CD-ROM | disk | FTP | other *** search
/ Computer Active 2010 August / CA08.iso / Darbas / kidoz_v1.air / kidoz.swf / scripts / mx / core / UIComponent.as < prev    next >
Encoding:
Text File  |  2009-05-06  |  131.7 KB  |  4,304 lines

  1. package mx.core
  2. {
  3.    import flash.display.DisplayObject;
  4.    import flash.display.DisplayObjectContainer;
  5.    import flash.display.GradientType;
  6.    import flash.display.Graphics;
  7.    import flash.display.InteractiveObject;
  8.    import flash.display.Loader;
  9.    import flash.display.Sprite;
  10.    import flash.display.Stage;
  11.    import flash.events.Event;
  12.    import flash.events.EventPhase;
  13.    import flash.events.FocusEvent;
  14.    import flash.events.IEventDispatcher;
  15.    import flash.events.KeyboardEvent;
  16.    import flash.geom.Matrix;
  17.    import flash.geom.Point;
  18.    import flash.geom.Rectangle;
  19.    import flash.system.ApplicationDomain;
  20.    import flash.text.TextLineMetrics;
  21.    import flash.utils.getQualifiedClassName;
  22.    import flash.utils.getQualifiedSuperclassName;
  23.    import mx.automation.IAutomationObject;
  24.    import mx.binding.BindingManager;
  25.    import mx.controls.IFlexContextMenu;
  26.    import mx.effects.EffectManager;
  27.    import mx.effects.IEffect;
  28.    import mx.effects.IEffectInstance;
  29.    import mx.events.ChildExistenceChangedEvent;
  30.    import mx.events.DynamicEvent;
  31.    import mx.events.EffectEvent;
  32.    import mx.events.FlexEvent;
  33.    import mx.events.MoveEvent;
  34.    import mx.events.PropertyChangeEvent;
  35.    import mx.events.ResizeEvent;
  36.    import mx.events.StateChangeEvent;
  37.    import mx.events.ValidationResultEvent;
  38.    import mx.graphics.RoundedRectangle;
  39.    import mx.managers.CursorManager;
  40.    import mx.managers.ICursorManager;
  41.    import mx.managers.IFocusManager;
  42.    import mx.managers.IFocusManagerComponent;
  43.    import mx.managers.IFocusManagerContainer;
  44.    import mx.managers.ILayoutManagerClient;
  45.    import mx.managers.ISystemManager;
  46.    import mx.managers.IToolTipManagerClient;
  47.    import mx.managers.SystemManager;
  48.    import mx.managers.SystemManagerGlobals;
  49.    import mx.managers.SystemManagerProxy;
  50.    import mx.managers.ToolTipManager;
  51.    import mx.modules.ModuleManager;
  52.    import mx.resources.IResourceManager;
  53.    import mx.resources.ResourceManager;
  54.    import mx.states.State;
  55.    import mx.states.Transition;
  56.    import mx.styles.CSSStyleDeclaration;
  57.    import mx.styles.ISimpleStyleClient;
  58.    import mx.styles.IStyleClient;
  59.    import mx.styles.StyleManager;
  60.    import mx.styles.StyleProtoChain;
  61.    import mx.utils.ColorUtil;
  62.    import mx.utils.GraphicsUtil;
  63.    import mx.utils.StringUtil;
  64.    import mx.validators.IValidatorListener;
  65.    import mx.validators.ValidationResult;
  66.    
  67.    use namespace mx_internal;
  68.    
  69.    public class UIComponent extends FlexSprite implements IAutomationObject, IChildList, IDeferredInstantiationUIComponent, IFlexDisplayObject, IFlexModule, IInvalidating, ILayoutManagerClient, IPropertyChangeNotifier, IRepeaterClient, ISimpleStyleClient, IStyleClient, IToolTipManagerClient, IUIComponent, IValidatorListener, IStateClient, IConstraintClient
  70.    {
  71.       mx_internal static var dispatchEventHook:Function;
  72.       
  73.       mx_internal static var createAccessibilityImplementation:Function;
  74.       
  75.       private static var _embeddedFontRegistry:IEmbeddedFontRegistry;
  76.       
  77.       mx_internal static const VERSION:String = "3.2.0.3958";
  78.       
  79.       public static const DEFAULT_MEASURED_WIDTH:Number = 160;
  80.       
  81.       public static const DEFAULT_MEASURED_MIN_WIDTH:Number = 40;
  82.       
  83.       public static const DEFAULT_MEASURED_HEIGHT:Number = 22;
  84.       
  85.       public static const DEFAULT_MEASURED_MIN_HEIGHT:Number = 22;
  86.       
  87.       public static const DEFAULT_MAX_WIDTH:Number = 10000;
  88.       
  89.       public static const DEFAULT_MAX_HEIGHT:Number = 10000;
  90.       
  91.       mx_internal static var STYLE_UNINITIALIZED:Object = {};
  92.       
  93.       private static var fakeMouseX:QName = new QName(mx_internal,"_mouseX");
  94.       
  95.       private static var fakeMouseY:QName = new QName(mx_internal,"_mouseY");
  96.       
  97.       private var cachedEmbeddedFont:EmbeddedFont = null;
  98.       
  99.       private var errorStringChanged:Boolean = false;
  100.       
  101.       mx_internal var overlay:UIComponent;
  102.       
  103.       mx_internal var automaticRadioButtonGroups:Object;
  104.       
  105.       private var _currentState:String;
  106.       
  107.       private var _isPopUp:Boolean;
  108.       
  109.       private var _repeaters:Array;
  110.       
  111.       private var _systemManager:ISystemManager;
  112.       
  113.       private var _measuredWidth:Number = 0;
  114.       
  115.       private var methodQueue:Array = [];
  116.       
  117.       mx_internal var _width:Number;
  118.       
  119.       private var _tweeningProperties:Array;
  120.       
  121.       private var _validationSubField:String;
  122.       
  123.       private var _endingEffectInstances:Array = [];
  124.       
  125.       mx_internal var saveBorderColor:Boolean = true;
  126.       
  127.       mx_internal var overlayColor:uint;
  128.       
  129.       mx_internal var overlayReferenceCount:int = 0;
  130.       
  131.       private var hasFontContextBeenSaved:Boolean = false;
  132.       
  133.       private var _repeaterIndices:Array;
  134.       
  135.       private var oldExplicitWidth:Number;
  136.       
  137.       mx_internal var _descriptor:UIComponentDescriptor;
  138.       
  139.       private var _initialized:Boolean = false;
  140.       
  141.       private var _focusEnabled:Boolean = true;
  142.       
  143.       private var cacheAsBitmapCount:int = 0;
  144.       
  145.       private var requestedCurrentState:String;
  146.       
  147.       private var listeningForRender:Boolean = false;
  148.       
  149.       mx_internal var invalidateDisplayListFlag:Boolean = false;
  150.       
  151.       private var oldScaleX:Number = 1;
  152.       
  153.       private var oldScaleY:Number = 1;
  154.       
  155.       mx_internal var _explicitMaxHeight:Number;
  156.       
  157.       mx_internal var invalidatePropertiesFlag:Boolean = false;
  158.       
  159.       private var hasFocusRect:Boolean = false;
  160.       
  161.       mx_internal var invalidateSizeFlag:Boolean = false;
  162.       
  163.       private var _scaleX:Number = 1;
  164.       
  165.       private var _scaleY:Number = 1;
  166.       
  167.       private var _styleDeclaration:CSSStyleDeclaration;
  168.       
  169.       private var _resourceManager:IResourceManager = ResourceManager.getInstance();
  170.       
  171.       mx_internal var _affectedProperties:Object = {};
  172.       
  173.       mx_internal var _documentDescriptor:UIComponentDescriptor;
  174.       
  175.       private var _processedDescriptors:Boolean = false;
  176.       
  177.       mx_internal var origBorderColor:Number;
  178.       
  179.       private var _focusManager:IFocusManager;
  180.       
  181.       private var _cachePolicy:String = "auto";
  182.       
  183.       private var _measuredHeight:Number = 0;
  184.       
  185.       private var _id:String;
  186.       
  187.       private var _owner:DisplayObjectContainer;
  188.       
  189.       public var transitions:Array = [];
  190.       
  191.       mx_internal var _parent:DisplayObjectContainer;
  192.       
  193.       private var _measuredMinWidth:Number = 0;
  194.       
  195.       private var oldMinWidth:Number;
  196.       
  197.       private var _explicitWidth:Number;
  198.       
  199.       private var _enabled:Boolean = false;
  200.       
  201.       public var states:Array = [];
  202.       
  203.       private var _mouseFocusEnabled:Boolean = true;
  204.       
  205.       private var oldHeight:Number = 0;
  206.       
  207.       private var _currentStateChanged:Boolean;
  208.       
  209.       private var cachedTextFormat:UITextFormat;
  210.       
  211.       mx_internal var _height:Number;
  212.       
  213.       private var _automationDelegate:IAutomationObject;
  214.       
  215.       private var _percentWidth:Number;
  216.       
  217.       private var _automationName:String = null;
  218.       
  219.       private var _isEffectStarted:Boolean = false;
  220.       
  221.       private var _styleName:Object;
  222.       
  223.       private var lastUnscaledWidth:Number;
  224.       
  225.       mx_internal var _document:Object;
  226.       
  227.       mx_internal var _errorString:String = "";
  228.       
  229.       private var oldExplicitHeight:Number;
  230.       
  231.       private var _nestLevel:int = 0;
  232.       
  233.       private var _systemManagerDirty:Boolean = false;
  234.       
  235.       private var _explicitHeight:Number;
  236.       
  237.       mx_internal var _toolTip:String;
  238.       
  239.       private var _filters:Array;
  240.       
  241.       private var _focusPane:Sprite;
  242.       
  243.       private var playStateTransition:Boolean = true;
  244.       
  245.       private var _nonInheritingStyles:Object = UIComponent.mx_internal::STYLE_UNINITIALIZED;
  246.       
  247.       private var _showInAutomationHierarchy:Boolean = true;
  248.       
  249.       private var _moduleFactory:IFlexModuleFactory;
  250.       
  251.       private var preventDrawFocus:Boolean = false;
  252.       
  253.       private var oldX:Number = 0;
  254.       
  255.       private var oldY:Number = 0;
  256.       
  257.       private var _instanceIndices:Array;
  258.       
  259.       private var _visible:Boolean = true;
  260.       
  261.       private var _inheritingStyles:Object = UIComponent.mx_internal::STYLE_UNINITIALIZED;
  262.       
  263.       private var _includeInLayout:Boolean = true;
  264.       
  265.       mx_internal var _effectsStarted:Array = [];
  266.       
  267.       mx_internal var _explicitMinWidth:Number;
  268.       
  269.       private var lastUnscaledHeight:Number;
  270.       
  271.       mx_internal var _explicitMaxWidth:Number;
  272.       
  273.       private var _measuredMinHeight:Number = 0;
  274.       
  275.       private var _uid:String;
  276.       
  277.       private var _currentTransitionEffect:IEffect;
  278.       
  279.       private var _updateCompletePendingFlag:Boolean = false;
  280.       
  281.       private var oldMinHeight:Number;
  282.       
  283.       private var _flexContextMenu:IFlexContextMenu;
  284.       
  285.       mx_internal var _explicitMinHeight:Number;
  286.       
  287.       private var _percentHeight:Number;
  288.       
  289.       private var oldEmbeddedFontContext:IFlexModuleFactory = null;
  290.       
  291.       private var oldWidth:Number = 0;
  292.       
  293.       public function UIComponent()
  294.       {
  295.          super();
  296.          focusRect = false;
  297.          tabEnabled = this is IFocusManagerComponent;
  298.          tabChildren = false;
  299.          enabled = true;
  300.          mx_internal::$visible = false;
  301.          addEventListener(Event.ADDED,addedHandler);
  302.          addEventListener(Event.REMOVED,removedHandler);
  303.          if(this is IFocusManagerComponent)
  304.          {
  305.             addEventListener(FocusEvent.FOCUS_IN,focusInHandler);
  306.             addEventListener(FocusEvent.FOCUS_OUT,focusOutHandler);
  307.             addEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler);
  308.             addEventListener(KeyboardEvent.KEY_UP,keyUpHandler);
  309.          }
  310.          resourcesChanged();
  311.          resourceManager.addEventListener(Event.CHANGE,resourceManager_changeHandler,false,0,true);
  312.          mx_internal::_width = super.width;
  313.          mx_internal::_height = super.height;
  314.       }
  315.       
  316.       private static function get embeddedFontRegistry() : IEmbeddedFontRegistry
  317.       {
  318.          if(!_embeddedFontRegistry)
  319.          {
  320.             _embeddedFontRegistry = IEmbeddedFontRegistry(Singleton.getInstance("mx.core::IEmbeddedFontRegistry"));
  321.          }
  322.          return _embeddedFontRegistry;
  323.       }
  324.       
  325.       public static function resumeBackgroundProcessing() : void
  326.       {
  327.          var _loc1_:ISystemManager = null;
  328.          if(UIComponentGlobals.mx_internal::callLaterSuspendCount > 0)
  329.          {
  330.             --UIComponentGlobals.mx_internal::callLaterSuspendCount;
  331.             if(UIComponentGlobals.mx_internal::callLaterSuspendCount == 0)
  332.             {
  333.                _loc1_ = SystemManagerGlobals.topLevelSystemManagers[0];
  334.                if(Boolean(_loc1_) && Boolean(_loc1_.stage))
  335.                {
  336.                   _loc1_.stage.invalidate();
  337.                }
  338.             }
  339.          }
  340.       }
  341.       
  342.       public static function suspendBackgroundProcessing() : void
  343.       {
  344.          ++UIComponentGlobals.mx_internal::callLaterSuspendCount;
  345.       }
  346.       
  347.       override public function get filters() : Array
  348.       {
  349.          return !!_filters ? _filters : super.filters;
  350.       }
  351.       
  352.       [Bindable("toolTipChanged")]
  353.       public function get toolTip() : String
  354.       {
  355.          return mx_internal::_toolTip;
  356.       }
  357.       
  358.       private function transition_effectEndHandler(param1:EffectEvent) : void
  359.       {
  360.          _currentTransitionEffect = null;
  361.       }
  362.       
  363.       public function get nestLevel() : int
  364.       {
  365.          return _nestLevel;
  366.       }
  367.       
  368.       protected function adjustFocusRect(param1:DisplayObject = null) : void
  369.       {
  370.          var _loc4_:Number = NaN;
  371.          var _loc5_:Number = NaN;
  372.          var _loc6_:Point = null;
  373.          var _loc7_:Number = NaN;
  374.          if(!param1)
  375.          {
  376.             param1 = this;
  377.          }
  378.          if(isNaN(param1.width) || isNaN(param1.height))
  379.          {
  380.             return;
  381.          }
  382.          var _loc2_:IFocusManager = focusManager;
  383.          if(!_loc2_)
  384.          {
  385.             return;
  386.          }
  387.          var _loc3_:IFlexDisplayObject = IFlexDisplayObject(mx_internal::getFocusObject());
  388.          if(_loc3_)
  389.          {
  390.             if(Boolean(errorString) && errorString != "")
  391.             {
  392.                _loc4_ = getStyle("errorColor");
  393.             }
  394.             else
  395.             {
  396.                _loc4_ = getStyle("themeColor");
  397.             }
  398.             _loc5_ = getStyle("focusThickness");
  399.             if(_loc3_ is IStyleClient)
  400.             {
  401.                IStyleClient(_loc3_).setStyle("focusColor",_loc4_);
  402.             }
  403.             _loc3_.setActualSize(param1.width + 2 * _loc5_,param1.height + 2 * _loc5_);
  404.             if(rotation)
  405.             {
  406.                _loc7_ = rotation * Math.PI / 180;
  407.                _loc6_ = new Point(param1.x - _loc5_ * (Math.cos(_loc7_) - Math.sin(_loc7_)),param1.y - _loc5_ * (Math.cos(_loc7_) + Math.sin(_loc7_)));
  408.                DisplayObject(_loc3_).rotation = rotation;
  409.             }
  410.             else
  411.             {
  412.                _loc6_ = new Point(param1.x - _loc5_,param1.y - _loc5_);
  413.             }
  414.             if(param1.parent == this)
  415.             {
  416.                _loc6_.x += x;
  417.                _loc6_.y += y;
  418.             }
  419.             _loc6_ = parent.localToGlobal(_loc6_);
  420.             _loc6_ = parent.globalToLocal(_loc6_);
  421.             _loc3_.move(_loc6_.x,_loc6_.y);
  422.             if(_loc3_ is IInvalidating)
  423.             {
  424.                IInvalidating(_loc3_).validateNow();
  425.             }
  426.             else if(_loc3_ is IProgrammaticSkin)
  427.             {
  428.                IProgrammaticSkin(_loc3_).validateNow();
  429.             }
  430.          }
  431.       }
  432.       
  433.       mx_internal function setUnscaledWidth(param1:Number) : void
  434.       {
  435.          var _loc2_:Number = param1 * Math.abs(oldScaleX);
  436.          if(_explicitWidth == _loc2_)
  437.          {
  438.             return;
  439.          }
  440.          if(!isNaN(_loc2_))
  441.          {
  442.             _percentWidth = NaN;
  443.          }
  444.          _explicitWidth = _loc2_;
  445.          invalidateSize();
  446.          var _loc3_:IInvalidating = parent as IInvalidating;
  447.          if(Boolean(_loc3_) && includeInLayout)
  448.          {
  449.             _loc3_.invalidateSize();
  450.             _loc3_.invalidateDisplayList();
  451.          }
  452.       }
  453.       
  454.       private function isOnDisplayList() : Boolean
  455.       {
  456.          var p:DisplayObjectContainer = null;
  457.          try
  458.          {
  459.             p = !!mx_internal::_parent ? mx_internal::_parent : super.parent;
  460.          }
  461.          catch(e:SecurityError)
  462.          {
  463.             return true;
  464.          }
  465.          return !!p ? true : false;
  466.       }
  467.       
  468.       public function set nestLevel(param1:int) : void
  469.       {
  470.          var _loc2_:IChildList = null;
  471.          var _loc3_:int = 0;
  472.          var _loc4_:int = 0;
  473.          var _loc5_:ILayoutManagerClient = null;
  474.          var _loc6_:IUITextField = null;
  475.          if(param1 > 1 && _nestLevel != param1)
  476.          {
  477.             _nestLevel = param1;
  478.             mx_internal::updateCallbacks();
  479.             _loc2_ = this is IRawChildrenContainer ? IRawChildrenContainer(this).rawChildren : IChildList(this);
  480.             _loc3_ = int(_loc2_.numChildren);
  481.             _loc4_ = 0;
  482.             while(_loc4_ < _loc3_)
  483.             {
  484.                _loc5_ = _loc2_.getChildAt(_loc4_) as ILayoutManagerClient;
  485.                if(_loc5_)
  486.                {
  487.                   _loc5_.nestLevel = param1 + 1;
  488.                }
  489.                else
  490.                {
  491.                   _loc6_ = _loc2_.getChildAt(_loc4_) as IUITextField;
  492.                   if(_loc6_)
  493.                   {
  494.                      _loc6_.nestLevel = param1 + 1;
  495.                   }
  496.                }
  497.                _loc4_++;
  498.             }
  499.          }
  500.       }
  501.       
  502.       public function getExplicitOrMeasuredHeight() : Number
  503.       {
  504.          return !isNaN(explicitHeight) ? explicitHeight : measuredHeight;
  505.       }
  506.       
  507.       private function callLaterDispatcher(param1:Event) : void
  508.       {
  509.          var callLaterErrorEvent:DynamicEvent = null;
  510.          var event:Event = param1;
  511.          ++UIComponentGlobals.mx_internal::callLaterDispatcherCount;
  512.          if(!UIComponentGlobals.catchCallLaterExceptions)
  513.          {
  514.             callLaterDispatcher2(event);
  515.          }
  516.          else
  517.          {
  518.             try
  519.             {
  520.                callLaterDispatcher2(event);
  521.             }
  522.             catch(e:Error)
  523.             {
  524.                callLaterErrorEvent = new DynamicEvent("callLaterError");
  525.                callLaterErrorEvent.error = e;
  526.                systemManager.dispatchEvent(callLaterErrorEvent);
  527.             }
  528.          }
  529.          --UIComponentGlobals.mx_internal::callLaterDispatcherCount;
  530.       }
  531.       
  532.       public function getStyle(param1:String) : *
  533.       {
  534.          return !!StyleManager.mx_internal::inheritingStyles[param1] ? _inheritingStyles[param1] : _nonInheritingStyles[param1];
  535.       }
  536.       
  537.       final mx_internal function get $width() : Number
  538.       {
  539.          return super.width;
  540.       }
  541.       
  542.       public function get className() : String
  543.       {
  544.          var _loc1_:String = getQualifiedClassName(this);
  545.          var _loc2_:int = int(_loc1_.indexOf("::"));
  546.          if(_loc2_ != -1)
  547.          {
  548.             _loc1_ = _loc1_.substr(_loc2_ + 2);
  549.          }
  550.          return _loc1_;
  551.       }
  552.       
  553.       public function verticalGradientMatrix(param1:Number, param2:Number, param3:Number, param4:Number) : Matrix
  554.       {
  555.          UIComponentGlobals.mx_internal::tempMatrix.createGradientBox(param3,param4,Math.PI / 2,param1,param2);
  556.          return UIComponentGlobals.mx_internal::tempMatrix;
  557.       }
  558.       
  559.       public function setCurrentState(param1:String, param2:Boolean = true) : void
  560.       {
  561.          if(param1 != currentState && !(isBaseState(param1) && isBaseState(currentState)))
  562.          {
  563.             requestedCurrentState = param1;
  564.             playStateTransition = param2;
  565.             if(initialized)
  566.             {
  567.                commitCurrentState();
  568.             }
  569.             else
  570.             {
  571.                _currentStateChanged = true;
  572.                addEventListener(FlexEvent.CREATION_COMPLETE,creationCompleteHandler);
  573.             }
  574.          }
  575.       }
  576.       
  577.       private function getBaseStates(param1:State) : Array
  578.       {
  579.          var _loc2_:Array = [];
  580.          while(Boolean(param1) && Boolean(param1.basedOn))
  581.          {
  582.             _loc2_.push(param1.basedOn);
  583.             param1 = getState(param1.basedOn);
  584.          }
  585.          return _loc2_;
  586.       }
  587.       
  588.       public function set minHeight(param1:Number) : void
  589.       {
  590.          if(explicitMinHeight == param1)
  591.          {
  592.             return;
  593.          }
  594.          explicitMinHeight = param1;
  595.       }
  596.       
  597.       protected function isOurFocus(param1:DisplayObject) : Boolean
  598.       {
  599.          return param1 == this;
  600.       }
  601.       
  602.       [Bindable("errorStringChanged")]
  603.       public function get errorString() : String
  604.       {
  605.          return mx_internal::_errorString;
  606.       }
  607.       
  608.       mx_internal function setUnscaledHeight(param1:Number) : void
  609.       {
  610.          var _loc2_:Number = param1 * Math.abs(oldScaleY);
  611.          if(_explicitHeight == _loc2_)
  612.          {
  613.             return;
  614.          }
  615.          if(!isNaN(_loc2_))
  616.          {
  617.             _percentHeight = NaN;
  618.          }
  619.          _explicitHeight = _loc2_;
  620.          invalidateSize();
  621.          var _loc3_:IInvalidating = parent as IInvalidating;
  622.          if(Boolean(_loc3_) && includeInLayout)
  623.          {
  624.             _loc3_.invalidateSize();
  625.             _loc3_.invalidateDisplayList();
  626.          }
  627.       }
  628.       
  629.       public function get automationName() : String
  630.       {
  631.          if(_automationName)
  632.          {
  633.             return _automationName;
  634.          }
  635.          if(automationDelegate)
  636.          {
  637.             return automationDelegate.automationName;
  638.          }
  639.          return "";
  640.       }
  641.       
  642.       final mx_internal function set $width(param1:Number) : void
  643.       {
  644.          super.width = param1;
  645.       }
  646.       
  647.       public function getVisibleRect(param1:DisplayObject = null) : Rectangle
  648.       {
  649.          if(!param1)
  650.          {
  651.             param1 = DisplayObject(systemManager);
  652.          }
  653.          var _loc2_:Point = new Point(x,y);
  654.          var _loc3_:DisplayObject = !!mx_internal::$parent ? mx_internal::$parent : parent;
  655.          _loc2_ = _loc3_.localToGlobal(_loc2_);
  656.          var _loc4_:Rectangle = new Rectangle(_loc2_.x,_loc2_.y,width,height);
  657.          var _loc5_:DisplayObject = this;
  658.          var _loc6_:Rectangle = new Rectangle();
  659.          do
  660.          {
  661.             if(_loc5_ is UIComponent)
  662.             {
  663.                if(UIComponent(_loc5_).mx_internal::$parent)
  664.                {
  665.                   _loc5_ = UIComponent(_loc5_).mx_internal::$parent;
  666.                }
  667.                else
  668.                {
  669.                   _loc5_ = UIComponent(_loc5_).parent;
  670.                }
  671.             }
  672.             else
  673.             {
  674.                _loc5_ = _loc5_.parent;
  675.             }
  676.             if(Boolean(_loc5_) && Boolean(_loc5_.scrollRect))
  677.             {
  678.                _loc6_ = _loc5_.scrollRect.clone();
  679.                _loc2_ = _loc5_.localToGlobal(_loc6_.topLeft);
  680.                _loc6_.x = _loc2_.x;
  681.                _loc6_.y = _loc2_.y;
  682.                _loc4_ = _loc4_.intersection(_loc6_);
  683.             }
  684.          }
  685.          while(Boolean(_loc5_) && _loc5_ != param1);
  686.          
  687.          return _loc4_;
  688.       }
  689.       
  690.       public function invalidateDisplayList() : void
  691.       {
  692.          if(!mx_internal::invalidateDisplayListFlag)
  693.          {
  694.             mx_internal::invalidateDisplayListFlag = true;
  695.             if(isOnDisplayList() && Boolean(UIComponentGlobals.mx_internal::layoutManager))
  696.             {
  697.                UIComponentGlobals.mx_internal::layoutManager.invalidateDisplayList(this);
  698.             }
  699.          }
  700.       }
  701.       
  702.       mx_internal function initThemeColor() : Boolean
  703.       {
  704.          var _loc2_:Object = null;
  705.          var _loc3_:Number = NaN;
  706.          var _loc4_:Number = NaN;
  707.          var _loc5_:Object = null;
  708.          var _loc6_:Array = null;
  709.          var _loc7_:int = 0;
  710.          var _loc8_:CSSStyleDeclaration = null;
  711.          var _loc1_:Object = _styleName;
  712.          if(_styleDeclaration)
  713.          {
  714.             _loc2_ = _styleDeclaration.getStyle("themeColor");
  715.             _loc3_ = _styleDeclaration.getStyle("rollOverColor");
  716.             _loc4_ = _styleDeclaration.getStyle("selectionColor");
  717.          }
  718.          if((_loc2_ === null || !StyleManager.isValidStyleValue(_loc2_)) && (_loc1_ && !(_loc1_ is ISimpleStyleClient)))
  719.          {
  720.             _loc5_ = _loc1_ is String ? StyleManager.getStyleDeclaration("." + _loc1_) : _loc1_;
  721.             if(_loc5_)
  722.             {
  723.                _loc2_ = _loc5_.getStyle("themeColor");
  724.                _loc3_ = Number(_loc5_.getStyle("rollOverColor"));
  725.                _loc4_ = Number(_loc5_.getStyle("selectionColor"));
  726.             }
  727.          }
  728.          if(_loc2_ === null || !StyleManager.isValidStyleValue(_loc2_))
  729.          {
  730.             _loc6_ = getClassStyleDeclarations();
  731.             _loc7_ = 0;
  732.             while(_loc7_ < _loc6_.length)
  733.             {
  734.                _loc8_ = _loc6_[_loc7_];
  735.                if(_loc8_)
  736.                {
  737.                   _loc2_ = _loc8_.getStyle("themeColor");
  738.                   _loc3_ = _loc8_.getStyle("rollOverColor");
  739.                   _loc4_ = _loc8_.getStyle("selectionColor");
  740.                }
  741.                if(_loc2_ !== null && StyleManager.isValidStyleValue(_loc2_))
  742.                {
  743.                   break;
  744.                }
  745.                _loc7_++;
  746.             }
  747.          }
  748.          if(_loc2_ !== null && StyleManager.isValidStyleValue(_loc2_) && isNaN(_loc3_) && isNaN(_loc4_))
  749.          {
  750.             mx_internal::setThemeColor(_loc2_);
  751.             return true;
  752.          }
  753.          return _loc2_ !== null && StyleManager.isValidStyleValue(_loc2_) && !isNaN(_loc3_) && !isNaN(_loc4_);
  754.       }
  755.       
  756.       [Bindable("scaleXChanged")]
  757.       override public function get scaleX() : Number
  758.       {
  759.          return _scaleX;
  760.       }
  761.       
  762.       public function get uid() : String
  763.       {
  764.          if(!_uid)
  765.          {
  766.             _uid = toString();
  767.          }
  768.          return _uid;
  769.       }
  770.       
  771.       override public function get mouseX() : Number
  772.       {
  773.          if(!root || root is Stage || root[fakeMouseX] === undefined)
  774.          {
  775.             return super.mouseX;
  776.          }
  777.          return globalToLocal(new Point(root[fakeMouseX],0)).x;
  778.       }
  779.       
  780.       override public function stopDrag() : void
  781.       {
  782.          super.stopDrag();
  783.          invalidateProperties();
  784.          dispatchEvent(new Event("xChanged"));
  785.          dispatchEvent(new Event("yChanged"));
  786.       }
  787.       
  788.       public function get focusPane() : Sprite
  789.       {
  790.          return _focusPane;
  791.       }
  792.       
  793.       public function set tweeningProperties(param1:Array) : void
  794.       {
  795.          _tweeningProperties = param1;
  796.       }
  797.       
  798.       public function horizontalGradientMatrix(param1:Number, param2:Number, param3:Number, param4:Number) : Matrix
  799.       {
  800.          UIComponentGlobals.mx_internal::tempMatrix.createGradientBox(param3,param4,0,param1,param2);
  801.          return UIComponentGlobals.mx_internal::tempMatrix;
  802.       }
  803.       
  804.       public function get isDocument() : Boolean
  805.       {
  806.          return document == this;
  807.       }
  808.       
  809.       public function set validationSubField(param1:String) : void
  810.       {
  811.          _validationSubField = param1;
  812.       }
  813.       
  814.       [Bindable("scaleYChanged")]
  815.       override public function get scaleY() : Number
  816.       {
  817.          return _scaleY;
  818.       }
  819.       
  820.       protected function keyDownHandler(param1:KeyboardEvent) : void
  821.       {
  822.       }
  823.       
  824.       protected function createInFontContext(param1:Class) : Object
  825.       {
  826.          hasFontContextBeenSaved = true;
  827.          var _loc2_:String = StringUtil.trimArrayElements(getStyle("fontFamily"),",");
  828.          var _loc3_:String = getStyle("fontWeight");
  829.          var _loc4_:String = getStyle("fontStyle");
  830.          var _loc5_:* = _loc3_ == "bold";
  831.          var _loc6_:* = _loc4_ == "italic";
  832.          oldEmbeddedFontContext = mx_internal::getFontContext(_loc2_,_loc5_,_loc6_);
  833.          var _loc7_:Object = createInModuleContext(!!oldEmbeddedFontContext ? oldEmbeddedFontContext : moduleFactory,getQualifiedClassName(param1));
  834.          if(_loc7_ == null)
  835.          {
  836.             _loc7_ = new param1();
  837.          }
  838.          return _loc7_;
  839.       }
  840.       
  841.       public function get screen() : Rectangle
  842.       {
  843.          var _loc1_:ISystemManager = systemManager;
  844.          return !!_loc1_ ? _loc1_.screen : null;
  845.       }
  846.       
  847.       protected function focusInHandler(param1:FocusEvent) : void
  848.       {
  849.          var _loc2_:IFocusManager = null;
  850.          if(isOurFocus(DisplayObject(param1.target)))
  851.          {
  852.             _loc2_ = focusManager;
  853.             if(Boolean(_loc2_) && Boolean(_loc2_.showFocusIndicator))
  854.             {
  855.                drawFocus(true);
  856.             }
  857.             ContainerGlobals.checkFocus(param1.relatedObject,this);
  858.          }
  859.       }
  860.       
  861.       public function hasFontContextChanged() : Boolean
  862.       {
  863.          if(!hasFontContextBeenSaved)
  864.          {
  865.             return false;
  866.          }
  867.          var _loc1_:String = StringUtil.trimArrayElements(getStyle("fontFamily"),",");
  868.          var _loc2_:String = getStyle("fontWeight");
  869.          var _loc3_:String = getStyle("fontStyle");
  870.          var _loc4_:* = _loc2_ == "bold";
  871.          var _loc5_:* = _loc3_ == "italic";
  872.          var _loc6_:EmbeddedFont = mx_internal::getEmbeddedFont(_loc1_,_loc4_,_loc5_);
  873.          var _loc7_:IFlexModuleFactory = embeddedFontRegistry.getAssociatedModuleFactory(_loc6_,moduleFactory);
  874.          return _loc7_ != oldEmbeddedFontContext;
  875.       }
  876.       
  877.       [Bindable("explicitHeightChanged")]
  878.       public function get explicitHeight() : Number
  879.       {
  880.          return _explicitHeight;
  881.       }
  882.       
  883.       [Bindable("xChanged")]
  884.       override public function get x() : Number
  885.       {
  886.          return super.x;
  887.       }
  888.       
  889.       [Bindable("yChanged")]
  890.       override public function get y() : Number
  891.       {
  892.          return super.y;
  893.       }
  894.       
  895.       [Bindable("show")]
  896.       [Bindable("hide")]
  897.       override public function get visible() : Boolean
  898.       {
  899.          return _visible;
  900.       }
  901.       
  902.       mx_internal function addOverlay(param1:uint, param2:RoundedRectangle = null) : void
  903.       {
  904.          if(!mx_internal::overlay)
  905.          {
  906.             mx_internal::overlayColor = param1;
  907.             mx_internal::overlay = new UIComponent();
  908.             mx_internal::overlay.name = "overlay";
  909.             mx_internal::overlay.mx_internal::$visible = true;
  910.             mx_internal::fillOverlay(mx_internal::overlay,param1,param2);
  911.             attachOverlay();
  912.             if(!param2)
  913.             {
  914.                addEventListener(ResizeEvent.RESIZE,overlay_resizeHandler);
  915.             }
  916.             mx_internal::overlay.x = 0;
  917.             mx_internal::overlay.y = 0;
  918.             invalidateDisplayList();
  919.             mx_internal::overlayReferenceCount = 1;
  920.          }
  921.          else
  922.          {
  923.             ++mx_internal::overlayReferenceCount;
  924.          }
  925.          dispatchEvent(new ChildExistenceChangedEvent(ChildExistenceChangedEvent.OVERLAY_CREATED,true,false,mx_internal::overlay));
  926.       }
  927.       
  928.       [Bindable("resize")]
  929.       public function get percentWidth() : Number
  930.       {
  931.          return _percentWidth;
  932.       }
  933.       
  934.       public function set explicitMinHeight(param1:Number) : void
  935.       {
  936.          if(mx_internal::_explicitMinHeight == param1)
  937.          {
  938.             return;
  939.          }
  940.          mx_internal::_explicitMinHeight = param1;
  941.          invalidateSize();
  942.          var _loc2_:IInvalidating = parent as IInvalidating;
  943.          if(_loc2_)
  944.          {
  945.             _loc2_.invalidateSize();
  946.             _loc2_.invalidateDisplayList();
  947.          }
  948.          dispatchEvent(new Event("explicitMinHeightChanged"));
  949.       }
  950.       
  951.       public function set automationName(param1:String) : void
  952.       {
  953.          _automationName = param1;
  954.       }
  955.       
  956.       public function get mouseFocusEnabled() : Boolean
  957.       {
  958.          return _mouseFocusEnabled;
  959.       }
  960.       
  961.       mx_internal function getEmbeddedFont(param1:String, param2:Boolean, param3:Boolean) : EmbeddedFont
  962.       {
  963.          if(cachedEmbeddedFont)
  964.          {
  965.             if(cachedEmbeddedFont.fontName == param1 && cachedEmbeddedFont.fontStyle == EmbeddedFontRegistry.getFontStyle(param2,param3))
  966.             {
  967.                return cachedEmbeddedFont;
  968.             }
  969.          }
  970.          cachedEmbeddedFont = new EmbeddedFont(param1,param2,param3);
  971.          return cachedEmbeddedFont;
  972.       }
  973.       
  974.       public function stylesInitialized() : void
  975.       {
  976.       }
  977.       
  978.       public function set errorString(param1:String) : void
  979.       {
  980.          var _loc2_:String = mx_internal::_errorString;
  981.          mx_internal::_errorString = param1;
  982.          ToolTipManager.mx_internal::registerErrorString(this,_loc2_,param1);
  983.          errorStringChanged = true;
  984.          invalidateProperties();
  985.          dispatchEvent(new Event("errorStringChanged"));
  986.       }
  987.       
  988.       public function getExplicitOrMeasuredWidth() : Number
  989.       {
  990.          return !isNaN(explicitWidth) ? explicitWidth : measuredWidth;
  991.       }
  992.       
  993.       final mx_internal function set $height(param1:Number) : void
  994.       {
  995.          super.height = param1;
  996.       }
  997.       
  998.       protected function keyUpHandler(param1:KeyboardEvent) : void
  999.       {
  1000.       }
  1001.       
  1002.       final mx_internal function $removeChild(param1:DisplayObject) : DisplayObject
  1003.       {
  1004.          return super.removeChild(param1);
  1005.       }
  1006.       
  1007.       override public function set scaleX(param1:Number) : void
  1008.       {
  1009.          if(_scaleX == param1)
  1010.          {
  1011.             return;
  1012.          }
  1013.          _scaleX = param1;
  1014.          invalidateProperties();
  1015.          invalidateSize();
  1016.          dispatchEvent(new Event("scaleXChanged"));
  1017.       }
  1018.       
  1019.       override public function set scaleY(param1:Number) : void
  1020.       {
  1021.          if(_scaleY == param1)
  1022.          {
  1023.             return;
  1024.          }
  1025.          _scaleY = param1;
  1026.          invalidateProperties();
  1027.          invalidateSize();
  1028.          dispatchEvent(new Event("scaleYChanged"));
  1029.       }
  1030.       
  1031.       public function set uid(param1:String) : void
  1032.       {
  1033.          this._uid = param1;
  1034.       }
  1035.       
  1036.       public function createAutomationIDPart(param1:IAutomationObject) : Object
  1037.       {
  1038.          if(automationDelegate)
  1039.          {
  1040.             return automationDelegate.createAutomationIDPart(param1);
  1041.          }
  1042.          return null;
  1043.       }
  1044.       
  1045.       public function getAutomationChildAt(param1:int) : IAutomationObject
  1046.       {
  1047.          if(automationDelegate)
  1048.          {
  1049.             return automationDelegate.getAutomationChildAt(param1);
  1050.          }
  1051.          return null;
  1052.       }
  1053.       
  1054.       mx_internal function get isEffectStarted() : Boolean
  1055.       {
  1056.          return _isEffectStarted;
  1057.       }
  1058.       
  1059.       override public function get parent() : DisplayObjectContainer
  1060.       {
  1061.          try
  1062.          {
  1063.             return !!mx_internal::_parent ? mx_internal::_parent : super.parent;
  1064.          }
  1065.          catch(e:SecurityError)
  1066.          {
  1067.          }
  1068.          return null;
  1069.       }
  1070.       
  1071.       override public function get mouseY() : Number
  1072.       {
  1073.          if(!root || root is Stage || root[fakeMouseY] === undefined)
  1074.          {
  1075.             return super.mouseY;
  1076.          }
  1077.          return globalToLocal(new Point(0,root[fakeMouseY])).y;
  1078.       }
  1079.       
  1080.       public function setActualSize(param1:Number, param2:Number) : void
  1081.       {
  1082.          var _loc3_:Boolean = false;
  1083.          if(mx_internal::_width != param1)
  1084.          {
  1085.             mx_internal::_width = param1;
  1086.             dispatchEvent(new Event("widthChanged"));
  1087.             _loc3_ = true;
  1088.          }
  1089.          if(mx_internal::_height != param2)
  1090.          {
  1091.             mx_internal::_height = param2;
  1092.             dispatchEvent(new Event("heightChanged"));
  1093.             _loc3_ = true;
  1094.          }
  1095.          if(_loc3_)
  1096.          {
  1097.             invalidateDisplayList();
  1098.             dispatchResizeEvent();
  1099.          }
  1100.       }
  1101.       
  1102.       private function focusObj_resizeHandler(param1:ResizeEvent) : void
  1103.       {
  1104.          adjustFocusRect();
  1105.       }
  1106.       
  1107.       mx_internal function adjustSizesForScaleChanges() : void
  1108.       {
  1109.          var _loc3_:Number = NaN;
  1110.          var _loc1_:Number = scaleX;
  1111.          var _loc2_:Number = scaleY;
  1112.          if(_loc1_ != oldScaleX)
  1113.          {
  1114.             _loc3_ = Math.abs(_loc1_ / oldScaleX);
  1115.             if(explicitMinWidth)
  1116.             {
  1117.                explicitMinWidth *= _loc3_;
  1118.             }
  1119.             if(!isNaN(explicitWidth))
  1120.             {
  1121.                explicitWidth *= _loc3_;
  1122.             }
  1123.             if(explicitMaxWidth)
  1124.             {
  1125.                explicitMaxWidth *= _loc3_;
  1126.             }
  1127.             oldScaleX = _loc1_;
  1128.          }
  1129.          if(_loc2_ != oldScaleY)
  1130.          {
  1131.             _loc3_ = Math.abs(_loc2_ / oldScaleY);
  1132.             if(explicitMinHeight)
  1133.             {
  1134.                explicitMinHeight *= _loc3_;
  1135.             }
  1136.             if(explicitHeight)
  1137.             {
  1138.                explicitHeight *= _loc3_;
  1139.             }
  1140.             if(explicitMaxHeight)
  1141.             {
  1142.                explicitMaxHeight *= _loc3_;
  1143.             }
  1144.             oldScaleY = _loc2_;
  1145.          }
  1146.       }
  1147.       
  1148.       public function set focusPane(param1:Sprite) : void
  1149.       {
  1150.          if(param1)
  1151.          {
  1152.             addChild(param1);
  1153.             param1.x = 0;
  1154.             param1.y = 0;
  1155.             param1.scrollRect = null;
  1156.             _focusPane = param1;
  1157.          }
  1158.          else
  1159.          {
  1160.             removeChild(_focusPane);
  1161.             _focusPane.mask = null;
  1162.             _focusPane = null;
  1163.          }
  1164.       }
  1165.       
  1166.       public function determineTextFormatFromStyles() : UITextFormat
  1167.       {
  1168.          var _loc2_:String = null;
  1169.          var _loc1_:UITextFormat = cachedTextFormat;
  1170.          if(!_loc1_)
  1171.          {
  1172.             _loc2_ = StringUtil.trimArrayElements(_inheritingStyles.fontFamily,",");
  1173.             _loc1_ = new UITextFormat(mx_internal::getNonNullSystemManager(),_loc2_);
  1174.             _loc1_.moduleFactory = moduleFactory;
  1175.             _loc1_.align = _inheritingStyles.textAlign;
  1176.             _loc1_.bold = _inheritingStyles.fontWeight == "bold";
  1177.             _loc1_.color = enabled ? _inheritingStyles.color : _inheritingStyles.disabledColor;
  1178.             _loc1_.font = _loc2_;
  1179.             _loc1_.indent = _inheritingStyles.textIndent;
  1180.             _loc1_.italic = _inheritingStyles.fontStyle == "italic";
  1181.             _loc1_.kerning = _inheritingStyles.kerning;
  1182.             _loc1_.leading = _nonInheritingStyles.leading;
  1183.             _loc1_.leftMargin = _nonInheritingStyles.paddingLeft;
  1184.             _loc1_.letterSpacing = _inheritingStyles.letterSpacing;
  1185.             _loc1_.rightMargin = _nonInheritingStyles.paddingRight;
  1186.             _loc1_.size = _inheritingStyles.fontSize;
  1187.             _loc1_.underline = _nonInheritingStyles.textDecoration == "underline";
  1188.             _loc1_.antiAliasType = _inheritingStyles.fontAntiAliasType;
  1189.             _loc1_.gridFitType = _inheritingStyles.fontGridFitType;
  1190.             _loc1_.sharpness = _inheritingStyles.fontSharpness;
  1191.             _loc1_.thickness = _inheritingStyles.fontThickness;
  1192.             cachedTextFormat = _loc1_;
  1193.          }
  1194.          return _loc1_;
  1195.       }
  1196.       
  1197.       public function validationResultHandler(param1:ValidationResultEvent) : void
  1198.       {
  1199.          var _loc2_:String = null;
  1200.          var _loc3_:ValidationResult = null;
  1201.          var _loc4_:int = 0;
  1202.          if(param1.type == ValidationResultEvent.VALID)
  1203.          {
  1204.             if(errorString != "")
  1205.             {
  1206.                errorString = "";
  1207.                dispatchEvent(new FlexEvent(FlexEvent.VALID));
  1208.             }
  1209.          }
  1210.          else
  1211.          {
  1212.             if(validationSubField != null && validationSubField != "" && Boolean(param1.results))
  1213.             {
  1214.                _loc4_ = 0;
  1215.                while(_loc4_ < param1.results.length)
  1216.                {
  1217.                   _loc3_ = param1.results[_loc4_];
  1218.                   if(_loc3_.subField == validationSubField)
  1219.                   {
  1220.                      if(_loc3_.isError)
  1221.                      {
  1222.                         _loc2_ = _loc3_.errorMessage;
  1223.                      }
  1224.                      else if(errorString != "")
  1225.                      {
  1226.                         errorString = "";
  1227.                         dispatchEvent(new FlexEvent(FlexEvent.VALID));
  1228.                      }
  1229.                      break;
  1230.                   }
  1231.                   _loc4_++;
  1232.                }
  1233.             }
  1234.             else if(Boolean(param1.results) && param1.results.length > 0)
  1235.             {
  1236.                _loc2_ = param1.results[0].errorMessage;
  1237.             }
  1238.             if(Boolean(_loc2_) && errorString != _loc2_)
  1239.             {
  1240.                errorString = _loc2_;
  1241.                dispatchEvent(new FlexEvent(FlexEvent.INVALID));
  1242.             }
  1243.          }
  1244.       }
  1245.       
  1246.       public function invalidateProperties() : void
  1247.       {
  1248.          if(!mx_internal::invalidatePropertiesFlag)
  1249.          {
  1250.             mx_internal::invalidatePropertiesFlag = true;
  1251.             if(Boolean(parent) && Boolean(UIComponentGlobals.mx_internal::layoutManager))
  1252.             {
  1253.                UIComponentGlobals.mx_internal::layoutManager.invalidateProperties(this);
  1254.             }
  1255.          }
  1256.       }
  1257.       
  1258.       public function get inheritingStyles() : Object
  1259.       {
  1260.          return _inheritingStyles;
  1261.       }
  1262.       
  1263.       private function focusObj_scrollHandler(param1:Event) : void
  1264.       {
  1265.          adjustFocusRect();
  1266.       }
  1267.       
  1268.       final mx_internal function get $x() : Number
  1269.       {
  1270.          return super.x;
  1271.       }
  1272.       
  1273.       final mx_internal function get $y() : Number
  1274.       {
  1275.          return super.y;
  1276.       }
  1277.       
  1278.       public function setConstraintValue(param1:String, param2:*) : void
  1279.       {
  1280.          setStyle(param1,param2);
  1281.       }
  1282.       
  1283.       protected function resourcesChanged() : void
  1284.       {
  1285.       }
  1286.       
  1287.       public function registerEffects(param1:Array) : void
  1288.       {
  1289.          var _loc4_:String = null;
  1290.          var _loc2_:int = int(param1.length);
  1291.          var _loc3_:int = 0;
  1292.          while(_loc3_ < _loc2_)
  1293.          {
  1294.             _loc4_ = EffectManager.mx_internal::getEventForEffectTrigger(param1[_loc3_]);
  1295.             if(_loc4_ != null && _loc4_ != "")
  1296.             {
  1297.                addEventListener(_loc4_,EffectManager.mx_internal::eventHandler,false,EventPriority.EFFECT);
  1298.             }
  1299.             _loc3_++;
  1300.          }
  1301.       }
  1302.       
  1303.       [Bindable("explicitMinWidthChanged")]
  1304.       public function get explicitMinWidth() : Number
  1305.       {
  1306.          return mx_internal::_explicitMinWidth;
  1307.       }
  1308.       
  1309.       private function filterChangeHandler(param1:Event) : void
  1310.       {
  1311.          super.filters = _filters;
  1312.       }
  1313.       
  1314.       override public function set visible(param1:Boolean) : void
  1315.       {
  1316.          setVisible(param1);
  1317.       }
  1318.       
  1319.       public function set explicitHeight(param1:Number) : void
  1320.       {
  1321.          if(_explicitHeight == param1)
  1322.          {
  1323.             return;
  1324.          }
  1325.          if(!isNaN(param1))
  1326.          {
  1327.             _percentHeight = NaN;
  1328.          }
  1329.          _explicitHeight = param1;
  1330.          invalidateSize();
  1331.          var _loc2_:IInvalidating = parent as IInvalidating;
  1332.          if(Boolean(_loc2_) && includeInLayout)
  1333.          {
  1334.             _loc2_.invalidateSize();
  1335.             _loc2_.invalidateDisplayList();
  1336.          }
  1337.          dispatchEvent(new Event("explicitHeightChanged"));
  1338.       }
  1339.       
  1340.       override public function set x(param1:Number) : void
  1341.       {
  1342.          if(super.x == param1)
  1343.          {
  1344.             return;
  1345.          }
  1346.          super.x = param1;
  1347.          invalidateProperties();
  1348.          dispatchEvent(new Event("xChanged"));
  1349.       }
  1350.       
  1351.       public function set showInAutomationHierarchy(param1:Boolean) : void
  1352.       {
  1353.          _showInAutomationHierarchy = param1;
  1354.       }
  1355.       
  1356.       override public function set y(param1:Number) : void
  1357.       {
  1358.          if(super.y == param1)
  1359.          {
  1360.             return;
  1361.          }
  1362.          super.y = param1;
  1363.          invalidateProperties();
  1364.          dispatchEvent(new Event("yChanged"));
  1365.       }
  1366.       
  1367.       private function resourceManager_changeHandler(param1:Event) : void
  1368.       {
  1369.          resourcesChanged();
  1370.       }
  1371.       
  1372.       public function set systemManager(param1:ISystemManager) : void
  1373.       {
  1374.          _systemManager = param1;
  1375.          _systemManagerDirty = false;
  1376.       }
  1377.       
  1378.       mx_internal function getFocusObject() : DisplayObject
  1379.       {
  1380.          var _loc1_:IFocusManager = focusManager;
  1381.          if(!_loc1_ || !_loc1_.focusPane)
  1382.          {
  1383.             return null;
  1384.          }
  1385.          return _loc1_.focusPane.numChildren == 0 ? null : _loc1_.focusPane.getChildAt(0);
  1386.       }
  1387.       
  1388.       public function set percentWidth(param1:Number) : void
  1389.       {
  1390.          if(_percentWidth == param1)
  1391.          {
  1392.             return;
  1393.          }
  1394.          if(!isNaN(param1))
  1395.          {
  1396.             _explicitWidth = NaN;
  1397.          }
  1398.          _percentWidth = param1;
  1399.          var _loc2_:IInvalidating = parent as IInvalidating;
  1400.          if(_loc2_)
  1401.          {
  1402.             _loc2_.invalidateSize();
  1403.             _loc2_.invalidateDisplayList();
  1404.          }
  1405.       }
  1406.       
  1407.       public function get moduleFactory() : IFlexModuleFactory
  1408.       {
  1409.          return _moduleFactory;
  1410.       }
  1411.       
  1412.       override public function addChild(param1:DisplayObject) : DisplayObject
  1413.       {
  1414.          var _loc2_:DisplayObjectContainer = param1.parent;
  1415.          if(Boolean(_loc2_) && !(_loc2_ is Loader))
  1416.          {
  1417.             _loc2_.removeChild(param1);
  1418.          }
  1419.          var _loc3_:int = Boolean(mx_internal::overlayReferenceCount) && param1 != mx_internal::overlay ? int(Math.max(0,super.numChildren - 1)) : super.numChildren;
  1420.          mx_internal::addingChild(param1);
  1421.          mx_internal::$addChildAt(param1,_loc3_);
  1422.          mx_internal::childAdded(param1);
  1423.          return param1;
  1424.       }
  1425.       
  1426.       public function get document() : Object
  1427.       {
  1428.          return mx_internal::_document;
  1429.       }
  1430.       
  1431.       public function set mouseFocusEnabled(param1:Boolean) : void
  1432.       {
  1433.          _mouseFocusEnabled = param1;
  1434.       }
  1435.       
  1436.       final mx_internal function $addChild(param1:DisplayObject) : DisplayObject
  1437.       {
  1438.          return super.addChild(param1);
  1439.       }
  1440.       
  1441.       mx_internal function setThemeColor(param1:Object) : void
  1442.       {
  1443.          var _loc2_:Number = NaN;
  1444.          if(_loc2_ is String)
  1445.          {
  1446.             _loc2_ = parseInt(String(param1));
  1447.          }
  1448.          else
  1449.          {
  1450.             _loc2_ = Number(param1);
  1451.          }
  1452.          if(isNaN(_loc2_))
  1453.          {
  1454.             _loc2_ = StyleManager.getColorName(param1);
  1455.          }
  1456.          var _loc3_:Number = ColorUtil.adjustBrightness2(_loc2_,50);
  1457.          var _loc4_:Number = ColorUtil.adjustBrightness2(_loc2_,70);
  1458.          setStyle("selectionColor",_loc3_);
  1459.          setStyle("rollOverColor",_loc4_);
  1460.       }
  1461.       
  1462.       [Bindable("explicitMaxWidthChanged")]
  1463.       public function get explicitMaxWidth() : Number
  1464.       {
  1465.          return mx_internal::_explicitMaxWidth;
  1466.       }
  1467.       
  1468.       public function get id() : String
  1469.       {
  1470.          return _id;
  1471.       }
  1472.       
  1473.       [Bindable("heightChanged")]
  1474.       override public function get height() : Number
  1475.       {
  1476.          return mx_internal::_height;
  1477.       }
  1478.       
  1479.       public function set minWidth(param1:Number) : void
  1480.       {
  1481.          if(explicitMinWidth == param1)
  1482.          {
  1483.             return;
  1484.          }
  1485.          explicitMinWidth = param1;
  1486.       }
  1487.       
  1488.       public function set currentState(param1:String) : void
  1489.       {
  1490.          setCurrentState(param1,true);
  1491.       }
  1492.       
  1493.       public function getRepeaterItem(param1:int = -1) : Object
  1494.       {
  1495.          var _loc2_:Array = repeaters;
  1496.          if(param1 == -1)
  1497.          {
  1498.             param1 = int(_loc2_.length - 1);
  1499.          }
  1500.          return _loc2_[param1].getItemAt(repeaterIndices[param1]);
  1501.       }
  1502.       
  1503.       public function executeBindings(param1:Boolean = false) : void
  1504.       {
  1505.          var _loc2_:Object = Boolean(descriptor) && Boolean(descriptor.document) ? descriptor.document : parentDocument;
  1506.          BindingManager.executeBindings(_loc2_,id,this);
  1507.       }
  1508.       
  1509.       public function replayAutomatableEvent(param1:Event) : Boolean
  1510.       {
  1511.          if(automationDelegate)
  1512.          {
  1513.             return automationDelegate.replayAutomatableEvent(param1);
  1514.          }
  1515.          return false;
  1516.       }
  1517.       
  1518.       mx_internal function getFontContext(param1:String, param2:Boolean, param3:Boolean) : IFlexModuleFactory
  1519.       {
  1520.          return embeddedFontRegistry.getAssociatedModuleFactory(mx_internal::getEmbeddedFont(param1,param2,param3),moduleFactory);
  1521.       }
  1522.       
  1523.       public function get instanceIndex() : int
  1524.       {
  1525.          return !!_instanceIndices ? int(_instanceIndices[_instanceIndices.length - 1]) : -1;
  1526.       }
  1527.       
  1528.       public function set measuredWidth(param1:Number) : void
  1529.       {
  1530.          _measuredWidth = param1;
  1531.       }
  1532.       
  1533.       public function effectFinished(param1:IEffectInstance) : void
  1534.       {
  1535.          _endingEffectInstances.push(param1);
  1536.          invalidateProperties();
  1537.          UIComponentGlobals.mx_internal::layoutManager.addEventListener(FlexEvent.UPDATE_COMPLETE,updateCompleteHandler,false,0,true);
  1538.       }
  1539.       
  1540.       mx_internal function set isEffectStarted(param1:Boolean) : void
  1541.       {
  1542.          _isEffectStarted = param1;
  1543.       }
  1544.       
  1545.       mx_internal function fillOverlay(param1:UIComponent, param2:uint, param3:RoundedRectangle = null) : void
  1546.       {
  1547.          if(!param3)
  1548.          {
  1549.             param3 = new RoundedRectangle(0,0,unscaledWidth,unscaledHeight,0);
  1550.          }
  1551.          var _loc4_:Graphics = param1.graphics;
  1552.          _loc4_.clear();
  1553.          _loc4_.beginFill(param2);
  1554.          _loc4_.drawRoundRect(param3.x,param3.y,param3.width,param3.height,param3.cornerRadius * 2,param3.cornerRadius * 2);
  1555.          _loc4_.endFill();
  1556.       }
  1557.       
  1558.       public function get instanceIndices() : Array
  1559.       {
  1560.          return !!_instanceIndices ? _instanceIndices.slice(0) : null;
  1561.       }
  1562.       
  1563.       mx_internal function childAdded(param1:DisplayObject) : void
  1564.       {
  1565.          if(param1 is UIComponent)
  1566.          {
  1567.             if(!UIComponent(param1).initialized)
  1568.             {
  1569.                UIComponent(param1).initialize();
  1570.             }
  1571.          }
  1572.          else if(param1 is IUIComponent)
  1573.          {
  1574.             IUIComponent(param1).initialize();
  1575.          }
  1576.       }
  1577.       
  1578.       public function globalToContent(param1:Point) : Point
  1579.       {
  1580.          return globalToLocal(param1);
  1581.       }
  1582.       
  1583.       mx_internal function removingChild(param1:DisplayObject) : void
  1584.       {
  1585.       }
  1586.       
  1587.       mx_internal function getEffectsForProperty(param1:String) : Array
  1588.       {
  1589.          return mx_internal::_affectedProperties[param1] != undefined ? mx_internal::_affectedProperties[param1] : [];
  1590.       }
  1591.       
  1592.       override public function removeChildAt(param1:int) : DisplayObject
  1593.       {
  1594.          var _loc2_:DisplayObject = getChildAt(param1);
  1595.          mx_internal::removingChild(_loc2_);
  1596.          mx_internal::$removeChild(_loc2_);
  1597.          mx_internal::childRemoved(_loc2_);
  1598.          return _loc2_;
  1599.       }
  1600.       
  1601.       protected function measure() : void
  1602.       {
  1603.          measuredMinWidth = 0;
  1604.          measuredMinHeight = 0;
  1605.          measuredWidth = 0;
  1606.          measuredHeight = 0;
  1607.       }
  1608.       
  1609.       public function set owner(param1:DisplayObjectContainer) : void
  1610.       {
  1611.          _owner = param1;
  1612.       }
  1613.       
  1614.       mx_internal function getNonNullSystemManager() : ISystemManager
  1615.       {
  1616.          var _loc1_:ISystemManager = systemManager;
  1617.          if(!_loc1_)
  1618.          {
  1619.             _loc1_ = ISystemManager(SystemManager.getSWFRoot(this));
  1620.          }
  1621.          if(!_loc1_)
  1622.          {
  1623.             return SystemManagerGlobals.topLevelSystemManagers[0];
  1624.          }
  1625.          return _loc1_;
  1626.       }
  1627.       
  1628.       protected function get unscaledWidth() : Number
  1629.       {
  1630.          return width / Math.abs(scaleX);
  1631.       }
  1632.       
  1633.       public function set processedDescriptors(param1:Boolean) : void
  1634.       {
  1635.          _processedDescriptors = param1;
  1636.          if(param1)
  1637.          {
  1638.             dispatchEvent(new FlexEvent(FlexEvent.INITIALIZE));
  1639.          }
  1640.       }
  1641.       
  1642.       private function processEffectFinished(param1:Array) : void
  1643.       {
  1644.          var _loc3_:int = 0;
  1645.          var _loc4_:IEffectInstance = null;
  1646.          var _loc5_:IEffectInstance = null;
  1647.          var _loc6_:Array = null;
  1648.          var _loc7_:int = 0;
  1649.          var _loc8_:String = null;
  1650.          var _loc9_:int = 0;
  1651.          var _loc2_:int = int(mx_internal::_effectsStarted.length - 1);
  1652.          while(_loc2_ >= 0)
  1653.          {
  1654.             _loc3_ = 0;
  1655.             while(_loc3_ < param1.length)
  1656.             {
  1657.                _loc4_ = param1[_loc3_];
  1658.                if(_loc4_ == mx_internal::_effectsStarted[_loc2_])
  1659.                {
  1660.                   _loc5_ = mx_internal::_effectsStarted[_loc2_];
  1661.                   mx_internal::_effectsStarted.splice(_loc2_,1);
  1662.                   _loc6_ = _loc5_.effect.getAffectedProperties();
  1663.                   _loc7_ = 0;
  1664.                   while(_loc7_ < _loc6_.length)
  1665.                   {
  1666.                      _loc8_ = _loc6_[_loc7_];
  1667.                      if(mx_internal::_affectedProperties[_loc8_] != undefined)
  1668.                      {
  1669.                         _loc9_ = 0;
  1670.                         while(_loc9_ < mx_internal::_affectedProperties[_loc8_].length)
  1671.                         {
  1672.                            if(mx_internal::_affectedProperties[_loc8_][_loc9_] == _loc4_)
  1673.                            {
  1674.                               mx_internal::_affectedProperties[_loc8_].splice(_loc9_,1);
  1675.                               break;
  1676.                            }
  1677.                            _loc9_++;
  1678.                         }
  1679.                         if(mx_internal::_affectedProperties[_loc8_].length == 0)
  1680.                         {
  1681.                            delete mx_internal::_affectedProperties[_loc8_];
  1682.                         }
  1683.                      }
  1684.                      _loc7_++;
  1685.                   }
  1686.                   break;
  1687.                }
  1688.                _loc3_++;
  1689.             }
  1690.             _loc2_--;
  1691.          }
  1692.          mx_internal::isEffectStarted = mx_internal::_effectsStarted.length > 0 ? true : false;
  1693.          if(Boolean(_loc4_) && _loc4_.hideFocusRing)
  1694.          {
  1695.             preventDrawFocus = false;
  1696.          }
  1697.       }
  1698.       
  1699.       private function commitCurrentState() : void
  1700.       {
  1701.          var _loc3_:StateChangeEvent = null;
  1702.          var _loc1_:IEffect = playStateTransition ? getTransition(_currentState,requestedCurrentState) : null;
  1703.          var _loc2_:String = findCommonBaseState(_currentState,requestedCurrentState);
  1704.          var _loc4_:String = !!_currentState ? _currentState : "";
  1705.          var _loc5_:State = getState(requestedCurrentState);
  1706.          if(_currentTransitionEffect)
  1707.          {
  1708.             _currentTransitionEffect.end();
  1709.          }
  1710.          initializeState(requestedCurrentState);
  1711.          if(_loc1_)
  1712.          {
  1713.             _loc1_.captureStartValues();
  1714.          }
  1715.          _loc3_ = new StateChangeEvent(StateChangeEvent.CURRENT_STATE_CHANGING);
  1716.          _loc3_.oldState = _loc4_;
  1717.          _loc3_.newState = !!requestedCurrentState ? requestedCurrentState : "";
  1718.          dispatchEvent(_loc3_);
  1719.          if(isBaseState(_currentState))
  1720.          {
  1721.             dispatchEvent(new FlexEvent(FlexEvent.EXIT_STATE));
  1722.          }
  1723.          removeState(_currentState,_loc2_);
  1724.          _currentState = requestedCurrentState;
  1725.          if(isBaseState(currentState))
  1726.          {
  1727.             dispatchEvent(new FlexEvent(FlexEvent.ENTER_STATE));
  1728.          }
  1729.          else
  1730.          {
  1731.             applyState(_currentState,_loc2_);
  1732.          }
  1733.          _loc3_ = new StateChangeEvent(StateChangeEvent.CURRENT_STATE_CHANGE);
  1734.          _loc3_.oldState = _loc4_;
  1735.          _loc3_.newState = !!_currentState ? _currentState : "";
  1736.          dispatchEvent(_loc3_);
  1737.          if(_loc1_)
  1738.          {
  1739.             UIComponentGlobals.mx_internal::layoutManager.validateNow();
  1740.             _currentTransitionEffect = _loc1_;
  1741.             _loc1_.addEventListener(EffectEvent.EFFECT_END,transition_effectEndHandler);
  1742.             _loc1_.play();
  1743.          }
  1744.       }
  1745.       
  1746.       [Bindable("includeInLayoutChanged")]
  1747.       public function get includeInLayout() : Boolean
  1748.       {
  1749.          return _includeInLayout;
  1750.       }
  1751.       
  1752.       private function dispatchResizeEvent() : void
  1753.       {
  1754.          var _loc1_:ResizeEvent = new ResizeEvent(ResizeEvent.RESIZE);
  1755.          _loc1_.oldWidth = oldWidth;
  1756.          _loc1_.oldHeight = oldHeight;
  1757.          dispatchEvent(_loc1_);
  1758.          oldWidth = width;
  1759.          oldHeight = height;
  1760.       }
  1761.       
  1762.       public function set maxWidth(param1:Number) : void
  1763.       {
  1764.          if(explicitMaxWidth == param1)
  1765.          {
  1766.             return;
  1767.          }
  1768.          explicitMaxWidth = param1;
  1769.       }
  1770.       
  1771.       public function validateDisplayList() : void
  1772.       {
  1773.          var _loc1_:ISystemManager = null;
  1774.          var _loc2_:Number = NaN;
  1775.          var _loc3_:Number = NaN;
  1776.          if(mx_internal::invalidateDisplayListFlag)
  1777.          {
  1778.             _loc1_ = parent as ISystemManager;
  1779.             if(_loc1_)
  1780.             {
  1781.                if(_loc1_ is SystemManagerProxy || _loc1_ == systemManager.topLevelSystemManager && _loc1_.document != this)
  1782.                {
  1783.                   setActualSize(getExplicitOrMeasuredWidth(),getExplicitOrMeasuredHeight());
  1784.                }
  1785.             }
  1786.             _loc2_ = scaleX == 0 ? 0 : width / scaleX;
  1787.             _loc3_ = scaleY == 0 ? 0 : height / scaleY;
  1788.             if(Math.abs(_loc2_ - lastUnscaledWidth) < 0.00001)
  1789.             {
  1790.                _loc2_ = lastUnscaledWidth;
  1791.             }
  1792.             if(Math.abs(_loc3_ - lastUnscaledHeight) < 0.00001)
  1793.             {
  1794.                _loc3_ = lastUnscaledHeight;
  1795.             }
  1796.             updateDisplayList(_loc2_,_loc3_);
  1797.             lastUnscaledWidth = _loc2_;
  1798.             lastUnscaledHeight = _loc3_;
  1799.             mx_internal::invalidateDisplayListFlag = false;
  1800.          }
  1801.       }
  1802.       
  1803.       public function contentToGlobal(param1:Point) : Point
  1804.       {
  1805.          return localToGlobal(param1);
  1806.       }
  1807.       
  1808.       public function resolveAutomationIDPart(param1:Object) : Array
  1809.       {
  1810.          if(automationDelegate)
  1811.          {
  1812.             return automationDelegate.resolveAutomationIDPart(param1);
  1813.          }
  1814.          return [];
  1815.       }
  1816.       
  1817.       public function set inheritingStyles(param1:Object) : void
  1818.       {
  1819.          _inheritingStyles = param1;
  1820.       }
  1821.       
  1822.       public function setFocus() : void
  1823.       {
  1824.          var _loc1_:ISystemManager = systemManager;
  1825.          if(Boolean(_loc1_) && (_loc1_.stage || _loc1_.useSWFBridge()))
  1826.          {
  1827.             if(UIComponentGlobals.mx_internal::callLaterDispatcherCount == 0)
  1828.             {
  1829.                _loc1_.stage.focus = this;
  1830.                UIComponentGlobals.mx_internal::nextFocusObject = null;
  1831.             }
  1832.             else
  1833.             {
  1834.                UIComponentGlobals.mx_internal::nextFocusObject = this;
  1835.                _loc1_.addEventListener(FlexEvent.ENTER_FRAME,setFocusLater);
  1836.             }
  1837.          }
  1838.          else
  1839.          {
  1840.             UIComponentGlobals.mx_internal::nextFocusObject = this;
  1841.             callLater(setFocusLater);
  1842.          }
  1843.       }
  1844.       
  1845.       private function getTransition(param1:String, param2:String) : IEffect
  1846.       {
  1847.          var _loc6_:Transition = null;
  1848.          var _loc3_:IEffect = null;
  1849.          var _loc4_:int = 0;
  1850.          if(!transitions)
  1851.          {
  1852.             return null;
  1853.          }
  1854.          if(!param1)
  1855.          {
  1856.             param1 = "";
  1857.          }
  1858.          if(!param2)
  1859.          {
  1860.             param2 = "";
  1861.          }
  1862.          var _loc5_:int = 0;
  1863.          while(_loc5_ < transitions.length)
  1864.          {
  1865.             _loc6_ = transitions[_loc5_];
  1866.             if(_loc6_.fromState == "*" && _loc6_.toState == "*" && _loc4_ < 1)
  1867.             {
  1868.                _loc3_ = _loc6_.effect;
  1869.                _loc4_ = 1;
  1870.             }
  1871.             else if(_loc6_.fromState == param1 && _loc6_.toState == "*" && _loc4_ < 2)
  1872.             {
  1873.                _loc3_ = _loc6_.effect;
  1874.                _loc4_ = 2;
  1875.             }
  1876.             else if(_loc6_.fromState == "*" && _loc6_.toState == param2 && _loc4_ < 3)
  1877.             {
  1878.                _loc3_ = _loc6_.effect;
  1879.                _loc4_ = 3;
  1880.             }
  1881.             else if(_loc6_.fromState == param1 && _loc6_.toState == param2 && _loc4_ < 4)
  1882.             {
  1883.                _loc3_ = _loc6_.effect;
  1884.                _loc4_ = 4;
  1885.                break;
  1886.             }
  1887.             _loc5_++;
  1888.          }
  1889.          return _loc3_;
  1890.       }
  1891.       
  1892.       public function set initialized(param1:Boolean) : void
  1893.       {
  1894.          _initialized = param1;
  1895.          if(param1)
  1896.          {
  1897.             setVisible(_visible,true);
  1898.             dispatchEvent(new FlexEvent(FlexEvent.CREATION_COMPLETE));
  1899.          }
  1900.       }
  1901.       
  1902.       final mx_internal function set $y(param1:Number) : void
  1903.       {
  1904.          super.y = param1;
  1905.       }
  1906.       
  1907.       public function owns(param1:DisplayObject) : Boolean
  1908.       {
  1909.          var child:DisplayObject = param1;
  1910.          var childList:IChildList = this is IRawChildrenContainer ? IRawChildrenContainer(this).rawChildren : IChildList(this);
  1911.          if(childList.contains(child))
  1912.          {
  1913.             return true;
  1914.          }
  1915.          try
  1916.          {
  1917.             while(Boolean(child) && child != this)
  1918.             {
  1919.                if(child is IUIComponent)
  1920.                {
  1921.                   child = IUIComponent(child).owner;
  1922.                }
  1923.                else
  1924.                {
  1925.                   child = child.parent;
  1926.                }
  1927.             }
  1928.          }
  1929.          catch(e:SecurityError)
  1930.          {
  1931.             return false;
  1932.          }
  1933.          return child == this;
  1934.       }
  1935.       
  1936.       public function setVisible(param1:Boolean, param2:Boolean = false) : void
  1937.       {
  1938.          _visible = param1;
  1939.          if(!initialized)
  1940.          {
  1941.             return;
  1942.          }
  1943.          if(mx_internal::$visible == param1)
  1944.          {
  1945.             return;
  1946.          }
  1947.          mx_internal::$visible = param1;
  1948.          if(!param2)
  1949.          {
  1950.             dispatchEvent(new FlexEvent(param1 ? FlexEvent.SHOW : FlexEvent.HIDE));
  1951.          }
  1952.       }
  1953.       
  1954.       final mx_internal function $addChildAt(param1:DisplayObject, param2:int) : DisplayObject
  1955.       {
  1956.          return super.addChildAt(param1,param2);
  1957.       }
  1958.       
  1959.       public function deleteReferenceOnParentDocument(param1:IFlexDisplayObject) : void
  1960.       {
  1961.          var _loc2_:Array = null;
  1962.          var _loc3_:Object = null;
  1963.          var _loc4_:Array = null;
  1964.          var _loc5_:int = 0;
  1965.          var _loc6_:int = 0;
  1966.          var _loc7_:int = 0;
  1967.          var _loc8_:Object = null;
  1968.          var _loc9_:PropertyChangeEvent = null;
  1969.          if(Boolean(id) && id != "")
  1970.          {
  1971.             _loc2_ = _instanceIndices;
  1972.             if(!_loc2_)
  1973.             {
  1974.                param1[id] = null;
  1975.             }
  1976.             else
  1977.             {
  1978.                _loc3_ = param1[id];
  1979.                if(!_loc3_)
  1980.                {
  1981.                   return;
  1982.                }
  1983.                _loc4_ = [];
  1984.                _loc4_.push(_loc3_);
  1985.                _loc5_ = int(_loc2_.length);
  1986.                _loc6_ = 0;
  1987.                while(_loc6_ < _loc5_ - 1)
  1988.                {
  1989.                   _loc8_ = _loc3_[_loc2_[_loc6_]];
  1990.                   if(!_loc8_)
  1991.                   {
  1992.                      return;
  1993.                   }
  1994.                   _loc3_ = _loc8_;
  1995.                   _loc4_.push(_loc3_);
  1996.                   _loc6_++;
  1997.                }
  1998.                _loc3_.splice(_loc2_[_loc5_ - 1],1);
  1999.                _loc7_ = int(_loc4_.length - 1);
  2000.                while(_loc7_ > 0)
  2001.                {
  2002.                   if(_loc4_[_loc7_].length == 0)
  2003.                   {
  2004.                      _loc4_[_loc7_ - 1].splice(_loc2_[_loc7_],1);
  2005.                   }
  2006.                   _loc7_--;
  2007.                }
  2008.                if(_loc4_.length > 0 && _loc4_[0].length == 0)
  2009.                {
  2010.                   param1[id] = null;
  2011.                }
  2012.                else
  2013.                {
  2014.                   _loc9_ = PropertyChangeEvent.createUpdateEvent(param1,id,param1[id],param1[id]);
  2015.                   param1.dispatchEvent(_loc9_);
  2016.                }
  2017.             }
  2018.          }
  2019.       }
  2020.       
  2021.       public function get nonInheritingStyles() : Object
  2022.       {
  2023.          return _nonInheritingStyles;
  2024.       }
  2025.       
  2026.       public function effectStarted(param1:IEffectInstance) : void
  2027.       {
  2028.          var _loc4_:String = null;
  2029.          mx_internal::_effectsStarted.push(param1);
  2030.          var _loc2_:Array = param1.effect.getAffectedProperties();
  2031.          var _loc3_:int = 0;
  2032.          while(_loc3_ < _loc2_.length)
  2033.          {
  2034.             _loc4_ = _loc2_[_loc3_];
  2035.             if(mx_internal::_affectedProperties[_loc4_] == undefined)
  2036.             {
  2037.                mx_internal::_affectedProperties[_loc4_] = [];
  2038.             }
  2039.             mx_internal::_affectedProperties[_loc4_].push(param1);
  2040.             _loc3_++;
  2041.          }
  2042.          mx_internal::isEffectStarted = true;
  2043.          if(param1.hideFocusRing)
  2044.          {
  2045.             preventDrawFocus = true;
  2046.             drawFocus(false);
  2047.          }
  2048.       }
  2049.       
  2050.       final mx_internal function set $x(param1:Number) : void
  2051.       {
  2052.          super.x = param1;
  2053.       }
  2054.       
  2055.       private function applyState(param1:String, param2:String) : void
  2056.       {
  2057.          var _loc4_:Array = null;
  2058.          var _loc5_:int = 0;
  2059.          var _loc3_:State = getState(param1);
  2060.          if(param1 == param2)
  2061.          {
  2062.             return;
  2063.          }
  2064.          if(_loc3_)
  2065.          {
  2066.             if(_loc3_.basedOn != param2)
  2067.             {
  2068.                applyState(_loc3_.basedOn,param2);
  2069.             }
  2070.             _loc4_ = _loc3_.overrides;
  2071.             _loc5_ = 0;
  2072.             while(_loc5_ < _loc4_.length)
  2073.             {
  2074.                _loc4_[_loc5_].apply(this);
  2075.                _loc5_++;
  2076.             }
  2077.             _loc3_.mx_internal::dispatchEnterState();
  2078.          }
  2079.       }
  2080.       
  2081.       protected function commitProperties() : void
  2082.       {
  2083.          var _loc1_:Number = NaN;
  2084.          var _loc2_:Number = NaN;
  2085.          if(_scaleX != oldScaleX)
  2086.          {
  2087.             _loc1_ = Math.abs(_scaleX / oldScaleX);
  2088.             if(!isNaN(explicitMinWidth))
  2089.             {
  2090.                explicitMinWidth *= _loc1_;
  2091.             }
  2092.             if(!isNaN(explicitWidth))
  2093.             {
  2094.                explicitWidth *= _loc1_;
  2095.             }
  2096.             if(!isNaN(explicitMaxWidth))
  2097.             {
  2098.                explicitMaxWidth *= _loc1_;
  2099.             }
  2100.             mx_internal::_width *= _loc1_;
  2101.             super.scaleX = oldScaleX = _scaleX;
  2102.          }
  2103.          if(_scaleY != oldScaleY)
  2104.          {
  2105.             _loc2_ = Math.abs(_scaleY / oldScaleY);
  2106.             if(!isNaN(explicitMinHeight))
  2107.             {
  2108.                explicitMinHeight *= _loc2_;
  2109.             }
  2110.             if(!isNaN(explicitHeight))
  2111.             {
  2112.                explicitHeight *= _loc2_;
  2113.             }
  2114.             if(!isNaN(explicitMaxHeight))
  2115.             {
  2116.                explicitMaxHeight *= _loc2_;
  2117.             }
  2118.             mx_internal::_height *= _loc2_;
  2119.             super.scaleY = oldScaleY = _scaleY;
  2120.          }
  2121.          if(x != oldX || y != oldY)
  2122.          {
  2123.             dispatchMoveEvent();
  2124.          }
  2125.          if(width != oldWidth || height != oldHeight)
  2126.          {
  2127.             dispatchResizeEvent();
  2128.          }
  2129.          if(errorStringChanged)
  2130.          {
  2131.             errorStringChanged = false;
  2132.             setBorderColorForErrorString();
  2133.          }
  2134.       }
  2135.       
  2136.       [Bindable("resize")]
  2137.       public function get percentHeight() : Number
  2138.       {
  2139.          return _percentHeight;
  2140.       }
  2141.       
  2142.       [Bindable("widthChanged")]
  2143.       override public function get width() : Number
  2144.       {
  2145.          return mx_internal::_width;
  2146.       }
  2147.       
  2148.       final mx_internal function get $parent() : DisplayObjectContainer
  2149.       {
  2150.          return super.parent;
  2151.       }
  2152.       
  2153.       public function set explicitMinWidth(param1:Number) : void
  2154.       {
  2155.          if(mx_internal::_explicitMinWidth == param1)
  2156.          {
  2157.             return;
  2158.          }
  2159.          mx_internal::_explicitMinWidth = param1;
  2160.          invalidateSize();
  2161.          var _loc2_:IInvalidating = parent as IInvalidating;
  2162.          if(_loc2_)
  2163.          {
  2164.             _loc2_.invalidateSize();
  2165.             _loc2_.invalidateDisplayList();
  2166.          }
  2167.          dispatchEvent(new Event("explicitMinWidthChanged"));
  2168.       }
  2169.       
  2170.       public function get isPopUp() : Boolean
  2171.       {
  2172.          return _isPopUp;
  2173.       }
  2174.       
  2175.       private function measureSizes() : Boolean
  2176.       {
  2177.          var _loc2_:Number = NaN;
  2178.          var _loc3_:Number = NaN;
  2179.          var _loc4_:Number = NaN;
  2180.          var _loc5_:Number = NaN;
  2181.          var _loc1_:Boolean = false;
  2182.          if(!mx_internal::invalidateSizeFlag)
  2183.          {
  2184.             return _loc1_;
  2185.          }
  2186.          if(isNaN(explicitWidth) || isNaN(explicitHeight))
  2187.          {
  2188.             _loc4_ = Math.abs(scaleX);
  2189.             _loc5_ = Math.abs(scaleY);
  2190.             if(_loc4_ != 1)
  2191.             {
  2192.                _measuredMinWidth /= _loc4_;
  2193.                _measuredWidth /= _loc4_;
  2194.             }
  2195.             if(_loc5_ != 1)
  2196.             {
  2197.                _measuredMinHeight /= _loc5_;
  2198.                _measuredHeight /= _loc5_;
  2199.             }
  2200.             measure();
  2201.             mx_internal::invalidateSizeFlag = false;
  2202.             if(!isNaN(explicitMinWidth) && measuredWidth < explicitMinWidth)
  2203.             {
  2204.                measuredWidth = explicitMinWidth;
  2205.             }
  2206.             if(!isNaN(explicitMaxWidth) && measuredWidth > explicitMaxWidth)
  2207.             {
  2208.                measuredWidth = explicitMaxWidth;
  2209.             }
  2210.             if(!isNaN(explicitMinHeight) && measuredHeight < explicitMinHeight)
  2211.             {
  2212.                measuredHeight = explicitMinHeight;
  2213.             }
  2214.             if(!isNaN(explicitMaxHeight) && measuredHeight > explicitMaxHeight)
  2215.             {
  2216.                measuredHeight = explicitMaxHeight;
  2217.             }
  2218.             if(_loc4_ != 1)
  2219.             {
  2220.                _measuredMinWidth *= _loc4_;
  2221.                _measuredWidth *= _loc4_;
  2222.             }
  2223.             if(_loc5_ != 1)
  2224.             {
  2225.                _measuredMinHeight *= _loc5_;
  2226.                _measuredHeight *= _loc5_;
  2227.             }
  2228.          }
  2229.          else
  2230.          {
  2231.             mx_internal::invalidateSizeFlag = false;
  2232.             _measuredMinWidth = 0;
  2233.             _measuredMinHeight = 0;
  2234.          }
  2235.          mx_internal::adjustSizesForScaleChanges();
  2236.          if(isNaN(oldMinWidth))
  2237.          {
  2238.             oldMinWidth = !isNaN(explicitMinWidth) ? explicitMinWidth : measuredMinWidth;
  2239.             oldMinHeight = !isNaN(explicitMinHeight) ? explicitMinHeight : measuredMinHeight;
  2240.             oldExplicitWidth = !isNaN(explicitWidth) ? explicitWidth : measuredWidth;
  2241.             oldExplicitHeight = !isNaN(explicitHeight) ? explicitHeight : measuredHeight;
  2242.             _loc1_ = true;
  2243.          }
  2244.          else
  2245.          {
  2246.             _loc3_ = !isNaN(explicitMinWidth) ? explicitMinWidth : measuredMinWidth;
  2247.             if(_loc3_ != oldMinWidth)
  2248.             {
  2249.                oldMinWidth = _loc3_;
  2250.                _loc1_ = true;
  2251.             }
  2252.             _loc3_ = !isNaN(explicitMinHeight) ? explicitMinHeight : measuredMinHeight;
  2253.             if(_loc3_ != oldMinHeight)
  2254.             {
  2255.                oldMinHeight = _loc3_;
  2256.                _loc1_ = true;
  2257.             }
  2258.             _loc3_ = !isNaN(explicitWidth) ? explicitWidth : measuredWidth;
  2259.             if(_loc3_ != oldExplicitWidth)
  2260.             {
  2261.                oldExplicitWidth = _loc3_;
  2262.                _loc1_ = true;
  2263.             }
  2264.             _loc3_ = !isNaN(explicitHeight) ? explicitHeight : measuredHeight;
  2265.             if(_loc3_ != oldExplicitHeight)
  2266.             {
  2267.                oldExplicitHeight = _loc3_;
  2268.                _loc1_ = true;
  2269.             }
  2270.          }
  2271.          return _loc1_;
  2272.       }
  2273.       
  2274.       public function get automationTabularData() : Object
  2275.       {
  2276.          if(automationDelegate)
  2277.          {
  2278.             return automationDelegate.automationTabularData;
  2279.          }
  2280.          return null;
  2281.       }
  2282.       
  2283.       public function validateNow() : void
  2284.       {
  2285.          UIComponentGlobals.mx_internal::layoutManager.validateClient(this);
  2286.       }
  2287.       
  2288.       public function finishPrint(param1:Object, param2:IFlexDisplayObject) : void
  2289.       {
  2290.       }
  2291.       
  2292.       public function get repeaters() : Array
  2293.       {
  2294.          return !!_repeaters ? _repeaters.slice(0) : [];
  2295.       }
  2296.       
  2297.       private function dispatchMoveEvent() : void
  2298.       {
  2299.          var _loc1_:MoveEvent = new MoveEvent(MoveEvent.MOVE);
  2300.          _loc1_.oldX = oldX;
  2301.          _loc1_.oldY = oldY;
  2302.          dispatchEvent(_loc1_);
  2303.          oldX = x;
  2304.          oldY = y;
  2305.       }
  2306.       
  2307.       public function drawFocus(param1:Boolean) : void
  2308.       {
  2309.          var _loc4_:DisplayObjectContainer = null;
  2310.          var _loc5_:Class = null;
  2311.          if(!parent)
  2312.          {
  2313.             return;
  2314.          }
  2315.          var _loc2_:DisplayObject = mx_internal::getFocusObject();
  2316.          var _loc3_:Sprite = !!focusManager ? focusManager.focusPane : null;
  2317.          if(param1 && !preventDrawFocus)
  2318.          {
  2319.             _loc4_ = _loc3_.parent;
  2320.             if(_loc4_ != parent)
  2321.             {
  2322.                if(_loc4_)
  2323.                {
  2324.                   if(_loc4_ is ISystemManager)
  2325.                   {
  2326.                      ISystemManager(_loc4_).focusPane = null;
  2327.                   }
  2328.                   else
  2329.                   {
  2330.                      IUIComponent(_loc4_).focusPane = null;
  2331.                   }
  2332.                }
  2333.                if(parent is ISystemManager)
  2334.                {
  2335.                   ISystemManager(parent).focusPane = _loc3_;
  2336.                }
  2337.                else
  2338.                {
  2339.                   IUIComponent(parent).focusPane = _loc3_;
  2340.                }
  2341.             }
  2342.             _loc5_ = getStyle("focusSkin");
  2343.             if(Boolean(_loc2_) && !(_loc2_ is _loc5_))
  2344.             {
  2345.                _loc3_.removeChild(_loc2_);
  2346.                _loc2_ = null;
  2347.             }
  2348.             if(!_loc2_)
  2349.             {
  2350.                _loc2_ = new _loc5_();
  2351.                _loc2_.name = "focus";
  2352.                _loc3_.addChild(_loc2_);
  2353.             }
  2354.             if(_loc2_ is ILayoutManagerClient)
  2355.             {
  2356.                ILayoutManagerClient(_loc2_).nestLevel = nestLevel;
  2357.             }
  2358.             if(_loc2_ is ISimpleStyleClient)
  2359.             {
  2360.                ISimpleStyleClient(_loc2_).styleName = this;
  2361.             }
  2362.             addEventListener(MoveEvent.MOVE,focusObj_moveHandler,true);
  2363.             addEventListener(MoveEvent.MOVE,focusObj_moveHandler);
  2364.             addEventListener(ResizeEvent.RESIZE,focusObj_resizeHandler,true);
  2365.             addEventListener(ResizeEvent.RESIZE,focusObj_resizeHandler);
  2366.             addEventListener(Event.REMOVED,focusObj_removedHandler,true);
  2367.             _loc2_.visible = true;
  2368.             hasFocusRect = true;
  2369.             adjustFocusRect();
  2370.          }
  2371.          else if(hasFocusRect)
  2372.          {
  2373.             hasFocusRect = false;
  2374.             if(_loc2_)
  2375.             {
  2376.                _loc2_.visible = false;
  2377.             }
  2378.             removeEventListener(MoveEvent.MOVE,focusObj_moveHandler);
  2379.             removeEventListener(MoveEvent.MOVE,focusObj_moveHandler,true);
  2380.             removeEventListener(ResizeEvent.RESIZE,focusObj_resizeHandler,true);
  2381.             removeEventListener(ResizeEvent.RESIZE,focusObj_resizeHandler);
  2382.             removeEventListener(Event.REMOVED,focusObj_removedHandler,true);
  2383.          }
  2384.       }
  2385.       
  2386.       public function get flexContextMenu() : IFlexContextMenu
  2387.       {
  2388.          return _flexContextMenu;
  2389.       }
  2390.       
  2391.       private function get indexedID() : String
  2392.       {
  2393.          var _loc1_:String = id;
  2394.          var _loc2_:Array = instanceIndices;
  2395.          if(_loc2_)
  2396.          {
  2397.             _loc1_ += "[" + _loc2_.join("][") + "]";
  2398.          }
  2399.          return _loc1_;
  2400.       }
  2401.       
  2402.       public function get measuredMinHeight() : Number
  2403.       {
  2404.          return _measuredMinHeight;
  2405.       }
  2406.       
  2407.       mx_internal function addingChild(param1:DisplayObject) : void
  2408.       {
  2409.          if(param1 is IUIComponent && !IUIComponent(param1).document)
  2410.          {
  2411.             IUIComponent(param1).document = !!document ? document : ApplicationGlobals.application;
  2412.          }
  2413.          if(param1 is UIComponent && UIComponent(param1).moduleFactory == null)
  2414.          {
  2415.             if(moduleFactory != null)
  2416.             {
  2417.                UIComponent(param1).moduleFactory = moduleFactory;
  2418.             }
  2419.             else if(document is IFlexModule && document.moduleFactory != null)
  2420.             {
  2421.                UIComponent(param1).moduleFactory = document.moduleFactory;
  2422.             }
  2423.             else if(parent is UIComponent && UIComponent(parent).moduleFactory != null)
  2424.             {
  2425.                UIComponent(param1).moduleFactory = UIComponent(parent).moduleFactory;
  2426.             }
  2427.          }
  2428.          if(param1 is IFontContextComponent && !param1 is UIComponent && IFontContextComponent(param1).fontContext == null)
  2429.          {
  2430.             IFontContextComponent(param1).fontContext = moduleFactory;
  2431.          }
  2432.          if(param1 is IUIComponent)
  2433.          {
  2434.             IUIComponent(param1).parentChanged(this);
  2435.          }
  2436.          if(param1 is ILayoutManagerClient)
  2437.          {
  2438.             ILayoutManagerClient(param1).nestLevel = nestLevel + 1;
  2439.          }
  2440.          else if(param1 is IUITextField)
  2441.          {
  2442.             IUITextField(param1).nestLevel = nestLevel + 1;
  2443.          }
  2444.          if(param1 is InteractiveObject)
  2445.          {
  2446.             if(doubleClickEnabled)
  2447.             {
  2448.                InteractiveObject(param1).doubleClickEnabled = true;
  2449.             }
  2450.          }
  2451.          if(param1 is IStyleClient)
  2452.          {
  2453.             IStyleClient(param1).regenerateStyleCache(true);
  2454.          }
  2455.          else if(param1 is IUITextField && Boolean(IUITextField(param1).inheritingStyles))
  2456.          {
  2457.             StyleProtoChain.initTextField(IUITextField(param1));
  2458.          }
  2459.          if(param1 is ISimpleStyleClient)
  2460.          {
  2461.             ISimpleStyleClient(param1).styleChanged(null);
  2462.          }
  2463.          if(param1 is IStyleClient)
  2464.          {
  2465.             IStyleClient(param1).notifyStyleChangeInChildren(null,true);
  2466.          }
  2467.          if(param1 is UIComponent)
  2468.          {
  2469.             UIComponent(param1).mx_internal::initThemeColor();
  2470.          }
  2471.          if(param1 is UIComponent)
  2472.          {
  2473.             UIComponent(param1).stylesInitialized();
  2474.          }
  2475.       }
  2476.       
  2477.       public function set repeaterIndices(param1:Array) : void
  2478.       {
  2479.          _repeaterIndices = param1;
  2480.       }
  2481.       
  2482.       protected function initializationComplete() : void
  2483.       {
  2484.          processedDescriptors = true;
  2485.       }
  2486.       
  2487.       public function set moduleFactory(param1:IFlexModuleFactory) : void
  2488.       {
  2489.          var _loc4_:UIComponent = null;
  2490.          var _loc2_:int = numChildren;
  2491.          var _loc3_:int = 0;
  2492.          while(_loc3_ < _loc2_)
  2493.          {
  2494.             _loc4_ = getChildAt(_loc3_) as UIComponent;
  2495.             if(_loc4_)
  2496.             {
  2497.                if(_loc4_.moduleFactory == null || _loc4_.moduleFactory == _moduleFactory)
  2498.                {
  2499.                   _loc4_.moduleFactory = param1;
  2500.                }
  2501.             }
  2502.             _loc3_++;
  2503.          }
  2504.          _moduleFactory = param1;
  2505.       }
  2506.       
  2507.       private function focusObj_removedHandler(param1:Event) : void
  2508.       {
  2509.          if(param1.target != this)
  2510.          {
  2511.             return;
  2512.          }
  2513.          var _loc2_:DisplayObject = mx_internal::getFocusObject();
  2514.          if(_loc2_)
  2515.          {
  2516.             _loc2_.visible = false;
  2517.          }
  2518.       }
  2519.       
  2520.       mx_internal function updateCallbacks() : void
  2521.       {
  2522.          if(mx_internal::invalidateDisplayListFlag)
  2523.          {
  2524.             UIComponentGlobals.mx_internal::layoutManager.invalidateDisplayList(this);
  2525.          }
  2526.          if(mx_internal::invalidateSizeFlag)
  2527.          {
  2528.             UIComponentGlobals.mx_internal::layoutManager.invalidateSize(this);
  2529.          }
  2530.          if(mx_internal::invalidatePropertiesFlag)
  2531.          {
  2532.             UIComponentGlobals.mx_internal::layoutManager.invalidateProperties(this);
  2533.          }
  2534.          if(Boolean(systemManager) && (_systemManager.stage || _systemManager.useSWFBridge()))
  2535.          {
  2536.             if(methodQueue.length > 0 && !listeningForRender)
  2537.             {
  2538.                _systemManager.addEventListener(FlexEvent.RENDER,callLaterDispatcher);
  2539.                _systemManager.addEventListener(FlexEvent.ENTER_FRAME,callLaterDispatcher);
  2540.                listeningForRender = true;
  2541.             }
  2542.             if(_systemManager.stage)
  2543.             {
  2544.                _systemManager.stage.invalidate();
  2545.             }
  2546.          }
  2547.       }
  2548.       
  2549.       public function set styleDeclaration(param1:CSSStyleDeclaration) : void
  2550.       {
  2551.          _styleDeclaration = param1;
  2552.       }
  2553.       
  2554.       override public function set doubleClickEnabled(param1:Boolean) : void
  2555.       {
  2556.          var _loc2_:IChildList = null;
  2557.          var _loc4_:InteractiveObject = null;
  2558.          super.doubleClickEnabled = param1;
  2559.          if(this is IRawChildrenContainer)
  2560.          {
  2561.             _loc2_ = IRawChildrenContainer(this).rawChildren;
  2562.          }
  2563.          else
  2564.          {
  2565.             _loc2_ = IChildList(this);
  2566.          }
  2567.          var _loc3_:int = 0;
  2568.          while(_loc3_ < _loc2_.numChildren)
  2569.          {
  2570.             _loc4_ = _loc2_.getChildAt(_loc3_) as InteractiveObject;
  2571.             if(_loc4_)
  2572.             {
  2573.                _loc4_.doubleClickEnabled = param1;
  2574.             }
  2575.             _loc3_++;
  2576.          }
  2577.       }
  2578.       
  2579.       public function prepareToPrint(param1:IFlexDisplayObject) : Object
  2580.       {
  2581.          return null;
  2582.       }
  2583.       
  2584.       [Bindable("explicitMinHeightChanged")]
  2585.       public function get minHeight() : Number
  2586.       {
  2587.          if(!isNaN(explicitMinHeight))
  2588.          {
  2589.             return explicitMinHeight;
  2590.          }
  2591.          return measuredMinHeight;
  2592.       }
  2593.       
  2594.       public function notifyStyleChangeInChildren(param1:String, param2:Boolean) : void
  2595.       {
  2596.          var _loc5_:ISimpleStyleClient = null;
  2597.          cachedTextFormat = null;
  2598.          var _loc3_:int = numChildren;
  2599.          var _loc4_:int = 0;
  2600.          while(_loc4_ < _loc3_)
  2601.          {
  2602.             _loc5_ = getChildAt(_loc4_) as ISimpleStyleClient;
  2603.             if(_loc5_)
  2604.             {
  2605.                _loc5_.styleChanged(param1);
  2606.                if(_loc5_ is IStyleClient)
  2607.                {
  2608.                   IStyleClient(_loc5_).notifyStyleChangeInChildren(param1,param2);
  2609.                }
  2610.             }
  2611.             _loc4_++;
  2612.          }
  2613.       }
  2614.       
  2615.       public function get contentMouseX() : Number
  2616.       {
  2617.          return mouseX;
  2618.       }
  2619.       
  2620.       public function get contentMouseY() : Number
  2621.       {
  2622.          return mouseY;
  2623.       }
  2624.       
  2625.       public function get tweeningProperties() : Array
  2626.       {
  2627.          return _tweeningProperties;
  2628.       }
  2629.       
  2630.       public function set explicitMaxWidth(param1:Number) : void
  2631.       {
  2632.          if(mx_internal::_explicitMaxWidth == param1)
  2633.          {
  2634.             return;
  2635.          }
  2636.          mx_internal::_explicitMaxWidth = param1;
  2637.          invalidateSize();
  2638.          var _loc2_:IInvalidating = parent as IInvalidating;
  2639.          if(_loc2_)
  2640.          {
  2641.             _loc2_.invalidateSize();
  2642.             _loc2_.invalidateDisplayList();
  2643.          }
  2644.          dispatchEvent(new Event("explicitMaxWidthChanged"));
  2645.       }
  2646.       
  2647.       public function set document(param1:Object) : void
  2648.       {
  2649.          var _loc4_:IUIComponent = null;
  2650.          var _loc2_:int = numChildren;
  2651.          var _loc3_:int = 0;
  2652.          while(_loc3_ < _loc2_)
  2653.          {
  2654.             _loc4_ = getChildAt(_loc3_) as IUIComponent;
  2655.             if(_loc4_)
  2656.             {
  2657.                if(_loc4_.document == mx_internal::_document || _loc4_.document == ApplicationGlobals.application)
  2658.                {
  2659.                   _loc4_.document = param1;
  2660.                }
  2661.             }
  2662.             _loc3_++;
  2663.          }
  2664.          mx_internal::_document = param1;
  2665.       }
  2666.       
  2667.       public function validateSize(param1:Boolean = false) : void
  2668.       {
  2669.          var _loc2_:int = 0;
  2670.          var _loc3_:DisplayObject = null;
  2671.          var _loc4_:Boolean = false;
  2672.          var _loc5_:IInvalidating = null;
  2673.          if(param1)
  2674.          {
  2675.             _loc2_ = 0;
  2676.             while(_loc2_ < numChildren)
  2677.             {
  2678.                _loc3_ = getChildAt(_loc2_);
  2679.                if(_loc3_ is ILayoutManagerClient)
  2680.                {
  2681.                   (_loc3_ as ILayoutManagerClient).validateSize(true);
  2682.                }
  2683.                _loc2_++;
  2684.             }
  2685.          }
  2686.          if(mx_internal::invalidateSizeFlag)
  2687.          {
  2688.             _loc4_ = measureSizes();
  2689.             if((_loc4_) && includeInLayout)
  2690.             {
  2691.                invalidateDisplayList();
  2692.                _loc5_ = parent as IInvalidating;
  2693.                if(_loc5_)
  2694.                {
  2695.                   _loc5_.invalidateSize();
  2696.                   _loc5_.invalidateDisplayList();
  2697.                }
  2698.             }
  2699.          }
  2700.       }
  2701.       
  2702.       public function get validationSubField() : String
  2703.       {
  2704.          return _validationSubField;
  2705.       }
  2706.       
  2707.       override public function dispatchEvent(param1:Event) : Boolean
  2708.       {
  2709.          if(mx_internal::dispatchEventHook != null)
  2710.          {
  2711.             mx_internal::dispatchEventHook(param1,this);
  2712.          }
  2713.          return super.dispatchEvent(param1);
  2714.       }
  2715.       
  2716.       public function set id(param1:String) : void
  2717.       {
  2718.          _id = param1;
  2719.       }
  2720.       
  2721.       private function overlay_resizeHandler(param1:Event) : void
  2722.       {
  2723.          mx_internal::fillOverlay(mx_internal::overlay,mx_internal::overlayColor,null);
  2724.       }
  2725.       
  2726.       public function set updateCompletePendingFlag(param1:Boolean) : void
  2727.       {
  2728.          _updateCompletePendingFlag = param1;
  2729.       }
  2730.       
  2731.       final mx_internal function get $height() : Number
  2732.       {
  2733.          return super.height;
  2734.       }
  2735.       
  2736.       protected function attachOverlay() : void
  2737.       {
  2738.          addChild(mx_internal::overlay);
  2739.       }
  2740.       
  2741.       [Bindable("explictMinHeightChanged")]
  2742.       public function get explicitMinHeight() : Number
  2743.       {
  2744.          return mx_internal::_explicitMinHeight;
  2745.       }
  2746.       
  2747.       override public function set height(param1:Number) : void
  2748.       {
  2749.          var _loc2_:IInvalidating = null;
  2750.          if(explicitHeight != param1)
  2751.          {
  2752.             explicitHeight = param1;
  2753.             invalidateSize();
  2754.          }
  2755.          if(mx_internal::_height != param1)
  2756.          {
  2757.             invalidateProperties();
  2758.             invalidateDisplayList();
  2759.             _loc2_ = parent as IInvalidating;
  2760.             if(Boolean(_loc2_) && includeInLayout)
  2761.             {
  2762.                _loc2_.invalidateSize();
  2763.                _loc2_.invalidateDisplayList();
  2764.             }
  2765.             mx_internal::_height = param1;
  2766.             dispatchEvent(new Event("heightChanged"));
  2767.          }
  2768.       }
  2769.       
  2770.       public function get numAutomationChildren() : int
  2771.       {
  2772.          if(automationDelegate)
  2773.          {
  2774.             return automationDelegate.numAutomationChildren;
  2775.          }
  2776.          return 0;
  2777.       }
  2778.       
  2779.       [Bindable("initialize")]
  2780.       public function get parentApplication() : Object
  2781.       {
  2782.          var _loc2_:UIComponent = null;
  2783.          var _loc1_:Object = systemManager.document;
  2784.          if(_loc1_ == this)
  2785.          {
  2786.             _loc2_ = _loc1_.systemManager.parent as UIComponent;
  2787.             _loc1_ = !!_loc2_ ? _loc2_.systemManager.document : null;
  2788.          }
  2789.          return _loc1_;
  2790.       }
  2791.       
  2792.       public function localToContent(param1:Point) : Point
  2793.       {
  2794.          return param1;
  2795.       }
  2796.       
  2797.       public function get repeaterIndex() : int
  2798.       {
  2799.          return !!_repeaterIndices ? int(_repeaterIndices[_repeaterIndices.length - 1]) : -1;
  2800.       }
  2801.       
  2802.       private function removeState(param1:String, param2:String) : void
  2803.       {
  2804.          var _loc4_:Array = null;
  2805.          var _loc5_:int = 0;
  2806.          var _loc3_:State = getState(param1);
  2807.          if(param1 == param2)
  2808.          {
  2809.             return;
  2810.          }
  2811.          if(_loc3_)
  2812.          {
  2813.             _loc3_.mx_internal::dispatchExitState();
  2814.             _loc4_ = _loc3_.overrides;
  2815.             _loc5_ = int(_loc4_.length);
  2816.             while(_loc5_)
  2817.             {
  2818.                _loc4_[_loc5_ - 1].remove(this);
  2819.                _loc5_--;
  2820.             }
  2821.             if(_loc3_.basedOn != param2)
  2822.             {
  2823.                removeState(_loc3_.basedOn,param2);
  2824.             }
  2825.          }
  2826.       }
  2827.       
  2828.       public function setStyle(param1:String, param2:*) : void
  2829.       {
  2830.          if(param1 == "styleName")
  2831.          {
  2832.             styleName = param2;
  2833.             return;
  2834.          }
  2835.          if(EffectManager.mx_internal::getEventForEffectTrigger(param1) != "")
  2836.          {
  2837.             EffectManager.mx_internal::setStyle(param1,this);
  2838.          }
  2839.          var _loc3_:Boolean = StyleManager.isInheritingStyle(param1);
  2840.          var _loc4_:* = inheritingStyles != UIComponent.mx_internal::STYLE_UNINITIALIZED;
  2841.          var _loc5_:* = getStyle(param1) != param2;
  2842.          if(!_styleDeclaration)
  2843.          {
  2844.             _styleDeclaration = new CSSStyleDeclaration();
  2845.             _styleDeclaration.mx_internal::setStyle(param1,param2);
  2846.             if(_loc4_)
  2847.             {
  2848.                regenerateStyleCache(_loc3_);
  2849.             }
  2850.          }
  2851.          else
  2852.          {
  2853.             _styleDeclaration.mx_internal::setStyle(param1,param2);
  2854.          }
  2855.          if(_loc4_ && _loc5_)
  2856.          {
  2857.             styleChanged(param1);
  2858.             notifyStyleChangeInChildren(param1,_loc3_);
  2859.          }
  2860.       }
  2861.       
  2862.       public function get showInAutomationHierarchy() : Boolean
  2863.       {
  2864.          return _showInAutomationHierarchy;
  2865.       }
  2866.       
  2867.       public function get systemManager() : ISystemManager
  2868.       {
  2869.          var _loc1_:DisplayObject = null;
  2870.          var _loc2_:DisplayObjectContainer = null;
  2871.          var _loc3_:IUIComponent = null;
  2872.          if(!_systemManager || _systemManagerDirty)
  2873.          {
  2874.             _loc1_ = root;
  2875.             if(!(_systemManager is SystemManagerProxy))
  2876.             {
  2877.                if(Boolean(_loc1_) && !(_loc1_ is Stage))
  2878.                {
  2879.                   _systemManager = _loc1_ as ISystemManager;
  2880.                }
  2881.                else if(_loc1_)
  2882.                {
  2883.                   _systemManager = Stage(_loc1_).getChildAt(0) as ISystemManager;
  2884.                }
  2885.                else
  2886.                {
  2887.                   _loc2_ = parent;
  2888.                   while(_loc2_)
  2889.                   {
  2890.                      _loc3_ = _loc2_ as IUIComponent;
  2891.                      if(_loc3_)
  2892.                      {
  2893.                         _systemManager = _loc3_.systemManager;
  2894.                         break;
  2895.                      }
  2896.                      if(_loc2_ is ISystemManager)
  2897.                      {
  2898.                         _systemManager = _loc2_ as ISystemManager;
  2899.                         break;
  2900.                      }
  2901.                      _loc2_ = _loc2_.parent;
  2902.                   }
  2903.                }
  2904.             }
  2905.             _systemManagerDirty = false;
  2906.          }
  2907.          return _systemManager;
  2908.       }
  2909.       
  2910.       private function isBaseState(param1:String) : Boolean
  2911.       {
  2912.          return !param1 || param1 == "";
  2913.       }
  2914.       
  2915.       public function set enabled(param1:Boolean) : void
  2916.       {
  2917.          _enabled = param1;
  2918.          cachedTextFormat = null;
  2919.          invalidateDisplayList();
  2920.          dispatchEvent(new Event("enabledChanged"));
  2921.       }
  2922.       
  2923.       public function set focusEnabled(param1:Boolean) : void
  2924.       {
  2925.          _focusEnabled = param1;
  2926.       }
  2927.       
  2928.       [Bindable("explicitMinWidthChanged")]
  2929.       public function get minWidth() : Number
  2930.       {
  2931.          if(!isNaN(explicitMinWidth))
  2932.          {
  2933.             return explicitMinWidth;
  2934.          }
  2935.          return measuredMinWidth;
  2936.       }
  2937.       
  2938.       private function setFocusLater(param1:Event = null) : void
  2939.       {
  2940.          var _loc2_:ISystemManager = systemManager;
  2941.          if(Boolean(_loc2_) && Boolean(_loc2_.stage))
  2942.          {
  2943.             _loc2_.stage.removeEventListener(Event.ENTER_FRAME,setFocusLater);
  2944.             if(UIComponentGlobals.mx_internal::nextFocusObject)
  2945.             {
  2946.                _loc2_.stage.focus = UIComponentGlobals.mx_internal::nextFocusObject;
  2947.             }
  2948.             UIComponentGlobals.mx_internal::nextFocusObject = null;
  2949.          }
  2950.       }
  2951.       
  2952.       [Bindable("currentStateChange")]
  2953.       public function get currentState() : String
  2954.       {
  2955.          return _currentStateChanged ? requestedCurrentState : _currentState;
  2956.       }
  2957.       
  2958.       public function initializeRepeaterArrays(param1:IRepeaterClient) : void
  2959.       {
  2960.          if(param1 && param1.instanceIndices && (!param1.isDocument || param1 != descriptor.document) && !_instanceIndices)
  2961.          {
  2962.             _instanceIndices = param1.instanceIndices;
  2963.             _repeaters = param1.repeaters;
  2964.             _repeaterIndices = param1.repeaterIndices;
  2965.          }
  2966.       }
  2967.       
  2968.       public function get baselinePosition() : Number
  2969.       {
  2970.          if(FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0)
  2971.          {
  2972.             return NaN;
  2973.          }
  2974.          if(!mx_internal::validateBaselinePosition())
  2975.          {
  2976.             return NaN;
  2977.          }
  2978.          var _loc1_:TextLineMetrics = measureText("Wj");
  2979.          if(height < 2 + _loc1_.ascent + 2)
  2980.          {
  2981.             return int(height + (_loc1_.ascent - height) / 2);
  2982.          }
  2983.          return 2 + _loc1_.ascent;
  2984.       }
  2985.       
  2986.       public function get measuredWidth() : Number
  2987.       {
  2988.          return _measuredWidth;
  2989.       }
  2990.       
  2991.       public function set instanceIndices(param1:Array) : void
  2992.       {
  2993.          _instanceIndices = param1;
  2994.       }
  2995.       
  2996.       public function set cachePolicy(param1:String) : void
  2997.       {
  2998.          if(_cachePolicy != param1)
  2999.          {
  3000.             _cachePolicy = param1;
  3001.             if(param1 == UIComponentCachePolicy.OFF)
  3002.             {
  3003.                cacheAsBitmap = false;
  3004.             }
  3005.             else if(param1 == UIComponentCachePolicy.ON)
  3006.             {
  3007.                cacheAsBitmap = true;
  3008.             }
  3009.             else
  3010.             {
  3011.                cacheAsBitmap = cacheAsBitmapCount > 0;
  3012.             }
  3013.          }
  3014.       }
  3015.       
  3016.       public function get automationValue() : Array
  3017.       {
  3018.          if(automationDelegate)
  3019.          {
  3020.             return automationDelegate.automationValue;
  3021.          }
  3022.          return [];
  3023.       }
  3024.       
  3025.       private function addedHandler(param1:Event) : void
  3026.       {
  3027.          var event:Event = param1;
  3028.          if(event.eventPhase != EventPhase.AT_TARGET)
  3029.          {
  3030.             return;
  3031.          }
  3032.          try
  3033.          {
  3034.             if(parent is IContainer && IContainer(parent).creatingContentPane)
  3035.             {
  3036.                event.stopImmediatePropagation();
  3037.                return;
  3038.             }
  3039.          }
  3040.          catch(error:SecurityError)
  3041.          {
  3042.          }
  3043.       }
  3044.       
  3045.       public function parentChanged(param1:DisplayObjectContainer) : void
  3046.       {
  3047.          if(!param1)
  3048.          {
  3049.             mx_internal::_parent = null;
  3050.             _nestLevel = 0;
  3051.          }
  3052.          else if(param1 is IStyleClient)
  3053.          {
  3054.             mx_internal::_parent = param1;
  3055.          }
  3056.          else if(param1 is ISystemManager)
  3057.          {
  3058.             mx_internal::_parent = param1;
  3059.          }
  3060.          else
  3061.          {
  3062.             mx_internal::_parent = param1.parent;
  3063.          }
  3064.       }
  3065.       
  3066.       public function get owner() : DisplayObjectContainer
  3067.       {
  3068.          return !!_owner ? _owner : parent;
  3069.       }
  3070.       
  3071.       public function get processedDescriptors() : Boolean
  3072.       {
  3073.          return _processedDescriptors;
  3074.       }
  3075.       
  3076.       override public function addChildAt(param1:DisplayObject, param2:int) : DisplayObject
  3077.       {
  3078.          var _loc3_:DisplayObjectContainer = param1.parent;
  3079.          if(Boolean(_loc3_) && !(_loc3_ is Loader))
  3080.          {
  3081.             _loc3_.removeChild(param1);
  3082.          }
  3083.          if(Boolean(mx_internal::overlayReferenceCount) && param1 != mx_internal::overlay)
  3084.          {
  3085.             param2 = Math.min(param2,Math.max(0,super.numChildren - 1));
  3086.          }
  3087.          mx_internal::addingChild(param1);
  3088.          mx_internal::$addChildAt(param1,param2);
  3089.          mx_internal::childAdded(param1);
  3090.          return param1;
  3091.       }
  3092.       
  3093.       [Bindable("explicitMaxWidthChanged")]
  3094.       public function get maxWidth() : Number
  3095.       {
  3096.          return !isNaN(explicitMaxWidth) ? explicitMaxWidth : DEFAULT_MAX_WIDTH;
  3097.       }
  3098.       
  3099.       [Bindable("alphaChanged")]
  3100.       override public function set alpha(param1:Number) : void
  3101.       {
  3102.          super.alpha = param1;
  3103.          dispatchEvent(new Event("alphaChanged"));
  3104.       }
  3105.       
  3106.       private function removedHandler(param1:Event) : void
  3107.       {
  3108.          var event:Event = param1;
  3109.          if(event.eventPhase != EventPhase.AT_TARGET)
  3110.          {
  3111.             return;
  3112.          }
  3113.          try
  3114.          {
  3115.             if(parent is IContainer && IContainer(parent).creatingContentPane)
  3116.             {
  3117.                event.stopImmediatePropagation();
  3118.                return;
  3119.             }
  3120.          }
  3121.          catch(error:SecurityError)
  3122.          {
  3123.          }
  3124.          _systemManagerDirty = true;
  3125.       }
  3126.       
  3127.       public function callLater(param1:Function, param2:Array = null) : void
  3128.       {
  3129.          methodQueue.push(new MethodQueueElement(param1,param2));
  3130.          var _loc3_:ISystemManager = systemManager;
  3131.          if(Boolean(_loc3_) && (_loc3_.stage || _loc3_.useSWFBridge()))
  3132.          {
  3133.             if(!listeningForRender)
  3134.             {
  3135.                _loc3_.addEventListener(FlexEvent.RENDER,callLaterDispatcher);
  3136.                _loc3_.addEventListener(FlexEvent.ENTER_FRAME,callLaterDispatcher);
  3137.                listeningForRender = true;
  3138.             }
  3139.             if(_loc3_.stage)
  3140.             {
  3141.                _loc3_.stage.invalidate();
  3142.             }
  3143.          }
  3144.       }
  3145.       
  3146.       public function get initialized() : Boolean
  3147.       {
  3148.          return _initialized;
  3149.       }
  3150.       
  3151.       private function callLaterDispatcher2(param1:Event) : void
  3152.       {
  3153.          var _loc6_:MethodQueueElement = null;
  3154.          if(UIComponentGlobals.mx_internal::callLaterSuspendCount > 0)
  3155.          {
  3156.             return;
  3157.          }
  3158.          var _loc2_:ISystemManager = systemManager;
  3159.          if(_loc2_ && (_loc2_.stage || _loc2_.useSWFBridge()) && listeningForRender)
  3160.          {
  3161.             _loc2_.removeEventListener(FlexEvent.RENDER,callLaterDispatcher);
  3162.             _loc2_.removeEventListener(FlexEvent.ENTER_FRAME,callLaterDispatcher);
  3163.             listeningForRender = false;
  3164.          }
  3165.          var _loc3_:Array = methodQueue;
  3166.          methodQueue = [];
  3167.          var _loc4_:int = int(_loc3_.length);
  3168.          var _loc5_:int = 0;
  3169.          while(_loc5_ < _loc4_)
  3170.          {
  3171.             _loc6_ = MethodQueueElement(_loc3_[_loc5_]);
  3172.             _loc6_.method.apply(null,_loc6_.args);
  3173.             _loc5_++;
  3174.          }
  3175.       }
  3176.       
  3177.       public function measureHTMLText(param1:String) : TextLineMetrics
  3178.       {
  3179.          return determineTextFormatFromStyles().measureHTMLText(param1);
  3180.       }
  3181.       
  3182.       public function set descriptor(param1:UIComponentDescriptor) : void
  3183.       {
  3184.          mx_internal::_descriptor = param1;
  3185.       }
  3186.       
  3187.       private function getState(param1:String) : State
  3188.       {
  3189.          if(!states || isBaseState(param1))
  3190.          {
  3191.             return null;
  3192.          }
  3193.          var _loc2_:int = 0;
  3194.          while(_loc2_ < states.length)
  3195.          {
  3196.             if(states[_loc2_].name == param1)
  3197.             {
  3198.                return states[_loc2_];
  3199.             }
  3200.             _loc2_++;
  3201.          }
  3202.          var _loc3_:String = resourceManager.getString("core","stateUndefined",[param1]);
  3203.          throw new ArgumentError(_loc3_);
  3204.       }
  3205.       
  3206.       public function validateProperties() : void
  3207.       {
  3208.          if(mx_internal::invalidatePropertiesFlag)
  3209.          {
  3210.             commitProperties();
  3211.             mx_internal::invalidatePropertiesFlag = false;
  3212.          }
  3213.       }
  3214.       
  3215.       mx_internal function get documentDescriptor() : UIComponentDescriptor
  3216.       {
  3217.          return mx_internal::_documentDescriptor;
  3218.       }
  3219.       
  3220.       public function set includeInLayout(param1:Boolean) : void
  3221.       {
  3222.          var _loc2_:IInvalidating = null;
  3223.          if(_includeInLayout != param1)
  3224.          {
  3225.             _includeInLayout = param1;
  3226.             _loc2_ = parent as IInvalidating;
  3227.             if(_loc2_)
  3228.             {
  3229.                _loc2_.invalidateSize();
  3230.                _loc2_.invalidateDisplayList();
  3231.             }
  3232.             dispatchEvent(new Event("includeInLayoutChanged"));
  3233.          }
  3234.       }
  3235.       
  3236.       public function getClassStyleDeclarations() : Array
  3237.       {
  3238.          var className:String;
  3239.          var decls:Array;
  3240.          var caches:Array;
  3241.          var classNames:Array;
  3242.          var declcache:Array;
  3243.          var myApplicationDomain:ApplicationDomain = null;
  3244.          var cache:Array = null;
  3245.          var myRoot:DisplayObject = null;
  3246.          var s:CSSStyleDeclaration = null;
  3247.          var factory:IFlexModuleFactory = ModuleManager.getAssociatedFactory(this);
  3248.          if(factory != null)
  3249.          {
  3250.             myApplicationDomain = ApplicationDomain(factory.info()["currentDomain"]);
  3251.          }
  3252.          else
  3253.          {
  3254.             myRoot = SystemManager.getSWFRoot(this);
  3255.             if(!myRoot)
  3256.             {
  3257.                return [];
  3258.             }
  3259.             myApplicationDomain = myRoot.loaderInfo.applicationDomain;
  3260.          }
  3261.          className = getQualifiedClassName(this);
  3262.          className = className.replace("::",".");
  3263.          cache = StyleManager.mx_internal::typeSelectorCache[className];
  3264.          if(cache)
  3265.          {
  3266.             return cache;
  3267.          }
  3268.          decls = [];
  3269.          classNames = [];
  3270.          caches = [];
  3271.          declcache = [];
  3272.          while(className != null && className != "mx.core.UIComponent" && className != "mx.core.UITextField")
  3273.          {
  3274.             cache = StyleManager.mx_internal::typeSelectorCache[className];
  3275.             if(cache)
  3276.             {
  3277.                decls = decls.concat(cache);
  3278.                break;
  3279.             }
  3280.             s = StyleManager.getStyleDeclaration(className);
  3281.             if(s)
  3282.             {
  3283.                decls.unshift(s);
  3284.                classNames.push(className);
  3285.                caches.push(classNames);
  3286.                declcache.push(decls);
  3287.                decls = [];
  3288.                classNames = [];
  3289.             }
  3290.             else
  3291.             {
  3292.                classNames.push(className);
  3293.             }
  3294.             try
  3295.             {
  3296.                className = getQualifiedSuperclassName(myApplicationDomain.getDefinition(className));
  3297.                className = className.replace("::",".");
  3298.             }
  3299.             catch(e:ReferenceError)
  3300.             {
  3301.                className = null;
  3302.             }
  3303.          }
  3304.          caches.push(classNames);
  3305.          declcache.push(decls);
  3306.          decls = [];
  3307.          while(caches.length)
  3308.          {
  3309.             classNames = caches.pop();
  3310.             decls = decls.concat(declcache.pop());
  3311.             while(classNames.length)
  3312.             {
  3313.                StyleManager.mx_internal::typeSelectorCache[classNames.pop()] = decls;
  3314.             }
  3315.          }
  3316.          return decls;
  3317.       }
  3318.       
  3319.       public function set measuredMinWidth(param1:Number) : void
  3320.       {
  3321.          _measuredMinWidth = param1;
  3322.       }
  3323.       
  3324.       private function initializeState(param1:String) : void
  3325.       {
  3326.          var _loc2_:State = getState(param1);
  3327.          while(_loc2_)
  3328.          {
  3329.             _loc2_.mx_internal::initialize();
  3330.             _loc2_ = getState(_loc2_.basedOn);
  3331.          }
  3332.       }
  3333.       
  3334.       mx_internal function initProtoChain() : void
  3335.       {
  3336.          var _loc1_:CSSStyleDeclaration = null;
  3337.          var _loc7_:Object = null;
  3338.          var _loc8_:CSSStyleDeclaration = null;
  3339.          if(styleName)
  3340.          {
  3341.             if(styleName is CSSStyleDeclaration)
  3342.             {
  3343.                _loc1_ = CSSStyleDeclaration(styleName);
  3344.             }
  3345.             else
  3346.             {
  3347.                if(styleName is IFlexDisplayObject || styleName is IStyleClient)
  3348.                {
  3349.                   StyleProtoChain.initProtoChainForUIComponentStyleName(this);
  3350.                   return;
  3351.                }
  3352.                if(styleName is String)
  3353.                {
  3354.                   _loc1_ = StyleManager.getStyleDeclaration("." + styleName);
  3355.                }
  3356.             }
  3357.          }
  3358.          var _loc2_:Object = StyleManager.mx_internal::stylesRoot;
  3359.          if(Boolean(_loc2_) && Boolean(_loc2_.effects))
  3360.          {
  3361.             registerEffects(_loc2_.effects);
  3362.          }
  3363.          var _loc3_:IStyleClient = parent as IStyleClient;
  3364.          if(_loc3_)
  3365.          {
  3366.             _loc7_ = _loc3_.inheritingStyles;
  3367.             if(_loc7_ == UIComponent.mx_internal::STYLE_UNINITIALIZED)
  3368.             {
  3369.                _loc7_ = _loc2_;
  3370.             }
  3371.          }
  3372.          else if(isPopUp)
  3373.          {
  3374.             if(FlexVersion.compatibilityVersion >= FlexVersion.VERSION_3_0 && _owner && _owner is IStyleClient)
  3375.             {
  3376.                _loc7_ = IStyleClient(_owner).inheritingStyles;
  3377.             }
  3378.             else
  3379.             {
  3380.                _loc7_ = ApplicationGlobals.application.inheritingStyles;
  3381.             }
  3382.          }
  3383.          else
  3384.          {
  3385.             _loc7_ = StyleManager.mx_internal::stylesRoot;
  3386.          }
  3387.          var _loc4_:Array = getClassStyleDeclarations();
  3388.          var _loc5_:int = int(_loc4_.length);
  3389.          var _loc6_:int = 0;
  3390.          while(_loc6_ < _loc5_)
  3391.          {
  3392.             _loc8_ = _loc4_[_loc6_];
  3393.             _loc7_ = _loc8_.mx_internal::addStyleToProtoChain(_loc7_,this);
  3394.             _loc2_ = _loc8_.mx_internal::addStyleToProtoChain(_loc2_,this);
  3395.             if(_loc8_.mx_internal::effects)
  3396.             {
  3397.                registerEffects(_loc8_.mx_internal::effects);
  3398.             }
  3399.             _loc6_++;
  3400.          }
  3401.          if(_loc1_)
  3402.          {
  3403.             _loc7_ = _loc1_.mx_internal::addStyleToProtoChain(_loc7_,this);
  3404.             _loc2_ = _loc1_.mx_internal::addStyleToProtoChain(_loc2_,this);
  3405.             if(_loc1_.mx_internal::effects)
  3406.             {
  3407.                registerEffects(_loc1_.mx_internal::effects);
  3408.             }
  3409.          }
  3410.          inheritingStyles = !!_styleDeclaration ? _styleDeclaration.mx_internal::addStyleToProtoChain(_loc7_,this) : _loc7_;
  3411.          nonInheritingStyles = !!_styleDeclaration ? _styleDeclaration.mx_internal::addStyleToProtoChain(_loc2_,this) : _loc2_;
  3412.       }
  3413.       
  3414.       public function get repeaterIndices() : Array
  3415.       {
  3416.          return !!_repeaterIndices ? _repeaterIndices.slice() : [];
  3417.       }
  3418.       
  3419.       override public function removeChild(param1:DisplayObject) : DisplayObject
  3420.       {
  3421.          mx_internal::removingChild(param1);
  3422.          mx_internal::$removeChild(param1);
  3423.          mx_internal::childRemoved(param1);
  3424.          return param1;
  3425.       }
  3426.       
  3427.       private function focusObj_moveHandler(param1:MoveEvent) : void
  3428.       {
  3429.          adjustFocusRect();
  3430.       }
  3431.       
  3432.       public function get styleDeclaration() : CSSStyleDeclaration
  3433.       {
  3434.          return _styleDeclaration;
  3435.       }
  3436.       
  3437.       override public function get doubleClickEnabled() : Boolean
  3438.       {
  3439.          return super.doubleClickEnabled;
  3440.       }
  3441.       
  3442.       public function contentToLocal(param1:Point) : Point
  3443.       {
  3444.          return param1;
  3445.       }
  3446.       
  3447.       private function creationCompleteHandler(param1:FlexEvent) : void
  3448.       {
  3449.          if(_currentStateChanged)
  3450.          {
  3451.             _currentStateChanged = false;
  3452.             commitCurrentState();
  3453.             validateNow();
  3454.          }
  3455.          removeEventListener(FlexEvent.CREATION_COMPLETE,creationCompleteHandler);
  3456.       }
  3457.       
  3458.       public function set measuredHeight(param1:Number) : void
  3459.       {
  3460.          _measuredHeight = param1;
  3461.       }
  3462.       
  3463.       protected function createChildren() : void
  3464.       {
  3465.       }
  3466.       
  3467.       public function get activeEffects() : Array
  3468.       {
  3469.          return mx_internal::_effectsStarted;
  3470.       }
  3471.       
  3472.       override public function setChildIndex(param1:DisplayObject, param2:int) : void
  3473.       {
  3474.          if(Boolean(mx_internal::overlayReferenceCount) && param1 != mx_internal::overlay)
  3475.          {
  3476.             param2 = Math.min(param2,Math.max(0,super.numChildren - 2));
  3477.          }
  3478.          super.setChildIndex(param1,param2);
  3479.       }
  3480.       
  3481.       public function regenerateStyleCache(param1:Boolean) : void
  3482.       {
  3483.          var _loc5_:DisplayObject = null;
  3484.          mx_internal::initProtoChain();
  3485.          var _loc2_:IChildList = this is IRawChildrenContainer ? IRawChildrenContainer(this).rawChildren : IChildList(this);
  3486.          var _loc3_:int = int(_loc2_.numChildren);
  3487.          var _loc4_:int = 0;
  3488.          while(_loc4_ < _loc3_)
  3489.          {
  3490.             _loc5_ = _loc2_.getChildAt(_loc4_);
  3491.             if(_loc5_ is IStyleClient)
  3492.             {
  3493.                if(IStyleClient(_loc5_).inheritingStyles != UIComponent.mx_internal::STYLE_UNINITIALIZED)
  3494.                {
  3495.                   IStyleClient(_loc5_).regenerateStyleCache(param1);
  3496.                }
  3497.             }
  3498.             else if(_loc5_ is IUITextField)
  3499.             {
  3500.                if(IUITextField(_loc5_).inheritingStyles)
  3501.                {
  3502.                   StyleProtoChain.initTextField(IUITextField(_loc5_));
  3503.                }
  3504.             }
  3505.             _loc4_++;
  3506.          }
  3507.       }
  3508.       
  3509.       public function get updateCompletePendingFlag() : Boolean
  3510.       {
  3511.          return _updateCompletePendingFlag;
  3512.       }
  3513.       
  3514.       protected function focusOutHandler(param1:FocusEvent) : void
  3515.       {
  3516.          if(isOurFocus(DisplayObject(param1.target)))
  3517.          {
  3518.             drawFocus(false);
  3519.          }
  3520.       }
  3521.       
  3522.       public function getFocus() : InteractiveObject
  3523.       {
  3524.          var _loc1_:ISystemManager = systemManager;
  3525.          if(!_loc1_)
  3526.          {
  3527.             return null;
  3528.          }
  3529.          if(UIComponentGlobals.mx_internal::nextFocusObject)
  3530.          {
  3531.             return UIComponentGlobals.mx_internal::nextFocusObject;
  3532.          }
  3533.          return _loc1_.stage.focus;
  3534.       }
  3535.       
  3536.       public function endEffectsStarted() : void
  3537.       {
  3538.          var _loc1_:int = int(mx_internal::_effectsStarted.length);
  3539.          var _loc2_:int = 0;
  3540.          while(_loc2_ < _loc1_)
  3541.          {
  3542.             mx_internal::_effectsStarted[_loc2_].end();
  3543.             _loc2_++;
  3544.          }
  3545.       }
  3546.       
  3547.       protected function get unscaledHeight() : Number
  3548.       {
  3549.          return height / Math.abs(scaleY);
  3550.       }
  3551.       
  3552.       [Bindable("enabledChanged")]
  3553.       public function get enabled() : Boolean
  3554.       {
  3555.          return _enabled;
  3556.       }
  3557.       
  3558.       public function get focusEnabled() : Boolean
  3559.       {
  3560.          return _focusEnabled;
  3561.       }
  3562.       
  3563.       override public function set cacheAsBitmap(param1:Boolean) : void
  3564.       {
  3565.          super.cacheAsBitmap = param1;
  3566.          cacheAsBitmapCount = param1 ? 1 : 0;
  3567.       }
  3568.       
  3569.       mx_internal function removeOverlay() : void
  3570.       {
  3571.          if(mx_internal::overlayReferenceCount > 0 && --mx_internal::overlayReferenceCount == 0 && Boolean(mx_internal::overlay))
  3572.          {
  3573.             removeEventListener("resize",overlay_resizeHandler);
  3574.             if(super.getChildByName("overlay"))
  3575.             {
  3576.                mx_internal::$removeChild(mx_internal::overlay);
  3577.             }
  3578.             mx_internal::overlay = null;
  3579.          }
  3580.       }
  3581.       
  3582.       public function set cacheHeuristic(param1:Boolean) : void
  3583.       {
  3584.          if(_cachePolicy == UIComponentCachePolicy.AUTO)
  3585.          {
  3586.             if(param1)
  3587.             {
  3588.                ++cacheAsBitmapCount;
  3589.             }
  3590.             else if(cacheAsBitmapCount != 0)
  3591.             {
  3592.                --cacheAsBitmapCount;
  3593.             }
  3594.             super.cacheAsBitmap = cacheAsBitmapCount != 0;
  3595.          }
  3596.       }
  3597.       
  3598.       public function get cachePolicy() : String
  3599.       {
  3600.          return _cachePolicy;
  3601.       }
  3602.       
  3603.       public function set maxHeight(param1:Number) : void
  3604.       {
  3605.          if(explicitMaxHeight == param1)
  3606.          {
  3607.             return;
  3608.          }
  3609.          explicitMaxHeight = param1;
  3610.       }
  3611.       
  3612.       public function getConstraintValue(param1:String) : *
  3613.       {
  3614.          return getStyle(param1);
  3615.       }
  3616.       
  3617.       public function set focusManager(param1:IFocusManager) : void
  3618.       {
  3619.          _focusManager = param1;
  3620.       }
  3621.       
  3622.       public function clearStyle(param1:String) : void
  3623.       {
  3624.          setStyle(param1,undefined);
  3625.       }
  3626.       
  3627.       public function get descriptor() : UIComponentDescriptor
  3628.       {
  3629.          return mx_internal::_descriptor;
  3630.       }
  3631.       
  3632.       public function set nonInheritingStyles(param1:Object) : void
  3633.       {
  3634.          _nonInheritingStyles = param1;
  3635.       }
  3636.       
  3637.       public function get cursorManager() : ICursorManager
  3638.       {
  3639.          var _loc2_:ICursorManager = null;
  3640.          var _loc1_:DisplayObject = parent;
  3641.          while(_loc1_)
  3642.          {
  3643.             if(_loc1_ is IUIComponent && "cursorManager" in _loc1_)
  3644.             {
  3645.                return _loc1_["cursorManager"];
  3646.             }
  3647.             _loc1_ = _loc1_.parent;
  3648.          }
  3649.          return CursorManager.getInstance();
  3650.       }
  3651.       
  3652.       public function set automationDelegate(param1:Object) : void
  3653.       {
  3654.          _automationDelegate = param1 as IAutomationObject;
  3655.       }
  3656.       
  3657.       public function get measuredMinWidth() : Number
  3658.       {
  3659.          return _measuredMinWidth;
  3660.       }
  3661.       
  3662.       public function createReferenceOnParentDocument(param1:IFlexDisplayObject) : void
  3663.       {
  3664.          var _loc2_:Array = null;
  3665.          var _loc3_:Object = null;
  3666.          var _loc4_:int = 0;
  3667.          var _loc5_:int = 0;
  3668.          var _loc6_:PropertyChangeEvent = null;
  3669.          var _loc7_:Object = null;
  3670.          if(Boolean(id) && id != "")
  3671.          {
  3672.             _loc2_ = _instanceIndices;
  3673.             if(!_loc2_)
  3674.             {
  3675.                param1[id] = this;
  3676.             }
  3677.             else
  3678.             {
  3679.                _loc3_ = param1[id];
  3680.                if(!(_loc3_ is Array))
  3681.                {
  3682.                   _loc3_ = param1[id] = [];
  3683.                }
  3684.                _loc4_ = int(_loc2_.length);
  3685.                _loc5_ = 0;
  3686.                while(_loc5_ < _loc4_ - 1)
  3687.                {
  3688.                   _loc7_ = _loc3_[_loc2_[_loc5_]];
  3689.                   if(!(_loc7_ is Array))
  3690.                   {
  3691.                      _loc7_ = _loc3_[_loc2_[_loc5_]] = [];
  3692.                   }
  3693.                   _loc3_ = _loc7_;
  3694.                   _loc5_++;
  3695.                }
  3696.                _loc3_[_loc2_[_loc4_ - 1]] = this;
  3697.                _loc6_ = PropertyChangeEvent.createUpdateEvent(param1,id,param1[id],param1[id]);
  3698.                param1.dispatchEvent(_loc6_);
  3699.             }
  3700.          }
  3701.       }
  3702.       
  3703.       public function get repeater() : IRepeater
  3704.       {
  3705.          return !!_repeaters ? _repeaters[_repeaters.length - 1] : null;
  3706.       }
  3707.       
  3708.       public function set isPopUp(param1:Boolean) : void
  3709.       {
  3710.          _isPopUp = param1;
  3711.       }
  3712.       
  3713.       public function get measuredHeight() : Number
  3714.       {
  3715.          return _measuredHeight;
  3716.       }
  3717.       
  3718.       public function initialize() : void
  3719.       {
  3720.          if(initialized)
  3721.          {
  3722.             return;
  3723.          }
  3724.          dispatchEvent(new FlexEvent(FlexEvent.PREINITIALIZE));
  3725.          createChildren();
  3726.          childrenCreated();
  3727.          initializeAccessibility();
  3728.          initializationComplete();
  3729.       }
  3730.       
  3731.       override public function set width(param1:Number) : void
  3732.       {
  3733.          var _loc2_:IInvalidating = null;
  3734.          if(explicitWidth != param1)
  3735.          {
  3736.             explicitWidth = param1;
  3737.             invalidateSize();
  3738.          }
  3739.          if(mx_internal::_width != param1)
  3740.          {
  3741.             invalidateProperties();
  3742.             invalidateDisplayList();
  3743.             _loc2_ = parent as IInvalidating;
  3744.             if(Boolean(_loc2_) && includeInLayout)
  3745.             {
  3746.                _loc2_.invalidateSize();
  3747.                _loc2_.invalidateDisplayList();
  3748.             }
  3749.             mx_internal::_width = param1;
  3750.             dispatchEvent(new Event("widthChanged"));
  3751.          }
  3752.       }
  3753.       
  3754.       public function set percentHeight(param1:Number) : void
  3755.       {
  3756.          if(_percentHeight == param1)
  3757.          {
  3758.             return;
  3759.          }
  3760.          if(!isNaN(param1))
  3761.          {
  3762.             _explicitHeight = NaN;
  3763.          }
  3764.          _percentHeight = param1;
  3765.          var _loc2_:IInvalidating = parent as IInvalidating;
  3766.          if(_loc2_)
  3767.          {
  3768.             _loc2_.invalidateSize();
  3769.             _loc2_.invalidateDisplayList();
  3770.          }
  3771.       }
  3772.       
  3773.       final mx_internal function set $visible(param1:Boolean) : void
  3774.       {
  3775.          super.visible = param1;
  3776.       }
  3777.       
  3778.       private function findCommonBaseState(param1:String, param2:String) : String
  3779.       {
  3780.          var _loc3_:State = getState(param1);
  3781.          var _loc4_:State = getState(param2);
  3782.          if(!_loc3_ || !_loc4_)
  3783.          {
  3784.             return "";
  3785.          }
  3786.          if(isBaseState(_loc3_.basedOn) && isBaseState(_loc4_.basedOn))
  3787.          {
  3788.             return "";
  3789.          }
  3790.          var _loc5_:Array = getBaseStates(_loc3_);
  3791.          var _loc6_:Array = getBaseStates(_loc4_);
  3792.          var _loc7_:String = "";
  3793.          while(_loc5_[_loc5_.length - 1] == _loc6_[_loc6_.length - 1])
  3794.          {
  3795.             _loc7_ = _loc5_.pop();
  3796.             _loc6_.pop();
  3797.             if(!_loc5_.length || !_loc6_.length)
  3798.             {
  3799.                break;
  3800.             }
  3801.          }
  3802.          if(Boolean(_loc5_.length) && _loc5_[_loc5_.length - 1] == _loc4_.name)
  3803.          {
  3804.             _loc7_ = _loc4_.name;
  3805.          }
  3806.          else if(Boolean(_loc6_.length) && _loc6_[_loc6_.length - 1] == _loc3_.name)
  3807.          {
  3808.             _loc7_ = _loc3_.name;
  3809.          }
  3810.          return _loc7_;
  3811.       }
  3812.       
  3813.       mx_internal function childRemoved(param1:DisplayObject) : void
  3814.       {
  3815.          if(param1 is IUIComponent)
  3816.          {
  3817.             if(IUIComponent(param1).document != param1)
  3818.             {
  3819.                IUIComponent(param1).document = null;
  3820.             }
  3821.             IUIComponent(param1).parentChanged(null);
  3822.          }
  3823.       }
  3824.       
  3825.       final mx_internal function $removeChildAt(param1:int) : DisplayObject
  3826.       {
  3827.          return super.removeChildAt(param1);
  3828.       }
  3829.       
  3830.       [Bindable("explicitMaxHeightChanged")]
  3831.       public function get maxHeight() : Number
  3832.       {
  3833.          return !isNaN(explicitMaxHeight) ? explicitMaxHeight : DEFAULT_MAX_HEIGHT;
  3834.       }
  3835.       
  3836.       protected function initializeAccessibility() : void
  3837.       {
  3838.          if(UIComponent.mx_internal::createAccessibilityImplementation != null)
  3839.          {
  3840.             UIComponent.mx_internal::createAccessibilityImplementation(this);
  3841.          }
  3842.       }
  3843.       
  3844.       public function set explicitMaxHeight(param1:Number) : void
  3845.       {
  3846.          if(mx_internal::_explicitMaxHeight == param1)
  3847.          {
  3848.             return;
  3849.          }
  3850.          mx_internal::_explicitMaxHeight = param1;
  3851.          invalidateSize();
  3852.          var _loc2_:IInvalidating = parent as IInvalidating;
  3853.          if(_loc2_)
  3854.          {
  3855.             _loc2_.invalidateSize();
  3856.             _loc2_.invalidateDisplayList();
  3857.          }
  3858.          dispatchEvent(new Event("explicitMaxHeightChanged"));
  3859.       }
  3860.       
  3861.       public function get focusManager() : IFocusManager
  3862.       {
  3863.          if(_focusManager)
  3864.          {
  3865.             return _focusManager;
  3866.          }
  3867.          var _loc1_:DisplayObject = parent;
  3868.          while(_loc1_)
  3869.          {
  3870.             if(_loc1_ is IFocusManagerContainer)
  3871.             {
  3872.                return IFocusManagerContainer(_loc1_).focusManager;
  3873.             }
  3874.             _loc1_ = _loc1_.parent;
  3875.          }
  3876.          return null;
  3877.       }
  3878.       
  3879.       public function set styleName(param1:Object) : void
  3880.       {
  3881.          if(_styleName === param1)
  3882.          {
  3883.             return;
  3884.          }
  3885.          _styleName = param1;
  3886.          if(inheritingStyles == UIComponent.mx_internal::STYLE_UNINITIALIZED)
  3887.          {
  3888.             return;
  3889.          }
  3890.          regenerateStyleCache(true);
  3891.          mx_internal::initThemeColor();
  3892.          styleChanged("styleName");
  3893.          notifyStyleChangeInChildren("styleName",true);
  3894.       }
  3895.       
  3896.       public function get automationDelegate() : Object
  3897.       {
  3898.          return _automationDelegate;
  3899.       }
  3900.       
  3901.       [Bindable("unused")]
  3902.       protected function get resourceManager() : IResourceManager
  3903.       {
  3904.          return _resourceManager;
  3905.       }
  3906.       
  3907.       mx_internal function validateBaselinePosition() : Boolean
  3908.       {
  3909.          var _loc1_:Number = NaN;
  3910.          var _loc2_:Number = NaN;
  3911.          if(!parent)
  3912.          {
  3913.             return false;
  3914.          }
  3915.          if(width == 0 && height == 0)
  3916.          {
  3917.             validateNow();
  3918.             _loc1_ = getExplicitOrMeasuredWidth();
  3919.             _loc2_ = getExplicitOrMeasuredHeight();
  3920.             setActualSize(_loc1_,_loc2_);
  3921.          }
  3922.          validateNow();
  3923.          return true;
  3924.       }
  3925.       
  3926.       mx_internal function cancelAllCallLaters() : void
  3927.       {
  3928.          var _loc1_:ISystemManager = systemManager;
  3929.          if(Boolean(_loc1_) && (_loc1_.stage || _loc1_.useSWFBridge()))
  3930.          {
  3931.             if(listeningForRender)
  3932.             {
  3933.                _loc1_.removeEventListener(FlexEvent.RENDER,callLaterDispatcher);
  3934.                _loc1_.removeEventListener(FlexEvent.ENTER_FRAME,callLaterDispatcher);
  3935.                listeningForRender = false;
  3936.             }
  3937.          }
  3938.          methodQueue.splice(0);
  3939.       }
  3940.       
  3941.       private function updateCompleteHandler(param1:FlexEvent) : void
  3942.       {
  3943.          UIComponentGlobals.mx_internal::layoutManager.removeEventListener(FlexEvent.UPDATE_COMPLETE,updateCompleteHandler);
  3944.          processEffectFinished(_endingEffectInstances);
  3945.          _endingEffectInstances = [];
  3946.       }
  3947.       
  3948.       public function styleChanged(param1:String) : void
  3949.       {
  3950.          if(this is IFontContextComponent && hasFontContextChanged())
  3951.          {
  3952.             invalidateProperties();
  3953.          }
  3954.          if(!param1 || param1 == "styleName" || StyleManager.isSizeInvalidatingStyle(param1))
  3955.          {
  3956.             invalidateSize();
  3957.          }
  3958.          if(!param1 || param1 == "styleName" || param1 == "themeColor")
  3959.          {
  3960.             mx_internal::initThemeColor();
  3961.          }
  3962.          invalidateDisplayList();
  3963.          if(parent is IInvalidating)
  3964.          {
  3965.             if(StyleManager.isParentSizeInvalidatingStyle(param1))
  3966.             {
  3967.                IInvalidating(parent).invalidateSize();
  3968.             }
  3969.             if(StyleManager.isParentDisplayListInvalidatingStyle(param1))
  3970.             {
  3971.                IInvalidating(parent).invalidateDisplayList();
  3972.             }
  3973.          }
  3974.       }
  3975.       
  3976.       final mx_internal function get $visible() : Boolean
  3977.       {
  3978.          return super.visible;
  3979.       }
  3980.       
  3981.       public function drawRoundRect(param1:Number, param2:Number, param3:Number, param4:Number, param5:Object = null, param6:Object = null, param7:Object = null, param8:Object = null, param9:String = null, param10:Array = null, param11:Object = null) : void
  3982.       {
  3983.          var _loc13_:Number = NaN;
  3984.          var _loc14_:Array = null;
  3985.          var _loc15_:Matrix = null;
  3986.          var _loc16_:Object = null;
  3987.          var _loc12_:Graphics = graphics;
  3988.          if(!param3 || !param4)
  3989.          {
  3990.             return;
  3991.          }
  3992.          if(param6 !== null)
  3993.          {
  3994.             if(param6 is Array)
  3995.             {
  3996.                if(param7 is Array)
  3997.                {
  3998.                   _loc14_ = param7 as Array;
  3999.                }
  4000.                else
  4001.                {
  4002.                   _loc14_ = [param7,param7];
  4003.                }
  4004.                if(!param10)
  4005.                {
  4006.                   param10 = [0,255];
  4007.                }
  4008.                _loc15_ = null;
  4009.                if(param8)
  4010.                {
  4011.                   if(param8 is Matrix)
  4012.                   {
  4013.                      _loc15_ = Matrix(param8);
  4014.                   }
  4015.                   else
  4016.                   {
  4017.                      _loc15_ = new Matrix();
  4018.                      if(param8 is Number)
  4019.                      {
  4020.                         _loc15_.createGradientBox(param3,param4,Number(param8) * Math.PI / 180,param1,param2);
  4021.                      }
  4022.                      else
  4023.                      {
  4024.                         _loc15_.createGradientBox(param8.w,param8.h,param8.r,param8.x,param8.y);
  4025.                      }
  4026.                   }
  4027.                }
  4028.                if(param9 == GradientType.RADIAL)
  4029.                {
  4030.                   _loc12_.beginGradientFill(GradientType.RADIAL,param6 as Array,_loc14_,param10,_loc15_);
  4031.                }
  4032.                else
  4033.                {
  4034.                   _loc12_.beginGradientFill(GradientType.LINEAR,param6 as Array,_loc14_,param10,_loc15_);
  4035.                }
  4036.             }
  4037.             else
  4038.             {
  4039.                _loc12_.beginFill(Number(param6),Number(param7));
  4040.             }
  4041.          }
  4042.          if(!param5)
  4043.          {
  4044.             _loc12_.drawRect(param1,param2,param3,param4);
  4045.          }
  4046.          else if(param5 is Number)
  4047.          {
  4048.             _loc13_ = Number(param5) * 2;
  4049.             _loc12_.drawRoundRect(param1,param2,param3,param4,_loc13_,_loc13_);
  4050.          }
  4051.          else
  4052.          {
  4053.             GraphicsUtil.drawRoundRectComplex(_loc12_,param1,param2,param3,param4,param5.tl,param5.tr,param5.bl,param5.br);
  4054.          }
  4055.          if(param11)
  4056.          {
  4057.             _loc16_ = param11.r;
  4058.             if(_loc16_ is Number)
  4059.             {
  4060.                _loc13_ = Number(_loc16_) * 2;
  4061.                _loc12_.drawRoundRect(param11.x,param11.y,param11.w,param11.h,_loc13_,_loc13_);
  4062.             }
  4063.             else
  4064.             {
  4065.                GraphicsUtil.drawRoundRectComplex(_loc12_,param11.x,param11.y,param11.w,param11.h,_loc16_.tl,_loc16_.tr,_loc16_.bl,_loc16_.br);
  4066.             }
  4067.          }
  4068.          if(param6 !== null)
  4069.          {
  4070.             _loc12_.endFill();
  4071.          }
  4072.       }
  4073.       
  4074.       public function move(param1:Number, param2:Number) : void
  4075.       {
  4076.          var _loc3_:Boolean = false;
  4077.          if(param1 != super.x)
  4078.          {
  4079.             super.x = param1;
  4080.             dispatchEvent(new Event("xChanged"));
  4081.             _loc3_ = true;
  4082.          }
  4083.          if(param2 != super.y)
  4084.          {
  4085.             super.y = param2;
  4086.             dispatchEvent(new Event("yChanged"));
  4087.             _loc3_ = true;
  4088.          }
  4089.          if(_loc3_)
  4090.          {
  4091.             dispatchMoveEvent();
  4092.          }
  4093.       }
  4094.       
  4095.       public function set toolTip(param1:String) : void
  4096.       {
  4097.          var _loc2_:String = mx_internal::_toolTip;
  4098.          mx_internal::_toolTip = param1;
  4099.          ToolTipManager.mx_internal::registerToolTip(this,_loc2_,param1);
  4100.          dispatchEvent(new Event("toolTipChanged"));
  4101.       }
  4102.       
  4103.       public function set repeaters(param1:Array) : void
  4104.       {
  4105.          _repeaters = param1;
  4106.       }
  4107.       
  4108.       [Bindable("explicitMaxHeightChanged")]
  4109.       public function get explicitMaxHeight() : Number
  4110.       {
  4111.          return mx_internal::_explicitMaxHeight;
  4112.       }
  4113.       
  4114.       public function measureText(param1:String) : TextLineMetrics
  4115.       {
  4116.          return determineTextFormatFromStyles().measureText(param1);
  4117.       }
  4118.       
  4119.       public function get styleName() : Object
  4120.       {
  4121.          return _styleName;
  4122.       }
  4123.       
  4124.       protected function createInModuleContext(param1:IFlexModuleFactory, param2:String) : Object
  4125.       {
  4126.          var _loc3_:Object = null;
  4127.          if(param1)
  4128.          {
  4129.             _loc3_ = param1.create(param2);
  4130.          }
  4131.          return _loc3_;
  4132.       }
  4133.       
  4134.       [Bindable("initialize")]
  4135.       public function get parentDocument() : Object
  4136.       {
  4137.          var _loc1_:IUIComponent = null;
  4138.          var _loc2_:ISystemManager = null;
  4139.          if(document == this)
  4140.          {
  4141.             _loc1_ = parent as IUIComponent;
  4142.             if(_loc1_)
  4143.             {
  4144.                return _loc1_.document;
  4145.             }
  4146.             _loc2_ = parent as ISystemManager;
  4147.             if(_loc2_)
  4148.             {
  4149.                return _loc2_.document;
  4150.             }
  4151.             return null;
  4152.          }
  4153.          return document;
  4154.       }
  4155.       
  4156.       protected function childrenCreated() : void
  4157.       {
  4158.          invalidateProperties();
  4159.          invalidateSize();
  4160.          invalidateDisplayList();
  4161.       }
  4162.       
  4163.       public function set flexContextMenu(param1:IFlexContextMenu) : void
  4164.       {
  4165.          if(_flexContextMenu)
  4166.          {
  4167.             _flexContextMenu.unsetContextMenu(this);
  4168.          }
  4169.          _flexContextMenu = param1;
  4170.          if(param1 != null)
  4171.          {
  4172.             _flexContextMenu.setContextMenu(this);
  4173.          }
  4174.       }
  4175.       
  4176.       public function set explicitWidth(param1:Number) : void
  4177.       {
  4178.          if(_explicitWidth == param1)
  4179.          {
  4180.             return;
  4181.          }
  4182.          if(!isNaN(param1))
  4183.          {
  4184.             _percentWidth = NaN;
  4185.          }
  4186.          _explicitWidth = param1;
  4187.          invalidateSize();
  4188.          var _loc2_:IInvalidating = parent as IInvalidating;
  4189.          if(Boolean(_loc2_) && includeInLayout)
  4190.          {
  4191.             _loc2_.invalidateSize();
  4192.             _loc2_.invalidateDisplayList();
  4193.          }
  4194.          dispatchEvent(new Event("explicitWidthChanged"));
  4195.       }
  4196.       
  4197.       private function setBorderColorForErrorString() : void
  4198.       {
  4199.          if(!mx_internal::_errorString || mx_internal::_errorString.length == 0)
  4200.          {
  4201.             if(!isNaN(mx_internal::origBorderColor))
  4202.             {
  4203.                setStyle("borderColor",mx_internal::origBorderColor);
  4204.                mx_internal::saveBorderColor = true;
  4205.             }
  4206.          }
  4207.          else
  4208.          {
  4209.             if(mx_internal::saveBorderColor)
  4210.             {
  4211.                mx_internal::saveBorderColor = false;
  4212.                mx_internal::origBorderColor = getStyle("borderColor");
  4213.             }
  4214.             setStyle("borderColor",getStyle("errorColor"));
  4215.          }
  4216.          styleChanged("themeColor");
  4217.          var _loc1_:IFocusManager = focusManager;
  4218.          var _loc2_:DisplayObject = !!_loc1_ ? DisplayObject(_loc1_.getFocus()) : null;
  4219.          if(_loc1_ && _loc1_.showFocusIndicator && _loc2_ == this)
  4220.          {
  4221.             drawFocus(true);
  4222.          }
  4223.       }
  4224.       
  4225.       [Bindable("explicitWidthChanged")]
  4226.       public function get explicitWidth() : Number
  4227.       {
  4228.          return _explicitWidth;
  4229.       }
  4230.       
  4231.       public function invalidateSize() : void
  4232.       {
  4233.          if(!mx_internal::invalidateSizeFlag)
  4234.          {
  4235.             mx_internal::invalidateSizeFlag = true;
  4236.             if(Boolean(parent) && Boolean(UIComponentGlobals.mx_internal::layoutManager))
  4237.             {
  4238.                UIComponentGlobals.mx_internal::layoutManager.invalidateSize(this);
  4239.             }
  4240.          }
  4241.       }
  4242.       
  4243.       public function set measuredMinHeight(param1:Number) : void
  4244.       {
  4245.          _measuredMinHeight = param1;
  4246.       }
  4247.       
  4248.       protected function updateDisplayList(param1:Number, param2:Number) : void
  4249.       {
  4250.       }
  4251.       
  4252.       override public function set filters(param1:Array) : void
  4253.       {
  4254.          var _loc2_:int = 0;
  4255.          var _loc3_:int = 0;
  4256.          var _loc4_:IEventDispatcher = null;
  4257.          if(_filters)
  4258.          {
  4259.             _loc2_ = int(_filters.length);
  4260.             _loc3_ = 0;
  4261.             while(_loc3_ < _loc2_)
  4262.             {
  4263.                _loc4_ = _filters[_loc3_] as IEventDispatcher;
  4264.                if(_loc4_)
  4265.                {
  4266.                   _loc4_.removeEventListener("change",filterChangeHandler);
  4267.                }
  4268.                _loc3_++;
  4269.             }
  4270.          }
  4271.          _filters = param1;
  4272.          if(_filters)
  4273.          {
  4274.             _loc2_ = int(_filters.length);
  4275.             _loc3_ = 0;
  4276.             while(_loc3_ < _loc2_)
  4277.             {
  4278.                _loc4_ = _filters[_loc3_] as IEventDispatcher;
  4279.                if(_loc4_)
  4280.                {
  4281.                   _loc4_.addEventListener("change",filterChangeHandler);
  4282.                }
  4283.                _loc3_++;
  4284.             }
  4285.          }
  4286.          super.filters = _filters;
  4287.       }
  4288.    }
  4289. }
  4290.  
  4291. class MethodQueueElement
  4292. {
  4293.    public var method:Function;
  4294.    
  4295.    public var args:Array;
  4296.    
  4297.    public function MethodQueueElement(param1:Function, param2:Array = null)
  4298.    {
  4299.       super();
  4300.       this.method = param1;
  4301.       this.args = param2;
  4302.    }
  4303. }
  4304.