You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@royale.apache.org by Josh Tynjala <jo...@bowlerhat.dev> on 2025/01/15 00:16:48 UTC
Re: (royale-asjs) branch develop updated: Added parentApplication and mxmlDocument in UIBase and some other changes
Hi Pashmina,
The frameworks/projects/Effects project in royale-asjs doesn't seem to
build correctly after this change.
--
Josh Tynjala
Bowler Hat LLC <https://bowlerhat.dev>
On Mon, Jan 13, 2025 at 12:58 PM <pu...@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 <pa...@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
>
>
Re: (royale-asjs) branch develop updated: Added parentApplication and mxmlDocument in UIBase and some other changes
Posted by Pashmina Kazi <pa...@gmail.com>.
Hi Josh,
Sorry for the issue.
I have fixed this issue in my recent commit
https://github.com/apache/royale-asjs/commit/487e06854973f8fcf8083afa2dd52811e5e5c519
Hope it works fine.
Thanks and Regards,
Pashmina kazi
On Wed, Jan 15, 2025 at 5:19 AM Josh Tynjala <jo...@bowlerhat.dev>
wrote:
> Hi Pashmina,
>
> The frameworks/projects/Effects project in royale-asjs doesn't seem to
> build correctly after this change.
>
> --
> Josh Tynjala
> Bowler Hat LLC <https://bowlerhat.dev>
>
>
> On Mon, Jan 13, 2025 at 12:58 PM <pu...@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 <pa...@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
> >
> >
>