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