Pashmina,

Please respond to my questions. It’s important to understand if there was a 
good technical reason for this change.

Thanks,
Harbs

> On Jan 17, 2025, at 3:46 PM, Harbs <harbs.li...@gmail.com> wrote:
> 
> Also:
> 
> Any breaking changes really should be discussed before committing.
> 
>> On Jan 17, 2025, at 2:58 PM, Harbs <harbs.li...@gmail.com> wrote:
>> 
>> I just noticed this:
>> 
>>> mxmlDocument in UIBase
>> 
>> 
>> UIBase is not **supposed** to have mxmlDocument.
>> 
>> Why was this done/changed?
>> 
>>> On Jan 13, 2025, at 10:58 PM, pushminak...@apache.org wrote:
>>> 
>>> This is an automated email from the ASF dual-hosted git repository.
>>> 
>>> pushminakazi pushed a commit to branch develop
>>> in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
>>> 
>>> 
>>> The following commit(s) were added to refs/heads/develop by this push:
>>>     new 9bf2aac596 Added parentApplication and mxmlDocument in UIBase and 
>>> some other changes
>>> 9bf2aac596 is described below
>>> 
>>> commit 9bf2aac59699b4b29517d12727253b92aa684511
>>> Author: pashminakazi <pashminak...@gmail.com>
>>> AuthorDate: Tue Jan 14 01:54:49 2025 +0500
>>> 
>>>    Added parentApplication and mxmlDocument in UIBase and some other changes
>>> ---
>>> .../projects/Basic/src/main/royale/BasicClasses.as |   3 +
>>> .../royale/org/apache/royale/core/IChildList.as    | 301 
>>> +++++++++++++++++++++
>>> .../royale/org/apache/royale/core/IUIBaseBasic.as} |   9 +-
>>> .../main/royale/org/apache/royale/core/UIBase.as   | 252 +++++++++++++++++
>>> .../html/supportClasses/TextFieldItemRenderer.as   |  33 +++
>>> .../org/apache/royale/managers/ISystemManager.as   | 135 +++++++++
>>> .../main/royale/org/apache/royale/core/IUIBase.as  |   7 +
>>> .../royale/org/apache/royale/core/UIButtonBase.as  |  33 +++
>>> .../royale/org/apache/royale/jewel/DateField.as    |  86 +++++-
>>> .../AdvancedDataGridItemRenderer.as                |   4 +-
>>> .../dataGridClasses/DataGridItemRenderer.as        |   4 +-
>>> .../src/main/royale/mx/core/UIComponent.as         |   8 +-
>>> .../src/main/royale/mx/managers/SystemManager.as   |  28 +-
>>> .../src/main/royale/mx/core/IUIComponent.as        |   4 +-
>>> 14 files changed, 889 insertions(+), 18 deletions(-)
>>> 
>>> diff --git a/frameworks/projects/Basic/src/main/royale/BasicClasses.as 
>>> b/frameworks/projects/Basic/src/main/royale/BasicClasses.as
>>> index 91a45a7911..16ed5c9cad 100644
>>> --- a/frameworks/projects/Basic/src/main/royale/BasicClasses.as
>>> +++ b/frameworks/projects/Basic/src/main/royale/BasicClasses.as
>>> @@ -365,6 +365,9 @@ internal class BasicClasses
>>>     }
>>> 
>>>     import org.apache.royale.html.SimpleTextHighlighter; 
>>> SimpleTextHighlighter;
>>> +   import org.apache.royale.managers.ISystemManager; ISystemManager;
>>> +   import org.apache.royale.core.IChildList; IChildList;
>>> +   import org.apache.royale.core.IUIBaseBasic; IUIBaseBasic;
>>> }
>>> 
>>> }
>>> diff --git 
>>> a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/IChildList.as
>>>  
>>> b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/IChildList.as
>>> new file mode 100644
>>> index 0000000000..5bcc0bd44a
>>> --- /dev/null
>>> +++ 
>>> b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/IChildList.as
>>> @@ -0,0 +1,301 @@
>>> +////////////////////////////////////////////////////////////////////////////////
>>> +//
>>> +//  Licensed to the Apache Software Foundation (ASF) under one or more
>>> +//  contributor license agreements.  See the NOTICE file distributed with
>>> +//  this work for additional information regarding copyright ownership.
>>> +//  The ASF licenses this file to You under the Apache License, Version 2.0
>>> +//  (the "License"); you may not use this file except in compliance with
>>> +//  the License.  You may obtain a copy of the License at
>>> +//
>>> +//      http://www.apache.org/licenses/LICENSE-2.0
>>> +//
>>> +//  Unless required by applicable law or agreed to in writing, software
>>> +//  distributed under the License is distributed on an "AS IS" BASIS,
>>> +//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 
>>> implied.
>>> +//  See the License for the specific language governing permissions and
>>> +//  limitations under the License.
>>> +//
>>> +////////////////////////////////////////////////////////////////////////////////
>>> +
>>> +package org.apache.royale.core
>>> +{
>>> +
>>> +COMPILE::SWF
>>> +{
>>> +    import flash.display.DisplayObject;
>>> +}
>>> +import org.apache.royale.core.IUIBase;
>>> +
>>> +/**
>>> + *  The IChildList interface defines the properties and methods
>>> + *  for accessing and manipulating child lists, which are subsets
>>> + *  of a DisplayObjectContainer's children.
>>> + *
>>> + *  <p>As an example, consider the Container class.
>>> + *  It overrides DisplayObjectContainer APIs such as the 
>>> + *  <code>numChildren</code> and <code>getChildAt()</code> methods
>>> + *  to access only "content" children, which are the controls
>>> + *  and other containers that you put inside it.
>>> + *  But a Container can also have additional children
>>> + *  created automatically by the framework, such as a background or border
>>> + *  skin and scrollbars.
>>> + *  So Container exposes a property called <code>rawChildren</code> 
>>> + *  of type IChildList, which lets you access all its children,
>>> + *  not just the content children.</p>
>>> + *
>>> + *  <p>As another example, the SystemManager class is a 
>>> DisplayObjectContainer
>>> + *  whose children are partitioned into various layers:
>>> + *  normal children like the Application are on the bottom,
>>> + *  popups above them, tooltips above them, and cursors on the top.
>>> + *  The SystemManager class has properties named 
>>> <code>popUpChildren</code>,
>>> + *  <code>toolTipChildren</code>, and <code>cursorChildren</code>
>>> + *  which let you access these layers, and the type of each of these
>>> + *  properties is IChildList.
>>> + *  Therefore, you can count the number of popups using the 
>>> + *  <code>systemManager.popUpChildren.numChildren</code> property,
>>> + *  insert another DisplayObject into the tooltip layer using the 
>>> + *  <code>systemManager.toolTipChildren.addChild()</code> method, and so 
>>> on.</p>
>>> + *
>>> + *  @see mx.core.Container#rawChildren
>>> + *  @see mx.managers.SystemManager#rawChildren
>>> + *  @see mx.managers.SystemManager#popUpChildren
>>> + *  @see mx.managers.SystemManager#toolTipChildren
>>> + *  @see mx.managers.SystemManager#cursorChildren
>>> + *  
>>> + *  @langversion 3.0
>>> + *  @playerversion Flash 9
>>> + *  @playerversion AIR 1.1
>>> + *  @productversion Flex 3
>>> + */
>>> +public interface IChildList
>>> +{
>>> +   
>>> //--------------------------------------------------------------------------
>>> +   //
>>> +   //  Properties
>>> +   //
>>> +   
>>> //--------------------------------------------------------------------------
>>> +
>>> +   //----------------------------------
>>> +   //  numChildren
>>> +   //----------------------------------
>>> +
>>> +   /**
>>> +    *  The number of children in this child list.
>>> +    *  
>>> +    *  @langversion 3.0
>>> +    *  @playerversion Flash 9
>>> +    *  @playerversion AIR 1.1
>>> +    *  @productversion Flex 3
>>> +    */
>>> +   function get numChildren():int;
>>> +   
>>> +   
>>> //--------------------------------------------------------------------------
>>> +   //
>>> +   //  Methods
>>> +   //
>>> +   
>>> //--------------------------------------------------------------------------
>>> +
>>> +    /**
>>> +     *  Adds a child DisplayObject after the end of this child list.
>>> +     *
>>> +    *  <p>Calling <code>childList.addChild(child)</code> is the same as 
>>> calling
>>> +    *  <code>childList.addChild(child, childList.numChildren)</code>
>>> +    *  After it has been added, its index of the new child
>>> +    *  will be <code>(child.numChildren - 1)</code></p>
>>> +     *
>>> +     *  @param child The DisplayObject to add as a child.
>>> +     *
>>> +     *  @return The child that was added; this is the same
>>> +    *  as the argument passed in.
>>> +     *  
>>> +     *  @langversion 3.0
>>> +     *  @playerversion Flash 9
>>> +     *  @playerversion AIR 1.1
>>> +     *  @productversion Flex 3
>>> +     */
>>> +    [SWFOverride(params="flash.display.DisplayObject", 
>>> altparams="org.apache.royale.core.UIBase", 
>>> returns="flash.display.DisplayObject")]
>>> +   function addChild(child:IUIBase):IUIBase;
>>> +   
>>> +    /**
>>> +     *  Adds a child DisplayObject to this child list at the index 
>>> specified.
>>> +    *  An index of 0 represents the beginning of the DisplayList,
>>> +    *  and an index of <code>numChildren</code> represents the end.
>>> +    *
>>> +    *  <p>Adding a child anywhere except at the end of a child list
>>> +    *  will increment the indexes of children that were previously
>>> +    *  at that index or at higher indices.</p>
>>> +     *
>>> +     *  @param child The DisplayObject to add as a child.
>>> +    *
>>> +     *  @param index The index to add the child at.
>>> +     *
>>> +     *  @return The child that was added; this is the same
>>> +    *  as the <code>child</code> argument passed in.
>>> +     *  
>>> +     *  @langversion 3.0
>>> +     *  @playerversion Flash 9
>>> +     *  @playerversion AIR 1.1
>>> +     *  @productversion Flex 3
>>> +     */
>>> +    [SWFOverride(params="flash.display.DisplayObject,int", 
>>> altparams="org.apache.royale.core.UIBase,int", 
>>> returns="flash.display.DisplayObject")]
>>> +   function addChildAt(child:IUIBase, index:int):IUIBase;
>>> +   
>>> +    /**
>>> +     *  Removes the specified child DisplayObject from this child list.
>>> +    *
>>> +    *  <p>Removing a child anywhere except from the end of a child list
>>> +    *  will decrement the indexes of children that were at higher 
>>> indices.</p>
>>> +     *
>>> +    *  <p>The removed child will have its parent set to null and will be
>>> +    *  garbage collected if no other references to it exist.</p>
>>> +     *
>>> +     *  @param child The DisplayObject to remove.
>>> +     *
>>> +     *  @return The child that was removed; this is the same
>>> +    *  as the argument passed in.
>>> +     *  
>>> +     *  @langversion 3.0
>>> +     *  @playerversion Flash 9
>>> +     *  @playerversion AIR 1.1
>>> +     *  @productversion Flex 3
>>> +     */
>>> +    [SWFOverride(params="flash.display.DisplayObject", 
>>> altparams="mx.core.UIComponent", returns="flash.display.DisplayObject")]
>>> +   function removeChild(child:IUIBase):IUIBase;
>>> +   
>>> +    /**
>>> +     *  Removes the child DisplayObject at the specified index
>>> +    *  from this child list.
>>> +    *
>>> +    *  <p>Removing a child anywhere except from the end of a child list
>>> +    *  will decrement the indexes of children that were at higher 
>>> indices.</p>
>>> +     *
>>> +     *  <p>The removed child will have its parent set to null and will be
>>> +    *  garbage collected if no other references to it exist.</p>
>>> +     *
>>> +     *  @param index The child index of the DisplayObject to remove.
>>> +     *
>>> +     *  @return The child that was removed.
>>> +     *  
>>> +     *  @langversion 3.0
>>> +     *  @playerversion Flash 9
>>> +     *  @playerversion AIR 1.1
>>> +     *  @productversion Flex 3
>>> +     */         
>>> +    [SWFOverride(returns="flash.display.DisplayObject")]
>>> +   function removeChildAt(index:int):IUIBase;
>>> +   
>>> +   /**
>>> +    *  Gets the child DisplayObject at the specified index in this child 
>>> list.
>>> +    *
>>> +    *  @param index An integer from 0 to <code>(numChildren - 1)</code>
>>> +    *  that specifies the index of a child in this child list.
>>> +    *
>>> +    *  @return The child at the specified index.
>>> +    *  
>>> +    *  @langversion 3.0
>>> +    *  @playerversion Flash 9
>>> +    *  @playerversion AIR 1.1
>>> +    *  @productversion Flex 3
>>> +    */
>>> +    [SWFOverride(returns="flash.display.DisplayObject")]
>>> +   function getChildAt(index:int):IUIBase;
>>> +   
>>> +    /**
>>> +     *  Gets the child DisplayObject with the specified name
>>> +    *  in this child list.
>>> +     *
>>> +     *  @param name The name of the child to return.
>>> +    *
>>> +     *  @return The child with the specified name.
>>> +     *  
>>> +     *  @langversion 3.0
>>> +     *  @playerversion Flash 9
>>> +     *  @playerversion AIR 1.1
>>> +     *  @productversion Flex 3
>>> +     */
>>> +    [SWFOverride(returns="flash.display.DisplayObject")]
>>> +   function getChildByName(name:String):IUIBase;
>>> +   
>>> +   /**
>>> +    *  Gets the index of a specific child in this child list.
>>> +    *
>>> +    *  <p>The first child in the child list has an index of 0,
>>> +    *  the second child has an index of 1, and the last child
>>> +    *  has an index of <code>(numChildren - 1)</code>.</p>
>>> +    *
>>> +    *  <p>If <code>getChildIndex(myChild)</code> returns 5,
>>> +    *  then <code>myView.getChildAt(5)</code> returns
>>> +    *  <code>myChild</code>.</p>
>>> +    *
>>> +    *  <p>If you add a child by calling the <code>addChild()</code> method,
>>> +    *  the new child's index is equal to the largest index among the
>>> +    *  existing children plus one.</p>
>>> +    *
>>> +    *  <p>You can insert a child at a specified index by using the
>>> +    *  <code>addChildAt()</code> method
>>> +    *  In that case the children previously at that index and higher
>>> +    *  indices have their index increased by 1 so that all
>>> +    *  children are indexed from 0 to <code>(numChildren - 1)</code>.</p>
>>> +    *
>>> +    *  <p>If you remove a child by calling the <code>removeChild()</code>
>>> +    *  or <code>removeChildAt()</code> method, then the children
>>> +    *  at higher indices have their index decreased by 1 so that
>>> +    *  all children are indexed from 0 to <code>(numChildren - 
>>> 1)</code>.</p>
>>> +    *
>>> +    *  <p>If you change a child's index by calling the
>>> +    *  <code>setChildIndex()</code> method, then the children between
>>> +    *  the old index and the new index, inclusive, have their indexes
>>> +    *  adjusted so that all children are indexed from
>>> +    *  0 to <code>(numChildren - 1)</code>.</p>
>>> +    *
>>> +    *  @param child The child whose index to get.
>>> +    *
>>> +    *  @return The index of the child, which is an integer
>>> +    *  between 0 and <code>(numChildren - 1)</code>.
>>> +    *  
>>> +    *  @langversion 3.0
>>> +    *  @playerversion Flash 9
>>> +    *  @playerversion AIR 1.1
>>> +    *  @productversion Flex 3
>>> +    */
>>> +    [SWFOverride(params="flash.display.DisplayObject", 
>>> altparams="org.apache.royale.core.UIBase")]
>>> +   function getChildIndex(child:IUIBase):int;
>>> +   
>>> +   /**
>>> +    *  Changes the index of a particular child in this child list.
>>> +    *  See the <code>getChildIndex()</code> method for a
>>> +    *  description of the child's index.
>>> +    * 
>>> +    *  @param child The child whose index to set.
>>> +    *
>>> +    *  @param newIndex The new index for the specified child.
>>> +    *  This must be an integer between zero and <code>(numChildren - 
>>> 1)</code>.
>>> +    *  
>>> +    *  @langversion 3.0
>>> +    *  @playerversion Flash 9
>>> +    *  @playerversion AIR 1.1
>>> +    *  @productversion Flex 3
>>> +    */
>>> +    [SWFOverride(params="flash.display.DisplayObject,int", 
>>> altparams="org.apache.royale.core.UIBase,int")]
>>> +   function setChildIndex(child:IUIBase, newIndex:int):void;
>>> +   
>>> +   /**
>>> +    *  Determines if a DisplayObject is in this child list,
>>> +    *  or is a descendant of an child in this child list.
>>> +    *
>>> +    *  @param child The DisplayObject to test.
>>> +    *
>>> +    *  @return <code>true</code> if the DisplayObject is in this child list
>>> +    *  or is a descendant of an child in this child list;
>>> +    *  <code>false</code> otherwise.
>>> +    *  
>>> +    *  @langversion 3.0
>>> +    *  @playerversion Flash 9
>>> +    *  @playerversion AIR 1.1
>>> +    *  @productversion Flex 3
>>> +    */
>>> +    [SWFOverride(params="flash.display.DisplayObject", 
>>> altparams="org.apache.royale.core.UIBase")]
>>> +   function contains(child:IUIBase):Boolean;
>>> +}
>>> +
>>> +}
>>> diff --git 
>>> a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IUIBase.as
>>>  
>>> b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/IUIBaseBasic.as
>>> similarity index 95%
>>> copy from 
>>> frameworks/projects/Core/src/main/royale/org/apache/royale/core/IUIBase.as
>>> copy to 
>>> frameworks/projects/Basic/src/main/royale/org/apache/royale/core/IUIBaseBasic.as
>>> index f35f6d0049..c36e1e58eb 100644
>>> --- 
>>> a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IUIBase.as
>>> +++ 
>>> b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/IUIBaseBasic.as
>>> @@ -28,7 +28,7 @@ package org.apache.royale.core
>>>      *  @playerversion AIR 2.6
>>>      *  @productversion Royale 0.0
>>>      */
>>> -   public interface IUIBase extends IStrand, IEventDispatcher, IChild
>>> +   public interface IUIBaseBasic extends IStrand, IEventDispatcher, IChild
>>>     {
>>> 
>>>         /**
>>> @@ -53,6 +53,13 @@ package org.apache.royale.core
>>>             function get alpha():Number;
>>>             function set alpha(value:Number):void;
>>>             
>>> +           function get mxmlDocument():Object
>>> +
>>> +           /**
>>> +            *  @private
>>> +            */
>>> +           function set mxmlDocument(value:Object):void
>>> +           
>>>             /**
>>>              *  The x co-ordinate or left side position of the bounding box.
>>>              *  
>>> diff --git 
>>> a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as
>>>  
>>> b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as
>>> index 522d5d5da4..159edfcfea 100644
>>> --- 
>>> a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as
>>> +++ 
>>> b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as
>>> @@ -35,6 +35,7 @@ package org.apache.royale.core
>>>     import org.apache.royale.events.ValueChangeEvent;
>>>     import org.apache.royale.utils.loadBeadFromValuesManager;
>>>     import org.apache.royale.utils.sendEvent;
>>> +   import org.apache.royale.managers.ISystemManager;
>>> 
>>>     COMPILE::JS
>>>     {
>>> @@ -212,6 +213,257 @@ package org.apache.royale.core
>>>                 createElement();
>>>             }
>>>         }
>>> +           
>>> +           //----------------------------------
>>> +           //  parentApplication
>>> +           //----------------------------------
>>> +
>>> +           [Bindable("initialize")]
>>> +
>>> +           /*
>>> +            *  Note:
>>> +            *  There are two reasons that 'parentApplication' is typed as 
>>> Object
>>> +            *  rather than as Application. The first is that typing it as 
>>> Application
>>> +            *  would make UIComponent dependent on Application, slowing 
>>> down compile
>>> +            *  times not only for SWCs for also for MXML and AS 
>>> components. The
>>> +            *  second is that authors would not be able to access 
>>> properties and
>>> +            *  methods in the <Script> of their <Application> without 
>>> casting it
>>> +            *  to their application's subclass, as in
>>> +            *     MyApplication(paentApplication).myAppMethod().
>>> +            *  Therefore we decided to dispense with strict typing for
>>> +            *  'parentApplication'.
>>> +            */
>>> +           /**
>>> +            *  A reference to the Application object that contains this 
>>> UIComponent
>>> +            *  instance.
>>> +            *  This Application object might exist in a SWFLoader control 
>>> in another
>>> +            *  Application, and so on, creating a chain of Application 
>>> objects that
>>> +            *  can be walked using parentApplication.
>>> +            *
>>> +            *  <p>The <code>parentApplication</code> property of an 
>>> Application is never itself;
>>> +            *  it is either the Application into which it was loaded or 
>>> null
>>> +            *  (for the top-level Application).</p>
>>> +            *
>>> +            *  <p>Walking the application chain using the 
>>> <code>parentApplication</code>
>>> +            *  property is similar to walking the document chain using the
>>> +            *  <code>parentDocument</code> property.
>>> +            *  You can access the top-level application using the
>>> +            *  <code>application</code> property of the Application 
>>> class.</p>
>>> +            *  
>>> +            *  @langversion 3.0
>>> +            *  @playerversion Flash 9
>>> +            *  @playerversion AIR 1.1
>>> +            *  @productversion Flex 3
>>> +            */
>>> +           public function get parentApplication():Object
>>> +           {
>>> +                   // Look for the SystemManager's document,
>>> +                   // which should be the Application.
>>> +                   var o:Object = systemManagerBasic.mxmlDocument;
>>> +
>>> +                   // If this UIBase is its own root, then it is an 
>>> Application.
>>> +                   // We want to return its parent Application, or null
>>> +                   // (if it has no parent because it is the top-level 
>>> Application).
>>> +                   // The hierarchy in this situation looks something like 
>>> this:
>>> +                   //
>>> +                   //  SystemManager
>>> +                   //      Application
>>> +                   //          SomeContainer
>>> +                   //              Loader
>>> +                   //                  Loaded App's SystemManager
>>> +                   //                      Application
>>> +                   //                          ThisComponent
>>> +                   if (o == this)
>>> +                   {
>>> +                           var p:UIBase = o.systemManagerBasic.parent as 
>>> UIBase;
>>> +                           o = p ? p.systemManagerBasic.mxmlDocument : 
>>> null;
>>> +                   }
>>> +
>>> +                   return o;
>>> +           }
>>> +           
>>> +               //----------------------------------
>>> +                   //  parentComponent
>>> +                   //----------------------------------
>>> +
>>> +                   [Bindable("initialize")]
>>> +
>>> +                   /**
>>> +                    *  A reference to the parent component object for this 
>>> UIComponent.
>>> +                    *  A component object is a UIComponent at the top of 
>>> the hierarchy
>>> +                    *  of a Flex application, MXML component, or AS 
>>> component.
>>> +                    *
>>> +                    *  <p>For the Application object, the 
>>> <code>parentDocument</code>
>>> +                    *  property is null.
>>> +                    *  This property  is useful in MXML scripts to go up a 
>>> level
>>> +                    *  in the chain of document objects.
>>> +                    *  It can be used to walk this chain using
>>> +                    *  <code>parentDocument.parentDocument</code>, and so 
>>> on.</p>
>>> +                    *
>>> +                    *  <p>It is typed as Object so that authors can access 
>>> properties
>>> +                    *  and methods on ancestor document objects without 
>>> casting.</p>
>>> +                    *  
>>> +                    *  @langversion 3.0
>>> +                    *  @playerversion Flash 9
>>> +                    *  @playerversion AIR 1.1
>>> +                    *  @productversion Flex 3
>>> +                    */
>>> +                   public function get parentMxmlDocument():Object
>>> +                   {
>>> +                           if (mxmlDocument == this)
>>> +                           {
>>> +                                   var p:IUIBase = parent as IUIBase;
>>> +                                   if (p)
>>> +                                           return p.mxmlDocument;
>>> +
>>> +                                   var sm:ISystemManager = parent as 
>>> ISystemManager;
>>> +                                   if (sm)
>>> +                                           return sm.mxmlDocument;
>>> +
>>> +                                   return null;
>>> +                           }
>>> +                           else
>>> +                           {
>>> +                                   return mxmlDocument;
>>> +                           }
>>> +                   }
>>> +           
>>> +           //----------------------------------
>>> +           //  systemManager
>>> +           //----------------------------------
>>> +
>>> +           /**
>>> +            *  @private
>>> +            *  Storage for the systemManager property.
>>> +            *  Set by the SystemManager so that each UIBase
>>> +            *  has a references to its SystemManager
>>> +            */
>>> +           private var _systemManager:ISystemManager;
>>> +
>>> +           [Inspectable(environment="none")]
>>> +
>>> +           /**
>>> +            *  Returns the SystemManager object used by this component.
>>> +            *  
>>> +            *  @langversion 3.0
>>> +            *  @playerversion Flash 9
>>> +            *  @playerversion AIR 1.1
>>> +            *  @productversion Flex 3
>>> +            */
>>> +           public function get systemManagerBasic():ISystemManager
>>> +           {
>>> +                   // TODO
>>> +                   if (_systemManager == null && parent != null && parent 
>>> is UIBase)
>>> +                           _systemManager = (parent as 
>>> UIBase).systemManagerBasic;
>>> +                   
>>> +                   return _systemManager;
>>> +           }
>>> +
>>> +           /**
>>> +            *  @private
>>> +            */
>>> +           public function set 
>>> systemManagerBasic(value:ISystemManager):void
>>> +           {
>>> +                   // TODO
>>> +                   _systemManager = value;
>>> +           }
>>> +           
>>> +           private var processedMXMLDescriptors : Boolean;
>>> +
>>> +           private var _mxmlDescriptor:Array;
>>> +           
>>> +           /**
>>> +            *  @copy org.apache.royale.core.Application#MXMLDescriptor
>>> +            *  
>>> +            *  @langversion 3.0
>>> +            *  @playerversion Flash 10.2
>>> +            *  @playerversion AIR 2.6
>>> +            *  @productversion Royale 0.8
>>> +            */
>>> +           public function get MXMLDescriptorBasic():Array
>>> +           {
>>> +                   return _mxmlDescriptor;
>>> +           }
>>> +           
>>> +           
>>> +           /**
>>> +            *  @private
>>> +            */
>>> +           // COMPILE::SWF 
>>> +           // { override }
>>> +           public function get numChildrenBasic():int
>>> +           {
>>> +                   return numElements;
>>> +           }
>>> +           
>>> +           /**
>>> +            *  @private
>>> +            *  @royaleignorecoercion org.apache.royale.core.IUIBase
>>> +            */
>>> +           // [SWFOverride(returns="flash.display.DisplayObject")]
>>> +           // COMPILE::SWF 
>>> +           // { override }
>>> +           public function getChildAtBasic(index:int):IUIBase
>>> +           {
>>> +                   return getElementAt(index) as IUIBase;
>>> +           }
>>> +           
>>> +           
>>> +           public var _mxmlDocument:Object;
>>> +    
>>> +           [Inspectable(environment="none")]
>>> +           
>>> +           /**
>>> +            *  A reference to the document object associated with this 
>>> UIComponent.
>>> +            *  A document object is an Object at the top of the hierarchy 
>>> of a
>>> +            *  Flex application, MXML component, or AS component.
>>> +            *  
>>> +            *  @langversion 3.0
>>> +            *  @playerversion Flash 9
>>> +            *  @playerversion AIR 1.1
>>> +            *  @productversion Flex 3
>>> +            */
>>> +           public function get mxmlDocument():Object
>>> +           {
>>> +                   if (!_mxmlDocument && MXMLDescriptorBasic != null)
>>> +                           _mxmlDocument = this;
>>> +                   return _mxmlDocument;
>>> +           }
>>> +           
>>> +           public static var topLevelApplication:Object;
>>> +           
>>> +           /**
>>> +            *  A reference to the document object associated with this 
>>> UIComponent.
>>> +            *  A document object is an Object at the top of the hierarchy 
>>> of a
>>> +            *  Flex application, MXML component, or AS component.
>>> +            *  
>>> +            *  @langversion 3.0
>>> +            *  @playerversion Flash 9
>>> +            *  @playerversion AIR 1.1
>>> +            *  @productversion Flex 3
>>> +            */
>>> +           public function set mxmlDocument(value:Object):void
>>> +           {
>>> +                   var n:int = numChildrenBasic;
>>> +                   for (var i:int = 0; i < n; i++)
>>> +                   {
>>> +                           var child:IUIBase = getChildAtBasic(i) as 
>>> IUIBase;
>>> +                           if (!child)
>>> +                                   continue;
>>> +                           // JS subtrees will point back to the 
>>> component.  Ignore those.
>>> +                           if (child == this)
>>> +                                   continue;
>>> +                           
>>> +                           if (child.mxmlDocument == _mxmlDocument ||
>>> +                                   // child.mxmlDocument == 
>>> FlexGlobals.topLevelApplication)
>>> +                                   child.mxmlDocument == 
>>> topLevelApplication)
>>> +                           {
>>> +                                   child.mxmlDocument = value;
>>> +                           }
>>> +                   }
>>> +                   
>>> +                   _mxmlDocument = value;
>>> +           }
>>> 
>>>         COMPILE::SWF
>>>         public function get $displayObject():DisplayObject
>>> diff --git 
>>> a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/TextFieldItemRenderer.as
>>>  
>>> b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/TextFieldItemRenderer.as
>>> index 3c98bd6bbd..09c610ce2c 100644
>>> --- 
>>> a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/TextFieldItemRenderer.as
>>> +++ 
>>> b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/supportClasses/TextFieldItemRenderer.as
>>> @@ -69,6 +69,39 @@ package org.apache.royale.html.supportClasses
>>> 
>>>             MouseEventConverter.setupInstanceConverters(this);
>>>             }
>>> +           
>>> +           //----------------------------------
>>> +           //  document
>>> +           //----------------------------------
>>> +
>>> +           /**
>>> +            *  @private
>>> +            *  Storage for the enabled property.
>>> +            */
>>> +           private var _mxmlDocument:Object;
>>> +
>>> +           /**
>>> +            *  A reference to the document object associated with this 
>>> UITextField object. 
>>> +            *  A document object is an Object at the top of the hierarchy 
>>> of a Flex application, 
>>> +            *  MXML component, or AS component.
>>> +            *  
>>> +            *  @langversion 3.0
>>> +            *  @playerversion Flash 9
>>> +            *  @playerversion AIR 1.1
>>> +            *  @productversion Flex 3
>>> +            */
>>> +           public function get mxmlDocument():Object
>>> +           {
>>> +                   return _mxmlDocument;
>>> +           }
>>> +
>>> +           /**
>>> +            *  @private
>>> +            */
>>> +           public function set mxmlDocument(value:Object):void
>>> +           {
>>> +                   _mxmlDocument = value;
>>> +           }
>>> 
>>>         public var highlightColor:uint = 0xCEDBEF;
>>>         public var selectedColor:uint = 0xA8C6EE;
>>> diff --git 
>>> a/frameworks/projects/Basic/src/main/royale/org/apache/royale/managers/ISystemManager.as
>>>  
>>> b/frameworks/projects/Basic/src/main/royale/org/apache/royale/managers/ISystemManager.as
>>> new file mode 100644
>>> index 0000000000..4dbdd2c84b
>>> --- /dev/null
>>> +++ 
>>> b/frameworks/projects/Basic/src/main/royale/org/apache/royale/managers/ISystemManager.as
>>> @@ -0,0 +1,135 @@
>>> +////////////////////////////////////////////////////////////////////////////////
>>> +//
>>> +//  Licensed to the Apache Software Foundation (ASF) under one or more
>>> +//  contributor license agreements.  See the NOTICE file distributed with
>>> +//  this work for additional information regarding copyright ownership.
>>> +//  The ASF licenses this file to You under the Apache License, Version 2.0
>>> +//  (the "License"); you may not use this file except in compliance with
>>> +//  the License.  You may obtain a copy of the License at
>>> +//
>>> +//      http://www.apache.org/licenses/LICENSE-2.0
>>> +//
>>> +//  Unless required by applicable law or agreed to in writing, software
>>> +//  distributed under the License is distributed on an "AS IS" BASIS,
>>> +//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 
>>> implied.
>>> +//  See the License for the specific language governing permissions and
>>> +//  limitations under the License.
>>> +//
>>> +////////////////////////////////////////////////////////////////////////////////
>>> +
>>> +package org.apache.royale.managers
>>> +{
>>> +
>>> +import org.apache.royale.events.IEventDispatcher;
>>> +import org.apache.royale.core.IChildList;
>>> +//import mx.core.UIComponent;
>>> +//import flash.display.Stage;
>>> +/**
>>> + *  An ISystemManager manages an "application window".
>>> + *  Every application that runs on the desktop or in a browser
>>> + *  has an area where the visuals of the application will be
>>> + *  displayed.  It may be a window in the operating system
>>> + *  or an area within the browser.  That is an "application window"
>>> + *  and different from an instance of <code>mx.core.Application</code>, 
>>> which
>>> + *  is the main "top-level" window within an application.
>>> + *
>>> + *  <p>Every application has an ISystemManager.  
>>> + *  The ISystemManager  sends an event if
>>> + *  the size of the application window changes (you cannot change it from
>>> + *  within the application, but only through interaction with the operating
>>> + *  system window or browser).  It parents all displayable items within the
>>> + *  application, such as the main mx.core.Application instance and all 
>>> popups, 
>>> + *  tooltips, cursors, an so on.  Any object parented by the 
>>> ISystemManager is
>>> + *  considered to be a "top-level" window, even tooltips and cursors.</p>
>>> + *
>>> + *  <p>The ISystemManager also switches focus between top-level windows
>>> + *  if there  are more than one IFocusManagerContainer displayed and users
>>> + *  are interacting with components within the IFocusManagerContainers.</p>
>>> + *
>>> + *  <p>All keyboard and mouse activity that is not expressly trapped is 
>>> seen
>>> + *  by the ISystemManager, making it a good place to monitor activity
>>> + *  should you need to do so.</p>
>>> + *
>>> + *  <p>If an application is loaded into another application, an 
>>> ISystemManager
>>> + *  will still be created, but will not manage an "application window",
>>> + *  depending on security and domain rules.
>>> + *  Instead, it will be the <code>content</code> of the 
>>> <code>Loader</code> 
>>> + *  that loaded it and simply serve as the parent of the 
>>> sub-application</p>
>>> + *
>>> + *  <p>The ISystemManager maintains multiple lists of children, one each 
>>> for
>>> + *  tooltips, cursors, popup windows.
>>> + *  This is how it ensures that popup windows "float" above the main
>>> + *  application windows and that tooltips "float" above that
>>> + *  and cursors above that.
>>> + *  If you examine the <code>numChildren</code> property 
>>> + *  or <code>getChildAt()</code> method on the ISystemManager
>>> + *  you are accessing the main application window and any other windows
>>> + *  that aren't popped up.
>>> + *  To get the list of all windows, including popups, tooltips and cursors,
>>> + *  use the <code>rawChildren</code> property.</p>
>>> + *  
>>> + *  @langversion 3.0
>>> + *  @playerversion Flash 9
>>> + *  @playerversion AIR 1.1
>>> + *  @productversion Royale 0.9.4
>>> + */
>>> +public interface ISystemManager extends IEventDispatcher, IChildList /*, 
>>> IFlexModuleFactory */
>>> +{
>>> +   
>>> //--------------------------------------------------------------------------
>>> +   //
>>> +   //  Properties
>>> +   //
>>> +   
>>> //--------------------------------------------------------------------------
>>> +
>>> +    //----------------------------------
>>> +    //  component
>>> +    //----------------------------------
>>> +    
>>> +    /**
>>> +     *  A reference to the document object. 
>>> +     *  A document object is an Object at the top of the hierarchy of a 
>>> +     *  Flex application, MXML component, or AS component.
>>> +     *  
>>> +     *  @langversion 3.0
>>> +     *  @playerversion Flash 9
>>> +     *  @playerversion AIR 1.1
>>> +     *  @productversion Royale 0.9.4
>>> +     */
>>> +    function get mxmlDocument():Object;
>>> +    
>>> +    /**
>>> +     *  @private
>>> +     */
>>> +    function set mxmlDocument(value:Object):void;
>>> +    function get rawChildren():IChildList;
>>> +    function get numModalWindows():int;
>>> +    function set numModalWindows(value:int):void;
>>> +   /* COMPILE::SWF {
>>> +           function get stage():Stage;
>>> +   }
>>> +   COMPILE::JS {
>>> +           function get stage():Object;
>>> +   } */
>>> + 
>>> +   
>>> +   
>>> //--------------------------------------------------------------------------
>>> +   //
>>> +   //  Methods
>>> +   //
>>> +   
>>> //--------------------------------------------------------------------------
>>> +   /**
>>> +     *  Gets the system manager that is the root of all
>>> +     *  top level system managers in this SecurityDomain.
>>> +     *
>>> +     *  @return the highest-level systemManager in the sandbox
>>> +     *  
>>> +     *  @langversion 3.0
>>> +     *  @playerversion Flash 9
>>> +     *  @playerversion AIR 1.1
>>> +     *  @productversion Royale 0.9.4
>>> +     */
>>> +    function getSandboxRoot():Object;
>>> +    
>>> +}
>>> +
>>> +}
>>> diff --git 
>>> a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IUIBase.as
>>>  
>>> b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IUIBase.as
>>> index f35f6d0049..f87437804f 100644
>>> --- 
>>> a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IUIBase.as
>>> +++ 
>>> b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IUIBase.as
>>> @@ -42,6 +42,13 @@ package org.apache.royale.core
>>>          */
>>>             function addedToParent():void;
>>>             
>>> +           function get mxmlDocument():Object
>>> +
>>> +           /**
>>> +            *  @private
>>> +            */
>>> +           function set mxmlDocument(value:Object):void
>>> +           
>>>             /**
>>>              *  The alpha or opacity in the range of 0 to 1.
>>>              *  
>>> diff --git 
>>> a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/UIButtonBase.as
>>>  
>>> b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/UIButtonBase.as
>>> index 38bc88c599..1612b18866 100644
>>> --- 
>>> a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/UIButtonBase.as
>>> +++ 
>>> b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/UIButtonBase.as
>>> @@ -97,6 +97,39 @@ package org.apache.royale.core
>>>         {
>>> 
>>>         }
>>> +           
>>> +           //----------------------------------
>>> +           //  document
>>> +           //----------------------------------
>>> +
>>> +           /**
>>> +            *  @private
>>> +            *  Storage for the enabled property.
>>> +            */
>>> +           private var _mxmlDocument:Object;
>>> +
>>> +           /**
>>> +            *  A reference to the document object associated with this 
>>> UITextField object. 
>>> +            *  A document object is an Object at the top of the hierarchy 
>>> of a Flex application, 
>>> +            *  MXML component, or AS component.
>>> +            *  
>>> +            *  @langversion 3.0
>>> +            *  @playerversion Flash 9
>>> +            *  @playerversion AIR 1.1
>>> +            *  @productversion Flex 3
>>> +            */
>>> +           public function get mxmlDocument():Object
>>> +           {
>>> +                   return _mxmlDocument;
>>> +           }
>>> +
>>> +           /**
>>> +            *  @private
>>> +            */
>>> +           public function set mxmlDocument(value:Object):void
>>> +           {
>>> +                   _mxmlDocument = value;
>>> +           }
>>> 
>>>         private var _x:Number;
>>> 
>>> diff --git 
>>> a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/DateField.as
>>>  
>>> b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/DateField.as
>>> index 0d6fa25698..b378646c1e 100644
>>> --- 
>>> a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/DateField.as
>>> +++ 
>>> b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/DateField.as
>>> @@ -24,6 +24,7 @@ package org.apache.royale.jewel
>>>     import org.apache.royale.core.StyledUIBase;
>>>     import org.apache.royale.events.Event;
>>>     import org.apache.royale.utils.loadBeadFromValuesManager;
>>> +   import org.apache.royale.jewel.beads.views.DateFieldView;
>>>     
>>>     /**
>>>      * The change event is dispatched when the selectedDate is changed.
>>> @@ -135,5 +136,88 @@ package org.apache.royale.jewel
>>>             {
>>>                     _dateFormat = value.toUpperCase();
>>>             }
>>> -   }
>>> +           
>>> +           //----------------------------------
>>> +           //  formatString
>>> +           //----------------------------------
>>> +
>>> +           /**
>>> +            *  @private
>>> +            *  Storage for the formatString property.
>>> +            */
>>> +           // private var _formatString:String = "MM/DD/YYYY";
>>> +
>>> +           // [Bindable("formatStringChanged")]
>>> +           // [Inspectable(defaultValue="null")]
>>> +
>>> +           // /**
>>> +            // *  @private
>>> +            // */
>>> +           // private var formatStringOverride:String;
>>> +           
>>> +           /**
>>> +            *  The format of the displayed date in the text field.
>>> +            *  This property can contain any combination of 
>>> <code>"M"</code>,
>>> +            *  <code>"MM"</code>, <code>"MMM"</code> (3 letter month 
>>> names),
>>> +            *  <code>"MMMM"</code> (month names), <code>"D"</code>, 
>>> <code>"DD"</code>,
>>> +            *  <code>"YY"</code>, <code>"YYYY"</code>,
>>> +            *  delimiter, and punctuation characters.
>>> +            *  
>>> +            *  <p>Only upper case characters are supported.</p>
>>> +            * 
>>> +            *  @default "MM/DD/YYYY"
>>> +            *  
>>> +            *  @langversion 3.0
>>> +            *  @playerversion Flash 9
>>> +            *  @playerversion AIR 1.1
>>> +            *  @productversion Flex 3
>>> +            */
>>> +           // public function get formatString():String
>>> +           // {
>>> +                   // return _formatString;
>>> +           // }
>>> +
>>> +           // /**
>>> +            // *  @private
>>> +            // */
>>> +           // public function set formatString(value:String):void
>>> +           // {
>>> +                   // formatStringOverride = value;
>>> +
>>> +                   // if (value != _formatString)
>>> +                   // {
>>> +                           // _formatString = value /* != null ?
>>> +                                                   // value :
>>> +                                                   // 
>>> resourceManager.getString(
>>> +                                                           // 
>>> "SharedResources", "dateFormat")*/;
>>> +                           // var formatter:IBead = 
>>> getBeadByType(IFormatter);
>>> +                           // if (formatter)
>>> +                                   // removeBead(formatter);
>>> +                           // if (value == "MM/DD/YYYY")
>>> +                                   // addBead(new DateFormatMMDDYYYY());
>>> +                           // else if (value == "DD/MM/YYYY")
>>> +                                   // addBead(new DateFormatDDMMYYYY());
>>> +                           // else if (value == "YYYY/MM/DD")
>>> +                                   // addBead(new DateFormatYYYYMMDD());
>>> +                   // }
>>> +           // }
>>> +           
>>> +           /**
>>> +            *  @private
>>> +            */
>>> +           public function get text():String
>>> +           {
>>> +                   // var s:String = ((view as 
>>> DateFieldView).textInputField as TextInput).text;
>>> +                   // return s == null ? "" : s;
>>> +                   return "";
>>> +           }
>>> +      
>>> +           /**
>>> +            *  @private
>>> +            */
>>> +           public function set text(value:String):void
>>> +           {
>>> +                   // ((view as DateFieldView).textInputField as 
>>> TextInput).text = value == null ? "" : value;
>>> +           }
>>> +}
>>> }
>>> diff --git 
>>> a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridItemRenderer.as
>>>  
>>> b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridItemRenderer.as
>>> index 30b717f2c2..0dcae179e2 100644
>>> --- 
>>> a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridItemRenderer.as
>>> +++ 
>>> b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridItemRenderer.as
>>> @@ -800,7 +800,7 @@ public class AdvancedDataGridItemRenderer extends 
>>> StringItemRenderer
>>>      *  @playerversion AIR 1.1
>>>      *  @productversion Flex 3
>>>      */
>>> -    public function get mxmlDocument():Object
>>> +    override public function get mxmlDocument():Object
>>>     {
>>>         return _mxmlDocument;
>>>     }
>>> @@ -808,7 +808,7 @@ public class AdvancedDataGridItemRenderer extends 
>>> StringItemRenderer
>>>     /**
>>>      *  @private
>>>      */
>>> -    public function set mxmlDocument(value:Object):void
>>> +    override public function set mxmlDocument(value:Object):void
>>>     {
>>>         _mxmlDocument = value;
>>>     }
>>> diff --git 
>>> a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dataGridClasses/DataGridItemRenderer.as
>>>  
>>> b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dataGridClasses/DataGridItemRenderer.as
>>> index 727630cae4..6b86afd51b 100644
>>> --- 
>>> a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dataGridClasses/DataGridItemRenderer.as
>>> +++ 
>>> b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dataGridClasses/DataGridItemRenderer.as
>>> @@ -960,7 +960,7 @@ public class DataGridItemRenderer extends 
>>> StringItemRenderer
>>>      *  @playerversion AIR 1.1
>>>      *  @productversion Flex 3
>>>      */
>>> -    public function get mxmlDocument():Object
>>> +    override public function get mxmlDocument():Object
>>>     {
>>>         return _mxmlDocument;
>>>     }
>>> @@ -968,7 +968,7 @@ public class DataGridItemRenderer extends 
>>> StringItemRenderer
>>>     /**
>>>      *  @private
>>>      */
>>> -    public function set mxmlDocument(value:Object):void
>>> +    override public function set mxmlDocument(value:Object):void
>>>     {
>>>         _mxmlDocument = value;
>>>     }
>>> diff --git 
>>> a/frameworks/projects/MXRoyale/src/main/royale/mx/core/UIComponent.as 
>>> b/frameworks/projects/MXRoyale/src/main/royale/mx/core/UIComponent.as
>>> index da171add4b..1e51d1f061 100644
>>> --- a/frameworks/projects/MXRoyale/src/main/royale/mx/core/UIComponent.as
>>> +++ b/frameworks/projects/MXRoyale/src/main/royale/mx/core/UIComponent.as
>>> @@ -2391,7 +2391,7 @@ COMPILE::JS
>>>      *  @playerversion AIR 1.1
>>>      *  @productversion Flex 3
>>>      */
>>> -    public function get mxmlDocument():Object
>>> +    override public function get mxmlDocument():Object
>>>     {
>>>         if (!_mxmlDocument && MXMLDescriptor != null)
>>>             _mxmlDocument = this;
>>> @@ -2408,7 +2408,7 @@ COMPILE::JS
>>>      *  @playerversion AIR 1.1
>>>      *  @productversion Flex 3
>>>      */
>>> -    public function set mxmlDocument(value:Object):void
>>> +    override public function set mxmlDocument(value:Object):void
>>>     {
>>>         var n:int = numChildren;
>>>         for (var i:int = 0; i < n; i++)
>>> @@ -2519,7 +2519,7 @@ COMPILE::JS
>>>      *  @playerversion AIR 1.1
>>>      *  @productversion Flex 3
>>>      */
>>> -    public function get parentApplication():Object
>>> +    override public function get parentApplication():Object
>>>     {
>>>         // Look for the SystemManager's document,
>>>         // which should be the Application.
>>> @@ -2572,7 +2572,7 @@ COMPILE::JS
>>>      *  @playerversion AIR 1.1
>>>      *  @productversion Flex 3
>>>      */
>>> -    public function get parentMxmlDocument():Object
>>> +    override public function get parentMxmlDocument():Object
>>>     {
>>>         if (mxmlDocument == this)
>>>         {
>>> diff --git 
>>> a/frameworks/projects/MXRoyale/src/main/royale/mx/managers/SystemManager.as 
>>> b/frameworks/projects/MXRoyale/src/main/royale/mx/managers/SystemManager.as
>>> index af6debe60a..af94fd5825 100644
>>> --- 
>>> a/frameworks/projects/MXRoyale/src/main/royale/mx/managers/SystemManager.as
>>> +++ 
>>> b/frameworks/projects/MXRoyale/src/main/royale/mx/managers/SystemManager.as
>>> @@ -833,7 +833,9 @@ public class SystemManager extends SystemManagerBase 
>>> implements ISystemManager,
>>> 
>>>         return _densityScale;
>>>     } */
>>> -    
>>> +   
>>> +   
>>> +   
>>>     //----------------------------------
>>>     //  component (was 'document' in Flex, but collides with browser 
>>> 'document'
>>>     //----------------------------------
>>> @@ -842,7 +844,8 @@ public class SystemManager extends SystemManagerBase 
>>> implements ISystemManager,
>>>      *  @private
>>>      *  Storage for the mxmlDocument property.
>>>      */
>>> -    private var _mxmlDocument:Object;
>>> +    
>>> +   private var _mxmlDocument:Object;
>>> 
>>>     /**
>>>      *  @inheritDoc
>>> @@ -852,18 +855,31 @@ public class SystemManager extends SystemManagerBase 
>>> implements ISystemManager,
>>>      *  @playerversion AIR 1.1
>>>      *  @productversion Royale 0.9.4
>>>      */
>>> -    public function get mxmlDocument():Object
>>> +   COMPILE::JS {
>>> +   override public function get mxmlDocument():Object
>>>     {
>>>         return _mxmlDocument;
>>>     }
>>> 
>>> -    /**
>>> -     *  @private
>>> -     */
>>> +   
>>> +    override public function set mxmlDocument(value:Object):void
>>> +    {
>>> +        _mxmlDocument = value;
>>> +    }
>>> +   }
>>> +   
>>> +   COMPILE::SWF {
>>> +   public function get mxmlDocument():Object
>>> +    {
>>> +        return _mxmlDocument;
>>> +    }
>>> +
>>> +   
>>>     public function set mxmlDocument(value:Object):void
>>>     {
>>>         _mxmlDocument = value;
>>>     }
>>> +   }
>>> 
>>>     //----------------------------------
>>>     //  embeddedFontList
>>> diff --git 
>>> a/frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IUIComponent.as 
>>> b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IUIComponent.as
>>> index 497dbe2532..8478678a43 100644
>>> --- 
>>> a/frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IUIComponent.as
>>> +++ 
>>> b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IUIComponent.as
>>> @@ -56,12 +56,12 @@ public interface IUIComponent extends 
>>> IFlexDisplayObject, IChild, IUIBase, IChil
>>>      *  @playerversion AIR 1.1
>>>      *  @productversion Flex 3
>>>      */
>>> -    function get mxmlDocument():Object
>>> +    // function get mxmlDocument():Object
>>> 
>>>     /**
>>>      *  @private
>>>      */
>>> -    function set mxmlDocument(value:Object):void
>>> +    // function set mxmlDocument(value:Object):void
>>> 
>>>     //----------------------------------
>>>     //  enabled
>>> 
>> 
> 

Reply via email to