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