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 <[email protected]>
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