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