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