You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2016/06/03 17:55:20 UTC
[1/6] git commit: [flex-asjs] [refs/heads/spark] - use IVisualElement
instead of Object in addElement and friends
Repository: flex-asjs
Updated Branches:
refs/heads/spark c4cb764eb -> 64ffbcba9
use IVisualElement instead of Object in addElement and friends
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/ea5f2493
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/ea5f2493
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/ea5f2493
Branch: refs/heads/spark
Commit: ea5f249325f25ee83f4426739480cbc7c31f5895
Parents: c4cb764
Author: Alex Harui <ah...@apache.org>
Authored: Fri May 27 12:03:53 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Fri May 27 12:03:53 2016 -0700
----------------------------------------------------------------------
.../org/apache/flex/charts/core/IAxisGroup.as | 3 +-
.../flex/charts/core/IChartItemRenderer.as | 45 ---------
.../flex/charts/optimized/SVGChartDataGroup.as | 5 +-
.../flex/org/apache/flex/core/Application.as | 32 +++---
.../flex/org/apache/flex/core/ContainerBase.as | 20 ++--
.../flex/core/ContainerBaseStrandChildren.as | 10 +-
.../org/apache/flex/core/FilledRectangle.as | 2 +-
.../main/flex/org/apache/flex/core/IChild.as | 2 +-
.../flex/org/apache/flex/core/IContentView.as | 2 +-
.../flex/org/apache/flex/core/IItemRenderer.as | 2 +-
.../main/flex/org/apache/flex/core/IParent.as | 10 +-
.../main/flex/org/apache/flex/core/IUIBase.as | 68 +------------
.../flex/org/apache/flex/core/IVisualElement.as | 100 +++++++++++++++++++
.../main/flex/org/apache/flex/core/ListBase.as | 10 +-
.../apache/flex/core/ListBaseStrandChildren.as | 10 +-
.../org/apache/flex/core/SimpleStatesImpl.as | 6 +-
.../main/flex/org/apache/flex/core/UIBase.as | 34 ++++---
.../apache/flex/utils/MXMLDataInterpreter.as | 8 +-
.../org/apache/flex/createjs/Application.as | 33 +++---
.../org/apache/flex/createjs/core/UIBase.as | 26 +++--
.../flex/core/StatesWithTransitionsImpl.as | 11 +-
.../apache/flex/flat/beads/CSSScrollBarView.as | 9 +-
.../apache/flex/flat/beads/DropDownListView.as | 3 +-
.../org/apache/flex/html/beads/ComboBoxView.as | 7 +-
.../org/apache/flex/html/beads/ContainerView.as | 11 +-
.../apache/flex/html/beads/DropDownListView.as | 4 +-
.../apache/flex/html/beads/WebBrowserView.as | 2 +-
.../flex/html/supportClasses/DataGroup.as | 5 +-
.../main/flex/org/apache/flex/mobile/IView.as | 4 +-
.../flex/org/apache/flex/mobile/ManagerBase.as | 11 +-
.../apache/flex/mobile/StackedViewManager.as | 5 +-
31 files changed, 274 insertions(+), 226 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/core/IAxisGroup.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/core/IAxisGroup.as b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/core/IAxisGroup.as
index c2c8f79..dcb37a3 100644
--- a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/core/IAxisGroup.as
+++ b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/core/IAxisGroup.as
@@ -20,6 +20,7 @@ package org.apache.flex.charts.core
{
import org.apache.flex.core.graphics.IFill;
import org.apache.flex.core.graphics.IStroke;
+ import org.apache.flex.core.IVisualElement;
/**
* The IAxisGroup defines the interface for classes that provide drawing
@@ -30,7 +31,7 @@ package org.apache.flex.charts.core
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- public interface IAxisGroup
+ public interface IAxisGroup extends IVisualElement
{
function removeAllElements():void;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/core/IChartItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/core/IChartItemRenderer.as b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/core/IChartItemRenderer.as
index 16a2ec8..430f7af 100644
--- a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/core/IChartItemRenderer.as
+++ b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/core/IChartItemRenderer.as
@@ -67,50 +67,5 @@ package org.apache.flex.charts.core
function get yField():String;
function set yField(value:String):void;
- /**
- * The x display position for the itemRenderer. This is set by
- * the chart's layout manager.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- function set x(value:Number):void;
- function get x():Number;
-
- /**
- * The y display position for the itemRenderer. This is set by
- * the chart's layout manager.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- function set y(value:Number):void;
- function get y():Number;
-
- /**
- * The display width for the itemRenderer. This is set by
- * the chart's layout manager.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- function set width(value:Number):void;
-
- /**
- * The display height for the itemRenderer. This is set by
- * the chart's layout manager.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- function set height(value:Number):void;
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGChartDataGroup.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGChartDataGroup.as b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGChartDataGroup.as
index 3d5ec8c..d7fc8af 100644
--- a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGChartDataGroup.as
+++ b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGChartDataGroup.as
@@ -25,6 +25,7 @@ package org.apache.flex.charts.optimized
import org.apache.flex.core.IItemRenderer;
import org.apache.flex.core.IItemRendererParent;
import org.apache.flex.core.IStrand;
+ import org.apache.flex.core.IVisualElement;
import org.apache.flex.core.UIBase;
import org.apache.flex.core.graphics.GraphicsContainer;
import org.apache.flex.events.Event;
@@ -141,7 +142,7 @@ package org.apache.flex.charts.optimized
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- override public function addElement(value:Object, dispatchEvent:Boolean = true):void
+ override public function addElement(value:IVisualElement, dispatchEvent:Boolean = true):void
{
_children.push(value);
@@ -160,7 +161,7 @@ package org.apache.flex.charts.optimized
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- override public function addElementAt(value:Object, index:int, dispatchEvent:Boolean = true):void
+ override public function addElementAt(value:IVisualElement, index:int, dispatchEvent:Boolean = true):void
{
if (index >= _children.length) _children.push(value);
else _children.splice(index, 0, value);
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/Core/src/main/flex/org/apache/flex/core/Application.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/Application.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/Application.as
index 97d0088..697f893 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/Application.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/Application.as
@@ -414,8 +414,9 @@ package org.apache.flex.core
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
+ * @flexjsignorecoercion org.apache.flex.core.IUIBase
*/
- public function addElement(c:Object, dispatchEvent:Boolean = true):void
+ public function addElement(c:IVisualElement, dispatchEvent:Boolean = true):void
{
COMPILE::AS3 {
if (c is IUIBase)
@@ -427,8 +428,9 @@ package org.apache.flex.core
addChild(c as DisplayObject);
}
COMPILE::JS {
- this.element.appendChild(c.element);
- c.addedToParent();
+ var ui:IUIBase = c as IUIBase;
+ this.element.appendChild(ui.element);
+ ui.addedToParent();
}
}
@@ -439,8 +441,9 @@ package org.apache.flex.core
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
+ * @flexjsignorecoercion org.apache.flex.core.IUIBase
*/
- public function addElementAt(c:Object, index:int, dispatchEvent:Boolean = true):void
+ public function addElementAt(c:IVisualElement, index:int, dispatchEvent:Boolean = true):void
{
COMPILE::AS3 {
if (c is IUIBase)
@@ -457,9 +460,10 @@ package org.apache.flex.core
addElement(c);
else
{
- element.insertBefore(c.positioner,
+ var ui:IUIBase = c as IUIBase;
+ element.insertBefore(ui.positioner,
children[index]);
- c.addedToParent();
+ ui.addedToParent();
}
}
@@ -473,10 +477,10 @@ package org.apache.flex.core
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- public function getElementAt(index:int):Object
+ public function getElementAt(index:int):IVisualElement
{
COMPILE::AS3 {
- return getChildAt(index);
+ return getChildAt(index) as IVisualElement;
}
COMPILE::JS {
var children:NodeList = internalChildren();
@@ -491,8 +495,9 @@ package org.apache.flex.core
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
+ * @flexjsignorecoercion org.apache.flex.core.IUIBase
*/
- public function getElementIndex(c:Object):int
+ public function getElementIndex(c:IVisualElement):int
{
COMPILE::AS3 {
if (c is IUIBase)
@@ -503,9 +508,10 @@ package org.apache.flex.core
COMPILE::JS {
var children:NodeList = internalChildren();
var n:int = children.length;
+ var ui:IUIBase = c as IUIBase;
for (var i:int = 0; i < n; i++)
{
- if (children[i] == c.element)
+ if (children[i] == ui.element)
return i;
}
return -1;
@@ -519,8 +525,9 @@ package org.apache.flex.core
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
+ * @flexjsignorecoercion org.apache.flex.core.IUIBase
*/
- public function removeElement(c:Object, dispatchEvent:Boolean = true):void
+ public function removeElement(c:IVisualElement, dispatchEvent:Boolean = true):void
{
COMPILE::AS3 {
if (c is IUIBase)
@@ -531,7 +538,8 @@ package org.apache.flex.core
removeChild(c as DisplayObject);
}
COMPILE::JS {
- element.removeChild(c.element);
+ var ui:IUIBase = c as IUIBase;
+ element.removeChild(ui.element);
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ContainerBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ContainerBase.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ContainerBase.as
index 2f7186f..1609c2a 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ContainerBase.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ContainerBase.as
@@ -106,7 +106,7 @@ package org.apache.flex.core
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- override public function getElementAt(index:int):Object
+ override public function getElementAt(index:int):IVisualElement
{
var contentView:IParent = view as IParent;
if (contentView != null) {
@@ -119,7 +119,7 @@ package org.apache.flex.core
/**
* @private
*/
- override public function getElementIndex(c:Object):int
+ override public function getElementIndex(c:IVisualElement):int
{
var contentView:IParent = view as IParent;
if (contentView != null) {
@@ -132,7 +132,7 @@ package org.apache.flex.core
/**
* @private
*/
- override public function addElement(c:Object, dispatchEvent:Boolean = true):void
+ override public function addElement(c:IVisualElement, dispatchEvent:Boolean = true):void
{
var contentView:IParent = view as IParent;
if (contentView != null) {
@@ -148,7 +148,7 @@ package org.apache.flex.core
/**
* @private
*/
- override public function addElementAt(c:Object, index:int, dispatchEvent:Boolean = true):void
+ override public function addElementAt(c:IVisualElement, index:int, dispatchEvent:Boolean = true):void
{
var contentView:IParent = view as IParent;
if (contentView != null) {
@@ -164,7 +164,7 @@ package org.apache.flex.core
/**
* @private
*/
- override public function removeElement(c:Object, dispatchEvent:Boolean = true):void
+ override public function removeElement(c:IVisualElement, dispatchEvent:Boolean = true):void
{
var contentView:IParent = view as IParent;
if (contentView != null) {
@@ -229,7 +229,7 @@ package org.apache.flex.core
* @suppress {undefinedNames}
* Support strandChildren.
*/
- public function $addElement(c:Object, dispatchEvent:Boolean = true):void
+ public function $addElement(c:IVisualElement, dispatchEvent:Boolean = true):void
{
super.addElement(c, dispatchEvent);
}
@@ -239,7 +239,7 @@ package org.apache.flex.core
* @suppress {undefinedNames}
* Support strandChildren.
*/
- public function $addElementAt(c:Object, index:int, dispatchEvent:Boolean = true):void
+ public function $addElementAt(c:IVisualElement, index:int, dispatchEvent:Boolean = true):void
{
super.addElementAt(c, index, dispatchEvent);
}
@@ -249,7 +249,7 @@ package org.apache.flex.core
* @suppress {undefinedNames}
* Support strandChildren.
*/
- public function $removeElement(c:Object, dispatchEvent:Boolean = true):void
+ public function $removeElement(c:IVisualElement, dispatchEvent:Boolean = true):void
{
super.removeElement(c, dispatchEvent);
}
@@ -259,7 +259,7 @@ package org.apache.flex.core
* @suppress {undefinedNames}
* Support strandChildren.
*/
- public function $getElementIndex(c:Object):int
+ public function $getElementIndex(c:IVisualElement):int
{
return super.getElementIndex(c);
}
@@ -269,7 +269,7 @@ package org.apache.flex.core
* @suppress {undefinedNames}
* Support strandChildren.
*/
- public function $getElementAt(index:int):Object
+ public function $getElementAt(index:int):IVisualElement
{
return super.getElementAt(index);
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ContainerBaseStrandChildren.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ContainerBaseStrandChildren.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ContainerBaseStrandChildren.as
index d171288..a5afbee 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ContainerBaseStrandChildren.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ContainerBaseStrandChildren.as
@@ -59,7 +59,7 @@ package org.apache.flex.core
/**
* @private
*/
- public function addElement(c:Object, dispatchEvent:Boolean = true):void
+ public function addElement(c:IVisualElement, dispatchEvent:Boolean = true):void
{
owner.$addElement(c, dispatchEvent);
}
@@ -67,7 +67,7 @@ package org.apache.flex.core
/**
* @private
*/
- public function addElementAt(c:Object, index:int, dispatchEvent:Boolean = true):void
+ public function addElementAt(c:IVisualElement, index:int, dispatchEvent:Boolean = true):void
{
owner.$addElementAt(c, index, dispatchEvent);
}
@@ -75,7 +75,7 @@ package org.apache.flex.core
/**
* @private
*/
- public function removeElement(c:Object, dispatchEvent:Boolean = true):void
+ public function removeElement(c:IVisualElement, dispatchEvent:Boolean = true):void
{
owner.$removeElement(c, dispatchEvent);
}
@@ -83,7 +83,7 @@ package org.apache.flex.core
/**
* @private
*/
- public function getElementIndex(c:Object):int
+ public function getElementIndex(c:IVisualElement):int
{
return owner.$getElementIndex(c);
}
@@ -91,7 +91,7 @@ package org.apache.flex.core
/**
* @private
*/
- public function getElementAt(index:int):Object
+ public function getElementAt(index:int):IVisualElement
{
return owner.$getElementAt(index);
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/Core/src/main/flex/org/apache/flex/core/FilledRectangle.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/FilledRectangle.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/FilledRectangle.as
index 2fcf8dd..368a4f8 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/FilledRectangle.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/FilledRectangle.as
@@ -51,7 +51,7 @@ package org.apache.flex.core
COMPILE::AS3
{
_shape = new flash.display.Shape();
- this.addElement(_shape);
+ this.addChild(_shape);
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IChild.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IChild.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IChild.as
index f273f2e..97423f9 100755
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IChild.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IChild.as
@@ -32,7 +32,7 @@ package org.apache.flex.core
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- public interface IChild
+ public interface IChild extends IVisualElement
{
/**
* The parent.
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IContentView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IContentView.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IContentView.as
index 42cc685..a6b64eb 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IContentView.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IContentView.as
@@ -32,7 +32,7 @@ package org.apache.flex.core
function get height():Number;
function set height(value:Number):void;
- function addElement(value:Object, dispatchEvent:Boolean = true):void;
+ function addElement(value:IVisualElement, dispatchEvent:Boolean = true):void;
function removeAllElements():void;
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IItemRenderer.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IItemRenderer.as
index 237517d..26b4c7c 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IItemRenderer.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IItemRenderer.as
@@ -29,7 +29,7 @@ package org.apache.flex.core
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- public interface IItemRenderer extends IEventDispatcher
+ public interface IItemRenderer extends IEventDispatcher, IVisualElement
{
/**
* The data item to be displayed by the item renderer.
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IParent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IParent.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IParent.as
index 2b49278..26620e3 100755
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IParent.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IParent.as
@@ -41,7 +41,7 @@ package org.apache.flex.core
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- function addElement(c:Object, dispatchEvent:Boolean = true):void;
+ function addElement(c:IVisualElement, dispatchEvent:Boolean = true):void;
/**
* Add a component to the parent.
@@ -55,7 +55,7 @@ package org.apache.flex.core
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- function addElementAt(c:Object, index:int, dispatchEvent:Boolean = true):void;
+ function addElementAt(c:IVisualElement, index:int, dispatchEvent:Boolean = true):void;
/**
* Gets the index of this subcomponent.
@@ -68,7 +68,7 @@ package org.apache.flex.core
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- function getElementIndex(c:Object):int;
+ function getElementIndex(c:IVisualElement):int;
/**
* Remove a component from the parent.
@@ -81,7 +81,7 @@ package org.apache.flex.core
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- function removeElement(c:Object, dispatchEvent:Boolean = true):void;
+ function removeElement(c:IVisualElement, dispatchEvent:Boolean = true):void;
/**
* The number of elements in the parent.
@@ -103,7 +103,7 @@ package org.apache.flex.core
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- function getElementAt(index:int):Object;
+ function getElementAt(index:int):IVisualElement;
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IUIBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IUIBase.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IUIBase.as
index 349e24f..82f5803 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IUIBase.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IUIBase.as
@@ -28,7 +28,7 @@ package org.apache.flex.core
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- public interface IUIBase extends IStrand, IEventDispatcher
+ public interface IUIBase extends IStrand, IEventDispatcher, IVisualElement
{
/**
* Each IUIBase has an element that is actually added to
@@ -80,72 +80,6 @@ package org.apache.flex.core
*/
function addedToParent():void;
- /**
- * The alpha or opacity in the range of 0 to 1.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- function get alpha():Number;
- function set alpha(value:Number):void;
-
- /**
- * The x co-ordinate or left side position of the bounding box.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- function get x():Number;
- function set x(value:Number):void;
-
- /**
- * The y co-ordinate or top position of the bounding box.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- function get y():Number;
- function set y(value:Number):void;
-
- /**
- * The width of the bounding box.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- function get width():Number;
- function set width(value:Number):void;
-
- /**
- * The height of the bounding box.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- function get height():Number;
- function set height(value:Number):void;
-
- /**
- * Whether the component is visible.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- function get visible():Boolean;
- function set visible(value:Boolean):void;
-
/**
* The top most event dispatcher. Good for trying to capture
* all input events.
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IVisualElement.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IVisualElement.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IVisualElement.as
new file mode 100644
index 0000000..e1a4b7d
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IVisualElement.as
@@ -0,0 +1,100 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.flex.core
+{
+ import org.apache.flex.events.IEventDispatcher;
+
+ /**
+ * The IVisualElement interface is the basic interface for display components.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public interface IVisualElement
+ {
+ /**
+ * The alpha or opacity in the range of 0 to 1.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function get alpha():Number;
+ function set alpha(value:Number):void;
+
+ /**
+ * The x co-ordinate or left side position of the bounding box.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function get x():Number;
+ function set x(value:Number):void;
+
+ /**
+ * The y co-ordinate or top position of the bounding box.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function get y():Number;
+ function set y(value:Number):void;
+
+ /**
+ * The width of the bounding box.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function get width():Number;
+ function set width(value:Number):void;
+
+ /**
+ * The height of the bounding box.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function get height():Number;
+ function set height(value:Number):void;
+
+ /**
+ * Whether the component is visible.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function get visible():Boolean;
+ function set visible(value:Boolean):void;
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ListBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ListBase.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ListBase.as
index 6380f2f..18b1fe9 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ListBase.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ListBase.as
@@ -77,7 +77,7 @@ package org.apache.flex.core
* @suppress {undefinedNames}
* Support strandChildren.
*/
- public function $addElement(c:Object, dispatchEvent:Boolean = true):void
+ public function $addElement(c:IVisualElement, dispatchEvent:Boolean = true):void
{
super.addElement(c, dispatchEvent);
}
@@ -87,7 +87,7 @@ package org.apache.flex.core
* @suppress {undefinedNames}
* Support strandChildren.
*/
- public function $addElementAt(c:Object, index:int, dispatchEvent:Boolean = true):void
+ public function $addElementAt(c:IVisualElement, index:int, dispatchEvent:Boolean = true):void
{
super.addElementAt(c, index, dispatchEvent);
}
@@ -97,7 +97,7 @@ package org.apache.flex.core
* @suppress {undefinedNames}
* Support strandChildren.
*/
- public function $removeElement(c:Object, dispatchEvent:Boolean = true):void
+ public function $removeElement(c:IVisualElement, dispatchEvent:Boolean = true):void
{
super.removeElement(c, dispatchEvent);
}
@@ -107,7 +107,7 @@ package org.apache.flex.core
* @suppress {undefinedNames}
* Support strandChildren.
*/
- public function $getElementIndex(c:Object):int
+ public function $getElementIndex(c:IVisualElement):int
{
return super.getElementIndex(c);
}
@@ -117,7 +117,7 @@ package org.apache.flex.core
* @suppress {undefinedNames}
* Support strandChildren.
*/
- public function $getElementAt(index:int):Object
+ public function $getElementAt(index:int):IVisualElement
{
return super.getElementAt(index);
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ListBaseStrandChildren.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ListBaseStrandChildren.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ListBaseStrandChildren.as
index 3f77774..642817d 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ListBaseStrandChildren.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ListBaseStrandChildren.as
@@ -60,7 +60,7 @@ package org.apache.flex.core
/**
* @private
*/
- public function addElement(c:Object, dispatchEvent:Boolean = true):void
+ public function addElement(c:IVisualElement, dispatchEvent:Boolean = true):void
{
owner.$addElement(c, dispatchEvent);
}
@@ -68,7 +68,7 @@ package org.apache.flex.core
/**
* @private
*/
- public function addElementAt(c:Object, index:int, dispatchEvent:Boolean = true):void
+ public function addElementAt(c:IVisualElement, index:int, dispatchEvent:Boolean = true):void
{
owner.$addElementAt(c, index, dispatchEvent);
}
@@ -76,7 +76,7 @@ package org.apache.flex.core
/**
* @private
*/
- public function removeElement(c:Object, dispatchEvent:Boolean = true):void
+ public function removeElement(c:IVisualElement, dispatchEvent:Boolean = true):void
{
owner.$removeElement(c, dispatchEvent);
}
@@ -84,7 +84,7 @@ package org.apache.flex.core
/**
* @private
*/
- public function getElementIndex(c:Object):int
+ public function getElementIndex(c:IVisualElement):int
{
return owner.$getElementIndex(c);
}
@@ -92,7 +92,7 @@ package org.apache.flex.core
/**
* @private
*/
- public function getElementAt(index:int):Object
+ public function getElementAt(index:int):IVisualElement
{
return owner.$getElementAt(index);
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/Core/src/main/flex/org/apache/flex/core/SimpleStatesImpl.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/SimpleStatesImpl.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/SimpleStatesImpl.as
index 4a27318..e9d48ea 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/SimpleStatesImpl.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/SimpleStatesImpl.as
@@ -148,6 +148,10 @@ package org.apache.flex.core
}
}
+ /**
+ * @flexjsignorecoercion org.apache.flex.core.IChild
+ * @flexjsignorecoercion org.apache.flex.core.IParent
+ */
private function apply(s:State):void
{
var arr:Array = s.overrides;
@@ -174,7 +178,7 @@ package org.apache.flex.core
parent = parent[ai.destination] as IParent;
if (ai.relativeTo != null)
{
- var child:Object = ai.document[ai.relativeTo];
+ var child:IChild = ai.document[ai.relativeTo] as IChild;
if (ai.destination == null)
parent = child.parent as IParent;
var index:int = parent.getElementIndex(child);
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/Core/src/main/flex/org/apache/flex/core/UIBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/UIBase.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/UIBase.as
index 2465a40..d71e35f 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/UIBase.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/UIBase.as
@@ -168,7 +168,7 @@ package org.apache.flex.core
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- public static const SIZE_CHANGED = "sizeChanged";
+ public static const SIZE_CHANGED:String = "sizeChanged";
/**
* Constructor.
@@ -1112,8 +1112,9 @@ package org.apache.flex.core
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
+ * @flexjsignorecoercion org.apache.flex.core.IUIBase
*/
- public function addElement(c:Object, dispatchEvent:Boolean = true):void
+ public function addElement(c:IVisualElement, dispatchEvent:Boolean = true):void
{
COMPILE::AS3
{
@@ -1127,8 +1128,9 @@ package org.apache.flex.core
}
COMPILE::JS
{
- element.appendChild(c.positioner);
- c.addedToParent();
+ var ui:IUIBase = c as IUIBase;
+ element.appendChild(ui.positioner);
+ ui.addedToParent();
}
}
@@ -1139,8 +1141,9 @@ package org.apache.flex.core
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
+ * @flexjsignorecoercion org.apache.flex.core.IUIBase
*/
- public function addElementAt(c:Object, index:int, dispatchEvent:Boolean = true):void
+ public function addElementAt(c:IVisualElement, index:int, dispatchEvent:Boolean = true):void
{
COMPILE::AS3
{
@@ -1159,9 +1162,10 @@ package org.apache.flex.core
addElement(c);
else
{
- element.insertBefore(c.positioner,
+ var ui:IUIBase = c as IUIBase;
+ element.insertBefore(ui.positioner,
children[index]);
- c.addedToParent();
+ ui.addedToParent();
}
}
}
@@ -1174,11 +1178,11 @@ package org.apache.flex.core
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- public function getElementAt(index:int):Object
+ public function getElementAt(index:int):IVisualElement
{
COMPILE::AS3
{
- return getChildAt(index);
+ return getChildAt(index) as IVisualElement;
}
COMPILE::JS
{
@@ -1194,8 +1198,9 @@ package org.apache.flex.core
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
+ * @flexjsignorecoercion org.apache.flex.core.IUIBase
*/
- public function getElementIndex(c:Object):int
+ public function getElementIndex(c:IVisualElement):int
{
COMPILE::AS3
{
@@ -1208,9 +1213,10 @@ package org.apache.flex.core
{
var children:Array = internalChildren();
var n:int = children.length;
+ var ui:IUIBase = c as IUIBase;
for (var i:int = 0; i < n; i++)
{
- if (children[i] == c.element)
+ if (children[i] == ui.element)
return i;
}
return -1;
@@ -1224,8 +1230,9 @@ package org.apache.flex.core
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
+ * @flexjsignorecoercion org.apache.flex.core.IUIBase
*/
- public function removeElement(c:Object, dispatchEvent:Boolean = true):void
+ public function removeElement(c:IVisualElement, dispatchEvent:Boolean = true):void
{
COMPILE::AS3
{
@@ -1236,7 +1243,8 @@ package org.apache.flex.core
}
COMPILE::JS
{
- element.removeChild(c.element);
+ var ui:IUIBase = c as IUIBase;
+ element.removeChild(ui.element);
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/MXMLDataInterpreter.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/MXMLDataInterpreter.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/MXMLDataInterpreter.as
index c69b550..946b17a 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/MXMLDataInterpreter.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/MXMLDataInterpreter.as
@@ -30,6 +30,7 @@ import org.apache.flex.core.IDocument;
import org.apache.flex.core.IMXMLDocument;
import org.apache.flex.core.IParent;
import org.apache.flex.core.IStrand;
+import org.apache.flex.core.IVisualElement;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
@@ -168,6 +169,7 @@ public class MXMLDataInterpreter
/**
* @flexjsignorecoercion Function
+ * @flexjsignorecoercion org.apache.flex.core.IUIBase
*/
private static function initializeStrandBasedObject(document:Object, parent:IParent, comp:Object, data:Array, i:int):int
{
@@ -295,13 +297,13 @@ public class MXMLDataInterpreter
}
COMPILE::AS3
{
- if (parent && comp is DisplayObject)
- parent.addElement(comp, !(parent is IContainer));
+ if (parent && comp is IVisualElement)
+ parent.addElement(comp as IVisualElement, !(parent is IContainer));
}
COMPILE::JS
{
if (parent && comp is IUIBase)
- parent.addElement(comp, !(parent is IContainer));
+ parent.addElement(comp as IUIBase, !(parent is IContainer));
}
if (children)
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/Application.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/Application.as b/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/Application.as
index 9eccec2..3e67071 100644
--- a/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/Application.as
+++ b/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/Application.as
@@ -22,7 +22,9 @@ package org.apache.flex.createjs
import org.apache.flex.core.IApplicationView;
import org.apache.flex.core.IParent;
import org.apache.flex.core.IStrand;
+ import org.apache.flex.core.IUIBase;
import org.apache.flex.core.IValuesImpl;
+ import org.apache.flex.core.IVisualElement;
import org.apache.flex.core.ValuesManager;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
@@ -318,11 +320,13 @@ package org.apache.flex.createjs
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
* @flexjsignorecoercion createjs.DisplayObject
+ * @flexjsignorecoercion org.apache.flex.core.IUIBase
*/
- public function addElement(c:Object, dispatchEvent:Boolean = true):void
+ public function addElement(c:IVisualElement, dispatchEvent:Boolean = true):void
{
- stage.addChild(c.element as DisplayObject);
- c.addedToParent();
+ var ui:IUIBase = c as IUIBase;
+ stage.addChild(ui.element as DisplayObject);
+ ui.addedToParent();
}
/**
@@ -333,11 +337,13 @@ package org.apache.flex.createjs
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
* @flexjsignorecoercion createjs.DisplayObject
+ * @flexjsignorecoercion org.apache.flex.core.IUIBase
*/
- public function addElementAt(c:Object, index:int, dispatchEvent:Boolean = true):void
+ public function addElementAt(c:IVisualElement, index:int, dispatchEvent:Boolean = true):void
{
- stage.addChildAt(c.element as DisplayObject, index);
- c.addedToParent();
+ var ui:IUIBase = c as IUIBase;
+ stage.addChildAt(ui.element as DisplayObject, index);
+ ui.addedToParent();
}
/**
@@ -347,12 +353,13 @@ package org.apache.flex.createjs
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
+ * @flexjsignorecoercion org.apache.flex.core.IVisualElement
* @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
*/
- public function getElementAt(index:int):Object
+ public function getElementAt(index:int):IVisualElement
{
var c:WrappedHTMLElement = stage.getChildAt(index) as WrappedHTMLElement;
- return c.flexjs_wrapper;
+ return c.flexjs_wrapper as IVisualElement;
}
/**
@@ -363,10 +370,11 @@ package org.apache.flex.createjs
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
* @flexjsignorecoercion createjs.DisplayObject
+ * @flexjsignorecoercion org.apache.flex.core.IUIBase
*/
- public function getElementIndex(c:Object):int
+ public function getElementIndex(c:IVisualElement):int
{
- return stage.getChildIndex(c.element as DisplayObject)
+ return stage.getChildIndex((c as IUIBase).element as DisplayObject)
}
/**
@@ -376,10 +384,11 @@ package org.apache.flex.createjs
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
+ * @flexjsignorecoercion org.apache.flex.core.IUIBase
*/
- public function removeElement(c:Object, dispatchEvent:Boolean = true):void
+ public function removeElement(c:IVisualElement, dispatchEvent:Boolean = true):void
{
- stage.removeChild(c.element as DisplayObject);
+ stage.removeChild((c as IUIBase).element as DisplayObject);
}
/**
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/core/UIBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/core/UIBase.as b/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/core/UIBase.as
index 568d954..a33ca13 100644
--- a/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/core/UIBase.as
+++ b/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/core/UIBase.as
@@ -30,6 +30,7 @@ package org.apache.flex.createjs.core
import org.apache.flex.core.IBeadController;
import org.apache.flex.core.IFlexJSElement;
import org.apache.flex.core.IUIBase;
+ import org.apache.flex.core.IVisualElement;
import org.apache.flex.core.ValuesManager;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
@@ -334,49 +335,54 @@ package org.apache.flex.createjs.core
/**
* @flexjsignorecoercion createjs.Container
* @flexjsignorecoercion createjs.DisplayObject
+ * @flexjsignorecoercion org.apache.flex.core.IUIBase
*/
- public function addElement(c:Object, dispatchEvent:Boolean = true):void
+ public function addElement(c:IVisualElement, dispatchEvent:Boolean = true):void
{
- (element as Container).addChild(c.element as DisplayObject);
+ (element as Container).addChild((c as IUIBase).element as DisplayObject);
}
/**
* @flexjsignorecoercion createjs.Container
* @flexjsignorecoercion createjs.DisplayObject
+ * @flexjsignorecoercion org.apache.flex.core.IVisualElement
*/
- public function addElementAt(c:Object, index:int, dispatchEvent:Boolean = true):void
+ public function addElementAt(c:IVisualElement, index:int, dispatchEvent:Boolean = true):void
{
- (element as Container).addChildAt(c.element as DisplayObject, index);
+ (element as Container).addChildAt((c as IUIBase).element as DisplayObject, index);
}
/**
* @flexjsignorecoercion createjs.Container
* @flexjsignorecoercion createjs.DisplayObject
+ * @flexjsignorecoercion org.apache.flex.core.IVisualElement
*/
- public function getElementIndex(c:Object):int
+ public function getElementIndex(c:IVisualElement):int
{
- return (element as Container).getChildIndex(c.element as DisplayObject);
+ return (element as Container).getChildIndex((c as IUIBase).element as DisplayObject);
}
/**
* @flexjsignorecoercion createjs.Container
* @flexjsignorecoercion createjs.DisplayObject
+ * @flexjsignorecoercion org.apache.flex.core.IVisualElement
*/
- public function removeElement(c:Object, dispatchEvent:Boolean = true):void
+ public function removeElement(c:IVisualElement, dispatchEvent:Boolean = true):void
{
- (element as Container).removeChild(c.element as DisplayObject);
+ (element as Container).removeChild((c as IUIBase).element as DisplayObject);
}
/**
* @flexjsignorecoercion createjs.Container
* @flexjsignorecoercion createjs.DisplayObject
+ * @flexjsignorecoercion org.apache.flex.core.IVisualElement
*/
- public function getElementAt(index:int):Object
+ public function getElementAt(index:int):IVisualElement
{
- return (element as Container).getChildAt(index);
+ return (element as Container).getChildAt(index) as IVisualElement;
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/Effects/src/main/flex/org/apache/flex/core/StatesWithTransitionsImpl.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Effects/src/main/flex/org/apache/flex/core/StatesWithTransitionsImpl.as b/frameworks/projects/Effects/src/main/flex/org/apache/flex/core/StatesWithTransitionsImpl.as
index 9549bc8..ed99875 100644
--- a/frameworks/projects/Effects/src/main/flex/org/apache/flex/core/StatesWithTransitionsImpl.as
+++ b/frameworks/projects/Effects/src/main/flex/org/apache/flex/core/StatesWithTransitionsImpl.as
@@ -19,6 +19,7 @@
package org.apache.flex.core
{
+ import org.apache.flex.core.IChild;
import org.apache.flex.core.IParent;
import org.apache.flex.core.IStatesObject;
import org.apache.flex.effects.Effect;
@@ -266,6 +267,10 @@ package org.apache.flex.core
}
}
+ /**
+ * @flexjsignorecoercion org.apache.flex.core.IChild
+ * @flexjsignorecoercion org.apache.flex.core.IParent
+ */
private function apply(oldState:State, s:State):void
{
var arr:Array = s.overrides;
@@ -286,7 +291,7 @@ package org.apache.flex.core
}
}
var childrenAdded:Boolean = false;
- for each (var item:Object in ai.items)
+ for each (var item:IChild in ai.items)
{
if (!isItemInState(item, oldState))
{
@@ -295,9 +300,9 @@ package org.apache.flex.core
parent = parent[ai.destination] as IParent;
if (ai.relativeTo != null)
{
- var child:Object = ai.document[ai.relativeTo];
+ var child:IChild = ai.document[ai.relativeTo];
if (ai.destination)
- parent = IChild(child).parent as IParent;
+ parent = child.parent as IParent;
var index:int = parent.getElementIndex(child);
if (ai.position == "after")
index++;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/Flat/src/main/flex/org/apache/flex/flat/beads/CSSScrollBarView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Flat/src/main/flex/org/apache/flex/flat/beads/CSSScrollBarView.as b/frameworks/projects/Flat/src/main/flex/org/apache/flex/flat/beads/CSSScrollBarView.as
index 38583f6..85f97db 100644
--- a/frameworks/projects/Flat/src/main/flex/org/apache/flex/flat/beads/CSSScrollBarView.as
+++ b/frameworks/projects/Flat/src/main/flex/org/apache/flex/flat/beads/CSSScrollBarView.as
@@ -26,6 +26,7 @@ package org.apache.flex.flat.beads
import org.apache.flex.core.IScrollBarModel;
import org.apache.flex.core.IStrand;
import org.apache.flex.core.IUIBase;
+ import org.apache.flex.core.IVisualElement;
import org.apache.flex.core.Strand;
import org.apache.flex.core.UIBase;
import org.apache.flex.core.ValuesManager;
@@ -134,10 +135,10 @@ package org.apache.flex.flat.beads
_thumb = new Button();
Button(_thumb).className = "vscrollbar-thumb";
- UIBase(value).addElement(_decrement);
- UIBase(value).addElement(_increment);
- UIBase(value).addElement(_track);
- UIBase(value).addElement(_thumb);
+ UIBase(value).addElement(_decrement as IVisualElement);
+ UIBase(value).addElement(_increment as IVisualElement);
+ UIBase(value).addElement(_track as IVisualElement);
+ UIBase(value).addElement(_thumb as IVisualElement);
IEventDispatcher(_strand).addEventListener("heightChanged", changeHandler);
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/Flat/src/main/flex/org/apache/flex/flat/beads/DropDownListView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Flat/src/main/flex/org/apache/flex/flat/beads/DropDownListView.as b/frameworks/projects/Flat/src/main/flex/org/apache/flex/flat/beads/DropDownListView.as
index f7357b9..3b416ee 100644
--- a/frameworks/projects/Flat/src/main/flex/org/apache/flex/flat/beads/DropDownListView.as
+++ b/frameworks/projects/Flat/src/main/flex/org/apache/flex/flat/beads/DropDownListView.as
@@ -36,6 +36,7 @@ package org.apache.flex.flat.beads
import org.apache.flex.core.ISelectionModel;
import org.apache.flex.core.IStrand;
import org.apache.flex.core.IUIBase;
+ import org.apache.flex.core.IVisualElement;
import org.apache.flex.core.ValuesManager;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
@@ -296,7 +297,7 @@ package org.apache.flex.flat.beads
while (host && !(host is IPopUpHost))
host = host.parent;
if (host)
- IPopUpHost(host).addElement(popUp);
+ IPopUpHost(host).addElement(popUp as IVisualElement);
}
else
{
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ComboBoxView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ComboBoxView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ComboBoxView.as
index e725517..5ff7bcb 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ComboBoxView.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ComboBoxView.as
@@ -29,6 +29,7 @@ package org.apache.flex.html.beads
import org.apache.flex.core.IStrand;
import org.apache.flex.core.ValuesManager;
import org.apache.flex.core.IParent;
+ import org.apache.flex.core.IVisualElement;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
import org.apache.flex.html.Button;
@@ -201,6 +202,10 @@ package org.apache.flex.html.beads
{
return _popUpVisible;
}
+ /**
+ * @private
+ * @flexjsignorecoercion org.apache.flex.core.IVisualElement
+ */
public function set popUpVisible(value:Boolean):void
{
if (value != _popUpVisible)
@@ -218,7 +223,7 @@ package org.apache.flex.html.beads
while (host && !(host is IPopUpHost))
host = host.parent;
if (host)
- IPopUpHost(host).addElement(popUp);
+ IPopUpHost(host).addElement(popUp as IVisualElement);
}
else
{
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ContainerView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ContainerView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ContainerView.as
index 26e78be..3813c5b 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ContainerView.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ContainerView.as
@@ -31,6 +31,7 @@ package org.apache.flex.html.beads
import org.apache.flex.core.IParentIUIBase;
import org.apache.flex.core.IStrand;
import org.apache.flex.core.IUIBase;
+ import org.apache.flex.core.IVisualElement;
import org.apache.flex.core.IViewport;
import org.apache.flex.core.IViewportModel;
import org.apache.flex.core.UIBase;
@@ -143,7 +144,7 @@ package org.apache.flex.html.beads
/**
* @private
*/
- public function addElement(c:Object, dispatchEvent:Boolean = true):void
+ public function addElement(c:IVisualElement, dispatchEvent:Boolean = true):void
{
contentView.addElement(c, dispatchEvent);
}
@@ -151,7 +152,7 @@ package org.apache.flex.html.beads
/**
* @private
*/
- public function addElementAt(c:Object, index:int, dispatchEvent:Boolean = true):void
+ public function addElementAt(c:IVisualElement, index:int, dispatchEvent:Boolean = true):void
{
contentView.addElementAt(c, index, dispatchEvent);
}
@@ -159,7 +160,7 @@ package org.apache.flex.html.beads
/**
* @private
*/
- public function getElementIndex(c:Object):int
+ public function getElementIndex(c:IVisualElement):int
{
return contentView.getElementIndex(c);
}
@@ -167,7 +168,7 @@ package org.apache.flex.html.beads
/**
* @private
*/
- public function removeElement(c:Object, dispatchEvent:Boolean = true):void
+ public function removeElement(c:IVisualElement, dispatchEvent:Boolean = true):void
{
contentView.removeElement(c, dispatchEvent);
}
@@ -183,7 +184,7 @@ package org.apache.flex.html.beads
/**
* @private
*/
- public function getElementAt(index:int):Object
+ public function getElementAt(index:int):IVisualElement
{
return contentView.getElementAt(index);
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DropDownListView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DropDownListView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DropDownListView.as
index 1334227..f34a5dc 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DropDownListView.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DropDownListView.as
@@ -32,6 +32,7 @@ package org.apache.flex.html.beads
import org.apache.flex.core.IPopUpHost;
import org.apache.flex.core.ISelectionModel;
import org.apache.flex.core.IStrand;
+ import org.apache.flex.core.IVisualElement;
import org.apache.flex.core.ValuesManager;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
@@ -274,6 +275,7 @@ package org.apache.flex.html.beads
/**
* @private
+ * @flexjsignorecoercion org.apache.flex.core.IVisualElement
*/
public function set popUpVisible(value:Boolean):void
{
@@ -287,7 +289,7 @@ package org.apache.flex.html.beads
while (host && !(host is IPopUpHost))
host = host.parent;
if (host)
- IPopUpHost(host).addElement(popUp);
+ IPopUpHost(host).addElement(popUp as IVisualElement);
}
else
{
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/WebBrowserView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/WebBrowserView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/WebBrowserView.as
index 46c9484..2350b2d 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/WebBrowserView.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/WebBrowserView.as
@@ -94,7 +94,7 @@ package org.apache.flex.html.beads
loader.y = 0;
loader.width = host.width;
loader.height = host.height;
- (host as UIBase).addElement(loader);
+ (host as UIBase).addChild(loader);
}
/**
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DataGroup.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DataGroup.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DataGroup.as
index 15b6587..8fe8b22 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DataGroup.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DataGroup.as
@@ -24,6 +24,7 @@ package org.apache.flex.html.supportClasses
import org.apache.flex.core.IRollOverModel;
import org.apache.flex.core.ISelectionModel;
import org.apache.flex.core.IStrand;
+ import org.apache.flex.core.IVisualElement;
import org.apache.flex.core.UIBase;
import org.apache.flex.events.IEventDispatcher;
import org.apache.flex.events.Event;
@@ -58,7 +59,7 @@ package org.apache.flex.html.supportClasses
/**
* @private
*/
- override public function addElement(c:Object, dispatchEvent:Boolean = true):void
+ override public function addElement(c:IVisualElement, dispatchEvent:Boolean = true):void
{
super.addElement(c, dispatchEvent);
@@ -72,7 +73,7 @@ package org.apache.flex.html.supportClasses
/**
* @private
*/
- override public function removeElement(c:Object, dispatchEvent:Boolean = true):void
+ override public function removeElement(c:IVisualElement, dispatchEvent:Boolean = true):void
{
super.removeElement(c, dispatchEvent);
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/IView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/IView.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/IView.as
index 232d212..7957f21 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/IView.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/IView.as
@@ -18,6 +18,8 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.flex.mobile
{
+ import org.apache.flex.core.IVisualElement;
+
/**
* The IView interface is implemented by any class that can be managed by
* an IViewManager.
@@ -27,7 +29,7 @@ package org.apache.flex.mobile
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- public interface IView
+ public interface IView extends IVisualElement
{
/**
* The parent view manager.
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ManagerBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ManagerBase.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ManagerBase.as
index 5c2e149..8861131 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ManagerBase.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ManagerBase.as
@@ -19,6 +19,7 @@
package org.apache.flex.mobile
{
import org.apache.flex.core.IChrome;
+ import org.apache.flex.core.IVisualElement;
import org.apache.flex.core.UIBase;
import org.apache.flex.events.Event;
COMPILE::JS
@@ -118,7 +119,7 @@ package org.apache.flex.mobile
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- override public function addElement(c:Object, dispatchEvent:Boolean=true):void
+ override public function addElement(c:IVisualElement, dispatchEvent:Boolean=true):void
{
if (c is IChrome) {
super.addElementAt(c,0,dispatchEvent);
@@ -134,7 +135,7 @@ package org.apache.flex.mobile
/**
* @private.
*/
- override public function addElementAt(c:Object, index:int, dispatchEvent:Boolean=true):void
+ override public function addElementAt(c:IVisualElement, index:int, dispatchEvent:Boolean=true):void
{
if (c is IChrome) {
super.addElementAt(c, index, dispatchEvent);
@@ -147,7 +148,7 @@ package org.apache.flex.mobile
/**
* @private
*/
- override public function removeElement(c:Object, dispatchEvent:Boolean=true):void
+ override public function removeElement(c:IVisualElement, dispatchEvent:Boolean=true):void
{
if (c is IChrome) {
super.removeElement(c, dispatchEvent);
@@ -160,7 +161,7 @@ package org.apache.flex.mobile
/**
* @private
*/
- override public function getElementAt(index:int):Object
+ override public function getElementAt(index:int):IVisualElement
{
return _contentArea.getElementAt(index);
}
@@ -168,7 +169,7 @@ package org.apache.flex.mobile
/**
* @private
*/
- override public function getElementIndex(c:Object):int
+ override public function getElementIndex(c:IVisualElement):int
{
return _contentArea.getElementIndex(c);
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ea5f2493/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/StackedViewManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/StackedViewManager.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/StackedViewManager.as
index 4b29d28..aa1dfd7 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/StackedViewManager.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/StackedViewManager.as
@@ -144,14 +144,15 @@ package org.apache.flex.mobile
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
+ * @flexjsignorecoercion org.apache.flex.mobile.IView
*/
public function pop():void
{
if (ViewManagerModel(model).views.length > 1) {
- var lastView:Object = ViewManagerModel(model).popView();
+ var lastView:IView = ViewManagerModel(model).popView() as IView;
removeElement(_topView);
addElement(lastView);
- _topView = lastView as IView;
+ _topView = lastView;
dispatchEvent( new Event("viewChanged") );
}
[6/6] git commit: [flex-asjs] [refs/heads/spark] - clean compile for
MX with Label and App (except for an Array with flags scenario)
Posted by ah...@apache.org.
clean compile for MX with Label and App (except for an Array with flags scenario)
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/64ffbcba
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/64ffbcba
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/64ffbcba
Branch: refs/heads/spark
Commit: 64ffbcba9640923a9b09d2fcd5eb9eb4bc603e3a
Parents: 4f3802e
Author: Alex Harui <ah...@apache.org>
Authored: Fri Jun 3 10:55:02 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Fri Jun 3 10:55:02 2016 -0700
----------------------------------------------------------------------
.../org/apache/flex/core/HTMLElementWrapper.as | 10 ++
.../main/flex/org/apache/flex/events/Event.as | 9 ++
.../org/apache/flex/events/IEventDispatcher.as | 2 +-
.../main/flex/org/apache/flex/geom/Rectangle.as | 19 +++
.../main/flex/flex/display/InteractiveObject.as | 11 +-
.../MX/src/main/flex/flex/display/Shape.as | 114 ++++++++++++++++++
.../MX/src/main/flex/flex/display/Sprite.as | 2 +-
.../MX/src/main/flex/flex/events/FocusEvent.as | 39 +++++++
.../MX/src/main/flex/flex/events/TimerEvent.as | 18 +++
.../MX/src/main/flex/flex/text/TextField.as | 14 +--
.../MX/src/main/flex/flex/ui/Keyboard.as | 1 +
.../mx/containers/utilityClasses/BoxLayout.as | 5 +
.../containers/utilityClasses/CanvasLayout.as | 26 ++++-
.../utilityClasses/ConstraintColumn.as | 11 +-
.../containers/utilityClasses/ConstraintRow.as | 13 ++-
.../MX/src/main/flex/mx/controls/Label.as | 3 +-
.../mx/controls/listClasses/BaseListData.as | 2 +-
.../controls/listClasses/IListItemRenderer.as | 2 +-
.../MX/src/main/flex/mx/core/Application.as | 25 ++++
.../MX/src/main/flex/mx/core/Container.as | 73 ++++++++++--
.../flex/mx/core/ContainerRawChildrenList.as | 9 +-
.../flex/mx/core/IVisualElementContainer.as | 2 +
.../main/flex/mx/events/IndexChangedEvent.as | 11 +-
.../src/main/flex/mx/geom/RoundedRectangle.as | 1 +
.../src/main/flex/mx/managers/FocusManager.as | 116 +++++++++++++++++--
.../MX/src/main/flex/mx/utils/LoaderUtil.as | 32 +++--
26 files changed, 513 insertions(+), 57 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/Core/src/main/flex/org/apache/flex/core/HTMLElementWrapper.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/HTMLElementWrapper.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/HTMLElementWrapper.as
index 4d4999b..60fe7e8 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/HTMLElementWrapper.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/HTMLElementWrapper.as
@@ -261,5 +261,15 @@ package org.apache.flex.core
return source.dispatchEvent(e);
}
+
+ public function get tabIndex():int
+ {
+ return _element.tabIndex;
+ }
+
+ public function set tabIndex(value:int):void
+ {
+ _element.tabIndex = value;
+ }
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/Core/src/main/flex/org/apache/flex/events/Event.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/Event.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/Event.as
index 8076c66..f0d2e19 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/Event.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/Event.as
@@ -130,5 +130,14 @@ package org.apache.flex.events
{
return new org.apache.flex.events.Event(type, bubbles, cancelable);
}
+
+ /**
+ */
+ public function isDefaultPrevented():Boolean
+ {
+ return defaultPrevented;
+ }
+
+
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/Core/src/main/flex/org/apache/flex/events/IEventDispatcher.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/IEventDispatcher.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/IEventDispatcher.as
index 6d8c684..aecbb4d 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/IEventDispatcher.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/IEventDispatcher.as
@@ -43,7 +43,7 @@ package org.apache.flex.events
{
function addEventListener(type:String, handler:Function, opt_capture:Boolean = false, opt_handlerScope:Object = null):void;
function removeEventListener(type:String, handler:Function, opt_capture:Boolean = false, opt_handlerScope:Object = null):void;
- //function hasEventListener(type:String):Boolean;
+ function hasEventListener(type:String):Boolean;
function dispatchEvent(event:Object):Boolean;
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/Core/src/main/flex/org/apache/flex/geom/Rectangle.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/geom/Rectangle.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/geom/Rectangle.as
index 3f48dc0..93bee93 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/geom/Rectangle.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/geom/Rectangle.as
@@ -97,7 +97,26 @@ public class Rectangle
{
height = value - top;
}
+
+ public function get x():Number
+ {
+ return left;
+ }
+ public function set x(value:Number):void
+ {
+ left = value;
+ }
+
+ public function get y():Number
+ {
+ return top;
+ }
+ public function set y(value:Number):void
+ {
+ top = value;
+ }
+
public static function convert(obj:Object):org.apache.flex.geom.Rectangle
{
return new org.apache.flex.geom.Rectangle(obj.x, obj.y, obj.width, obj.height);
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/MX/src/main/flex/flex/display/InteractiveObject.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/display/InteractiveObject.as b/frameworks/projects/MX/src/main/flex/flex/display/InteractiveObject.as
index 435e6d2..b2e542c 100644
--- a/frameworks/projects/MX/src/main/flex/flex/display/InteractiveObject.as
+++ b/frameworks/projects/MX/src/main/flex/flex/display/InteractiveObject.as
@@ -21,6 +21,15 @@ package flex.display
{
public interface InteractiveObject extends DisplayObject
{
-
+ /**
+ * @copy flash.display.InteractiveObject#tabIndex
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ function get tabIndex():int;
+ function set tabIndex(index:int):void;
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/MX/src/main/flex/flex/display/Shape.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/display/Shape.as b/frameworks/projects/MX/src/main/flex/flex/display/Shape.as
new file mode 100644
index 0000000..2593600
--- /dev/null
+++ b/frameworks/projects/MX/src/main/flex/flex/display/Shape.as
@@ -0,0 +1,114 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 flex.display
+{
+ import org.apache.flex.core.graphics.GraphicsContainer;
+ import org.apache.flex.geom.Point;
+ import org.apache.flex.utils.PointUtils;
+ import mx.managers.SystemManagerGlobals;
+
+ public class Shape extends GraphicsContainer
+ {
+ COMPILE::JS
+ private var _name:String;
+ COMPILE::JS
+ public function get name():String
+ {
+ return _name;
+ }
+ COMPILE::JS
+ public function set name(value:String):void
+ {
+ _name = value;
+ }
+
+ /**
+ * @flexjsignorecoercion flex.display.TopOfDisplayList
+ */
+ public function get topOfDisplayList():TopOfDisplayList
+ {
+ return topMostEventDispatcher as TopOfDisplayList;
+ }
+
+ COMPILE::JS
+ /**
+ * @flexjsignorecoercion flex.display.DisplayObject
+ */
+ public function get root():DisplayObject
+ {
+ return topMostEventDispatcher as DisplayObject;
+ }
+
+ COMPILE::JS
+ /**
+ * @flexjsignorecoercion flex.display.DisplayObject
+ */
+ public function contains(child:DisplayObject):Boolean
+ {
+ while (child)
+ {
+ if (child.parent == this)
+ return true;
+ child = child.parent as DisplayObject;
+ }
+ return topMostEventDispatcher as DisplayObject;
+ }
+
+ COMPILE::JS
+ private var _graphics:Graphics;
+
+ COMPILE::JS
+ /**
+ * @flexjsignorecoercion flex.display.DisplayObject
+ */
+ public function get graphics():Graphics
+ {
+ if (!_graphics)
+ _graphics = new Graphics(this);
+ return _graphics
+ }
+
+ COMPILE::JS
+ public function get mouseX():Number
+ {
+ var pt:Point = new Point(SystemManagerGlobals.lastMouseEvent.screenX,
+ SystemManagerGlobals.lastMouseEvent.screenY);
+ pt = PointUtils.globalToLocal(pt, this);
+ return pt.x;
+ }
+
+ COMPILE::JS
+ public function get mouseY():Number
+ {
+ var pt:Point = new Point(SystemManagerGlobals.lastMouseEvent.screenX,
+ SystemManagerGlobals.lastMouseEvent.screenY);
+ pt = PointUtils.globalToLocal(pt, this);
+ return pt.x;
+ }
+
+ COMPILE::JS
+ override public function get parent():DisplayObjectContainer
+ {
+ return super.parent as DisplayObjectContainer;
+ }
+
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as b/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
index bd29b87..045039e 100644
--- a/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
+++ b/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
@@ -85,7 +85,7 @@ package flex.display
COMPILE::JS
public function addChildAt(child:DisplayObject, index:int):DisplayObject
{
- addElement(child, index);
+ addElementAt(child, index);
return child;
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/MX/src/main/flex/flex/events/FocusEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/events/FocusEvent.as b/frameworks/projects/MX/src/main/flex/flex/events/FocusEvent.as
new file mode 100644
index 0000000..e529f15
--- /dev/null
+++ b/frameworks/projects/MX/src/main/flex/flex/events/FocusEvent.as
@@ -0,0 +1,39 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 flex.events
+{
+ import flex.display.InteractiveObject;
+
+ public class FocusEvent extends Event
+ {
+ public function FocusEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, relatedObject:InteractiveObject = null,
+ shiftKey:Boolean = false, keyCode:uint = 0, direction:String = "none")
+ {
+ super(type, bubbles, cancelable);
+ this.relatedObject = relatedObject;
+ }
+
+ public var relatedObject:InteractiveObject;
+ public var keyCode:uint;
+ public var shiftKey:Boolean;
+
+ public static const FOCUS_IN:String = "focusIn";
+ public static const FOCUS_OUT:String = "focusOut";
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/MX/src/main/flex/flex/events/TimerEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/events/TimerEvent.as b/frameworks/projects/MX/src/main/flex/flex/events/TimerEvent.as
index 9864b85..cd41889 100644
--- a/frameworks/projects/MX/src/main/flex/flex/events/TimerEvent.as
+++ b/frameworks/projects/MX/src/main/flex/flex/events/TimerEvent.as
@@ -1,3 +1,21 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 flex.events
{
public class TimerEvent extends Event
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/text/TextField.as b/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
index 116c7e3..92f27c8 100644
--- a/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
+++ b/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
@@ -426,19 +426,7 @@ public class TextField extends Label
_tabEnabled = value;
trace("TextField.tabEnabled not implemented");
}
-
- private var _tabIndex:int;
- public function get tabIndex():int
- {
- trace("TextField.tabIndex not implemented");
- return _tabIndex;
- }
- public function set tabIndex(value:int):void
- {
- _tabIndex = value;
- trace("TextField.tabIndex not implemented");
- }
-
+
private var _textColor:uint;
public function get textColor():uint
{
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/MX/src/main/flex/flex/ui/Keyboard.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/ui/Keyboard.as b/frameworks/projects/MX/src/main/flex/flex/ui/Keyboard.as
index 6573157..002adde 100644
--- a/frameworks/projects/MX/src/main/flex/flex/ui/Keyboard.as
+++ b/frameworks/projects/MX/src/main/flex/flex/ui/Keyboard.as
@@ -25,6 +25,7 @@ package flex.ui
{
}
+ public static const TAB:int = 0x09;
public static const LEFT:int = 0x25;
public static const UP:int = 0x26;
public static const RIGHT:int = 0x27;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/BoxLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/BoxLayout.as b/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/BoxLayout.as
index 691af3c..18e9260 100644
--- a/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/BoxLayout.as
+++ b/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/BoxLayout.as
@@ -173,12 +173,17 @@ public class BoxLayout extends Layout
var horizontalAlign:Number = getHorizontalAlignValue();
var verticalAlign:Number = getVerticalAlignValue();
+ COMPILE::LATER
+ {
var mw:Number = target.scaleX > 0 && target.scaleX != 1 ?
target.minWidth / Math.abs(target.scaleX) :
target.minWidth;
var mh:Number = target.scaleY > 0 && target.scaleY != 1 ?
target.minHeight / Math.abs(target.scaleY) :
target.minHeight;
+ }
+ var mw:Number = target.minWidth;
+ var mh:Number = target.minHeight;
var w:Number = Math.max(unscaledWidth, mw) - vm.right - vm.left;
var h:Number = Math.max(unscaledHeight, mh) - vm.bottom - vm.top;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/CanvasLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/CanvasLayout.as b/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/CanvasLayout.as
index 6ef6dd2..16f9b7f 100644
--- a/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/CanvasLayout.as
+++ b/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/CanvasLayout.as
@@ -20,8 +20,16 @@
package mx.containers.utilityClasses
{
+COMPILE::AS3
+{
import flash.display.DisplayObject;
import flash.geom.Rectangle;
+}
+COMPILE::JS
+{
+import flex.display.DisplayObject;
+import org.apache.flex.geom.Rectangle;
+}
COMPILE::LATER
{
import mx.containers.Canvas;
@@ -36,7 +44,10 @@ import mx.events.ChildExistenceChangedEvent;
import mx.events.MoveEvent;
import mx.resources.IResourceManager;
import mx.resources.ResourceManager;
+COMPILE::LATER
+{
import flash.utils.Dictionary;
+}
use namespace mx_internal;
@@ -98,7 +109,10 @@ public class CanvasLayout extends Layout
private var colSpanChildren:Array = [];
private var rowSpanChildren:Array = [];
+ COMPILE::LATER
+ {
private var constraintCache:Dictionary = new Dictionary(true);
+ }
private var constraintRegionsInUse:Boolean = false;
@@ -317,7 +331,11 @@ public class CanvasLayout extends Layout
return;
//Calculate constraint boundaries if it has not been calculated
//already
+ COMPILE::LATER
+ {
var childInfo:ChildConstraintInfo = constraintCache[constraintChild];
+ }
+ var childInfo:ChildConstraintInfo;
if (!childInfo)
childInfo = parseConstraints(child);
var left:Number = childInfo.left;
@@ -1158,7 +1176,10 @@ public class CanvasLayout extends Layout
top, bottom, verticalCenter, baseline, leftBoundary,
rightBoundary, hcBoundary, topBoundary, bottomBoundary,
vcBoundary, baselineBoundary);
- constraintCache[child] = info;
+ COMPILE::LATER
+ {
+ constraintCache[child] = info;
+ }
return info;
}
@@ -1690,8 +1711,11 @@ public class CanvasLayout extends Layout
DisplayObject(event.relatedObject).removeEventListener(
MoveEvent.MOVE, child_moveHandler);
+ COMPILE::LATER
+ {
//delete this child from the constraint cache if it exists
delete constraintCache[event.relatedObject];
+ }
}
/**
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/ConstraintColumn.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/ConstraintColumn.as b/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/ConstraintColumn.as
index b5a4614..0ffaf26 100644
--- a/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/ConstraintColumn.as
+++ b/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/ConstraintColumn.as
@@ -20,12 +20,19 @@
package mx.containers.utilityClasses
{
+COMPILE::AS3
+{
import flash.events.Event;
-import flash.events.IEventDispatcher;
+import flash.events.EventDispatcher;
+}
+COMPILE::JS
+{
+import org.apache.flex.events.Event;
+import org.apache.flex.events.EventDispatcher;
+}
import mx.core.IInvalidating;
import mx.core.mx_internal;
import mx.core.IMXMLObject;
-import flash.events.EventDispatcher;
use namespace mx_internal;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/ConstraintRow.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/ConstraintRow.as b/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/ConstraintRow.as
index 91df783..4dc7773 100644
--- a/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/ConstraintRow.as
+++ b/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/ConstraintRow.as
@@ -20,12 +20,19 @@
package mx.containers.utilityClasses
{
-import flash.events.Event;
-import flash.events.IEventDispatcher;
+COMPILE::AS3
+{
+ import flash.events.Event;
+ import flash.events.EventDispatcher;
+}
+COMPILE::JS
+{
+ import org.apache.flex.events.Event;
+ import org.apache.flex.events.EventDispatcher;
+}
import mx.core.IInvalidating;
import mx.core.mx_internal;
import mx.core.IMXMLObject;
-import flash.events.EventDispatcher;
use namespace mx_internal;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/MX/src/main/flex/mx/controls/Label.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/controls/Label.as b/frameworks/projects/MX/src/main/flex/mx/controls/Label.as
index 38f4c57..d07b9f8 100644
--- a/frameworks/projects/MX/src/main/flex/mx/controls/Label.as
+++ b/frameworks/projects/MX/src/main/flex/mx/controls/Label.as
@@ -35,8 +35,7 @@ COMPILE::JS
import flex.display.DisplayObject;
import flex.display.Graphics;
import flex.events.Event;
- import flex.geom.Rectangle;
- import flex.text.StyleSheet;
+ import org.apache.flex.geom.Rectangle;
import flex.text.TextFormat;
import flex.text.TextLineMetrics;
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/MX/src/main/flex/mx/controls/listClasses/BaseListData.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/controls/listClasses/BaseListData.as b/frameworks/projects/MX/src/main/flex/mx/controls/listClasses/BaseListData.as
index cdb1651..d934724 100644
--- a/frameworks/projects/MX/src/main/flex/mx/controls/listClasses/BaseListData.as
+++ b/frameworks/projects/MX/src/main/flex/mx/controls/listClasses/BaseListData.as
@@ -20,7 +20,7 @@
package mx.controls.listClasses
{
-import flash.events.EventDispatcher;
+import org.apache.flex.events.EventDispatcher;
import mx.core.IUIComponent;
import mx.core.IUID;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/MX/src/main/flex/mx/controls/listClasses/IListItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/controls/listClasses/IListItemRenderer.as b/frameworks/projects/MX/src/main/flex/mx/controls/listClasses/IListItemRenderer.as
index 86d2b92..f25db68 100644
--- a/frameworks/projects/MX/src/main/flex/mx/controls/listClasses/IListItemRenderer.as
+++ b/frameworks/projects/MX/src/main/flex/mx/controls/listClasses/IListItemRenderer.as
@@ -20,7 +20,7 @@
package mx.controls.listClasses
{
-import flash.events.IEventDispatcher;
+import org.apache.flex.events.IEventDispatcher;
import mx.core.IDataRenderer;
import mx.core.IFlexDisplayObject;
import mx.core.IUIComponent;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/MX/src/main/flex/mx/core/Application.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/Application.as b/frameworks/projects/MX/src/main/flex/mx/core/Application.as
index 57cd9ec..ea036f0 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/Application.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/Application.as
@@ -1124,7 +1124,12 @@ public class Application extends LayoutContainer
if (!resizeHandlerAdded)
{
// weak reference
+ COMPILE::LATER
+ {
systemManager.addEventListener(Event.RESIZE, resizeHandler, false, 0, true);
+ }
+ systemManager.addEventListener(Event.RESIZE, resizeHandler);
+
resizeHandlerAdded = true;
}
}
@@ -1323,11 +1328,14 @@ public class Application extends LayoutContainer
{
super.resourcesChanged();
+ COMPILE::AS3
+ {
// "View Source" on the context menu
if (viewSourceCMI)
{
viewSourceCMI.caption = resourceManager.getString("core", "viewSource");
}
+ }
}
//--------------------------------------------------------------------------
@@ -1875,6 +1883,23 @@ public class Application extends LayoutContainer
invalidateDisplayList();
}
+
+ COMPILE::JS
+ private function makeParameters(url:String):Object
+ {
+ if (url == null || url.length == 0)
+ return {};
+
+ url = url.substring(1); // remove leading ?
+ var parts:Array = url.split("&");
+ var parms:Object = {};
+ for each (var part:String in parts)
+ {
+ var subParts:Array = part.split("=");
+ parms[subParts[0]] = subParts[1];
+ }
+ return parms;
+ }
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/MX/src/main/flex/mx/core/Container.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/Container.as b/frameworks/projects/MX/src/main/flex/mx/core/Container.as
index 1ca04ea..248e6ba 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/Container.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/Container.as
@@ -43,7 +43,7 @@ COMPILE::JS
import flex.display.Loader;
import flex.display.Shape;
import flex.events.Event;
- import flex.events.MouseEvent;
+ import org.apache.flex.events.MouseEvent;
import flex.text.TextField;
import flex.text.TextLineMetrics;
import flex.ui.Keyboard;
@@ -555,7 +555,10 @@ public class Container extends UIComponent
{
super();
+ COMPILE::AS3
+ {
tabEnabled = false;
+ }
tabFocusEnabled = false;
showInAutomationHierarchy = false;
@@ -807,6 +810,7 @@ public class Container extends UIComponent
* @private
* Propagate to children.
*/
+ COMPILE::AS3
override public function set doubleClickEnabled(value:Boolean):void
{
super.doubleClickEnabled = value;
@@ -892,7 +896,10 @@ public class Container extends UIComponent
o.x = 0;
o.y = 0;
+ COMPILE::LATER
+ {
o.scrollRect = null;
+ }
_focusPane = o;
}
@@ -907,7 +914,10 @@ public class Container extends UIComponent
{
o.x = contentPane.x;
o.y = contentPane.y;
+ COMPILE::LATER
+ {
o.scrollRect = contentPane.scrollRect;
+ }
}
invalidateSizeFlag = oldInvalidateSizeFlag;
@@ -2454,6 +2464,7 @@ public class Container extends UIComponent
* The mouseShieldChildren style is an inherting style
* that is used by the children views.
*/
+ COMPILE::AS3
override public function addEventListener(
type:String, listener:Function,
useCapture:Boolean = false,
@@ -2495,6 +2506,7 @@ public class Container extends UIComponent
* $addEventListener to add event listeners without affecting the behavior
* of the component.
*/
+ COMPILE::AS3
mx_internal function $addEventListener(
type:String, listener:Function,
useCapture:Boolean = false,
@@ -2509,7 +2521,7 @@ public class Container extends UIComponent
* @private
* Remove the mouse shield if we no longer listen to any mouse events
*/
-
+ COMPILE::AS3
override public function removeEventListener(
type:String, listener:Function,
useCapture:Boolean = false):void
@@ -2549,6 +2561,7 @@ public class Container extends UIComponent
* $removeEventListener to remove event listeners without affecting the behavior
* of the component.
*/
+ COMPILE::AS3
mx_internal function $removeEventListener(
type:String, listener:Function,
useCapture:Boolean = false):void
@@ -3026,9 +3039,12 @@ public class Container extends UIComponent
*/
override public function addElement(element:org.apache.flex.core.IVisualElement):org.apache.flex.core.IVisualElement
{
+ COMPILE::AS3
+ {
if (! (element is DisplayObject) )
throw ArgumentError(element + " is not supported in this Container");
-
+ }
+
return addChild(element as DisplayObject) as org.apache.flex.core.IVisualElement;
}
@@ -3042,8 +3058,11 @@ public class Container extends UIComponent
*/
override public function addElementAt(element:org.apache.flex.core.IVisualElement, index:int):org.apache.flex.core.IVisualElement
{
- if (! (element is DisplayObject) )
- throw ArgumentError(element + " is not supported in this Container");
+ COMPILE::AS3
+ {
+ if (! (element is DisplayObject) )
+ throw ArgumentError(element + " is not supported in this Container");
+ }
return addChildAt(element as DisplayObject, index) as org.apache.flex.core.IVisualElement;
}
@@ -3058,8 +3077,11 @@ public class Container extends UIComponent
*/
override public function removeElement(element:org.apache.flex.core.IVisualElement):org.apache.flex.core.IVisualElement
{
- if (! (element is DisplayObject) )
- throw ArgumentError(element + " is not found in this Container");
+ COMPILE::AS3
+ {
+ if (! (element is DisplayObject) )
+ throw ArgumentError(element + " is not supported in this Container");
+ }
return removeChild(element as DisplayObject) as org.apache.flex.core.IVisualElement;
}
@@ -3103,8 +3125,11 @@ public class Container extends UIComponent
*/
public function setElementIndex(element:org.apache.flex.core.IVisualElement, index:int):void
{
- if (! (element is DisplayObject) )
- throw ArgumentError(element + " is not found in this Container");
+ COMPILE::AS3
+ {
+ if (! (element is DisplayObject) )
+ throw ArgumentError(element + " is not supported in this Container");
+ }
return setChildIndex(element as DisplayObject, index);
}
@@ -3117,6 +3142,7 @@ public class Container extends UIComponent
* @playerversion AIR 1.5
* @productversion Flex 4
*/
+ COMPILE::LATER
public function swapElements(element1:org.apache.flex.core.IVisualElement, element2:org.apache.flex.core.IVisualElement):void
{
if (! (element1 is DisplayObject) )
@@ -3135,6 +3161,7 @@ public class Container extends UIComponent
* @playerversion AIR 1.5
* @productversion Flex 4
*/
+ COMPILE::LATER
public function swapElementsAt(index1:int, index2:int):void
{
swapChildrenAt(index1, index2);
@@ -3248,9 +3275,16 @@ public class Container extends UIComponent
if (autoLayout == false)
forceLayout = true;
+ COMPILE::LATER
+ {
// weak references
UIComponentGlobals.layoutManager.addEventListener(
FlexEvent.UPDATE_COMPLETE, layoutCompleteHandler, false, 0, true);
+ }
+ // weak references
+ UIComponentGlobals.layoutManager.addEventListener(
+ FlexEvent.UPDATE_COMPLETE, layoutCompleteHandler);
+
}
/**
@@ -3979,9 +4013,11 @@ public class Container extends UIComponent
*/
override public function finishPrint(obj:Object, target:IFlexDisplayObject):void
{
+ COMPILE::LATER
+ {
if (obj)
contentPane.scrollRect = Rectangle(obj);
-
+ }
super.finishPrint(obj,target);
}
@@ -4023,8 +4059,15 @@ public class Container extends UIComponent
{
forceLayout = true;
// weak reference
+ COMPILE::LATER
+ {
UIComponentGlobals.layoutManager.addEventListener(
FlexEvent.UPDATE_COMPLETE, layoutCompleteHandler, false, 0, true);
+ }
+ // weak references
+ UIComponentGlobals.layoutManager.addEventListener(
+ FlexEvent.UPDATE_COMPLETE, layoutCompleteHandler);
+
}
}
@@ -4093,8 +4136,15 @@ public class Container extends UIComponent
{
forceLayout = true;
// weak reference
+ COMPILE::LATER
+ {
UIComponentGlobals.layoutManager.addEventListener(
FlexEvent.UPDATE_COMPLETE, layoutCompleteHandler, false, 0, true);
+ }
+ // weak references
+ UIComponentGlobals.layoutManager.addEventListener(
+ FlexEvent.UPDATE_COMPLETE, layoutCompleteHandler);
+
}
if (hasEventListener("childrenChanged"))
@@ -5192,10 +5242,13 @@ public class Container extends UIComponent
// 91.9/0.01 = 9190 if it weren't for the rounding.
// To undo the effect of the rounding, we'll add a fudge factor to
// newViewableWidth. That way, we don't display unwanted scrollbars.
+ COMPILE::LATER
+ {
if (scaleX != 1.0)
newViewableWidth += 1.0 / Math.abs(scaleX);
if (scaleY != 1.0)
newViewableHeight += 1.0 / Math.abs(scaleY);
+ }
newViewableWidth = Math.floor(newViewableWidth);
newViewableHeight = Math.floor(newViewableHeight);
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/MX/src/main/flex/mx/core/ContainerRawChildrenList.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/ContainerRawChildrenList.as b/frameworks/projects/MX/src/main/flex/mx/core/ContainerRawChildrenList.as
index 2639f74..299eb35 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/ContainerRawChildrenList.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/ContainerRawChildrenList.as
@@ -20,9 +20,16 @@
package mx.core
{
+COMPILE::AS3
+{
import flash.display.DisplayObject;
import flash.geom.Point;
-
+}
+COMPILE::JS
+{
+import flex.display.DisplayObject;
+import org.apache.flex.geom.Point;
+}
use namespace mx_internal;
[ExcludeClass]
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/MX/src/main/flex/mx/core/IVisualElementContainer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/IVisualElementContainer.as b/frameworks/projects/MX/src/main/flex/mx/core/IVisualElementContainer.as
index a185ef4..b14b8be 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/IVisualElementContainer.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/IVisualElementContainer.as
@@ -256,6 +256,7 @@ public interface IVisualElementContainer
* @playerversion AIR 1.5
* @productversion Flex 4
*/
+ COMPILE::LATER
function swapElements(element1:org.apache.flex.core.IVisualElement, element2:org.apache.flex.core.IVisualElement):void;
/**
@@ -275,6 +276,7 @@ public interface IVisualElementContainer
* @playerversion AIR 1.5
* @productversion Flex 4
*/
+ COMPILE::LATER
function swapElementsAt(index1:int, index2:int):void;
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/MX/src/main/flex/mx/events/IndexChangedEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/events/IndexChangedEvent.as b/frameworks/projects/MX/src/main/flex/mx/events/IndexChangedEvent.as
index 364717a..860f959 100644
--- a/frameworks/projects/MX/src/main/flex/mx/events/IndexChangedEvent.as
+++ b/frameworks/projects/MX/src/main/flex/mx/events/IndexChangedEvent.as
@@ -20,8 +20,15 @@
package mx.events
{
+COMPILE::AS3
+{
import flash.display.DisplayObject;
-import flash.events.Event;
+}
+COMPILE::JS
+{
+import flex.display.DisplayObject;
+}
+import flex.events.Event;
/**
* The IndexChangedEvent class represents events that are dispatched when
@@ -299,7 +306,7 @@ public class IndexChangedEvent extends Event
/**
* @private
*/
- override public function clone():Event
+ override public function cloneEvent():Event
{
return new IndexChangedEvent(type, bubbles, cancelable,
relatedObject, oldIndex,
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/MX/src/main/flex/mx/geom/RoundedRectangle.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/geom/RoundedRectangle.as b/frameworks/projects/MX/src/main/flex/mx/geom/RoundedRectangle.as
index 1eff289..049152b 100644
--- a/frameworks/projects/MX/src/main/flex/mx/geom/RoundedRectangle.as
+++ b/frameworks/projects/MX/src/main/flex/mx/geom/RoundedRectangle.as
@@ -89,6 +89,7 @@ public class RoundedRectangle extends Rectangle
* @productversion Flex 3
*/
public var cornerRadius:Number = 0;
+
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/MX/src/main/flex/mx/managers/FocusManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/managers/FocusManager.as b/frameworks/projects/MX/src/main/flex/mx/managers/FocusManager.as
index 105c979..d641b83 100644
--- a/frameworks/projects/MX/src/main/flex/mx/managers/FocusManager.as
+++ b/frameworks/projects/MX/src/main/flex/mx/managers/FocusManager.as
@@ -36,7 +36,17 @@ import flash.system.IME;
import flash.text.TextField;
import flash.ui.Keyboard;
}
-
+COMPILE::JS
+{
+ import flex.display.DisplayObject;
+ import flex.display.DisplayObjectContainer;
+ import flex.display.InteractiveObject;
+ import org.apache.flex.events.EventDispatcher;
+ import flex.events.Event;
+ import flex.events.FocusEvent;
+ import flex.ui.Keyboard;
+ import flex.text.TextField;
+}
COMPILE::LATER
{
import mx.core.FlexSprite;
@@ -154,9 +164,12 @@ public class FocusManager extends EventDispatcher implements IFocusManager
this.popup = popup;
IMEEnabled = true;
+ COMPILE::AS3
+ {
// Only <= IE8 supported focus cycling out of the SWF
browserMode = Capabilities.playerType == "ActiveX" && !popup;
- desktopMode = Platform.isAir && !popup;
+ desktopMode = Platform.isAir && !popup;
+ }
// Flash main windows come up activated, AIR main windows don't
windowActivated = !desktopMode;
@@ -204,6 +217,8 @@ public class FocusManager extends EventDispatcher implements IFocusManager
// Make sure the SystemManager is running so it can tell us about
// mouse clicks and stage size changes.
+ COMPILE::AS3
+ {
try
{
var awm:IActiveWindowManager =
@@ -220,6 +235,7 @@ public class FocusManager extends EventDispatcher implements IFocusManager
// ignore null pointer errors caused by container using a
// systemManager from another sandbox.
}
+ }
}
//--------------------------------------------------------------------------
@@ -593,15 +609,24 @@ public class FocusManager extends EventDispatcher implements IFocusManager
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
+ * @flexjsignorecoercion flex.display.InteractiveObject;
+ * @flexjsignorecoercion org.apache.flex.core.IUIBase;
*/
public function getFocus():IFocusManagerComponent
{
+ COMPILE::AS3
+ {
var stage:Stage = form.systemManager.stage;
if (!stage)
return null;
var o:InteractiveObject = stage.focus;
+ }
+ COMPILE::JS
+ {
+ var o:InteractiveObject = document.activeElement as InteractiveObject;
+ }
var i:IUIBase;
while (o != null)
{
@@ -620,8 +645,11 @@ public class FocusManager extends EventDispatcher implements IFocusManager
// different than it does on device when using StageText. In ADL, when
// the focus is a StageText component, a TextField whose parent is the
// stage is assigned focus.
+ COMPILE::AS3
+ {
if ((!o && _lastFocus) || (o is TextField && o.parent == stage))
return _lastFocus;
+ }
return findFocusManagerComponent(i);
}
@@ -684,6 +712,8 @@ public class FocusManager extends EventDispatcher implements IFocusManager
// trace("FM " + this + " setting last focus " + target);
_lastFocus = findFocusManagerComponent(i);
+ COMPILE::AS3
+ {
if (Capabilities.hasIME)
{
var usesIME:Boolean;
@@ -696,7 +726,8 @@ public class FocusManager extends EventDispatcher implements IFocusManager
if (IMEEnabled)
IME.enabled = usesIME;
}
-
+ }
+
// handle default button here
// we can't check for Button because of cross-versioning so
// for now we just check for an emphasized property
@@ -800,8 +831,11 @@ public class FocusManager extends EventDispatcher implements IFocusManager
if (activated)
{
dispatchEvent(new FlexEvent(FlexEvent.FLEX_WINDOW_DEACTIVATE));
+ COMPILE::AS3
+ {
if (form.systemManager.stage)
form.systemManager.stage.focus = null;
+ }
}
}
@@ -876,6 +910,8 @@ public class FocusManager extends EventDispatcher implements IFocusManager
// listen for focus changes, use weak references for the stage
// form.systemManager can be null if the form is created in a sandbox and
// added as a child to the root system manager.
+ COMPILE::AS3
+ {
var sm:ISystemManager = form.systemManager;
if (sm)
{
@@ -909,7 +945,7 @@ public class FocusManager extends EventDispatcher implements IFocusManager
sm.addEventListener("windowActivate", activateWindowHandler, true, 0, true);
sm.addEventListener("windowDeactivate", deactivateWindowHandler, true, 0, true);
}
-
+ }
activated = true;
dispatchEvent(new FlexEvent(FlexEvent.FLEX_WINDOW_ACTIVATE));
@@ -944,6 +980,8 @@ public class FocusManager extends EventDispatcher implements IFocusManager
// trace("FocusManager deactivating " + this);
// trace("FocusManager deactivating = " + this._form.systemManager.loaderInfo.url);
+ COMPILE::AS3
+ {
// listen for focus changes
var sm:ISystemManager = form.systemManager;
if (sm)
@@ -971,7 +1009,7 @@ public class FocusManager extends EventDispatcher implements IFocusManager
form.removeEventListener(KeyboardEvent.KEY_DOWN, defaultButtonKeyHandler);
// stop listening for default button in Capture phase
form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true);
-
+ }
activated = false;
dispatchEvent(new FlexEvent(FlexEvent.FLEX_WINDOW_DEACTIVATE));
@@ -1023,7 +1061,7 @@ public class FocusManager extends EventDispatcher implements IFocusManager
o = o.parent;
}
}
- catch (error:SecurityError)
+ catch (error:Error)
{
// can happen in a loaded child swf
// trace("findFocusManagerComponent: handling security error");
@@ -1276,10 +1314,12 @@ public class FocusManager extends EventDispatcher implements IFocusManager
}
else
{
+ COMPILE::AS3
+ {
o.addEventListener("tabChildrenChange", tabChildrenChangeHandler);
checkChildren = doc.tabChildren;
- }
-
+ }
+ }
if (checkChildren)
{
if (o is IRawChildrenContainer)
@@ -1296,7 +1336,7 @@ public class FocusManager extends EventDispatcher implements IFocusManager
{
addFocusables(rawChildren.getChildAt(i));
}
- catch(error:SecurityError)
+ catch(error:Error)
{
// Ignore this child if we can't access it
// trace("addFocusables: ignoring security error getting child from rawChildren: " + error);
@@ -1316,7 +1356,7 @@ public class FocusManager extends EventDispatcher implements IFocusManager
{
addFocusables(doc.getChildAt(i));
}
- catch(error:SecurityError)
+ catch(error:Error)
{
// Ignore this child if we can't access it
// trace("addFocusables: ignoring security error getting child at document." + error);
@@ -1340,8 +1380,11 @@ public class FocusManager extends EventDispatcher implements IFocusManager
var p:DisplayObjectContainer = o.parent;
while (p && p != s)
{
+ COMPILE::AS3
+ {
if (!p.tabChildren)
return false;
+ }
if (p is IFocusManagerComponent && !(IFocusManagerComponent(p).hasFocusableChildren))
return false;
p = p.parent;
@@ -1655,6 +1698,7 @@ public class FocusManager extends EventDispatcher implements IFocusManager
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
+ * @flexjsignorecoercion flex.display.InteractiveObject
*/
private function getNextFocusManagerComponent2(
backward:Boolean = false,
@@ -1680,11 +1724,17 @@ public class FocusManager extends EventDispatcher implements IFocusManager
{
// if there is no passed in object, then get the object that has the focus
var o:DisplayObject = fromObject;
+ COMPILE::AS3
+ {
if (!o)
o = form.systemManager.stage.focus;
else if (o == form.systemManager.stage)
o == null;
-
+ }
+ COMPILE::JS
+ {
+ o = document.activeElement as InteractiveObject;
+ }
o = DisplayObject(findFocusManagerComponent2(InteractiveObject(o)));
var g:String = "";
@@ -1767,6 +1817,7 @@ public class FocusManager extends EventDispatcher implements IFocusManager
* @playerversion AIR 1.1
* @productversion Flex 3
*/
+ COMPILE::AS3
override public function toString():String
{
return Object(form).toString() + ".focusManager";
@@ -1807,11 +1858,19 @@ public class FocusManager extends EventDispatcher implements IFocusManager
// if it is truly parented, add it, otherwise it will get added when the top of the tree
// gets parented.
+ COMPILE::AS3
+ {
if (target.stage)
{
// trace("FM: addedHandler: adding focusables");
addFocusables(DisplayObject(event.target));
}
+ }
+ COMPILE::JS
+ {
+ // trace("FM: addedHandler: adding focusables");
+ addFocusables(DisplayObject(event.target));
+ }
}
/**
@@ -1874,7 +1933,10 @@ public class FocusManager extends EventDispatcher implements IFocusManager
{
if (!dontRemoveTabChildrenHandler)
{
+ COMPILE::AS3
+ {
o.removeEventListener("tabChildrenChange", tabChildrenChangeHandler);
+ }
o.removeEventListener("hasFocusableChildrenChange", hasFocusableChildrenChangeHandler);
}
@@ -1933,11 +1995,14 @@ public class FocusManager extends EventDispatcher implements IFocusManager
// trace("FocusManager focusInHandler in = " + this._form.systemManager.loaderInfo.url);
// trace("FM " + this + " focusInHandler " + target);
+ COMPILE::AS3
+ {
if (lastFocus && !isEnabledAndVisible(DisplayObject(lastFocus)) && DisplayObject(form).stage)
{
DisplayObject(form).stage.focus = null;
lastFocus = null;
}
+ }
}
/**
@@ -2018,6 +2083,7 @@ public class FocusManager extends EventDispatcher implements IFocusManager
* @private
* Add or remove if tabbing properties change.
*/
+ COMPILE::AS3
private function tabChildrenChangeHandler(event:Event):void
{
if (event.target != event.currentTarget)
@@ -2147,7 +2213,10 @@ public class FocusManager extends EventDispatcher implements IFocusManager
// the focus somewhere else, so we set fauxFocus to the stage as a signal
// to the setFocusToNextObject logic that it shouldn't use the stage.focus
// as the starting point.
+ COMPILE::AS3
+ {
fauxFocus = sm.stage;
+ }
}
// trace("tabHandled by " + this);
setFocusToNextObject(event);
@@ -2166,6 +2235,7 @@ public class FocusManager extends EventDispatcher implements IFocusManager
/**
* @private
* Watch for TAB keys.
+ * @flexjsignorecoercion flex.display.InteractiveObject
*/
mx_internal function keyDownHandler(event:KeyboardEvent):void
{
@@ -2205,7 +2275,14 @@ public class FocusManager extends EventDispatcher implements IFocusManager
var o:DisplayObject = fauxFocus;
if (!o)
{
+ COMPILE::AS3
+ {
o = form.systemManager.stage.focus;
+ }
+ COMPILE::JS
+ {
+ o = document.activeElement as InteractiveObject;
+ }
}
// trace("focus was at " + o);
@@ -2325,9 +2402,19 @@ public class FocusManager extends EventDispatcher implements IFocusManager
}
+ /**
+ * @flexjsignorecoercion flex.display.InteractiveObject
+ */
private function getBrowserFocusComponent(shiftKey:Boolean):InteractiveObject
{
+ COMPILE::AS3
+ {
var focusComponent:InteractiveObject = form.systemManager.stage.focus;
+ }
+ COMPILE::JS
+ {
+ var focusComponent:InteractiveObject = document.activeElement as InteractiveObject;
+ }
// if the focus is null it means focus is in an application we
// don't have access to. Use either the last object or the first
@@ -2344,7 +2431,14 @@ public class FocusManager extends EventDispatcher implements IFocusManager
}
+COMPILE::AS3
+{
import flash.display.DisplayObject;
+}
+COMPILE::JS
+{
+ import flex.display.DisplayObject;
+}
/**
* @private
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/64ffbcba/frameworks/projects/MX/src/main/flex/mx/utils/LoaderUtil.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/utils/LoaderUtil.as b/frameworks/projects/MX/src/main/flex/mx/utils/LoaderUtil.as
index 7f76b6d..26f2e4e 100644
--- a/frameworks/projects/MX/src/main/flex/mx/utils/LoaderUtil.as
+++ b/frameworks/projects/MX/src/main/flex/mx/utils/LoaderUtil.as
@@ -19,13 +19,18 @@
package mx.utils
{
-
+COMPILE::AS3
+{
import flash.display.DisplayObject;
+import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.events.IEventDispatcher;
import flash.system.Capabilities;
import flash.utils.Dictionary;
-
+}
+COMPILE::JS
+{
+}
COMPILE::LATER
{
import mx.core.ApplicationDomainTarget;
@@ -37,8 +42,6 @@ import mx.events.Request;
import mx.managers.SystemManagerGlobals;
import mx.utils.Platform;
-import flash.display.Loader;
-
use namespace mx_internal;
/**
@@ -110,7 +113,7 @@ use namespace mx_internal;
* on it. If you want the unencoded url, you must call unencodeURI() on
* the results.
*
- * @param loaderInfo A LoaderInfo instance.
+ * @param loaderInfo A LoaderInfo instance or url string.
*
* @return A normalized <code>LoaderInfo.url</code> property.
*
@@ -119,9 +122,20 @@ use namespace mx_internal;
* @playerversion AIR 1.1
* @productversion Flex 3
*/
- public static function normalizeURL(loaderInfo:LoaderInfo):String
+ public static function normalizeURL(loaderInfo:Object):String
{
- var url:String = loaderInfo.url;
+ var url:String;
+ COMPILE::AS3
+ {
+ if (loaderInfo is LoaderInfo)
+ url = loaderInfo.url;
+ else
+ url = loaderInfo.toString();
+ }
+ COMPILE::JS
+ {
+ url = loaderInfo.toString();
+ }
var index:int;
var searchString:String;
var urlFilter:Function;
@@ -388,6 +402,7 @@ use namespace mx_internal;
* @return
* encoded url that may be loaded with a URLRequest
**/
+ COMPILE::AS3
mx_internal static function OSToPlayerURI(url:String, local:Boolean):String
{
@@ -455,6 +470,7 @@ use namespace mx_internal;
*
* @return the parent module factory if available, null otherwise.
*/
+ COMPILE::AS3
private static function getParentModuleFactory(moduleFactory:IFlexModuleFactory):IFlexModuleFactory
{
var request:Request = new Request(Request.GET_PARENT_FLEX_MODULE_FACTORY_REQUEST);
@@ -600,6 +616,7 @@ use namespace mx_internal;
*
* @return true if loaded into the top-level application domain, false otherwise.
*/
+ COMPILE::LATER
private static function isLoadedIntoTopLevelApplicationDomain(moduleFactory:IFlexModuleFactory):Boolean
{
if (moduleFactory is DisplayObject)
@@ -627,6 +644,7 @@ use namespace mx_internal;
* @param moduleFactory The moduleFactory to set in the primary and
* failover rsls.
*/
+ COMPILE::LATER
private static function updateRSLModuleFactory(rsl:Array, moduleFactory:IFlexModuleFactory):void
{
var n:int = rsl.length;
[2/6] git commit: [flex-asjs] [refs/heads/spark] - get rid of
noDispatchEvent parameter on addChild and friends
Posted by ah...@apache.org.
get rid of noDispatchEvent parameter on addChild and friends
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/dca97977
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/dca97977
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/dca97977
Branch: refs/heads/spark
Commit: dca97977d29a5bdc33fa103af711c573244a9e10
Parents: ea5f249
Author: Alex Harui <ah...@apache.org>
Authored: Tue May 31 23:28:36 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Tue May 31 23:28:36 2016 -0700
----------------------------------------------------------------------
.../org/apache/flex/charts/beads/ChartView.as | 6 +-
.../flex/charts/optimized/SVGChartDataGroup.as | 8 +-
.../flex/org/apache/flex/core/Application.as | 9 ++-
.../flex/org/apache/flex/core/ContainerBase.as | 82 +++++++++++++++-----
.../flex/core/ContainerBaseStrandChildren.as | 15 ++--
.../flex/org/apache/flex/core/IContainer.as | 42 ++++++++++
.../flex/org/apache/flex/core/IContentView.as | 2 +-
.../main/flex/org/apache/flex/core/IParent.as | 9 ++-
.../flex/org/apache/flex/core/IPopUpHost.as | 2 +-
.../apache/flex/core/ListBaseStrandChildren.as | 15 ++--
.../main/flex/org/apache/flex/core/UIBase.as | 9 ++-
.../apache/flex/utils/MXMLDataInterpreter.as | 17 ++--
.../org/apache/flex/createjs/Application.as | 9 ++-
.../flex/org/apache/flex/createjs/Container.as | 26 +++++++
.../org/apache/flex/createjs/core/UIBase.as | 9 ++-
.../flex/org/apache/flex/createjs/core/View.as | 26 +++++++
.../apache/flex/html/accessories/ToolTipBead.as | 3 +-
.../org/apache/flex/html/beads/ContainerView.as | 15 ++--
.../apache/flex/html/beads/DateChooserView.as | 6 +-
.../flex/html/beads/PanelWithControlBarView.as | 8 +-
.../flex/html/supportClasses/DataGroup.as | 8 +-
.../flex/org/apache/flex/mobile/ManagerBase.as | 21 ++---
.../org/apache/flex/mobile/ViewManagerBase.as | 2 +-
.../flex/mobile/beads/StackedViewManagerView.as | 3 +-
.../flex/mobile/beads/TabbedViewManagerView.as | 3 +-
.../flex/mobile/beads/ToggleSwitchView.as | 6 +-
.../apache/flex/mobile/beads/ViewManagerView.as | 3 +-
.../apache/flex/mobile/chrome/NavigationBar.as | 2 +-
.../org/apache/flex/mobile/chrome/ToolBar.as | 2 +-
29 files changed, 271 insertions(+), 97 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/ChartView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/ChartView.as b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/ChartView.as
index 393f3b0..b29f4cb 100644
--- a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/ChartView.as
+++ b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/ChartView.as
@@ -69,7 +69,8 @@ package org.apache.flex.charts.beads
var m1:Class = ValuesManager.valuesImpl.getValue(_strand, "iHorizontalAxisGroup");
_horizontalAxisGroup = new m1();
haxis.axisGroup = _horizontalAxisGroup;
- IParent(_strand).addElement(_horizontalAxisGroup, false);
+ // should not dispatch change event
+ IParent(_strand).addElement(_horizontalAxisGroup);
}
var vaxis:IVerticalAxisBead = _strand.getBeadByType(IVerticalAxisBead) as IVerticalAxisBead;
@@ -77,7 +78,8 @@ package org.apache.flex.charts.beads
var m2:Class = ValuesManager.valuesImpl.getValue(_strand, "iVerticalAxisGroup");
_verticalAxisGroup = new m2();
vaxis.axisGroup = _verticalAxisGroup;
- IParent(_strand).addElement(_verticalAxisGroup, false);
+ // should not dispatch change event
+ IParent(_strand).addElement(_verticalAxisGroup);
}
super.strand = value;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGChartDataGroup.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGChartDataGroup.as b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGChartDataGroup.as
index d7fc8af..cbad23d 100644
--- a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGChartDataGroup.as
+++ b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/optimized/SVGChartDataGroup.as
@@ -142,14 +142,14 @@ package org.apache.flex.charts.optimized
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- override public function addElement(value:IVisualElement, dispatchEvent:Boolean = true):void
+ override public function addElement(value:IVisualElement):IVisualElement
{
_children.push(value);
var base:UIBase = value as UIBase;
base.addedToParent();
- super.addElement(value, dispatchEvent);
+ return super.addElement(value);
}
/**
@@ -161,7 +161,7 @@ package org.apache.flex.charts.optimized
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- override public function addElementAt(value:IVisualElement, index:int, dispatchEvent:Boolean = true):void
+ override public function addElementAt(value:IVisualElement, index:int):IVisualElement
{
if (index >= _children.length) _children.push(value);
else _children.splice(index, 0, value);
@@ -169,7 +169,7 @@ package org.apache.flex.charts.optimized
var base:UIBase = value as UIBase;
base.addedToParent();
- super.addElementAt(value, index, dispatchEvent);
+ return super.addElementAt(value, index);
}
/**
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/Core/src/main/flex/org/apache/flex/core/Application.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/Application.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/Application.as
index 697f893..49b85eb 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/Application.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/Application.as
@@ -416,7 +416,7 @@ package org.apache.flex.core
* @productversion FlexJS 0.0
* @flexjsignorecoercion org.apache.flex.core.IUIBase
*/
- public function addElement(c:IVisualElement, dispatchEvent:Boolean = true):void
+ public function addElement(c:IVisualElement):IVisualElement
{
COMPILE::AS3 {
if (c is IUIBase)
@@ -432,6 +432,7 @@ package org.apache.flex.core
this.element.appendChild(ui.element);
ui.addedToParent();
}
+ return c;
}
/**
@@ -443,7 +444,7 @@ package org.apache.flex.core
* @productversion FlexJS 0.0
* @flexjsignorecoercion org.apache.flex.core.IUIBase
*/
- public function addElementAt(c:IVisualElement, index:int, dispatchEvent:Boolean = true):void
+ public function addElementAt(c:IVisualElement, index:int):IVisualElement
{
COMPILE::AS3 {
if (c is IUIBase)
@@ -467,6 +468,7 @@ package org.apache.flex.core
}
}
+ return c;
}
/**
@@ -527,7 +529,7 @@ package org.apache.flex.core
* @productversion FlexJS 0.0
* @flexjsignorecoercion org.apache.flex.core.IUIBase
*/
- public function removeElement(c:IVisualElement, dispatchEvent:Boolean = true):void
+ public function removeElement(c:IVisualElement):IVisualElement
{
COMPILE::AS3 {
if (c is IUIBase)
@@ -541,6 +543,7 @@ package org.apache.flex.core
var ui:IUIBase = c as IUIBase;
element.removeChild(ui.element);
}
+ return c;
}
/**
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ContainerBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ContainerBase.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ContainerBase.as
index 1609c2a..919fd7f 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ContainerBase.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ContainerBase.as
@@ -132,49 +132,95 @@ package org.apache.flex.core
/**
* @private
*/
- override public function addElement(c:IVisualElement, dispatchEvent:Boolean = true):void
+ override public function addElement(c:IVisualElement):IVisualElement
{
var contentView:IParent = view as IParent;
if (contentView != null) {
- contentView.addElement(c, dispatchEvent);
- if (dispatchEvent)
- this.dispatchEvent(new Event("childrenAdded"));
+ contentView.addElement(c);
+ this.dispatchEvent(new Event("childrenAdded"));
}
else {
super.addElement(c);
}
+ return c;
}
/**
* @private
*/
- override public function addElementAt(c:IVisualElement, index:int, dispatchEvent:Boolean = true):void
+ public function addElementNoChangeEvent(c:IVisualElement):IVisualElement
{
var contentView:IParent = view as IParent;
if (contentView != null) {
- contentView.addElementAt(c, index, dispatchEvent);
- if (dispatchEvent)
- this.dispatchEvent(new Event("childrenAdded"));
+ contentView.addElement(c);
+ }
+ else {
+ super.addElement(c);
+ }
+ return c;
+ }
+
+ /**
+ * @private
+ */
+ override public function addElementAt(c:IVisualElement, index:int):IVisualElement
+ {
+ var contentView:IParent = view as IParent;
+ if (contentView != null) {
+ contentView.addElementAt(c, index);
+ this.dispatchEvent(new Event("childrenAdded"));
}
else {
super.addElementAt(c, index);
}
+ return c;
+ }
+
+
+ /**
+ * @private
+ */
+ public function addElementAtNoChangeEvent(c:IVisualElement, index:int):IVisualElement
+ {
+ var contentView:IParent = view as IParent;
+ if (contentView != null) {
+ contentView.addElementAt(c, index);
+ }
+ else {
+ super.addElementAt(c, index);
+ }
+ return c;
+ }
+
+ /**
+ * @private
+ */
+ override public function removeElement(c:IVisualElement):IVisualElement
+ {
+ var contentView:IParent = view as IParent;
+ if (contentView != null) {
+ contentView.removeElement(c);
+ this.dispatchEvent(new Event("childrenRemoved"));
+ }
+ else {
+ super.removeElement(c);
+ }
+ return c;
}
/**
* @private
*/
- override public function removeElement(c:IVisualElement, dispatchEvent:Boolean = true):void
+ public function removeElementNoChangeEvent(c:IVisualElement):IVisualElement
{
var contentView:IParent = view as IParent;
if (contentView != null) {
- contentView.removeElement(c, dispatchEvent);
- if (dispatchEvent)
- this.dispatchEvent(new Event("childrenRemoved"));
+ contentView.removeElement(c);
}
else {
super.removeElement(c);
}
+ return c;
}
/**
@@ -229,9 +275,9 @@ package org.apache.flex.core
* @suppress {undefinedNames}
* Support strandChildren.
*/
- public function $addElement(c:IVisualElement, dispatchEvent:Boolean = true):void
+ public function $addElement(c:IVisualElement):void
{
- super.addElement(c, dispatchEvent);
+ super.addElement(c);
}
/**
@@ -239,9 +285,9 @@ package org.apache.flex.core
* @suppress {undefinedNames}
* Support strandChildren.
*/
- public function $addElementAt(c:IVisualElement, index:int, dispatchEvent:Boolean = true):void
+ public function $addElementAt(c:IVisualElement, index:int):void
{
- super.addElementAt(c, index, dispatchEvent);
+ super.addElementAt(c, index);
}
/**
@@ -249,9 +295,9 @@ package org.apache.flex.core
* @suppress {undefinedNames}
* Support strandChildren.
*/
- public function $removeElement(c:IVisualElement, dispatchEvent:Boolean = true):void
+ public function $removeElement(c:IVisualElement):void
{
- super.removeElement(c, dispatchEvent);
+ super.removeElement(c);
}
/**
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ContainerBaseStrandChildren.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ContainerBaseStrandChildren.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ContainerBaseStrandChildren.as
index a5afbee..df392ef 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ContainerBaseStrandChildren.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ContainerBaseStrandChildren.as
@@ -59,25 +59,28 @@ package org.apache.flex.core
/**
* @private
*/
- public function addElement(c:IVisualElement, dispatchEvent:Boolean = true):void
+ public function addElement(c:IVisualElement):IVisualElement
{
- owner.$addElement(c, dispatchEvent);
+ owner.$addElement(c);
+ return c;
}
/**
* @private
*/
- public function addElementAt(c:IVisualElement, index:int, dispatchEvent:Boolean = true):void
+ public function addElementAt(c:IVisualElement, index:int):IVisualElement
{
- owner.$addElementAt(c, index, dispatchEvent);
+ owner.$addElementAt(c, index);
+ return c;
}
/**
* @private
*/
- public function removeElement(c:IVisualElement, dispatchEvent:Boolean = true):void
+ public function removeElement(c:IVisualElement):IVisualElement
{
- owner.$removeElement(c, dispatchEvent);
+ owner.$removeElement(c);
+ return c;
}
/**
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IContainer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IContainer.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IContainer.as
index e3b6c9d..9bfd462 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IContainer.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IContainer.as
@@ -33,6 +33,48 @@ package org.apache.flex.core
public interface IContainer extends IParent
{
/**
+ * Containers have an arbitrary and dynamic set of
+ * of children and usually dispatch notifications
+ * and do other work when the set changes. These
+ * APIs allow the set to be changed without notification
+ * which can be beneficial for performance.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function addElementNoChangeEvent(element:IVisualElement):IVisualElement;
+
+ /**
+ * Containers have an arbitrary and dynamic set of
+ * of children and usually dispatch notifications
+ * and do other work when the set changes. These
+ * APIs allow the set to be changed without notification
+ * which can be beneficial for performance.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function addElementAtNoChangeEvent(element:IVisualElement, index:int):IVisualElement;
+
+ /**
+ * Containers have an arbitrary and dynamic set of
+ * of children and usually dispatch notifications
+ * and do other work when the set changes. These
+ * APIs allow the set to be changed without notification
+ * which can be beneficial for performance.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function removeElementNoChangeEvent(element:IVisualElement):IVisualElement;
+
+ /**
* This method is called after children have been
* added to the container so the container doesn't
* have to re-layout as each child is added.
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IContentView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IContentView.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IContentView.as
index a6b64eb..c6ecb78 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IContentView.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IContentView.as
@@ -32,7 +32,7 @@ package org.apache.flex.core
function get height():Number;
function set height(value:Number):void;
- function addElement(value:IVisualElement, dispatchEvent:Boolean = true):void;
+ function addElement(value:IVisualElement):IVisualElement;
function removeAllElements():void;
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IParent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IParent.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IParent.as
index 26620e3..4ec9650 100755
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IParent.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IParent.as
@@ -35,13 +35,14 @@ package org.apache.flex.core
*
* @param c The subcomponent to add.
* @param dispatchEvent Whether to dispatch an event after adding the child.
+ * @return The subcomponent to add.
*
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- function addElement(c:IVisualElement, dispatchEvent:Boolean = true):void;
+ function addElement(c:IVisualElement):IVisualElement;
/**
* Add a component to the parent.
@@ -49,13 +50,14 @@ package org.apache.flex.core
* @param c The subcomponent to add.
* @param c The index where the subcomponent should be added.
* @param dispatchEvent Whether to dispatch an event after adding the child.
+ * @return The subcomponent to add.
*
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- function addElementAt(c:IVisualElement, index:int, dispatchEvent:Boolean = true):void;
+ function addElementAt(c:IVisualElement, index:int):IVisualElement;
/**
* Gets the index of this subcomponent.
@@ -75,13 +77,14 @@ package org.apache.flex.core
*
* @param c The subcomponent to remove.
* @param dispatchEvent Whether to dispatch an event after removing the child.
+ * @return The subcomponent to remove.
*
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- function removeElement(c:IVisualElement, dispatchEvent:Boolean = true):void;
+ function removeElement(c:IVisualElement):IVisualElement;
/**
* The number of elements in the parent.
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IPopUpHost.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IPopUpHost.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IPopUpHost.as
index 65f1334..acc91b7 100755
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IPopUpHost.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IPopUpHost.as
@@ -27,7 +27,7 @@ package org.apache.flex.core
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- public interface IPopUpHost extends IParent
+ public interface IPopUpHost extends IContainer
{
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ListBaseStrandChildren.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ListBaseStrandChildren.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ListBaseStrandChildren.as
index 642817d..08ae8ed 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ListBaseStrandChildren.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ListBaseStrandChildren.as
@@ -60,25 +60,28 @@ package org.apache.flex.core
/**
* @private
*/
- public function addElement(c:IVisualElement, dispatchEvent:Boolean = true):void
+ public function addElement(c:IVisualElement):IVisualElement
{
- owner.$addElement(c, dispatchEvent);
+ owner.$addElement(c);
+ return c;
}
/**
* @private
*/
- public function addElementAt(c:IVisualElement, index:int, dispatchEvent:Boolean = true):void
+ public function addElementAt(c:IVisualElement, index:int):IVisualElement
{
- owner.$addElementAt(c, index, dispatchEvent);
+ owner.$addElementAt(c, index);
+ return c;
}
/**
* @private
*/
- public function removeElement(c:IVisualElement, dispatchEvent:Boolean = true):void
+ public function removeElement(c:IVisualElement):IVisualElement
{
- owner.$removeElement(c, dispatchEvent);
+ owner.$removeElement(c);
+ return c;
}
/**
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/Core/src/main/flex/org/apache/flex/core/UIBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/UIBase.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/UIBase.as
index d71e35f..32b1d71 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/UIBase.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/UIBase.as
@@ -1114,7 +1114,7 @@ package org.apache.flex.core
* @productversion FlexJS 0.0
* @flexjsignorecoercion org.apache.flex.core.IUIBase
*/
- public function addElement(c:IVisualElement, dispatchEvent:Boolean = true):void
+ public function addElement(c:IVisualElement):IVisualElement
{
COMPILE::AS3
{
@@ -1132,6 +1132,7 @@ package org.apache.flex.core
element.appendChild(ui.positioner);
ui.addedToParent();
}
+ return c;
}
/**
@@ -1143,7 +1144,7 @@ package org.apache.flex.core
* @productversion FlexJS 0.0
* @flexjsignorecoercion org.apache.flex.core.IUIBase
*/
- public function addElementAt(c:IVisualElement, index:int, dispatchEvent:Boolean = true):void
+ public function addElementAt(c:IVisualElement, index:int):IVisualElement
{
COMPILE::AS3
{
@@ -1168,6 +1169,7 @@ package org.apache.flex.core
ui.addedToParent();
}
}
+ return c;
}
/**
@@ -1232,7 +1234,7 @@ package org.apache.flex.core
* @productversion FlexJS 0.0
* @flexjsignorecoercion org.apache.flex.core.IUIBase
*/
- public function removeElement(c:IVisualElement, dispatchEvent:Boolean = true):void
+ public function removeElement(c:IVisualElement):IVisualElement
{
COMPILE::AS3
{
@@ -1246,6 +1248,7 @@ package org.apache.flex.core
var ui:IUIBase = c as IUIBase;
element.removeChild(ui.element);
}
+ return c;
}
/**
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/MXMLDataInterpreter.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/MXMLDataInterpreter.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/MXMLDataInterpreter.as
index 946b17a..d444c93 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/MXMLDataInterpreter.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/MXMLDataInterpreter.as
@@ -295,16 +295,13 @@ public class MXMLDataInterpreter
{
comp.setMXMLDescriptor(document, children);
}
- COMPILE::AS3
- {
- if (parent && comp is IVisualElement)
- parent.addElement(comp as IVisualElement, !(parent is IContainer));
- }
- COMPILE::JS
- {
- if (parent && comp is IUIBase)
- parent.addElement(comp as IUIBase, !(parent is IContainer));
- }
+ if (parent && comp is IVisualElement)
+ {
+ if (parent is IContainer)
+ (parent as IContainer).addElementNoChangeEvent(comp as IVisualElement);
+ else
+ parent.addElement(comp as IVisualElement);
+ }
if (children)
{
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/Application.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/Application.as b/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/Application.as
index 3e67071..284f66c 100644
--- a/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/Application.as
+++ b/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/Application.as
@@ -322,11 +322,12 @@ package org.apache.flex.createjs
* @flexjsignorecoercion createjs.DisplayObject
* @flexjsignorecoercion org.apache.flex.core.IUIBase
*/
- public function addElement(c:IVisualElement, dispatchEvent:Boolean = true):void
+ public function addElement(c:IVisualElement):IVisualElement
{
var ui:IUIBase = c as IUIBase;
stage.addChild(ui.element as DisplayObject);
ui.addedToParent();
+ return c;
}
/**
@@ -339,11 +340,12 @@ package org.apache.flex.createjs
* @flexjsignorecoercion createjs.DisplayObject
* @flexjsignorecoercion org.apache.flex.core.IUIBase
*/
- public function addElementAt(c:IVisualElement, index:int, dispatchEvent:Boolean = true):void
+ public function addElementAt(c:IVisualElement, index:int):IVisualElement
{
var ui:IUIBase = c as IUIBase;
stage.addChildAt(ui.element as DisplayObject, index);
ui.addedToParent();
+ return c;
}
/**
@@ -386,9 +388,10 @@ package org.apache.flex.createjs
* @productversion FlexJS 0.0
* @flexjsignorecoercion org.apache.flex.core.IUIBase
*/
- public function removeElement(c:IVisualElement, dispatchEvent:Boolean = true):void
+ public function removeElement(c:IVisualElement):IVisualElement
{
stage.removeChild((c as IUIBase).element as DisplayObject);
+ return c;
}
/**
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/Container.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/Container.as b/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/Container.as
index 697c41e..55ccdaf 100644
--- a/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/Container.as
+++ b/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/Container.as
@@ -26,6 +26,7 @@ package org.apache.flex.createjs
import org.apache.flex.core.IStatesObject;
import org.apache.flex.core.IStatesImpl;
import org.apache.flex.core.IContainer;
+ import org.apache.flex.core.IVisualElement;
import org.apache.flex.core.ValuesManager;
import org.apache.flex.events.Event;
import org.apache.flex.events.ValueChangeEvent;
@@ -297,5 +298,30 @@ package org.apache.flex.createjs
{
_transitions = value;
}
+
+ /**
+ * @private
+ */
+ public function addElementNoChangeEvent(c:IVisualElement):IVisualElement
+ {
+ return addElement(c);
+ }
+
+ /**
+ * @private
+ */
+ public function addElementAtNoChangeEvent(c:IVisualElement, index:int):IVisualElement
+ {
+ return addElementAt(c, index);
+ }
+
+ /**
+ * @private
+ */
+ public function removeElementNoChangeEvent(c:IVisualElement):IVisualElement
+ {
+ return removeElement(c);
+ }
+
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/core/UIBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/core/UIBase.as b/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/core/UIBase.as
index a33ca13..c8c4f35 100644
--- a/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/core/UIBase.as
+++ b/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/core/UIBase.as
@@ -337,9 +337,10 @@ package org.apache.flex.createjs.core
* @flexjsignorecoercion createjs.DisplayObject
* @flexjsignorecoercion org.apache.flex.core.IUIBase
*/
- public function addElement(c:IVisualElement, dispatchEvent:Boolean = true):void
+ public function addElement(c:IVisualElement):IVisualElement
{
(element as Container).addChild((c as IUIBase).element as DisplayObject);
+ return c;
}
/**
@@ -347,9 +348,10 @@ package org.apache.flex.createjs.core
* @flexjsignorecoercion createjs.DisplayObject
* @flexjsignorecoercion org.apache.flex.core.IVisualElement
*/
- public function addElementAt(c:IVisualElement, index:int, dispatchEvent:Boolean = true):void
+ public function addElementAt(c:IVisualElement, index:int):IVisualElement
{
(element as Container).addChildAt((c as IUIBase).element as DisplayObject, index);
+ return c;
}
@@ -369,9 +371,10 @@ package org.apache.flex.createjs.core
* @flexjsignorecoercion createjs.DisplayObject
* @flexjsignorecoercion org.apache.flex.core.IVisualElement
*/
- public function removeElement(c:IVisualElement, dispatchEvent:Boolean = true):void
+ public function removeElement(c:IVisualElement):IVisualElement
{
(element as Container).removeChild((c as IUIBase).element as DisplayObject);
+ return c;
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/core/View.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/core/View.as b/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/core/View.as
index 81cf83d..339ad0b 100644
--- a/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/core/View.as
+++ b/frameworks/projects/CreateJS/src/main/flex/org/apache/flex/createjs/core/View.as
@@ -24,6 +24,7 @@ package org.apache.flex.createjs.core
import org.apache.flex.core.IPopUpHost;
import org.apache.flex.core.IMXMLDocument;
import org.apache.flex.core.IStatesImpl;
+ import org.apache.flex.core.IVisualElement;
import org.apache.flex.core.ValuesManager;
import org.apache.flex.events.Event;
import org.apache.flex.events.ValueChangeEvent;
@@ -321,5 +322,30 @@ package org.apache.flex.createjs.core
{
_transitions = value;
}
+
+ /**
+ * @private
+ */
+ public function addElementNoChangeEvent(c:IVisualElement):IVisualElement
+ {
+ return addElement(c);
+ }
+
+ /**
+ * @private
+ */
+ public function addElementAtNoChangeEvent(c:IVisualElement, index:int):IVisualElement
+ {
+ return addElementAt(c, index);
+ }
+
+ /**
+ * @private
+ */
+ public function removeElementNoChangeEvent(c:IVisualElement):IVisualElement
+ {
+ return removeElement(c);
+ }
+
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/accessories/ToolTipBead.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/accessories/ToolTipBead.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/accessories/ToolTipBead.as
index 64d04bf..063abcd 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/accessories/ToolTipBead.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/accessories/ToolTipBead.as
@@ -112,7 +112,8 @@ package org.apache.flex.html.accessories
var pt:Point = determinePosition(event, event.target);
tt.x = pt.x;
tt.y = pt.y;
- host.addElement(tt, false); // don't trigger a layout
+
+ host.addElementNoChangeEvent(tt); // don't trigger a layout
}
/**
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ContainerView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ContainerView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ContainerView.as
index 3813c5b..7c9d0c3 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ContainerView.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ContainerView.as
@@ -144,17 +144,17 @@ package org.apache.flex.html.beads
/**
* @private
*/
- public function addElement(c:IVisualElement, dispatchEvent:Boolean = true):void
+ public function addElement(c:IVisualElement):IVisualElement
{
- contentView.addElement(c, dispatchEvent);
+ return contentView.addElement(c);
}
/**
* @private
*/
- public function addElementAt(c:IVisualElement, index:int, dispatchEvent:Boolean = true):void
+ public function addElementAt(c:IVisualElement, index:int):IVisualElement
{
- contentView.addElementAt(c, index, dispatchEvent);
+ return contentView.addElementAt(c, index);
}
/**
@@ -168,9 +168,9 @@ package org.apache.flex.html.beads
/**
* @private
*/
- public function removeElement(c:IVisualElement, dispatchEvent:Boolean = true):void
+ public function removeElement(c:IVisualElement):IVisualElement
{
- contentView.removeElement(c, dispatchEvent);
+ return contentView.removeElement(c);
}
/**
@@ -204,7 +204,8 @@ package org.apache.flex.html.beads
createViewport();
- (host as IContentViewHost).strandChildren.addElement(viewport.contentView, false);
+ // this should not trigger a childAdded event
+ (host as IContentViewHost).strandChildren.addElement(viewport.contentView);
displayBackgroundAndBorder(host as UIBase);
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DateChooserView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DateChooserView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DateChooserView.as
index 5abf4c4..db09068 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DateChooserView.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DateChooserView.as
@@ -150,7 +150,7 @@ package org.apache.flex.html.beads
dayContainer = new Container();
var tileLayout:TileLayout = new TileLayout();
dayContainer.addBead(tileLayout);
- UIBase(_strand).addElement(dayContainer, false);
+ UIBase(_strand).addElement(dayContainer);
tileLayout.numColumns = 7;
dayContainer.x = 0;
@@ -167,7 +167,7 @@ package org.apache.flex.html.beads
var dayName:DateChooserButton = new DateChooserButton();
dayName.text = model.dayNames[i];
dayName.dayOfMonth = 0;
- dayContainer.addElement(dayName, false);
+ dayContainer.addElementNoChangeEvent(dayName);
}
_dayButtons = new Array();
@@ -175,7 +175,7 @@ package org.apache.flex.html.beads
for(i=0; i < 42; i++) {
var date:DateChooserButton = new DateChooserButton();
date.text = String(i+1);
- dayContainer.addElement(date, false);
+ dayContainer.addElementNoChangeEvent(date);
dayButtons.push(date);
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/PanelWithControlBarView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/PanelWithControlBarView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/PanelWithControlBarView.as
index 8dfcd42..1494df0 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/PanelWithControlBarView.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/PanelWithControlBarView.as
@@ -123,7 +123,7 @@ package org.apache.flex.html.beads
_controlBar.height = 30;
for each(var comp:IUIBase in controlBarItems) {
- _controlBar.addElement(comp, false);
+ _controlBar.addElementNoChangeEvent(comp);
}
}
@@ -134,10 +134,12 @@ package org.apache.flex.html.beads
{
super.completeSetup();
- (_strand as IContentViewHost).strandChildren.addElement(titleBar, false);
+ // should not generate change event
+ (_strand as IContentViewHost).strandChildren.addElement(titleBar);
if (controlBar) {
- (_strand as IContentViewHost).strandChildren.addElement(_controlBar, false);
+ // should not generate change event
+ (_strand as IContentViewHost).strandChildren.addElement(_controlBar);
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DataGroup.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DataGroup.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DataGroup.as
index 8fe8b22..50e3682 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DataGroup.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DataGroup.as
@@ -59,21 +59,22 @@ package org.apache.flex.html.supportClasses
/**
* @private
*/
- override public function addElement(c:IVisualElement, dispatchEvent:Boolean = true):void
+ override public function addElement(c:IVisualElement):IVisualElement
{
- super.addElement(c, dispatchEvent);
+ super.addElement(c);
var newEvent:ItemAddedEvent = new ItemAddedEvent("itemAdded");
newEvent.item = c;
var strand:IEventDispatcher = parent as IEventDispatcher;
strand.dispatchEvent(newEvent);
+ return c;
}
/**
* @private
*/
- override public function removeElement(c:IVisualElement, dispatchEvent:Boolean = true):void
+ override public function removeElement(c:IVisualElement):IVisualElement
{
super.removeElement(c, dispatchEvent);
@@ -82,6 +83,7 @@ package org.apache.flex.html.supportClasses
var strand:IEventDispatcher = parent as IEventDispatcher;
strand.dispatchEvent(newEvent);
+ return c;
}
/**
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ManagerBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ManagerBase.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ManagerBase.as
index 8861131..87f2fa9 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ManagerBase.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ManagerBase.as
@@ -119,43 +119,46 @@ package org.apache.flex.mobile
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- override public function addElement(c:IVisualElement, dispatchEvent:Boolean=true):void
+ override public function addElement(c:IVisualElement):IVisualElement
{
if (c is IChrome) {
- super.addElementAt(c,0,dispatchEvent);
+ super.addElementAt(c, 0);
}
else {
- _contentArea.addElement(c, dispatchEvent);
+ _contentArea.addElement(c);
// (c as UIBase).setWidthAndHeight(_contentArea.width, _contentArea.height, false);
// (c as UIBase).width = _contentArea.width;
// (c as UIBase).height = _contentArea.height;
}
+ return c;
}
/**
* @private.
*/
- override public function addElementAt(c:IVisualElement, index:int, dispatchEvent:Boolean=true):void
+ override public function addElementAt(c:IVisualElement, index:int):IVisualElement
{
if (c is IChrome) {
- super.addElementAt(c, index, dispatchEvent);
+ super.addElementAt(c, index);
}
else {
- _contentArea.addElement(c, dispatchEvent);
+ _contentArea.addElement(c);
}
+ return c;
}
/**
* @private
*/
- override public function removeElement(c:IVisualElement, dispatchEvent:Boolean=true):void
+ override public function removeElement(c:IVisualElement):IVisualElement
{
if (c is IChrome) {
- super.removeElement(c, dispatchEvent);
+ super.removeElement(c);
}
else {
- _contentArea.removeElement(c, dispatchEvent);
+ _contentArea.removeElement(c);
}
+ return c;
}
/**
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ViewManagerBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ViewManagerBase.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ViewManagerBase.as
index 0da3f4d..b4d8be6 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ViewManagerBase.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ViewManagerBase.as
@@ -173,7 +173,7 @@ package org.apache.flex.mobile
var view:IView = ViewManagerModel(model).views[i] as IView;
view.viewManager = this;
if (i == 0) {
- addElement(view, true);
+ addElement(view);
}
}
ViewManagerModel(model).selectedIndex = 0;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as
index fd1a58b..3ce8af4 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as
@@ -65,7 +65,8 @@ package org.apache.flex.mobile.beads
_toolBar = new ToolBar();
_toolBar.controls = model.toolBarItems;
_toolBar.addBead(new HorizontalLayout());
- UIBase(value).addElement(_toolBar,false);
+ // no event is expected
+ UIBase(value).addElement(_toolBar);
}
super.strand = value;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as
index be20d2c..b88ef40 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as
@@ -72,7 +72,8 @@ package org.apache.flex.mobile.beads
_tabBar.dataProvider = model.views;
_tabBar.labelField = "title";
_tabBar.addEventListener("change",handleButtonBarChange);
- UIBase(_strand).addElement(_tabBar, false);
+ // no event is expected
+ UIBase(_strand).addElement(_tabBar);
super.strand = value;
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/ToggleSwitchView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/ToggleSwitchView.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/ToggleSwitchView.as
index fe35d45..aa6fc51 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/ToggleSwitchView.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/ToggleSwitchView.as
@@ -94,10 +94,12 @@ package org.apache.flex.mobile.beads
model.addEventListener("selectedChange", toggleChangedHandler);
boundingBox = new Rect();
- UIBase(host).addElement(boundingBox, false);
+ // no event is expected
+ UIBase(host).addElement(boundingBox);
actualSwitch = new Rect();
- UIBase(host).addElement(actualSwitch, false);
+ // no event is expected
+ UIBase(host).addElement(actualSwitch);
layoutChromeElements();
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/ViewManagerView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/ViewManagerView.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/ViewManagerView.as
index 59baf94..99f379d 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/ViewManagerView.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/ViewManagerView.as
@@ -95,7 +95,8 @@ package org.apache.flex.mobile.beads
_navigationBar = new NavigationBar();
_navigationBar.controls = model.navigationBarItems;
_navigationBar.addBead(new HorizontalLayout());
- UIBase(_strand).addElement(_navigationBar, false);
+ // no event is expected
+ UIBase(_strand).addElement(_navigationBar);
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/chrome/NavigationBar.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/chrome/NavigationBar.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/chrome/NavigationBar.as
index 5e7873e..4b6509f 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/chrome/NavigationBar.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/chrome/NavigationBar.as
@@ -82,7 +82,7 @@ package org.apache.flex.mobile.chrome
for (var i:int=0; i < _controls.length; i++)
{
- addElement( _controls[i], false );
+ addElementNoChangeEvent( _controls[i] );
var ctrl:IEventDispatcher = _controls[i] as IEventDispatcher;
ctrl.addEventListener("show", handleVisibilityChange);
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/dca97977/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/chrome/ToolBar.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/chrome/ToolBar.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/chrome/ToolBar.as
index af63d49..fc84556 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/chrome/ToolBar.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/chrome/ToolBar.as
@@ -71,7 +71,7 @@ package org.apache.flex.mobile.chrome
for (var i:int=0; i < _controls.length; i++)
{
- addElement( _controls[i], false );
+ addElementNoChangeEvent( _controls[i] );
}
dispatchEvent(new Event("layoutNeeded"));
[4/6] git commit: [flex-asjs] [refs/heads/spark] - clean compile of
MX for swf
Posted by ah...@apache.org.
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4f3802ef/frameworks/projects/MX/src/main/flex/mx/managers/FocusManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/managers/FocusManager.as b/frameworks/projects/MX/src/main/flex/mx/managers/FocusManager.as
new file mode 100644
index 0000000..105c979
--- /dev/null
+++ b/frameworks/projects/MX/src/main/flex/mx/managers/FocusManager.as
@@ -0,0 +1,2359 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 mx.managers
+{
+
+COMPILE::AS3
+{
+import flash.display.DisplayObject;
+import flash.display.DisplayObjectContainer;
+import flash.display.InteractiveObject;
+import flash.display.Stage;
+import flash.events.Event;
+import flash.events.EventDispatcher;
+import flash.events.FocusEvent;
+import flash.events.KeyboardEvent;
+import flash.events.MouseEvent;
+import flash.system.Capabilities;
+import flash.system.IME;
+import flash.text.TextField;
+import flash.ui.Keyboard;
+}
+
+COMPILE::LATER
+{
+import mx.core.FlexSprite;
+import mx.core.ISWFLoader;
+import mx.core.IVisualElement;
+}
+import mx.core.IButton;
+import mx.core.IChildList;
+import mx.core.IIMESupport;
+import mx.core.IRawChildrenContainer;
+import mx.core.IToggleButton;
+import mx.core.IUIComponent;
+import mx.core.mx_internal;
+import mx.events.FlexEvent;
+import mx.utils.Platform;
+
+import flex.display.Sprite;
+
+import org.apache.flex.core.IUIBase;
+
+use namespace mx_internal;
+
+/**
+ * The FocusManager class manages the focus on components in response to mouse
+ * activity or keyboard activity (Tab key). There can be several FocusManager
+ * instances in an application. Each FocusManager instance
+ * is responsible for a set of components that comprise a "tab loop". If you
+ * hit Tab enough times, focus traverses through a set of components and
+ * eventually get back to the first component that had focus. That is a "tab loop"
+ * and a FocusManager instance manages that loop. If there are popup windows
+ * with their own set of components in a "tab loop" those popup windows will have
+ * their own FocusManager instances. The main application always has a
+ * FocusManager instance.
+ *
+ * <p>The FocusManager manages focus from the "component level".
+ * In Flex, a UITextField in a component is the only way to allow keyboard entry
+ * of text. To the Flash Player or AIR, that UITextField has focus. However, from the
+ * FocusManager's perspective the component that parents the UITextField has focus.
+ * Thus there is a distinction between component-level focus and player-level focus.
+ * Application developers generally only have to deal with component-level focus while
+ * component developers must understand player-level focus.</p>
+ *
+ * <p>All components that can be managed by the FocusManager must implement
+ * mx.managers.IFocusManagerComponent, whereas objects managed by player-level focus do not.</p>
+ *
+ * <p>The FocusManager also managers the concept of a defaultButton, which is
+ * the Button on a form that dispatches a click event when the Enter key is pressed
+ * depending on where focus is at that time.</p>
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+public class FocusManager extends EventDispatcher implements IFocusManager
+{
+ include "../core/Version.as";
+
+ //--------------------------------------------------------------------------
+ //
+ // Class constants
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ *
+ * Default value of parameter, ignore.
+ */
+ private static const FROM_INDEX_UNSPECIFIED:int = -2;
+
+ //--------------------------------------------------------------------------
+ //
+ // Class variables
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ *
+ * Place to hook in additional classes
+ */
+ public static var mixins:Array;
+
+ // flag to turn on/off some ie specific behavior
+ mx_internal static var ieshifttab:Boolean = true;
+
+ //--------------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * <p>A FocusManager manages the focus within the children of an IFocusManagerContainer.
+ * It installs itself in the IFocusManagerContainer during execution
+ * of the constructor.</p>
+ *
+ * @param container An IFocusManagerContainer that hosts the FocusManager.
+ *
+ * @param popup If <code>true</code>, indicates that the container
+ * is a popup component and not the main application.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function FocusManager(container:IFocusManagerContainer, popup:Boolean = false)
+ {
+ super();
+
+ this.popup = popup;
+
+ IMEEnabled = true;
+ // Only <= IE8 supported focus cycling out of the SWF
+ browserMode = Capabilities.playerType == "ActiveX" && !popup;
+ desktopMode = Platform.isAir && !popup;
+ // Flash main windows come up activated, AIR main windows don't
+ windowActivated = !desktopMode;
+
+ container.focusManager = this; // this property name is reserved in the parent
+
+ // trace("FocusManager constructor " + container + ".focusManager");
+
+ _form = container;
+
+ focusableObjects = [];
+
+ focusPane = new Sprite();
+ focusPane.name = "focusPane";
+
+ addFocusables(DisplayObject(container));
+
+ // Listen to the stage so we know when the root application is loaded.
+ container.addEventListener(Event.ADDED, addedHandler);
+ container.addEventListener(Event.REMOVED, removedHandler);
+ container.addEventListener(FlexEvent.SHOW, showHandler);
+ container.addEventListener(FlexEvent.HIDE, hideHandler);
+ container.addEventListener(FlexEvent.HIDE, childHideHandler, true);
+ container.addEventListener("_navigationChange_",viewHideHandler, true);
+
+ //special case application and window
+ if (container.systemManager is SystemManager)
+ {
+ // special case application. It shouldn't need to be made
+ // active and because we defer appCreationComplete, this
+ // would steal focus back from any popups created during
+ // instantiation
+ if (container != SystemManager(container.systemManager).application)
+ container.addEventListener(FlexEvent.CREATION_COMPLETE,
+ creationCompleteHandler);
+ }
+
+ if (mixins)
+ {
+ var n:int = mixins.length;
+ for (var i:int = 0; i < n; i++)
+ {
+ new mixins[i](this);
+ }
+ }
+
+ // Make sure the SystemManager is running so it can tell us about
+ // mouse clicks and stage size changes.
+ try
+ {
+ var awm:IActiveWindowManager =
+ IActiveWindowManager(container.systemManager.getImplementation("mx.managers::IActiveWindowManager"));
+ if (awm)
+ awm.addFocusManager(container); // build a message that does the equal
+
+ if (hasEventListener("initialize"))
+ dispatchEvent(new Event("initialize"));
+
+ }
+ catch (e:Error)
+ {
+ // ignore null pointer errors caused by container using a
+ // systemManager from another sandbox.
+ }
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Variables
+ //
+ //--------------------------------------------------------------------------
+
+ private var LARGE_TAB_INDEX:int = 99999;
+
+ mx_internal var calculateCandidates:Boolean = true;
+
+ /**
+ * @private
+ *
+ * True if this focus manager is a popup, false if it is a main application.
+ *
+ */
+ mx_internal var popup:Boolean;
+
+ /**
+ * @private
+ *
+ * True if this focus manager will try to enable/disable the IME based on
+ * whether the focused control uses IME. Leaving this as a backdoor just in case.
+ *
+ */
+ mx_internal var IMEEnabled:Boolean;
+
+ /**
+ * @private
+ * We track whether we've been last activated or saw a TAB
+ * This is used in browser tab management
+ */
+ mx_internal var lastAction:String;
+
+ /**
+ * @private
+ * Tab management changes based on whether were in a browser or not
+ * This value is also affected by whether you are a modal dialog or not
+ */
+ public var browserMode:Boolean;
+
+ /**
+ * @private
+ * Activation changes depending on whether we're running in AIR or not
+ */
+ public var desktopMode:Boolean;
+
+ /**
+ * @private
+ * Tab management changes based on whether were in a browser or not
+ * If non-null, this is the object that will
+ * lose focus to the browser
+ */
+ private var browserFocusComponent:InteractiveObject;
+
+ /**
+ * @private
+ * Total set of all objects that can receive focus
+ * but might be disabled or invisible.
+ */
+ mx_internal var focusableObjects:Array;
+
+ /**
+ * @private
+ * Filtered set of objects that can receive focus right now.
+ */
+ private var focusableCandidates:Array;
+
+ /**
+ * @private
+ */
+ private var activated:Boolean;
+ /**
+ * @private
+ */
+ private var windowActivated:Boolean;
+
+ /**
+ * @private
+ *
+ * true if focus was changed to one of focusable objects. False if focus passed to
+ * the browser.
+ */
+ mx_internal var focusChanged:Boolean;
+
+ /**
+ * @private
+ *
+ * if non-null, the location to move focus from instead of the object
+ * that has focus in the stage.
+ */
+ mx_internal var fauxFocus:DisplayObject;
+
+
+ //--------------------------------------------------------------------------
+ //
+ // Properties
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // showFocusIndicator
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the showFocusIndicator property.
+ */
+ mx_internal var _showFocusIndicator:Boolean = false;
+
+ /**
+ * @inheritDoc
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function get showFocusIndicator():Boolean
+ {
+ return _showFocusIndicator;
+ }
+
+ /**
+ * @private
+ */
+ public function set showFocusIndicator(value:Boolean):void
+ {
+ var changed:Boolean = _showFocusIndicator != value;
+ // trace("FM " + this + " showFocusIndicator = " + value);
+ _showFocusIndicator = value;
+
+ if (hasEventListener("showFocusIndicator"))
+ dispatchEvent(new Event("showFocusIndicator"));
+ }
+
+ //----------------------------------
+ // defaultButton
+ //----------------------------------
+
+ /**
+ * @private
+ * The current default button.
+ */
+ private var defButton:IButton;
+
+ /**
+ * @private
+ */
+ private var _defaultButton:IButton;
+
+ /**
+ * @inheritDoc
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function get defaultButton():IButton
+ {
+ return _defaultButton;
+ }
+
+ /**
+ * @private
+ * We don't type the value as Button for dependency reasons
+ */
+ public function set defaultButton(value:IButton):void
+ {
+ var button:IButton = value ? IButton(value) : null;
+
+ if (button != _defaultButton)
+ {
+ if (_defaultButton)
+ _defaultButton.emphasized = false;
+
+ if (defButton)
+ defButton.emphasized = false;
+
+ _defaultButton = button;
+
+ if (defButton != _lastFocus || _lastFocus == _defaultButton)
+ {
+ defButton = button;
+
+ if (button)
+ button.emphasized = true;
+ }
+ }
+ }
+
+ //----------------------------------
+ // defaultButtonEnabled
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the defaultButtonEnabled property.
+ */
+ private var _defaultButtonEnabled:Boolean = true;
+
+ /**
+ * @inheritDoc
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function get defaultButtonEnabled():Boolean
+ {
+ return _defaultButtonEnabled;
+ }
+
+ /**
+ * @private
+ */
+ public function set defaultButtonEnabled(value:Boolean):void
+ {
+ _defaultButtonEnabled = value;
+
+ // Synchronize with the new value. We ensure that our
+ // default button is de-emphasized if defaultButtonEnabled
+ // is false.
+ if (defButton)
+ defButton.emphasized = value;
+ }
+
+ //----------------------------------
+ // focusPane
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the focusPane property.
+ */
+ private var _focusPane:Sprite;
+
+ /**
+ * @inheritDoc
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function get focusPane():Sprite
+ {
+ return _focusPane;
+ }
+
+ /**
+ * @private
+ */
+ public function set focusPane(value:Sprite):void
+ {
+ _focusPane = value;
+ }
+
+ //----------------------------------
+ // form
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the form property.
+ */
+ private var _form:IFocusManagerContainer;
+
+ /**
+ * @private
+ * The form is the property where we store the IFocusManagerContainer
+ * that hosts this FocusManager.
+ */
+ mx_internal function get form():IFocusManagerContainer
+ {
+ return _form;
+ }
+
+ /**
+ * @private
+ */
+ mx_internal function set form (value:IFocusManagerContainer):void
+ {
+ _form = value;
+ }
+
+
+ //----------------------------------
+ // _lastFocus
+ //----------------------------------
+
+ /**
+ * @private
+ * the object that last had focus
+ */
+ private var _lastFocus:IFocusManagerComponent;
+
+
+ /**
+ * @private
+ */
+ mx_internal function get lastFocus():IFocusManagerComponent
+ {
+ return _lastFocus;
+ }
+
+ /**
+ * @private
+ */
+ mx_internal function set lastFocus(value:IFocusManagerComponent):void
+ {
+ _lastFocus = value;
+ }
+
+ //----------------------------------
+ // nextTabIndex
+ //----------------------------------
+
+ /**
+ * @inheritDoc
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function get nextTabIndex():int
+ {
+ return getMaxTabIndex() + 1;
+ }
+
+ /**
+ * Gets the highest tab index currently used in this Focus Manager's form or subform.
+ *
+ * @return Highest tab index currently used.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ private function getMaxTabIndex():int
+ {
+ var z:Number = 0;
+
+ var n:int = focusableObjects.length;
+ for (var i:int = 0; i < n; i++)
+ {
+ var t:Number = focusableObjects[i].tabIndex;
+ if (!isNaN(t))
+ z = Math.max(z, t);
+ }
+
+ return z;
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Methods
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @inheritDoc
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function getFocus():IFocusManagerComponent
+ {
+ var stage:Stage = form.systemManager.stage;
+
+ if (!stage)
+ return null;
+
+ var o:InteractiveObject = stage.focus;
+ var i:IUIBase;
+ while (o != null)
+ {
+ if (o is IUIBase)
+ {
+ i = o as IUIBase;
+ break;
+ }
+ o = o.parent;
+ }
+
+ // If a Stage* object (such as StageText or StageWebView) has focus,
+ // stage.focus will be set to null. Much of the focus framework is not
+ // set up to handle this. So, if stage.focus is null, we return the last
+ // IFocusManagerComponent that had focus. In ADL, focus works slightly
+ // different than it does on device when using StageText. In ADL, when
+ // the focus is a StageText component, a TextField whose parent is the
+ // stage is assigned focus.
+ if ((!o && _lastFocus) || (o is TextField && o.parent == stage))
+ return _lastFocus;
+
+ return findFocusManagerComponent(i);
+ }
+
+ /**
+ * @inheritDoc
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function setFocus(o:IFocusManagerComponent):void
+ {
+ // trace("FM " + this + " setting focus to " + o);
+
+ o.setFocus();
+
+ if (hasEventListener("setFocus"))
+ dispatchEvent(new Event("setFocus"));
+ // trace("FM set focus");
+ }
+
+ /**
+ * @private
+ */
+ private function focusInHandler(event:FocusEvent):void
+ {
+ var target:InteractiveObject = InteractiveObject(event.target);
+ // trace("FocusManager focusInHandler in = " + this._form.systemManager.loaderInfo.url);
+ // trace("FM " + this + " focusInHandler " + target);
+
+ // dispatch cancelable FocusIn to see if Marshal Plan mixin wants it
+ if (hasEventListener(FocusEvent.FOCUS_IN))
+ if (!dispatchEvent(new FocusEvent(FocusEvent.FOCUS_IN, false, true, target)))
+ return;
+
+ if (isParent(DisplayObjectContainer(form), target))
+ {
+ if (_defaultButton)
+ {
+ if (target is IButton && target != _defaultButton
+ && !(target is IToggleButton))
+ _defaultButton.emphasized = false;
+ else if (_defaultButtonEnabled)
+ _defaultButton.emphasized = true;
+ }
+
+ var o:InteractiveObject = target;
+ var i:IUIBase;
+ while (o != null)
+ {
+ if (o is IUIBase)
+ {
+ i = o as IUIBase;
+ break;
+ }
+ o = o.parent;
+ }
+ // trace("FM " + this + " setting last focus " + target);
+ _lastFocus = findFocusManagerComponent(i);
+
+ if (Capabilities.hasIME)
+ {
+ var usesIME:Boolean;
+ if (_lastFocus is IIMESupport)
+ {
+ var imeFocus:IIMESupport = IIMESupport(_lastFocus);
+ if (imeFocus.enableIME)
+ usesIME = true;
+ }
+ if (IMEEnabled)
+ IME.enabled = usesIME;
+ }
+
+ // handle default button here
+ // we can't check for Button because of cross-versioning so
+ // for now we just check for an emphasized property
+ if (_lastFocus is IButton && !(_lastFocus is IToggleButton))
+ {
+ defButton = _lastFocus as IButton;
+ }
+ else
+ {
+ // restore the default button to be the original one
+ if (defButton && defButton != _defaultButton)
+ defButton = _defaultButton;
+ }
+ }
+ }
+
+ /**
+ * @private Useful for debugging
+ */
+ private function focusOutHandler(event:FocusEvent):void
+ {
+ var target:InteractiveObject = InteractiveObject(event.target);
+ // trace("FocusManager focusOutHandler in = " + this._form.systemManager.loaderInfo.url);
+ // trace("FM " + this + " focusOutHandler " + target);
+ }
+
+ /**
+ * @private
+ * restore focus to whoever had it last
+ */
+ private function activateHandler(event:Event):void
+ {
+// var target:InteractiveObject = InteractiveObject(event.target);
+ // trace("FM " + this + " activateHandler ", _lastFocus);
+
+ // if we were the active FM when we were deactivated
+ // and we're not running in AIR, then dispatch the event now
+ // otherwise wait for the AIR events to fire
+ if (activated && !desktopMode)
+ {
+ dispatchEvent(new FlexEvent(FlexEvent.FLEX_WINDOW_ACTIVATE));
+ // restore focus if this focus manager had last focus
+ if (_lastFocus && (!browserMode || ieshifttab))
+ _lastFocus.setFocus();
+ lastAction = "ACTIVATE";
+ }
+ }
+
+ /**
+ * @private
+ * Dispatch event if we're not running in AIR. AIR will
+ * dispatch windowDeactivate that we respond to instead
+ */
+ private function deactivateHandler(event:Event):void
+ {
+ // var target:InteractiveObject = InteractiveObject(event.target);
+ // trace("FM " + this + " deactivateHandler ", _lastFocus);
+
+ // if we are the active FM when we were deactivated
+ // and we're not running in AIR, then dispatch the event now
+ // otherwise wait for the AIR events to fire
+ if (activated && !desktopMode)
+ {
+ dispatchEvent(new FlexEvent(FlexEvent.FLEX_WINDOW_DEACTIVATE));
+ }
+ }
+
+ /**
+ * @private
+ * restore focus to whoever had it last
+ */
+ private function activateWindowHandler(event:Event):void
+ {
+// var target:InteractiveObject = InteractiveObject(event.target);
+ // trace("FM " + this + " activateWindowHandler ", _lastFocus);
+
+ windowActivated = true;
+
+ if (activated)
+ {
+ dispatchEvent(new FlexEvent(FlexEvent.FLEX_WINDOW_ACTIVATE));
+ // restore focus if this focus manager had last focus
+ if (_lastFocus && !browserMode)
+ _lastFocus.setFocus();
+ lastAction = "ACTIVATE";
+ }
+ }
+
+ /**
+ * @private
+ * If we're responsible for the focused control, remove focus from it
+ * so it gets the same events as it would if the whole app lost focus
+ */
+ private function deactivateWindowHandler(event:Event):void
+ {
+ // var target:InteractiveObject = InteractiveObject(event.target);
+ // trace("FM " + this + " deactivateWindowHandler ", _lastFocus);
+
+ windowActivated = false;
+
+ if (activated)
+ {
+ dispatchEvent(new FlexEvent(FlexEvent.FLEX_WINDOW_DEACTIVATE));
+ if (form.systemManager.stage)
+ form.systemManager.stage.focus = null;
+ }
+ }
+
+ /**
+ * @inheritDoc
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function showFocus():void
+ {
+ if (!showFocusIndicator)
+ {
+ showFocusIndicator = true;
+ if (_lastFocus)
+ _lastFocus.drawFocus(true);
+ }
+ }
+
+ /**
+ * @inheritDoc
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function hideFocus():void
+ {
+ // trace("FOcusManger " + this + " Hide Focus");
+ if (showFocusIndicator)
+ {
+ showFocusIndicator = false;
+ if (_lastFocus)
+ _lastFocus.drawFocus(false);
+ }
+ // trace("END FOcusManger Hide Focus");
+ }
+
+ /**
+ * The SystemManager activates and deactivates a FocusManager
+ * if more than one IFocusManagerContainer is visible at the same time.
+ * If the mouse is clicked in an IFocusManagerContainer with a deactivated
+ * FocusManager, the SystemManager will call
+ * the <code>activate()</code> method on that FocusManager.
+ * The FocusManager that was activated will have its <code>deactivate()</code> method
+ * called prior to the activation of another FocusManager.
+ *
+ * <p>The FocusManager adds event handlers that allow it to monitor
+ * focus related keyboard and mouse activity.</p>
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function activate():void
+ {
+ // we can get a double activation if we're popping up and becoming visible
+ // like the second time a menu appears
+ if (activated)
+ {
+ // trace("FocusManager is already active " + this);
+ return;
+ }
+
+ // trace("FocusManager activating = " + this._form.systemManager.loaderInfo.url);
+ // trace("FocusManager activating " + this);
+
+ // listen for focus changes, use weak references for the stage
+ // form.systemManager can be null if the form is created in a sandbox and
+ // added as a child to the root system manager.
+ var sm:ISystemManager = form.systemManager;
+ if (sm)
+ {
+ if (sm.isTopLevelRoot())
+ {
+ sm.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true);
+ sm.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true);
+ sm.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true);
+ sm.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true);
+ }
+ else
+ {
+ sm.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true);
+ sm.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true);
+ sm.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true);
+ sm.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true);
+ }
+ }
+
+ form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true);
+ form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true);
+ form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
+ form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownCaptureHandler, true);
+ form.addEventListener(KeyboardEvent.KEY_DOWN, defaultButtonKeyHandler);
+ form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true);
+ if (sm)
+ {
+ // AIR Window events, but don't want to link in AIREvent
+ // use capture phase because these get sent by the main Window
+ // and we might be managing a popup in that window
+ sm.addEventListener("windowActivate", activateWindowHandler, true, 0, true);
+ sm.addEventListener("windowDeactivate", deactivateWindowHandler, true, 0, true);
+ }
+
+ activated = true;
+ dispatchEvent(new FlexEvent(FlexEvent.FLEX_WINDOW_ACTIVATE));
+
+ // Restore focus to the last control that had it if there was one.
+ if (_lastFocus)
+ setFocus(_lastFocus);
+
+ if (hasEventListener("activateFM"))
+ dispatchEvent(new Event("activateFM"));
+
+ }
+
+ /**
+ * The SystemManager activates and deactivates a FocusManager
+ * if more than one IFocusManagerContainer is visible at the same time.
+ * If the mouse is clicked in an IFocusManagerContainer with a deactivated
+ * FocusManager, the SystemManager will call
+ * the <code>activate()</code> method on that FocusManager.
+ * The FocusManager that was activated will have its <code>deactivate()</code> method
+ * called prior to the activation of another FocusManager.
+ *
+ * <p>The FocusManager removes event handlers that allow it to monitor
+ * focus related keyboard and mouse activity.</p>
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function deactivate():void
+ {
+ // trace("FocusManager deactivating " + this);
+ // trace("FocusManager deactivating = " + this._form.systemManager.loaderInfo.url);
+
+ // listen for focus changes
+ var sm:ISystemManager = form.systemManager;
+ if (sm)
+ {
+ if (sm.isTopLevelRoot())
+ {
+ sm.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler);
+ sm.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler);
+ sm.stage.removeEventListener(Event.ACTIVATE, activateHandler);
+ sm.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler);
+ }
+ else
+ {
+ sm.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler);
+ sm.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler);
+ sm.removeEventListener(Event.ACTIVATE, activateHandler);
+ sm.removeEventListener(Event.DEACTIVATE, deactivateHandler);
+ }
+ }
+
+ form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true);
+ form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true);
+ form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
+ form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownCaptureHandler, true);
+ form.removeEventListener(KeyboardEvent.KEY_DOWN, defaultButtonKeyHandler);
+ // stop listening for default button in Capture phase
+ form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true);
+
+ activated = false;
+ dispatchEvent(new FlexEvent(FlexEvent.FLEX_WINDOW_DEACTIVATE));
+
+ if (hasEventListener("deactivateFM"))
+ dispatchEvent(new Event("deactivateFM"));
+ }
+
+ /**
+ * @inheritDoc
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function findFocusManagerComponent(
+ o:IUIBase):IFocusManagerComponent
+ {
+ return findFocusManagerComponent2(o as InteractiveObject) as IFocusManagerComponent;
+ }
+
+
+ /**
+ * @private
+ *
+ * This version of the method differs from the old one to support SWFLoader
+ * being in the focusableObjects list but not being a component that
+ * gets focus. SWFLoader is in the list of focusable objects so
+ * focus may be passed over a bridge to the components on the other
+ * side of the bridge.
+ */
+ private function findFocusManagerComponent2(
+ o:InteractiveObject):DisplayObject
+
+ {
+ try
+ {
+ while (o)
+ {
+ COMPILE::LATER
+ {
+ if ((o is IFocusManagerComponent && IFocusManagerComponent(o).focusEnabled) ||
+ o is ISWFLoader)
+ return o;
+ }
+ if (o is IFocusManagerComponent && IFocusManagerComponent(o).focusEnabled)
+ return o as DisplayObject;
+
+ o = o.parent;
+ }
+ }
+ catch (error:SecurityError)
+ {
+ // can happen in a loaded child swf
+ // trace("findFocusManagerComponent: handling security error");
+ }
+
+ // tab was set somewhere else
+ return null;
+ }
+
+ /**
+ * @private
+ * Returns true if p is a parent of o.
+ */
+ private function isParent(p:DisplayObjectContainer, o:DisplayObject):Boolean
+ {
+ if (p == o)
+ return false;
+
+ if (p is IRawChildrenContainer)
+ return IRawChildrenContainer(p).rawChildren.contains(o);
+
+ return p.contains(o);
+ }
+
+ private function isEnabledAndVisible(o:DisplayObject):Boolean
+ {
+ var formParent:DisplayObjectContainer = DisplayObjectContainer(form);
+
+ while (o != formParent)
+ {
+ if (o is IUIComponent)
+ if (!IUIComponent(o).enabled)
+ return false;
+
+ COMPILE::LATER
+ {
+ if (o is IVisualElement)
+ if (IVisualElement(o).designLayer && !IVisualElement(o).designLayer.effectiveVisibility)
+ return false;
+ }
+
+ if (!o.visible)
+ return false;
+ o = o.parent;
+
+ // if no parent, then not on display list
+ if (!o)
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * @private
+ */
+ private function sortByTabIndex(a:InteractiveObject, b:InteractiveObject):int
+ {
+ var aa:int = a.tabIndex;
+ var bb:int = b.tabIndex;
+
+ if (aa == -1)
+ aa = int.MAX_VALUE;
+ if (bb == -1)
+ bb = int.MAX_VALUE;
+
+ return (aa > bb ? 1 :
+ aa < bb ? -1 : sortByDepth(DisplayObject(a), DisplayObject(b)));
+ }
+
+ /**
+ * @private
+ */
+ private function sortFocusableObjectsTabIndex():void
+ {
+ // trace("FocusableObjectsTabIndex");
+
+ focusableCandidates = [];
+
+ var n:int = focusableObjects.length;
+ for (var i:int = 0; i < n; i++)
+ {
+ var c:IFocusManagerComponent = focusableObjects[i] as IFocusManagerComponent;
+ COMPILE::LATER
+ {
+ if ((c && c.tabIndex && !isNaN(Number(c.tabIndex))) ||
+ focusableObjects[i] is ISWFLoader)
+ {
+ // if we get here, it is a candidate
+ focusableCandidates.push(focusableObjects[i]);
+ }
+ }
+ if (c && c.tabIndex && !isNaN(Number(c.tabIndex)))
+ {
+ // if we get here, it is a candidate
+ focusableCandidates.push(focusableObjects[i]);
+ }
+ }
+
+ focusableCandidates.sort(sortByTabIndex);
+ }
+
+ /**
+ * @private
+ */
+ private function sortByDepth(aa:DisplayObject, bb:DisplayObject):Number
+ {
+ var val1:String = "";
+ var val2:String = "";
+ var index:int;
+ var tmp:String;
+ var tmp2:String;
+ var zeros:String = "0000";
+
+ var a:DisplayObject = DisplayObject(aa);
+ var b:DisplayObject = DisplayObject(bb);
+
+ // TODO (egreenfi): If a component lives inside of a group, we care about not its display object index, but
+ // its index within the group. See SDK-25144
+
+ while (a != DisplayObject(form) && a.parent)
+ {
+ index = getChildIndex(a.parent, a);
+ tmp = index.toString(16);
+ if (tmp.length < 4)
+ {
+ tmp2 = zeros.substring(0, 4 - tmp.length) + tmp;
+ }
+ val1 = tmp2 + val1;
+ a = a.parent;
+ }
+
+ while (b != DisplayObject(form) && b.parent)
+ {
+ index = getChildIndex(b.parent, b);
+ tmp = index.toString(16);
+ if (tmp.length < 4)
+ {
+ tmp2 = zeros.substring(0, 4 - tmp.length) + tmp;
+ }
+ val2 = tmp2 + val2;
+ b = b.parent;
+ }
+
+ return val1 > val2 ? 1 : val1 < val2 ? -1 : 0;
+ }
+
+ private function getChildIndex(parent:DisplayObjectContainer, child:DisplayObject):int
+ {
+ try
+ {
+ return parent.getChildIndex(child);
+ }
+ catch(e:Error)
+ {
+ if (parent is IRawChildrenContainer)
+ return IRawChildrenContainer(parent).rawChildren.getChildIndex(child);
+ throw e;
+ }
+ throw new Error("FocusManager.getChildIndex failed"); // shouldn't ever get here
+ }
+
+ /**
+ * @private
+ * Calculate what focusableObjects are valid tab candidates.
+ */
+ private function sortFocusableObjects():void
+ {
+ // trace("FocusableObjects " + focusableObjects.length.toString());
+ focusableCandidates = [];
+
+ var n:int = focusableObjects.length;
+ for (var i:int = 0; i < n; i++)
+ {
+ var c:InteractiveObject = focusableObjects[i];
+ // trace(" " + c);
+ if (c.tabIndex && !isNaN(Number(c.tabIndex)) && c.tabIndex > 0)
+ {
+ sortFocusableObjectsTabIndex();
+ return;
+ }
+ focusableCandidates.push(c);
+ }
+
+ focusableCandidates.sort(sortByDepth);
+ }
+
+ /**
+ * Call this method to make the system
+ * think the Enter key was pressed and the defaultButton was clicked
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ mx_internal function sendDefaultButtonEvent():void
+ {
+ // trace("FocusManager.sendDefaultButtonEvent " + defButton);
+ defButton.dispatchEvent(new MouseEvent("click"));
+ }
+
+ /**
+ * @private
+ * Do a tree walk and add all children you can find.
+ */
+ mx_internal function addFocusables(o:DisplayObject, skipTopLevel:Boolean = false):void
+ {
+ // trace(">>addFocusables " + o);
+ if ((o is IFocusManagerComponent) && !skipTopLevel)
+ {
+
+ var addToFocusables:Boolean = false;
+ if (o is IFocusManagerComponent)
+ {
+ var focusable:IFocusManagerComponent = IFocusManagerComponent(o);
+ if (focusable.focusEnabled)
+ {
+ if (focusable.tabFocusEnabled && isTabVisible(o))
+ {
+ addToFocusables = true;
+ }
+ }
+ }
+
+ if (addToFocusables)
+ {
+ if (focusableObjects.indexOf(o) == -1)
+ {
+ focusableObjects.push(o);
+ calculateCandidates = true;
+ // trace("FM added " + o);
+ }
+ }
+ o.addEventListener("tabFocusEnabledChange", tabFocusEnabledChangeHandler);
+ o.addEventListener("tabIndexChange", tabIndexChangeHandler);
+
+ }
+
+ if (o is DisplayObjectContainer)
+ {
+ var doc:DisplayObjectContainer = DisplayObjectContainer(o);
+ // Even if they aren't focusable now,
+ // listen in case they become later.
+ var checkChildren:Boolean;
+
+ if (o is IFocusManagerComponent)
+ {
+ o.addEventListener("hasFocusableChildrenChange", hasFocusableChildrenChangeHandler);
+ checkChildren = IFocusManagerComponent(o).hasFocusableChildren;
+ }
+ else
+ {
+ o.addEventListener("tabChildrenChange", tabChildrenChangeHandler);
+ checkChildren = doc.tabChildren;
+ }
+
+ if (checkChildren)
+ {
+ if (o is IRawChildrenContainer)
+ {
+ // trace("using view rawChildren");
+ var rawChildren:IChildList = IRawChildrenContainer(o).rawChildren;
+ // recursively visit and add children of components
+ // we don't do this for containers because we get individual
+ // adds for the individual children
+ var i:int;
+ for (i = 0; i < rawChildren.numChildren; i++)
+ {
+ try
+ {
+ addFocusables(rawChildren.getChildAt(i));
+ }
+ catch(error:SecurityError)
+ {
+ // Ignore this child if we can't access it
+ // trace("addFocusables: ignoring security error getting child from rawChildren: " + error);
+ }
+ }
+
+ }
+ else
+ {
+ // trace("using container's children");
+ // recursively visit and add children of components
+ // we don't do this for containers because we get individual
+ // adds for the individual children
+ for (i = 0; i < doc.numChildren; i++)
+ {
+ try
+ {
+ addFocusables(doc.getChildAt(i));
+ }
+ catch(error:SecurityError)
+ {
+ // Ignore this child if we can't access it
+ // trace("addFocusables: ignoring security error getting child at document." + error);
+ }
+ }
+ }
+ }
+ }
+ // trace("<<addFocusables " + o);
+ }
+
+ /**
+ * @private
+ * is it really tabbable?
+ */
+ private function isTabVisible(o:DisplayObject):Boolean
+ {
+ var s:DisplayObject = DisplayObject(form.systemManager);
+ if (!s) return false;
+
+ var p:DisplayObjectContainer = o.parent;
+ while (p && p != s)
+ {
+ if (!p.tabChildren)
+ return false;
+ if (p is IFocusManagerComponent && !(IFocusManagerComponent(p).hasFocusableChildren))
+ return false;
+ p = p.parent;
+ }
+ return true;
+ }
+
+ private function isValidFocusCandidate(o:DisplayObject, g:String):Boolean
+ {
+ if (o is IFocusManagerComponent)
+ if (!IFocusManagerComponent(o).focusEnabled)
+ return false;
+
+ if (!isEnabledAndVisible(o))
+ return false;
+
+ if (o is IFocusManagerGroup)
+ {
+ // reject if it is in the same tabgroup
+ var tg:IFocusManagerGroup = IFocusManagerGroup(o);
+ if (g == tg.groupName) return false;
+ }
+ return true;
+ }
+
+ private function getIndexOfFocusedObject(o:DisplayObject):int
+ {
+ if (!o)
+ return -1;
+
+ var n:int = focusableCandidates.length;
+ // trace(" focusableCandidates " + n);
+ var i:int = 0;
+ for (i = 0; i < n; i++)
+ {
+ // trace(" comparing " + focusableCandidates[i]);
+ if (focusableCandidates[i] == o)
+ return i;
+ }
+
+ // no match? try again with a slower match for certain
+ // cases like DG editors
+ for (i = 0; i < n; i++)
+ {
+ var iui:IUIComponent = focusableCandidates[i] as IUIComponent;
+ if (iui && iui.owns(o))
+ return i;
+ }
+
+ return -1;
+ }
+
+
+ private function getIndexOfNextObject(i:int, shiftKey:Boolean, bSearchAll:Boolean, groupName:String):int
+ {
+ var n:int = focusableCandidates.length;
+ var start:int = i;
+
+ while (true)
+ {
+ if (shiftKey)
+ i--;
+ else
+ i++;
+ if (bSearchAll)
+ {
+ if (shiftKey && i < 0)
+ break;
+ if (!shiftKey && i == n)
+ break;
+ }
+ else
+ {
+ i = (i + n) % n;
+ // came around and found the original
+ if (start == i)
+ break;
+ // if start is -1, set start to first valid value of i
+ if (start == -1)
+ start = i;
+ }
+ // trace("testing " + focusableCandidates[i]);
+ if (isValidFocusCandidate(focusableCandidates[i], groupName))
+ {
+ // trace(" stopped at " + i);
+ var o:DisplayObject = DisplayObject(findFocusManagerComponent2(focusableCandidates[i]));
+ if (o is IFocusManagerGroup)
+ {
+
+ // when landing on an element that is part of group, try to
+ // advance selection to the selected group element
+ var j:int;
+ var obj:DisplayObject;
+ var tg1:IFocusManagerGroup = IFocusManagerGroup(o);
+ var tg2:IFocusManagerGroup;
+
+ // normalize the "no selected group element" case
+ // to the "first group element selected" case
+ // (respecting the tab direction)
+ var groupElementToFocus:IFocusManagerGroup = null;
+ for (j = 0; j < focusableCandidates.length; j++)
+ {
+ obj = focusableCandidates[j];
+ if (obj is IFocusManagerGroup)
+ {
+ tg2 = IFocusManagerGroup(obj);
+ if (tg2.groupName == tg1.groupName && isEnabledAndVisible(obj) &&
+ tg2["document"] == tg1["document"])
+ {
+ if (tg2.selected)
+ {
+ groupElementToFocus = tg2;
+ break;
+ }
+ if ((!shiftKey && groupElementToFocus == null) || shiftKey)
+ groupElementToFocus = tg2;
+ }
+ }
+ }
+
+ if (tg1 != groupElementToFocus)
+ {
+ var foundAnotherGroup:Boolean = false;
+ // cycle the entire focusable candidates array forward or backward,
+ // wrapping around boundaries, searching for our focus candidate
+ j = i;
+ for (var k:int = 0; k < focusableCandidates.length - 1; k++)
+ {
+
+ if (!shiftKey)
+ {
+ j++;
+ if (j == focusableCandidates.length)
+ j = 0;
+ }
+ else
+ {
+ j--;
+ if (j == -1)
+ j = focusableCandidates.length - 1;
+ }
+
+ obj = focusableCandidates[j];
+ if (isEnabledAndVisible(obj))
+ {
+ if (foundAnotherGroup)
+ {
+ // we're now just trying to find a selected member of this group
+ if (obj is IFocusManagerGroup)
+ {
+ tg2 = IFocusManagerGroup(obj);
+ if (tg2.groupName == tg1.groupName && tg2["document"] == tg1["document"])
+ {
+ if (tg2.selected)
+ {
+ i = j;
+ break;
+ }
+ }
+ }
+ }
+ else if (obj is IFocusManagerGroup)
+ {
+ tg2 = IFocusManagerGroup(obj);
+ if (tg2.groupName == tg1.groupName && tg2["document"] == tg1["document"])
+ {
+ if (tg2 == groupElementToFocus)
+ {
+ // if objects of same group have different tab index
+ // skip you aren't selected.
+ if (InteractiveObject(obj).tabIndex != InteractiveObject(o).tabIndex && !tg1.selected)
+ return getIndexOfNextObject(i, shiftKey, bSearchAll, groupName);
+ i = j;
+ break;
+ }
+ }
+ else
+ {
+ // switch to new group and hunt for selected item
+ tg1 = tg2;
+ i = j;
+ // element is part of another group, stop if selected
+ if (tg2.selected)
+ break;
+ else
+ foundAnotherGroup = true;
+ }
+ }
+ else
+ {
+ // element isn't part of any group, stop
+ i = j;
+ break;
+ }
+ }
+ }
+ }
+ }
+ return i;
+ }
+ }
+ return i;
+ }
+
+ /**
+ * @private
+ */
+ private function setFocusToNextObject(event:FocusEvent):void
+ {
+ focusChanged = false;
+ if (focusableObjects.length == 0)
+ return;
+
+ var focusInfo:FocusInfo = getNextFocusManagerComponent2(event.shiftKey, fauxFocus);
+ // trace("winner = ", focusInfo.displayObject);
+
+ // If we are about to wrap focus around, send focus back to the parent.
+ if (!popup && (focusInfo.wrapped || !focusInfo.displayObject))
+ {
+ if (hasEventListener("focusWrapping"))
+ if (!dispatchEvent(new FocusEvent("focusWrapping", false, true, null, event.shiftKey)))
+ return;
+ }
+
+ if (!focusInfo.displayObject)
+ {
+ event.preventDefault();
+ return;
+ }
+
+ setFocusToComponent(focusInfo.displayObject, event.shiftKey);
+ }
+
+ private function setFocusToComponent(o:Object, shiftKey:Boolean):void
+ {
+ focusChanged = false;
+ if (o)
+ {
+ if (hasEventListener("setFocusToComponent"))
+ if (!dispatchEvent(new FocusEvent("setFocusToComponent", false, true, InteractiveObject(o), shiftKey)))
+ return;
+
+ if (o is IFocusManagerComplexComponent)
+ {
+ IFocusManagerComplexComponent(o).assignFocus(shiftKey ? "bottom" : "top");
+ focusChanged = true;
+ }
+ else if (o is IFocusManagerComponent)
+ {
+ setFocus(IFocusManagerComponent(o));
+ focusChanged = true;
+ }
+
+ }
+
+ }
+
+ /**
+ * @private
+ */
+ mx_internal function setFocusToNextIndex(index:int, shiftKey:Boolean):void
+ {
+ if (focusableObjects.length == 0)
+ return;
+
+ // I think we'll have time to do this here instead of at creation time
+ // this makes and orders the focusableCandidates array
+ if (calculateCandidates)
+ {
+ sortFocusableObjects();
+ calculateCandidates = false;
+ }
+
+ var focusInfo:FocusInfo = getNextFocusManagerComponent2(shiftKey, null, index);
+
+ // If we are about to wrap focus around, send focus back to the parent.
+ if (!popup && focusInfo.wrapped)
+ {
+ if (hasEventListener("setFocusToNextIndex"))
+ if (!dispatchEvent(new FocusEvent("setFocusToNextIndex", false, true, null, shiftKey)))
+ return;
+ }
+
+ setFocusToComponent(focusInfo.displayObject, shiftKey);
+ }
+
+ /**
+ * @inheritDoc
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function getNextFocusManagerComponent(
+ backward:Boolean = false):IFocusManagerComponent
+ {
+ const focusInfo:FocusInfo = getNextFocusManagerComponent2(backward, fauxFocus);
+ return focusInfo ? focusInfo.displayObject as IFocusManagerComponent : null;
+ }
+
+ /**
+ * Find the next object to set focus to.
+ *
+ * @param backward true if moving in the backwards in the tab order, false if moving forward.
+ * @param fromObject object to move focus from, if null move from the current focus.
+ * @param formIndex index to move focus from, if specified use fromIndex to find the
+ * object, not fromObject.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ private function getNextFocusManagerComponent2(
+ backward:Boolean = false,
+ fromObject:DisplayObject = null,
+ fromIndex:int = FROM_INDEX_UNSPECIFIED):FocusInfo
+
+ {
+ if (focusableObjects.length == 0)
+ return null;
+
+ // I think we'll have time to do this here instead of at creation time
+ // this makes and orders the focusableCandidates array
+ if (calculateCandidates)
+ {
+ sortFocusableObjects();
+ calculateCandidates = false;
+ }
+
+ // trace("focus was at " + fromObject);
+ // trace("focusableObjects " + focusableObjects.length);
+ var i:int = fromIndex;
+ if (fromIndex == FROM_INDEX_UNSPECIFIED)
+ {
+ // if there is no passed in object, then get the object that has the focus
+ var o:DisplayObject = fromObject;
+ if (!o)
+ o = form.systemManager.stage.focus;
+ else if (o == form.systemManager.stage)
+ o == null;
+
+ o = DisplayObject(findFocusManagerComponent2(InteractiveObject(o)));
+
+ var g:String = "";
+ if (o is IFocusManagerGroup)
+ {
+ var tg:IFocusManagerGroup = IFocusManagerGroup(o);
+ g = tg.groupName;
+ }
+ i = getIndexOfFocusedObject(o);
+ }
+
+ // trace(" starting at " + i);
+ var bSearchAll:Boolean = false;
+ var start:int = i;
+ if (i == -1) // we didn't find it
+ {
+ if (backward)
+ i = focusableCandidates.length;
+ bSearchAll = true;
+ // trace("search all " + i);
+ }
+
+ var j:int = getIndexOfNextObject(i, backward, bSearchAll, g);
+
+ // if we wrapped around, get if we have a parent we should pass
+ // focus to.
+ var wrapped:Boolean = false;
+ if (backward)
+ {
+ if (j >= i)
+ wrapped = true;
+ }
+ else if (j <= i)
+ wrapped = true;
+
+ var focusInfo:FocusInfo = new FocusInfo();
+
+ focusInfo.displayObject = findFocusManagerComponent2(focusableCandidates[j]);
+ focusInfo.wrapped = wrapped;
+
+ return focusInfo;
+ }
+
+
+ /**
+ * @private
+ */
+ private function getTopLevelFocusTarget(o:InteractiveObject):InteractiveObject
+ {
+ while (o != InteractiveObject(form))
+ {
+ if (o is IFocusManagerComponent &&
+ IFocusManagerComponent(o).focusEnabled &&
+ IFocusManagerComponent(o).mouseFocusEnabled &&
+ (o is IUIComponent ? IUIComponent(o).enabled : true))
+ return o;
+
+ if (hasEventListener("getTopLevelFocusTarget"))
+ if (!dispatchEvent(new FocusEvent("getTopLevelFocusTarget", false, true, o.parent)))
+ return null;
+
+ o = o.parent;
+
+ if (o == null)
+ break;
+ }
+
+ return null;
+ }
+
+ /**
+ * Returns a String representation of the component hosting the FocusManager object,
+ * with the String <code>".focusManager"</code> appended to the end of the String.
+ *
+ * @return Returns a String representation of the component hosting the FocusManager object,
+ * with the String <code>".focusManager"</code> appended to the end of the String.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ override public function toString():String
+ {
+ return Object(form).toString() + ".focusManager";
+ }
+
+ /**
+ * @private
+ *
+ * Clear the browser focus component and undo any tab index we may have set.
+ */
+ private function clearBrowserFocusComponent():void
+ {
+ if (browserFocusComponent)
+ {
+ if (browserFocusComponent.tabIndex == LARGE_TAB_INDEX)
+ browserFocusComponent.tabIndex = -1;
+
+ browserFocusComponent = null;
+ }
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Event handlers
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ * Listen for children being added
+ * and see if they are focus candidates.
+ */
+ private function addedHandler(event:Event):void
+ {
+ var target:DisplayObject = DisplayObject(event.target);
+
+ // trace("FM: addedHandler: got added for " + target);
+
+ // if it is truly parented, add it, otherwise it will get added when the top of the tree
+ // gets parented.
+ if (target.stage)
+ {
+ // trace("FM: addedHandler: adding focusables");
+ addFocusables(DisplayObject(event.target));
+ }
+ }
+
+ /**
+ * @private
+ * Listen for children being removed.
+ */
+ private function removedHandler(event:Event):void
+ {
+ var i:int;
+ var o:DisplayObject = DisplayObject(event.target);
+ var focusPaneParent:DisplayObject = focusPane ? focusPane.parent : null;
+
+ // Remove the focusPane to allow the focusOwner to be garbage collected.
+ // Avoid recursion by not processing the removal of the focusPane itself.
+ if (focusPaneParent && o != focusPane)
+ {
+ if (o is DisplayObjectContainer &&
+ isParent(DisplayObjectContainer(o), focusPane))
+ {
+ if (focusPaneParent is ISystemManager)
+ ISystemManager(focusPaneParent).focusPane = null;
+ else
+ IUIComponent(focusPaneParent).focusPane = null;
+ }
+ }
+
+ // trace("FM got added for " + event.target);
+
+ if (o is IFocusManagerComponent)
+ {
+ for (i = 0; i < focusableObjects.length; i++)
+ {
+ if (o == focusableObjects[i])
+ {
+ if (o == _lastFocus)
+ {
+ _lastFocus.drawFocus(false);
+ _lastFocus = null;
+ }
+ // trace("FM removed " + o);
+ focusableObjects.splice(i, 1);
+ focusableCandidates = [];
+ calculateCandidates = true;
+ break;
+ }
+ }
+ o.removeEventListener("tabFocusEnabledChange", tabFocusEnabledChangeHandler);
+ o.removeEventListener("tabIndexChange", tabIndexChangeHandler);
+ }
+ removeFocusables(o, false);
+ }
+
+ /**
+ * @private
+ */
+ private function removeFocusables(o:DisplayObject, dontRemoveTabChildrenHandler:Boolean):void
+ {
+ var i:int;
+ if (o is DisplayObjectContainer)
+ {
+ if (!dontRemoveTabChildrenHandler)
+ {
+ o.removeEventListener("tabChildrenChange", tabChildrenChangeHandler);
+ o.removeEventListener("hasFocusableChildrenChange", hasFocusableChildrenChangeHandler);
+ }
+
+ for (i = 0; i < focusableObjects.length; i++)
+ {
+ if (isParent(DisplayObjectContainer(o), focusableObjects[i]))
+ {
+ if (focusableObjects[i] == _lastFocus)
+ {
+ _lastFocus.drawFocus(false);
+ _lastFocus = null;
+ }
+ // trace("FM removed " + focusableObjects[i]);
+ focusableObjects[i].removeEventListener(
+ "tabFocusEnabledChange", tabFocusEnabledChangeHandler);
+ focusableObjects[i].removeEventListener(
+ "tabIndexChange", tabIndexChangeHandler);
+ focusableObjects.splice(i, 1);
+ i = i - 1; // because increment would skip one
+
+ focusableCandidates = [];
+ calculateCandidates = true;
+ }
+ }
+ }
+ }
+
+ /**
+ * @private
+ */
+ private function showHandler(event:Event):void
+ {
+ var awm:IActiveWindowManager =
+ IActiveWindowManager(form.systemManager.getImplementation("mx.managers::IActiveWindowManager"));
+ if (awm)
+ awm.activate(form); // build a message that does the equal
+ }
+
+ /**
+ * @private
+ */
+ private function hideHandler(event:Event):void
+ {
+ var awm:IActiveWindowManager =
+ IActiveWindowManager(form.systemManager.getImplementation("mx.managers::IActiveWindowManager"));
+ if (awm)
+ awm.deactivate(form); // build a message that does the equal
+ }
+
+ /**
+ * @private
+ */
+ private function childHideHandler(event:Event):void
+ {
+ var target:DisplayObject = DisplayObject(event.target);
+ // trace("FocusManager focusInHandler in = " + this._form.systemManager.loaderInfo.url);
+ // trace("FM " + this + " focusInHandler " + target);
+
+ if (lastFocus && !isEnabledAndVisible(DisplayObject(lastFocus)) && DisplayObject(form).stage)
+ {
+ DisplayObject(form).stage.focus = null;
+ lastFocus = null;
+ }
+ }
+
+ /**
+ * @private
+ */
+ private function viewHideHandler(event:Event):void
+ {
+ // Target is the active view that is about to be hidden
+ var target:DisplayObjectContainer = event.target as DisplayObjectContainer;
+ var lastFocusDO:DisplayObject = lastFocus as DisplayObject;
+
+ // If the lastFocus is in the view about to be hidden, clear focus
+ if (target && lastFocusDO && target.contains(lastFocusDO))
+ lastFocus = null;
+ }
+
+ /**
+ * @private
+ */
+ private function creationCompleteHandler(event:FlexEvent):void
+ {
+ var o:DisplayObject = DisplayObject(form);
+ if (o.parent && o.visible && !activated)
+ {
+ var awm:IActiveWindowManager =
+ IActiveWindowManager(form.systemManager.getImplementation("mx.managers::IActiveWindowManager"));
+ if (awm)
+ awm.activate(form); // build a message that does the equal
+ }
+ }
+
+ /**
+ * @private
+ * Add or remove if tabbing properties change.
+ */
+ private function tabIndexChangeHandler(event:Event):void
+ {
+ calculateCandidates = true;
+ }
+
+ /**
+ * @private
+ * Add or remove if tabbing properties change.
+ */
+ private function tabFocusEnabledChangeHandler(event:Event):void
+ {
+ calculateCandidates = true;
+
+ var o:IFocusManagerComponent = IFocusManagerComponent(event.target);
+ var n:int = focusableObjects.length;
+ for (var i:int = 0; i < n; i++)
+ {
+ if (focusableObjects[i] == o)
+ break;
+ }
+ if (o.tabFocusEnabled)
+ {
+ if (i == n && isTabVisible(DisplayObject(o)))
+ {
+ // trace("FM tpc added " + o);
+ // add it if were not already
+ if (focusableObjects.indexOf(o) == -1)
+ focusableObjects.push(o);
+ }
+ }
+ else
+ {
+ // remove it
+ if (i < n)
+ {
+ // trace("FM tpc removed " + o);
+ focusableObjects.splice(i, 1);
+ }
+ }
+ }
+
+ /**
+ * @private
+ * Add or remove if tabbing properties change.
+ */
+ private function tabChildrenChangeHandler(event:Event):void
+ {
+ if (event.target != event.currentTarget)
+ return;
+
+ calculateCandidates = true;
+
+ var o:DisplayObjectContainer = DisplayObjectContainer(event.target);
+ if (o.tabChildren)
+ {
+ addFocusables(o, true);
+ }
+ else
+ {
+ removeFocusables(o, true);
+ }
+ }
+
+ /**
+ * @private
+ * Add or remove if tabbing properties change.
+ */
+ private function hasFocusableChildrenChangeHandler(event:Event):void
+ {
+ if (event.target != event.currentTarget)
+ return;
+
+ calculateCandidates = true;
+
+ var o:IFocusManagerComponent = IFocusManagerComponent(event.target);
+ if (o.hasFocusableChildren)
+ {
+ addFocusables(DisplayObject(o), true);
+ }
+ else
+ {
+ removeFocusables(DisplayObject(o), true);
+ }
+ }
+
+ /**
+ * @private
+ * This gets called when mouse clicks on a focusable object.
+ * We block player behavior
+ */
+ private function mouseFocusChangeHandler(event:FocusEvent):void
+ {
+ // trace("FocusManager: mouseFocusChangeHandler in = " + this._form.systemManager.loaderInfo.url);
+ // trace("FocusManager: mouseFocusChangeHandler " + event);
+
+ if (event.isDefaultPrevented())
+ return;
+
+ // If relatedObject is null because we don't have access to the
+ // object getting focus then allow the Player to set focus
+ // to the object. The isRelatedObjectInaccessible property is
+ // Player 10 only so we have to test if it is available. We
+ // will only see isRelatedObjectInaccessible if we are a version "10" swf
+ // (-target-player=10). Version "9" swfs will not see the property
+ // even if running in Player 10.
+ if (event.relatedObject == null &&
+ "isRelatedObjectInaccessible" in event &&
+ event["isRelatedObjectInaccessible"] == true)
+ {
+ // lost focus to a control in different sandbox.
+ return;
+ }
+
+ if (event.relatedObject is TextField)
+ {
+ var tf:TextField = event.relatedObject as TextField;
+ if (tf.type == "input" || tf.selectable)
+ {
+ return; // pass it on
+ }
+ }
+
+ event.preventDefault();
+ }
+
+ /**
+ * @private
+ * This gets called when the tab key is hit.
+ */
+ mx_internal function keyFocusChangeHandler(event:FocusEvent):void
+ {
+ // trace("keyFocusChangeHandler handled by " + this);
+ // trace("keyFocusChangeHandler event = " + event);
+
+ var sm:ISystemManager = form.systemManager;
+
+ if (hasEventListener("keyFocusChange"))
+ if (!dispatchEvent(new FocusEvent("keyFocusChange", false, true, InteractiveObject(event.target))))
+ return;
+
+ showFocusIndicator = true;
+ focusChanged = false;
+
+ var haveBrowserFocusComponent:Boolean = (browserFocusComponent != null);
+ if (browserFocusComponent)
+ clearBrowserFocusComponent();
+
+ // see if we got here from a tab. We also need to check for
+ // keyCode == 0 because in IE sometimes the first time you tab
+ // in to the flash player, you get keyCode == 0 instead of TAB.
+ // Flash Player bug #2295688.
+ if ((event.keyCode == Keyboard.TAB || (browserMode && event.keyCode == 0))
+ && !event.isDefaultPrevented())
+ {
+ if (haveBrowserFocusComponent)
+ {
+ if (hasEventListener("browserFocusComponent"))
+ dispatchEvent(new FocusEvent("browserFocusComponent", false, false, InteractiveObject(event.target)));
+
+ return;
+ }
+
+ if (ieshifttab && lastAction == "ACTIVATE")
+ {
+ // IE seems to now require that we set focus to something during activate
+ // but then we get this keyFocusChange event. I think we used to not
+ // need to set focus on activate and we still got the keyFocusChange
+ // and then stage.focus was null and we'd use the keyFocusChange event
+ // to determine which control (first or last) got focus based on
+ // the shift key.
+ // If we set focus on activate, then we get this keyFocusChange which moves
+ // the focus somewhere else, so we set fauxFocus to the stage as a signal
+ // to the setFocusToNextObject logic that it shouldn't use the stage.focus
+ // as the starting point.
+ fauxFocus = sm.stage;
+ }
+ // trace("tabHandled by " + this);
+ setFocusToNextObject(event);
+ if (ieshifttab && lastAction == "ACTIVATE")
+ {
+ fauxFocus = null;
+ }
+
+ // if we changed focus or if we're the main app
+ // eat the event
+ if (focusChanged || sm == sm.getTopLevelRoot())
+ event.preventDefault();
+ }
+ }
+
+ /**
+ * @private
+ * Watch for TAB keys.
+ */
+ mx_internal function keyDownHandler(event:KeyboardEvent):void
+ {
+ // trace("onKeyDown handled by " + this);
+ // trace("onKeyDown event = " + event);
+ // if the target is in a bridged application, let it handle the click.
+ var sm:ISystemManager = form.systemManager;
+
+ if (hasEventListener("keyDownFM"))
+ if (!dispatchEvent(new FocusEvent("keyDownFM", false, true, InteractiveObject(event.target))))
+ return;
+
+ if (sm is SystemManager)
+ SystemManager(sm).idleCounter = 0;
+
+ if (event.keyCode == Keyboard.TAB)
+ {
+ lastAction = "KEY";
+
+ // I think we'll have time to do this here instead of at creation time
+ // this makes and orders the focusableCandidates array
+ if (calculateCandidates)
+ {
+ sortFocusableObjects();
+ calculateCandidates = false;
+ }
+ }
+
+ if (browserMode)
+ {
+ if (browserFocusComponent)
+ clearBrowserFocusComponent();
+
+ if (event.keyCode == Keyboard.TAB && focusableCandidates.length > 0)
+ {
+ // get the object that has the focus
+ var o:DisplayObject = fauxFocus;
+ if (!o)
+ {
+ o = form.systemManager.stage.focus;
+ }
+
+ // trace("focus was at " + o);
+ // trace("focusableObjects " + focusableObjects.length);
+ o = DisplayObject(findFocusManagerComponent2(InteractiveObject(o)));
+ var g:String = "";
+ if (o is IFocusManagerGroup)
+ {
+ var tg:IFocusManagerGroup = IFocusManagerGroup(o);
+ g = tg.groupName;
+ }
+
+ var i:int = getIndexOfFocusedObject(o);
+ var j:int = getIndexOfNextObject(i, event.shiftKey, false, g);
+ if (event.shiftKey)
+ {
+ if (j >= i)
+ {
+ // we wrapped so let browser have it
+ browserFocusComponent = getBrowserFocusComponent(event.shiftKey);
+ if (browserFocusComponent.tabIndex == -1)
+ browserFocusComponent.tabIndex = 0;
+ }
+ }
+ else
+ {
+ if (j <= i)
+ {
+ // we wrapped so let browser have it
+ browserFocusComponent = getBrowserFocusComponent(event.shiftKey);
+ if (browserFocusComponent.tabIndex == -1)
+ browserFocusComponent.tabIndex = LARGE_TAB_INDEX;
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * @private
+ * Watch for ENTER key.
+ */
+ private function defaultButtonKeyHandler(event:KeyboardEvent):void
+ {
+ var sm:ISystemManager = form.systemManager;
+ if (hasEventListener("defaultButtonKeyHandler"))
+ if (!dispatchEvent(new FocusEvent("defaultButtonKeyHandler", false, true)))
+ return;
+
+ if (defaultButtonEnabled && event.keyCode == Keyboard.ENTER &&
+ defButton && defButton.enabled)
+ {
+ sendDefaultButtonEvent();
+ }
+ }
+
+ /**
+ * @private
+ * This gets called when the focus changes due to a mouse click.
+ *
+ * Note: If the focus is changing to a TextField, we don't call
+ * setFocus() on it because the player handles it;
+ * calling setFocus() on a TextField which has scrollable text
+ * causes the text to autoscroll to the end, making the
+ * mouse click set the insertion point in the wrong place.
+ */
+ private function mouseDownCaptureHandler(event:MouseEvent):void
+ {
+ // trace("FocusManager mouseDownCaptureHandler in = " + this._form.systemManager.loaderInfo.url);
+ // trace("FocusManager mouseDownCaptureHandler target " + event.target);
+ showFocusIndicator = false;
+ }
+
+ /**
+ * @private
+ * This gets called when the focus changes due to a mouse click.
+ *
+ * Note: If the focus is changing to a TextField, we don't call
+ * setFocus() on it because the player handles it;
+ * calling setFocus() on a TextField which has scrollable text
+ * causes the text to autoscroll to the end, making the
+ * mouse click set the insertion point in the wrong place.
+ */
+ private function mouseDownHandler(event:MouseEvent):void
+ {
+ // trace("FocusManager mouseDownHandler in = " + this._form.systemManager.loaderInfo.url);
+ // trace("FocusManager mouseDownHandler target " + event.target);
+
+ // if the target is in a bridged application, let it handle the click.
+ var sm:ISystemManager = form.systemManager;
+ var o:DisplayObject = getTopLevelFocusTarget(
+ InteractiveObject(event.target));
+
+ if (!o)
+ return;
+
+ // trace("FocusManager mouseDownHandler on " + o);
+
+ // Make sure the containing component gets notified.
+ // As the note above says, we don't set focus to a TextField ever
+ // because the player already did and took care of where
+ // the insertion point is, and we also don't call setfocus
+ // on a component that last the last focused object unless
+ // the last action was just to activate the player and didn't
+ // involve tabbing or clicking on a component
+ if ((o != _lastFocus || lastAction == "ACTIVATE") && !(o is TextField))
+ setFocus(IFocusManagerComponent(o));
+ else if (_lastFocus)
+ {
+ // trace("FM: skipped setting focus to " + _lastFocus);
+ }
+
+ if (hasEventListener("mouseDownFM"))
+ dispatchEvent(new FocusEvent("mouseDownFM", false, false, InteractiveObject(o)));
+
+ lastAction = "MOUSEDOWN";
+
+ }
+
+ private function getBrowserFocusComponent(shiftKey:Boolean):InteractiveObject
+ {
+ var focusComponent:InteractiveObject = form.systemManager.stage.focus;
+
+ // if the focus is null it means focus is in an application we
+ // don't have access to. Use either the last object or the first
+ // object in this focus manager's list.
+ if (!focusComponent)
+ {
+ var index:int = shiftKey ? 0 : focusableCandidates.length - 1;
+ focusComponent = focusableCandidates[index];
+ }
+
+ return focusComponent;
+ }
+}
+
+}
+
+import flash.display.DisplayObject;
+
+/**
+ * @private
+ *
+ * Plain old class to return multiple items of info about the potential
+ * change in focus.
+ */
+class FocusInfo
+{
+ public var displayObject:DisplayObject; // object to get focus
+ public var wrapped:Boolean; // true if focus wrapped around
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4f3802ef/frameworks/projects/MX/src/main/flex/mx/managers/IFocusManagerComplexComponent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/managers/IFocusManagerComplexComponent.as b/frameworks/projects/MX/src/main/flex/mx/managers/IFocusManagerComplexComponent.as
new file mode 100644
index 0000000..c6400ee
--- /dev/null
+++ b/frameworks/projects/MX/src/main/flex/mx/managers/IFocusManagerComplexComponent.as
@@ -0,0 +1,82 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 mx.managers
+{
+
+/**
+ * The IFocusManagerComplexComponent interface defines the interface
+ * that components that can have more than one internal focus target
+ * should implement in order to
+ * receive focus from the FocusManager.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+public interface IFocusManagerComplexComponent extends IFocusManagerComponent
+{
+ //--------------------------------------------------------------------------
+ //
+ // Properties
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // hasFocusableContent
+ //----------------------------------
+
+ /**
+ * A flag that indicates whether the component currently has internal
+ * focusable targets
+ *
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ function get hasFocusableContent():Boolean;
+
+ //--------------------------------------------------------------------------
+ //
+ // Methods
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Called by the FocusManager when the component receives focus.
+ * The component may in turn set focus to an internal component.
+ * The components setFocus() method will still be called when focused by
+ * the mouse, but this method will be used when focus changes via the
+ * keyboard
+ *
+ * @param direction "bottom" if TAB used with SHIFT key, "top" otherwise
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ function assignFocus(direction:String):void;
+
+}
+
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4f3802ef/frameworks/projects/MX/src/main/flex/mx/managers/IFocusManagerGroup.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/managers/IFocusManagerGroup.as b/frameworks/projects/MX/src/main/flex/mx/managers/IFocusManagerGroup.as
new file mode 100644
index 0000000..97192bd
--- /dev/null
+++ b/frameworks/projects/MX/src/main/flex/mx/managers/IFocusManagerGroup.as
@@ -0,0 +1,85 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 mx.managers
+{
+
+/**
+ * The IFocusManagerGroup interface defines the interface that
+ * any component must implement if it is grouped in sets,
+ * where only one member of the set can be selected at any given time.
+ * For example, a RadioButton implements IFocusManagerGroup
+ * because a set of RadioButtons in the same group
+ * can only have one RadioButton selected at any one time,
+ * and the FocusManager will make sure not to give focus to the RadioButtons
+ * that are not selected in response to moving focus via the Tab key.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+public interface IFocusManagerGroup
+{
+ //--------------------------------------------------------------------------
+ //
+ // Properties
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // groupName
+ //----------------------------------
+
+ /**
+ * The name of the group of controls to which the control belongs.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ function get groupName():String;
+
+ /**
+ * @private
+ */
+ function set groupName(value:String):void;
+
+ //----------------------------------
+ // selected
+ //----------------------------------
+
+ /**
+ * A flag that indicates whether this control is selected.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ function get selected():Boolean;
+
+ /**
+ * @private
+ */
+ function set selected(value:Boolean):void;
+}
+
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4f3802ef/frameworks/projects/MX/src/main/flex/mx/managers/ISystemManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/managers/ISystemManager.as b/frameworks/projects/MX/src/main/flex/mx/managers/ISystemManager.as
index 072c0cc..35e5800 100644
--- a/frameworks/projects/MX/src/main/flex/mx/managers/ISystemManager.as
+++ b/frameworks/projects/MX/src/main/flex/mx/managers/ISystemManager.as
@@ -24,6 +24,7 @@ COMPILE::AS3
{
import flash.display.DisplayObject;
import flash.display.Sprite;
+ import flash.display.Stage;
}
COMPILE::JS
{
@@ -506,6 +507,23 @@ public interface ISystemManager extends IEventDispatcher, IChildList, IFlexModul
*/
function invalidateParentSizeAndDisplayList():void;
+
+ //----------------------------------
+ // stage
+ //----------------------------------
+
+ /**
+ * The flash.display.Stage that represents the application window
+ * mapped to this SystemManager
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ COMPILE::AS3
+ function get stage():Stage
+
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4f3802ef/frameworks/projects/MX/src/main/flex/mx/states/AddItems.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/states/AddItems.as b/frameworks/projects/MX/src/main/flex/mx/states/AddItems.as
index 68be25a..3254346 100644
--- a/frameworks/projects/MX/src/main/flex/mx/states/AddItems.as
+++ b/frameworks/projects/MX/src/main/flex/mx/states/AddItems.as
@@ -38,7 +38,7 @@ import mx.core.IDeferredContentOwner;
import mx.core.IMXMLObject;
import mx.core.ITransientDeferredInstance;
import mx.core.IUIComponent;
-import mx.core.IVisualElement;
+import org.apache.flex.core.IVisualElement;
import mx.core.IVisualElementContainer;
import mx.core.UIComponent;
[3/6] git commit: [flex-asjs] [refs/heads/spark] - clean compile of
MX for swf
Posted by ah...@apache.org.
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4f3802ef/frameworks/projects/MX/src/main/flex/mx/styles/metadata/AlignStyles.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/styles/metadata/AlignStyles.as b/frameworks/projects/MX/src/main/flex/mx/styles/metadata/AlignStyles.as
new file mode 100644
index 0000000..0d1b6da
--- /dev/null
+++ b/frameworks/projects/MX/src/main/flex/mx/styles/metadata/AlignStyles.as
@@ -0,0 +1,49 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Horizontal alignment of children in the container.
+ * Possible values are <code>"left"</code>, <code>"center"</code>,
+ * and <code>"right"</code>.
+ * The default value is <code>"left"</code>, but some containers,
+ * such as ButtonBar and ToggleButtonBar,
+ * have different default values.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+[Style(name="horizontalAlign", type="String", enumeration="left,center,right", inherit="no")]
+
+/**
+ * Vertical alignment of children in the container.
+ * Possible values are <code>"top"</code>, <code>"middle"</code>,
+ * and <code>"bottom"</code>.
+ * The default value is <code>"top"</code>, but some containers,
+ * such as ButtonBar, ControlBar, LinkBar,
+ * and ToggleButtonBar, have different default values.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+[Style(name="verticalAlign", type="String", enumeration="bottom,middle,top", inherit="no")]
+
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4f3802ef/frameworks/projects/MX/src/main/flex/mx/utils/LoaderUtil.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/utils/LoaderUtil.as b/frameworks/projects/MX/src/main/flex/mx/utils/LoaderUtil.as
index 9984514..7f76b6d 100644
--- a/frameworks/projects/MX/src/main/flex/mx/utils/LoaderUtil.as
+++ b/frameworks/projects/MX/src/main/flex/mx/utils/LoaderUtil.as
@@ -26,10 +26,13 @@ import flash.events.IEventDispatcher;
import flash.system.Capabilities;
import flash.utils.Dictionary;
+COMPILE::LATER
+{
import mx.core.ApplicationDomainTarget;
+import mx.core.RSLData;
+}
import mx.core.IFlexModuleFactory;
import mx.core.mx_internal;
-import mx.core.RSLData;
import mx.events.Request;
import mx.managers.SystemManagerGlobals;
import mx.utils.Platform;
[5/6] git commit: [flex-asjs] [refs/heads/spark] - clean compile of
MX for swf
Posted by ah...@apache.org.
clean compile of MX for swf
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/4f3802ef
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/4f3802ef
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/4f3802ef
Branch: refs/heads/spark
Commit: 4f3802ef8a89bb02ba75e475d1cfc19ae35a1f3c
Parents: dca9797
Author: Alex Harui <ah...@apache.org>
Authored: Wed Jun 1 22:31:22 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Wed Jun 1 22:31:22 2016 -0700
----------------------------------------------------------------------
.../mx/containers/utilityClasses/BoxLayout.as | 7 +-
.../containers/utilityClasses/CanvasLayout.as | 3 +
.../MX/src/main/flex/mx/controls/Label.png | Bin 0 -> 401 bytes
.../MX/src/main/flex/mx/core/Container.as | 38 +-
.../flex/mx/core/ContainerRawChildrenList.as | 1 +
.../MX/src/main/flex/mx/core/IToggleButton.as | 39 +
.../flex/mx/core/IVisualElementContainer.as | 17 +-
.../MX/src/main/flex/mx/core/LayoutContainer.as | 3 +
.../MX/src/main/flex/mx/core/UIComponent.as | 2 +-
.../src/main/flex/mx/effects/EffectManager.as | 2 +-
.../src/main/flex/mx/managers/FocusManager.as | 2359 ++++++++++++++++++
.../managers/IFocusManagerComplexComponent.as | 82 +
.../main/flex/mx/managers/IFocusManagerGroup.as | 85 +
.../src/main/flex/mx/managers/ISystemManager.as | 18 +
.../MX/src/main/flex/mx/states/AddItems.as | 2 +-
.../main/flex/mx/styles/metadata/AlignStyles.as | 49 +
.../MX/src/main/flex/mx/utils/LoaderUtil.as | 5 +-
17 files changed, 2681 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4f3802ef/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/BoxLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/BoxLayout.as b/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/BoxLayout.as
index 60eefd6..691af3c 100644
--- a/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/BoxLayout.as
+++ b/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/BoxLayout.as
@@ -20,13 +20,16 @@
package mx.containers.utilityClasses
{
+COMPILE::LATER
+{
+ import mx.controls.scrollClasses.ScrollBar;
+ import mx.core.ScrollPolicy;
+}
import mx.containers.BoxDirection;
-import mx.controls.scrollClasses.ScrollBar;
import mx.core.Container;
import mx.core.EdgeMetrics;
import mx.core.IUIComponent;
import mx.core.mx_internal;
-import mx.core.ScrollPolicy;
use namespace mx_internal;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4f3802ef/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/CanvasLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/CanvasLayout.as b/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/CanvasLayout.as
index 79831a5..6ef6dd2 100644
--- a/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/CanvasLayout.as
+++ b/frameworks/projects/MX/src/main/flex/mx/containers/utilityClasses/CanvasLayout.as
@@ -22,7 +22,10 @@ package mx.containers.utilityClasses
import flash.display.DisplayObject;
import flash.geom.Rectangle;
+COMPILE::LATER
+{
import mx.containers.Canvas;
+}
import mx.containers.errors.ConstraintError;
import mx.core.Container;
import mx.core.EdgeMetrics;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4f3802ef/frameworks/projects/MX/src/main/flex/mx/controls/Label.png
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/controls/Label.png b/frameworks/projects/MX/src/main/flex/mx/controls/Label.png
new file mode 100644
index 0000000..9269ae3
Binary files /dev/null and b/frameworks/projects/MX/src/main/flex/mx/controls/Label.png differ
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4f3802ef/frameworks/projects/MX/src/main/flex/mx/core/Container.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/Container.as b/frameworks/projects/MX/src/main/flex/mx/core/Container.as
index 86dab78..1ca04ea 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/Container.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/Container.as
@@ -56,20 +56,24 @@ import mx.events.KeyboardEvent;
import flex.system.DefinitionManager;
import org.apache.flex.reflection.getDefinitionByName;
+import org.apache.flex.core.IVisualElement;
import mx.binding.BindingManager;
+COMPILE::LATER
+{
import mx.containers.utilityClasses.PostScaleAdapter;
import mx.controls.HScrollBar;
import mx.controls.VScrollBar;
-import mx.controls.listClasses.IListItemRenderer;
import mx.controls.scrollClasses.ScrollBar;
+import mx.events.ScrollEvent;
+import mx.events.ScrollEventDetail;
+import mx.events.ScrollEventDirection;
+}
+import mx.controls.listClasses.IListItemRenderer;
import mx.core.IUITextField;
import mx.events.ChildExistenceChangedEvent;
import mx.events.FlexEvent;
import mx.events.IndexChangedEvent;
-import mx.events.ScrollEvent;
-import mx.events.ScrollEventDetail;
-import mx.events.ScrollEventDirection;
import mx.geom.RoundedRectangle;
import mx.managers.IFocusManager;
import mx.managers.IFocusManagerContainer;
@@ -2994,9 +2998,9 @@ public class Container extends UIComponent
* @playerversion AIR 1.5
* @productversion Flex 4
*/
- override public function getElementAt(index:int):IVisualElement
+ override public function getElementAt(index:int):org.apache.flex.core.IVisualElement
{
- return super.getElementAt(index) as IVisualElement;
+ return super.getElementAt(index) as org.apache.flex.core.IVisualElement;
}
/**
@@ -3007,7 +3011,7 @@ public class Container extends UIComponent
* @playerversion AIR 1.5
* @productversion Flex 4
*/
- override public function getElementIndex(element:IVisualElement):int
+ override public function getElementIndex(element:org.apache.flex.core.IVisualElement):int
{
return super.getElementIndex(element);
}
@@ -3020,12 +3024,12 @@ public class Container extends UIComponent
* @playerversion AIR 1.5
* @productversion Flex 4
*/
- public function addElement(element:IVisualElement):IVisualElement
+ override public function addElement(element:org.apache.flex.core.IVisualElement):org.apache.flex.core.IVisualElement
{
if (! (element is DisplayObject) )
throw ArgumentError(element + " is not supported in this Container");
- return addChild(element as DisplayObject) as IVisualElement;
+ return addChild(element as DisplayObject) as org.apache.flex.core.IVisualElement;
}
/**
@@ -3036,12 +3040,12 @@ public class Container extends UIComponent
* @playerversion AIR 1.5
* @productversion Flex 4
*/
- public function addElementAt(element:IVisualElement, index:int):IVisualElement
+ override public function addElementAt(element:org.apache.flex.core.IVisualElement, index:int):org.apache.flex.core.IVisualElement
{
if (! (element is DisplayObject) )
throw ArgumentError(element + " is not supported in this Container");
- return addChildAt(element as DisplayObject, index) as IVisualElement;
+ return addChildAt(element as DisplayObject, index) as org.apache.flex.core.IVisualElement;
}
/**
@@ -3052,12 +3056,12 @@ public class Container extends UIComponent
* @playerversion AIR 1.5
* @productversion Flex 4
*/
- public function removeElement(element:IVisualElement):IVisualElement
+ override public function removeElement(element:org.apache.flex.core.IVisualElement):org.apache.flex.core.IVisualElement
{
if (! (element is DisplayObject) )
throw ArgumentError(element + " is not found in this Container");
- return removeChild(element as DisplayObject) as IVisualElement;
+ return removeChild(element as DisplayObject) as org.apache.flex.core.IVisualElement;
}
/**
@@ -3068,9 +3072,9 @@ public class Container extends UIComponent
* @playerversion AIR 1.5
* @productversion Flex 4
*/
- public function removeElementAt(index:int):IVisualElement
+ public function removeElementAt(index:int):org.apache.flex.core.IVisualElement
{
- return removeChildAt(index) as IVisualElement;
+ return removeChildAt(index) as org.apache.flex.core.IVisualElement;
}
/**
@@ -3097,7 +3101,7 @@ public class Container extends UIComponent
* @playerversion AIR 1.5
* @productversion Flex 4
*/
- public function setElementIndex(element:IVisualElement, index:int):void
+ public function setElementIndex(element:org.apache.flex.core.IVisualElement, index:int):void
{
if (! (element is DisplayObject) )
throw ArgumentError(element + " is not found in this Container");
@@ -3113,7 +3117,7 @@ public class Container extends UIComponent
* @playerversion AIR 1.5
* @productversion Flex 4
*/
- public function swapElements(element1:IVisualElement, element2:IVisualElement):void
+ public function swapElements(element1:org.apache.flex.core.IVisualElement, element2:org.apache.flex.core.IVisualElement):void
{
if (! (element1 is DisplayObject) )
throw ArgumentError(element1 + " is not found in this Container");
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4f3802ef/frameworks/projects/MX/src/main/flex/mx/core/ContainerRawChildrenList.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/ContainerRawChildrenList.as b/frameworks/projects/MX/src/main/flex/mx/core/ContainerRawChildrenList.as
index d668440..2639f74 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/ContainerRawChildrenList.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/ContainerRawChildrenList.as
@@ -210,6 +210,7 @@ public class ContainerRawChildrenList implements IChildList
/**
* @private
*/
+ COMPILE::LATER
public function getObjectsUnderPoint(point:Point):Array
{
return owner.rawChildren_getObjectsUnderPoint(point);
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4f3802ef/frameworks/projects/MX/src/main/flex/mx/core/IToggleButton.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/IToggleButton.as b/frameworks/projects/MX/src/main/flex/mx/core/IToggleButton.as
new file mode 100644
index 0000000..9541aa1
--- /dev/null
+++ b/frameworks/projects/MX/src/main/flex/mx/core/IToggleButton.as
@@ -0,0 +1,39 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 mx.core
+{
+
+/**
+ * The IToggleButton interface is a marker interface that indicates that a
+ * component acts as a toggleable button. It is used primarily as a filter
+ * by the framework's default button logic. This interface is <strong>only</strong> used
+ * by legacy MX components.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+public interface IToggleButton
+{
+
+}
+
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4f3802ef/frameworks/projects/MX/src/main/flex/mx/core/IVisualElementContainer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/IVisualElementContainer.as b/frameworks/projects/MX/src/main/flex/mx/core/IVisualElementContainer.as
index ddfccf1..a185ef4 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/IVisualElementContainer.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/IVisualElementContainer.as
@@ -20,6 +20,7 @@
package mx.core
{
+import org.apache.flex.core.IVisualElement;
/**
* The IVisualElementContainer interface defines the minimum properties and methods
@@ -70,7 +71,7 @@ public interface IVisualElementContainer
* @playerversion AIR 1.5
* @productversion Flex 4
*/
- function getElementAt(index:int):IVisualElement
+ function getElementAt(index:int):org.apache.flex.core.IVisualElement
//----------------------------------
// Visual Element addition
@@ -101,7 +102,7 @@ public interface IVisualElementContainer
* @playerversion AIR 1.5
* @productversion Flex 4
*/
- function addElement(element:IVisualElement):IVisualElement;
+ function addElement(element:org.apache.flex.core.IVisualElement):org.apache.flex.core.IVisualElement;
/**
* Adds a visual element to this container.
@@ -133,7 +134,7 @@ public interface IVisualElementContainer
* @playerversion AIR 1.5
* @productversion Flex 4
*/
- function addElementAt(element:IVisualElement, index:int):IVisualElement;
+ function addElementAt(element:org.apache.flex.core.IVisualElement, index:int):org.apache.flex.core.IVisualElement;
//----------------------------------
// Visual Element removal
@@ -157,7 +158,7 @@ public interface IVisualElementContainer
* @playerversion AIR 1.5
* @productversion Flex 4
*/
- function removeElement(element:IVisualElement):IVisualElement;
+ function removeElement(element:org.apache.flex.core.IVisualElement):org.apache.flex.core.IVisualElement;
/**
* Removes a visual element from the specified index position
@@ -176,7 +177,7 @@ public interface IVisualElementContainer
* @playerversion AIR 1.5
* @productversion Flex 4
*/
- function removeElementAt(index:int):IVisualElement;
+ function removeElementAt(index:int):org.apache.flex.core.IVisualElement;
/**
* Removes all visual elements from the container.
@@ -206,7 +207,7 @@ public interface IVisualElementContainer
* @playerversion AIR 1.5
* @productversion Flex 4
*/
- function getElementIndex(element:IVisualElement):int;
+ function getElementIndex(element:org.apache.flex.core.IVisualElement):int;
/**
* Changes the position of an existing visual element in the visual container.
@@ -236,7 +237,7 @@ public interface IVisualElementContainer
* @playerversion AIR 1.5
* @productversion Flex 4
*/
- function setElementIndex(element:IVisualElement, index:int):void;
+ function setElementIndex(element:org.apache.flex.core.IVisualElement, index:int):void;
//----------------------------------
// Visual Element swapping
@@ -255,7 +256,7 @@ public interface IVisualElementContainer
* @playerversion AIR 1.5
* @productversion Flex 4
*/
- function swapElements(element1:IVisualElement, element2:IVisualElement):void;
+ function swapElements(element1:org.apache.flex.core.IVisualElement, element2:org.apache.flex.core.IVisualElement):void;
/**
* Swaps the visual elements at the two specified index
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4f3802ef/frameworks/projects/MX/src/main/flex/mx/core/LayoutContainer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/LayoutContainer.as b/frameworks/projects/MX/src/main/flex/mx/core/LayoutContainer.as
index 850899b..82466a2 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/LayoutContainer.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/LayoutContainer.as
@@ -31,7 +31,10 @@ import mx.containers.utilityClasses.Layout;
import mx.effects.EffectManager;
import mx.events.FlexEvent;
import mx.managers.ISystemManager;
+COMPILE::LATER
+{
import mx.managers.LayoutManager;
+}
import mx.managers.SystemManager;
import mx.styles.CSSStyleDeclaration;
import mx.styles.IStyleClient;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4f3802ef/frameworks/projects/MX/src/main/flex/mx/core/UIComponent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/UIComponent.as b/frameworks/projects/MX/src/main/flex/mx/core/UIComponent.as
index 5bb3559..f455a5c 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/UIComponent.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/UIComponent.as
@@ -8674,7 +8674,7 @@ public class UIComponent extends Sprite
for (i = 0; i < thisContainerNumElements; i++)
{
- var elt:IVisualElement = thisContainer.getElementAt(i);
+ var elt:IVisualElement = thisContainer.getElementAt(i) as IVisualElement;
// Can be null if IUITextField or IUIFTETextField.
if (elt && !(elt is IStyleClient))
elt.invalidateLayoutDirection();
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4f3802ef/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as b/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as
index 8add486..e322d82 100644
--- a/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as
+++ b/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as
@@ -56,7 +56,7 @@ import mx.events.ResizeEvent;
import mx.resources.IResourceManager;
import mx.resources.ResourceManager;
import mx.core.IVisualElementContainer;
-import mx.core.IVisualElement;
+import org.apache.flex.core.IVisualElement;
use namespace mx_internal;