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 2015/04/15 23:43:10 UTC
[05/55] [abbrv] git commit: [flex-asjs] [refs/heads/develop] - move
AS classes from FlexJSJX to final home. Build scripts will be fixed up in a
later commit
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/72b21f62/frameworks/projects/Core/asjs/src/org/apache/flex/core/StatesWithTransitionsImpl.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/asjs/src/org/apache/flex/core/StatesWithTransitionsImpl.as b/frameworks/projects/Core/asjs/src/org/apache/flex/core/StatesWithTransitionsImpl.as
new file mode 100644
index 0000000..d0e9059
--- /dev/null
+++ b/frameworks/projects/Core/asjs/src/org/apache/flex/core/StatesWithTransitionsImpl.as
@@ -0,0 +1,299 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 mx.states.AddItems;
+ import mx.states.SetEventHandler;
+ import mx.states.SetProperty;
+ import mx.states.State;
+
+ import org.apache.flex.core.IParent;
+ import org.apache.flex.core.IStatesObject;
+ import org.apache.flex.effects.Effect;
+ import org.apache.flex.events.Event;
+ import org.apache.flex.events.EventDispatcher;
+ import org.apache.flex.events.IEventDispatcher;
+ import org.apache.flex.events.ValueChangeEvent;
+ import org.apache.flex.states.Transition;
+ import org.apache.flex.utils.MXMLDataInterpreter;
+
+ /**
+ * The StatesWithTransitionsImpl class implements a set of
+ * view state functionality that includes transitions between states.
+ * It only supports AddItems and SetProperty and SetEventHandler
+ * changes at this time.
+ *
+ * @flexjsignoreimport org.apache.flex.core.IStatesObject
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class StatesWithTransitionsImpl extends EventDispatcher implements IStatesImpl, IBead
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function StatesWithTransitionsImpl()
+ {
+ super();
+ }
+
+ private var _strand:IStrand;
+
+ private var sawInitComplete:Boolean;
+
+ /**
+ * @copy org.apache.flex.core.IBead#strand
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function set strand(value:IStrand):void
+ {
+ _strand = value;
+ IEventDispatcher(_strand).addEventListener("currentStateChange", stateChangeHandler);
+ IEventDispatcher(_strand).addEventListener("initComplete", initialStateHandler);
+ }
+
+ /**
+ * @private
+ * @flexjsignorecoercion org.apache.flex.core.IStatesObject
+ */
+ private function initialStateHandler(event:org.apache.flex.events.Event):void
+ {
+ sawInitComplete = true;
+ stateChangeHandler(new ValueChangeEvent("currentStateChange", false, false, null,
+ IStatesObject(_strand).currentState));
+ }
+
+ /**
+ * @private
+ * @flexjsignorecoercion org.apache.flex.core.IStatesObject
+ */
+ private function stateChangeHandler(event:ValueChangeEvent):void
+ {
+ if (!sawInitComplete)
+ return;
+
+ var doc:IStatesObject = _strand as IStatesObject;
+ var transitions:Array = doc.transitions;
+ if (transitions && transitions.length > 0)
+ {
+ for each (var t:Transition in transitions)
+ {
+ if (t.fromState == "*" || t.fromState == event.oldValue)
+ {
+ if (t.toState == "*" || t.toState == event.newValue)
+ {
+ transitionEffects = t.effects.slice();
+ for each (var e:Effect in transitionEffects)
+ {
+ e.captureStartValues();
+ }
+ break;
+ }
+ }
+ }
+ }
+ var arr:Array = doc.states;
+ for each (var s:State in arr)
+ {
+ if (s.name == event.oldValue)
+ {
+ revert(s);
+ break;
+ }
+ }
+ for each (s in arr)
+ {
+ if (s.name == event.newValue)
+ {
+ apply(s);
+ break;
+ }
+ }
+ if (transitionEffects && transitionEffects.length > 0)
+ {
+ for each (e in transitionEffects)
+ {
+ e.captureEndValues();
+ }
+ }
+ var playingTransition:Boolean;
+ if (transitionEffects && transitionEffects.length > 0)
+ {
+ playingTransition = true;
+ for each (e in transitionEffects)
+ {
+ e.addEventListener(Effect.EFFECT_END, effectEndHandler);
+ e.play();
+ }
+ }
+ if (!playingTransition)
+ doc.dispatchEvent(new Event("stateChangeComplete"));
+ }
+
+ private var transitionEffects:Array;
+
+ /**
+ * @private
+ * @flexjsignorecoercion org.apache.flex.core.IStatesObject
+ */
+ private function effectEndHandler(event:Event):void
+ {
+ // in case of extraneous calls to effectEndHandler
+ if (transitionEffects == null)
+ return;
+
+ var n:int = transitionEffects.length;
+ for (var i:int = 0; i < n; i++)
+ {
+ event.target.removeEventListener(Effect.EFFECT_END, effectEndHandler);
+ if (transitionEffects[i] == event.target)
+ transitionEffects.splice(i, 1);
+ }
+ if (transitionEffects.length == 0)
+ {
+ transitionEffects = null;
+ var doc:IStatesObject = _strand as IStatesObject;
+ doc.dispatchEvent(new Event("stateChangeComplete"));
+ }
+ }
+
+ private function revert(s:State):void
+ {
+ var arr:Array = s.overrides;
+ for each (var o:Object in arr)
+ {
+ if (o is AddItems)
+ {
+ var ai:AddItems = AddItems(o);
+ for each (var item:IChild in ai.items)
+ {
+ var parent:IParent = item.parent as IParent;
+ parent.removeElement(item);
+ }
+ if (parent is IContainer)
+ IContainer(parent).childrenAdded();
+ }
+ else if (o is SetProperty)
+ {
+ var sp:SetProperty = SetProperty(o);
+ if (sp.target != null)
+ sp.document[sp.target][sp.name] = sp.previousValue;
+ else
+ sp.document[sp.name] = sp.previousValue;
+ }
+ else if (o is SetEventHandler)
+ {
+ var seh:SetEventHandler = SetEventHandler(o);
+ if (seh.target != null)
+ {
+ seh.document[seh.target].removeEventListener(seh.name, seh.handlerFunction);
+ }
+ else
+ {
+ seh.document.removeEventListener(seh.name, seh.handlerFunction);
+ }
+ }
+ }
+ }
+
+ private function apply(s:State):void
+ {
+ var arr:Array = s.overrides;
+ for each (var o:Object in arr)
+ {
+ if (o is AddItems)
+ {
+ var ai:AddItems = AddItems(o);
+ if (ai.items == null)
+ {
+ ai.items = ai.itemsDescriptor.items as Array;
+ if (ai.items == null)
+ {
+ ai.items =
+ MXMLDataInterpreter.generateMXMLArray(ai.document,
+ null, ai.itemsDescriptor.descriptor);
+ ai.itemsDescriptor.items = ai.items;
+ }
+ }
+ for each (var item:Object in ai.items)
+ {
+ var parent:IParent = ai.document as IParent;
+ if (ai.destination)
+ parent = parent[ai.destination] as IParent;
+ if (ai.relativeTo != null)
+ {
+ var child:Object = ai.document[ai.relativeTo];
+ if (ai.destination)
+ parent = IChild(child).parent as IParent;
+ var index:int = parent.getElementIndex(child);
+ if (ai.position == "after")
+ index++;
+ parent.addElementAt(item, index);
+ }
+ else
+ {
+ parent.addElement(item);
+ }
+ }
+ if (parent is IContainer)
+ IContainer(parent).childrenAdded();
+ }
+ else if (o is SetProperty)
+ {
+ var sp:SetProperty = SetProperty(o);
+ if (sp.target != null)
+ {
+ sp.previousValue = sp.document[sp.target][sp.name];
+ sp.document[sp.target][sp.name] = sp.value;
+ }
+ else
+ {
+ sp.previousValue = sp.document[sp.name];
+ sp.document[sp.name] = sp.value;
+ }
+ }
+ else if (o is SetEventHandler)
+ {
+ var seh:SetEventHandler = SetEventHandler(o);
+ if (seh.target != null)
+ {
+ seh.document[seh.target].addEventListener(seh.name, seh.handlerFunction);
+ }
+ else
+ {
+ seh.document.addEventListener(seh.name, seh.handlerFunction);
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/72b21f62/frameworks/projects/Core/asjs/tests/FlexUnitFlexJSApplication.mxml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/asjs/tests/FlexUnitFlexJSApplication.mxml b/frameworks/projects/Core/asjs/tests/FlexUnitFlexJSApplication.mxml
new file mode 100644
index 0000000..a8d533c
--- /dev/null
+++ b/frameworks/projects/Core/asjs/tests/FlexUnitFlexJSApplication.mxml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+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.
+
+-->
+
+<basic:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
+ xmlns:basic="library://ns.apache.org/flexjs/basic"
+ applicationComplete="runTests()"
+ >
+ <fx:Script>
+ <![CDATA[
+ import flexUnitTests.DataGridColumnTesterTest;
+ import flexUnitTests.DataGridColumnTester;
+
+ import org.flexunit.listeners.CIListener;
+ import org.flexunit.runner.FlexUnitCore;
+
+ public function runTests() : void
+ {
+ var core : FlexUnitCore = new FlexUnitCore();
+ core.addListener(new CIListener());
+ core.run(DataGridColumnTester);
+ }
+
+ ]]>
+ </fx:Script>
+ <basic:valuesImpl>
+ <basic:SimpleValuesImpl />
+ </basic:valuesImpl>
+
+</basic:Application>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/72b21f62/frameworks/projects/Core/asjs/tests/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/asjs/tests/build.xml b/frameworks/projects/Core/asjs/tests/build.xml
new file mode 100644
index 0000000..d7f0c94
--- /dev/null
+++ b/frameworks/projects/Core/asjs/tests/build.xml
@@ -0,0 +1,141 @@
+<?xml version="1.0"?>
+<!--
+
+ 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.
+
+-->
+
+
+<project name="flexjsjx.test" default="main" basedir=".">
+ <property name="FLEXJS_HOME" location="../../../../.."/>
+
+ <property file="${FLEXJS_HOME}/env.properties"/>
+ <property environment="env"/>
+ <property file="${FLEXJS_HOME}/build.properties"/>
+ <property name="FLEX_HOME" value="${env.FLEX_HOME}"/>
+ <property name="FALCON_HOME" value="${env.FALCON_HOME}"/>
+
+ <condition property="browser" value="C:/Program Files/Internet Explorer/iexplore.exe">
+ <os family="windows"/>
+ </condition>
+ <condition property="browser" value="/Applications/Safari.app/Contents/MacOS/Safari">
+ <os family="mac"/>
+ </condition>
+
+ <property name="report.dir" value="${basedir}/out" />
+
+ <available file="${FLEXJS_HOME}/../flex-flexunit"
+ type="dir"
+ property="FLEXUNIT_HOME"
+ value="${FLEXJS_HOME}/../flex-flexunit" />
+
+ <available file="${FLEXJS_HOME}/../flexunit"
+ type="dir"
+ property="FLEXUNIT_HOME"
+ value="${FLEXJS_HOME}/../flexunit" />
+
+ <available file="${env.FLEXUNIT_HOME}"
+ type="dir"
+ property="FLEXUNIT_HOME"
+ value="${env.FLEXUNIT_HOME}"/>
+
+ <target name="main" depends="clean,compile,test" description="Clean test of FlexJSUI.swc">
+ </target>
+
+ <target name="clean">
+ <delete failonerror="false">
+ <fileset dir="${basedir}">
+ <include name="FlexUnitFlexJSApplication.swf"/>
+ </fileset>
+ </delete>
+ </target>
+
+ <path id="lib.path">
+ <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
+ </path>
+
+ <target name="compile" description="Compiles FlexUnitApplication.swf">
+ <echo message="Compiling FlexUnitFlexJSApplication.swf"/>
+ <echo message="FLEX_HOME: ${FLEX_HOME}"/>
+ <echo message="FALCON_HOME: ${FALCON_HOME}"/>
+ <echo message="FLEXUNIT_HOME: ${FLEXUNIT_HOME}"/>
+ <echo message="playerglobal.version: ${playerglobal.version}"/>
+
+ <!-- Load the <compc> task. We can't do this at the <project> level -->
+ <!-- because targets that run before flexTasks.jar gets built would fail. -->
+ <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
+ <!--
+ Link in the classes (and their dependencies) for the MXML tags
+ listed in this project's manifest.xml.
+ Also link the additional classes (and their dependencies)
+ listed in FlexJSUIClasses.as,
+ because these aren't referenced by the manifest classes.
+ Keep the standard metadata when compiling.
+ Include the appropriate CSS files and assets in the SWC.
+ Don't include any resources in the SWC.
+ Write a bundle list of referenced resource bundles
+ into the file bundles.properties in this directory.
+ -->
+ <mxmlc fork="true"
+ file="${basedir}/FlexUnitFlexJSApplication.mxml"
+ output="${basedir}/FlexUnitFlexJSApplication.swf">
+ <jvmarg line="${mxmlc.jvm.args}"/>
+ <arg value="+flexlib=${FLEXJS_HOME}/frameworks" />
+ <arg value="-debug" />
+ <arg value="-compiler.mxml.children-as-data" />
+ <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
+ <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
+ <arg value="-compiler.binding-value-change-event-type=valueChange" />
+ <arg value="+playerglobal.version=${playerglobal.version}" />
+ <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
+ <arg value="-source-path+=${FLEXJS_HOME}/frameworks/as/projects/FlexJSJX/src" />
+ <arg value="-library-path+=${FLEXJS_HOME}/frameworks/as/libs" />
+ <arg value="-library-path+=${FLEXUNIT_HOME}/FlexUnit4/target" />
+ <arg value="-library-path+=${FLEXUNIT_HOME}/FlexUnit4CIListener/target" />
+ </mxmlc>
+ </target>
+
+ <target name="test">
+ <taskdef resource="flexUnitTasks.tasks">
+ <classpath>
+ <fileset dir="${FLEXUNIT_HOME}/FlexUnit4AntTasks/target">
+ <include name="flexUnitTasks*.jar" />
+ </fileset>
+ </classpath>
+ </taskdef>
+ <mkdir dir="${report.dir}" />
+ <flexunit
+ swf="${basedir}/FlexUnitFlexJSApplication.swf"
+ workingDir="${basedir}"
+ toDir="${report.dir}"
+ haltonfailure="false"
+ verbose="true"
+ localTrusted="true"
+ command="${browser}">
+ <source dir="${FLEXJS_HOME}/frameworks/as/projects/FlexJSJX/src" />
+ <library dir="${FLEXJS_HOME}/frameworks/as/libs" />
+ </flexunit>
+
+ <!-- Generate readable JUnit-style reports -->
+ <junitreport todir="${report.dir}">
+ <fileset dir="${report.dir}">
+ <include name="TEST-*.xml" />
+ </fileset>
+ <report format="frames" todir="${report.dir}/html" />
+ </junitreport>
+
+ </target>
+</project>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/72b21f62/frameworks/projects/Core/asjs/tests/flexUnitTests/DataGridColumnTester.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/asjs/tests/flexUnitTests/DataGridColumnTester.as b/frameworks/projects/Core/asjs/tests/flexUnitTests/DataGridColumnTester.as
new file mode 100644
index 0000000..e060b1f
--- /dev/null
+++ b/frameworks/projects/Core/asjs/tests/flexUnitTests/DataGridColumnTester.as
@@ -0,0 +1,27 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 flexUnitTests
+{
+ [Suite]
+ [RunWith("org.flexunit.runners.Suite")]
+ public class DataGridColumnTester
+ {
+ public var dataGridColumnTesterTest:DataGridColumnTesterTest;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/72b21f62/frameworks/projects/Core/asjs/tests/flexUnitTests/DataGridColumnTesterTest.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/asjs/tests/flexUnitTests/DataGridColumnTesterTest.as b/frameworks/projects/Core/asjs/tests/flexUnitTests/DataGridColumnTesterTest.as
new file mode 100644
index 0000000..1a3cc0f
--- /dev/null
+++ b/frameworks/projects/Core/asjs/tests/flexUnitTests/DataGridColumnTesterTest.as
@@ -0,0 +1,55 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 flexUnitTests
+{
+ import flexunit.framework.Assert;
+
+ import org.apache.flex.html.supportClasses.DataGridColumn;
+
+ public class DataGridColumnTesterTest
+ {
+ [Before]
+ public function setUp():void
+ {
+ }
+
+ [After]
+ public function tearDown():void
+ {
+ }
+
+ [BeforeClass]
+ public static function setUpBeforeClass():void
+ {
+ }
+
+ [AfterClass]
+ public static function tearDownAfterClass():void
+ {
+ }
+
+ [Test]
+ public function testLabelProperty():void
+ {
+ var column:DataGridColumn = new DataGridColumn();
+ column.label = "foo";
+ Assert.assertEquals("Error testing DataGridColumn.label", column.label, "foo");
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/72b21f62/frameworks/projects/Effects/asjs/EffectsClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Effects/asjs/EffectsClasses.as b/frameworks/projects/Effects/asjs/EffectsClasses.as
new file mode 100644
index 0000000..9454aad
--- /dev/null
+++ b/frameworks/projects/Effects/asjs/EffectsClasses.as
@@ -0,0 +1,95 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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
+{
+
+/**
+ * @private
+ * This class is used to link additional classes into rpc.swc
+ * beyond those that are found by dependecy analysis starting
+ * from the classes specified in manifest.xml.
+ */
+internal class FlexJSJXClasses
+{
+ import org.apache.flex.mobile.beads.StackedViewManagerView; StackedViewManagerView;
+ import org.apache.flex.mobile.beads.TabbedViewManagerView; TabbedViewManagerView;
+ import org.apache.flex.mobile.chrome.NavigationBar; NavigationBar;
+ import org.apache.flex.mobile.chrome.TabBar; TabBar;
+ import org.apache.flex.mobile.chrome.ToolBar; ToolBar;
+ import org.apache.flex.mobile.models.ViewManagerModel; ViewManagerModel;
+
+ import org.apache.flex.charts.beads.ChartView; ChartView;
+ import org.apache.flex.charts.beads.ChartItemRendererFactory; ChartItemRendererFactory;
+ import org.apache.flex.charts.beads.DataItemRendererFactoryForSeriesData; DataItemRendererFactoryForSeriesData;
+ import org.apache.flex.charts.beads.DataTipBead; DataTipBead;
+ import org.apache.flex.charts.beads.HorizontalCategoryAxisBead; HorizontalCategoryAxisBead;
+ import org.apache.flex.charts.beads.HorizontalLinearAxisBead; HorizontalLinearAxisBead;
+ import org.apache.flex.charts.beads.VerticalCategoryAxisBead; VerticalCategoryAxisBead;
+ import org.apache.flex.charts.beads.VerticalLinearAxisBead; VerticalLinearAxisBead;
+ import org.apache.flex.charts.beads.layouts.BarChartLayout; BarChartLayout;
+ import org.apache.flex.charts.beads.layouts.ColumnChartLayout; ColumnChartLayout;
+ import org.apache.flex.charts.beads.layouts.LineChartCategoryVsLinearLayout; LineChartCategoryVsLinearLayout;
+ import org.apache.flex.charts.beads.layouts.LineChartLinearVsLinearLayout; LineChartLinearVsLinearLayout;
+ import org.apache.flex.charts.beads.layouts.PieChartLayout; PieChartLayout;
+ import org.apache.flex.charts.beads.layouts.StackedBarChartLayout; StackedBarChartLayout;
+ import org.apache.flex.charts.beads.layouts.StackedColumnChartLayout; StackedColumnChartLayout;
+ import org.apache.flex.charts.supportClasses.BarSeries; BarSeries;
+ import org.apache.flex.charts.supportClasses.LineSeries; LineSeries;
+ import org.apache.flex.charts.supportClasses.PieSeries; PieSeries;
+ import org.apache.flex.charts.supportClasses.BoxItemRenderer; BoxItemRenderer;
+ import org.apache.flex.charts.supportClasses.LineSegmentItemRenderer; LineSegmentItemRenderer;
+ import org.apache.flex.charts.supportClasses.WedgeItemRenderer; WedgeItemRenderer;
+ import org.apache.flex.charts.optimized.SVGChartAxisGroup; SVGChartAxisGroup;
+ import org.apache.flex.charts.optimized.SVGChartDataGroup; SVGChartDataGroup;
+ import org.apache.flex.charts.optimized.SVGBoxItemRenderer; SVGBoxItemRenderer;
+ import org.apache.flex.charts.optimized.SVGWedgeItemRenderer; SVGWedgeItemRenderer;
+ import org.apache.flex.charts.optimized.SVGLineSegmentItemRenderer; SVGLineSegmentItemRenderer;
+
+ import org.apache.flex.effects.Tween; Tween;
+ import org.apache.flex.effects.Move; Move;
+ import org.apache.flex.effects.Fade; Fade;
+
+ import org.apache.flex.html.accessories.DateFormatMMDDYYYYBead; DateFormatMMDDYYYYBead;
+ import org.apache.flex.html.beads.DataGridColumnView; DataGridColumnView;
+ import org.apache.flex.html.beads.DataGridView; DataGridView;
+ import org.apache.flex.html.beads.DateChooserView; DateChooserView;
+ import org.apache.flex.html.beads.DateFieldView; DateFieldView;
+ import org.apache.flex.html.beads.FormatableLabelView; FormatableLabelView;
+ import org.apache.flex.html.beads.FormatableTextInputView; FormatableTextInputView;
+ import org.apache.flex.html.beads.layouts.DataGridLayout; DataGridLayout;
+ import org.apache.flex.html.beads.layouts.FlexibleFirstChildHorizontalLayout; FlexibleFirstChildHorizontalLayout;
+ import org.apache.flex.html.beads.models.DataGridModel; DataGridModel;
+ import org.apache.flex.html.beads.models.DateChooserModel; DateChooserModel;
+ import org.apache.flex.html.beads.models.DataGridPresentationModel; DataGridPresentationModel;
+ import org.apache.flex.html.beads.controllers.DateChooserMouseController; DateChooserMouseController;
+ import org.apache.flex.html.beads.controllers.DateFieldMouseController; DateFieldMouseController;
+ import org.apache.flex.html.supportClasses.DataGridColumn; DataGridColumn;
+ import org.apache.flex.html.supportClasses.DateChooserButton; DateChooserButton;
+ import org.apache.flex.html.supportClasses.GraphicsItemRenderer; GraphicsItemRenderer;
+
+ import org.apache.flex.html.beads.TitleBarView; TitleBarView;
+ import org.apache.flex.html.beads.TitleBarMeasurementBead; TitleBarMeasurementBead;
+
+ import org.apache.flex.core.DropType; DropType;
+ import org.apache.flex.core.ParentDocumentBead; ParentDocumentBead;
+ import org.apache.flex.core.StatesWithTransitionsImpl; StatesWithTransitionsImpl;
+}
+
+}
+
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/72b21f62/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/Effect.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/Effect.as b/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/Effect.as
new file mode 100644
index 0000000..7fabe6a
--- /dev/null
+++ b/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/Effect.as
@@ -0,0 +1,263 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.effects
+{
+
+import org.apache.flex.events.EventDispatcher;
+
+/**
+ * Effect is the base class for effects in FlexJS.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+public class Effect extends EventDispatcher implements IEffect
+{
+ //--------------------------------------------------------------------------
+ //
+ // Class constants
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * The <code>Effect.EFFECT_END</code> constant defines the value of the
+ * event object's <code>type</code> property for a <code>effectEnd</code> event.
+ *
+ * <p>The properties of the event object have the following values:</p>
+ * <table class="innertable">
+ * <tr><th>Property</th><th>Value</th></tr>
+ * <tr><td><code>bubbles</code></td><td>false</td></tr>
+ * <tr><td><code>cancelable</code></td><td>false</td></tr>
+ * <tr><td><code>currentTarget</code></td><td>The Object that defines the
+ * event listener that handles the event. For example, if you use
+ * <code>myButton.addEventListener()</code> to register an event listener,
+ * myButton is the value of the <code>currentTarget</code>. </td></tr>
+ * <tr><td><code>target</code></td><td>The Object that dispatched the event;
+ * it is not always the Object listening for the event.
+ * Use the <code>currentTarget</code> property to always access the
+ * Object listening for the event.</td></tr>
+ * </table>
+ *
+ * @eventType effectEnd
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public static const EFFECT_END:String = "effectEnd";
+
+ /**
+ * The <code>Effect.EFFECT_START</code> constant defines the value of the
+ * event object's <code>type</code> property for a <code>effectStart</code> event.
+ *
+ * <p>The properties of the event object have the following values:</p>
+ * <table class="innertable">
+ * <tr><th>Property</th><th>Value</th></tr>
+ * <tr><td><code>bubbles</code></td><td>false</td></tr>
+ * <tr><td><code>cancelable</code></td><td>false</td></tr>
+ * <tr><td><code>currentTarget</code></td><td>The Object that defines the
+ * event listener that handles the event. For example, if you use
+ * <code>myButton.addEventListener()</code> to register an event listener,
+ * myButton is the value of the <code>currentTarget</code>. </td></tr>
+ * <tr><td><code>target</code></td><td>The Object that dispatched the event;
+ * it is not always the Object listening for the event.
+ * Use the <code>currentTarget</code> property to always access the
+ * Object listening for the event.</td></tr>
+ * </table>
+ *
+ * @eventType effectStart
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public static const EFFECT_START:String = "effectStart";
+
+ /**
+ * The <code>Effect.EFFECT_STOP</code> constant defines the value of the
+ * event object's <code>type</code> property for a <code>effectStop</code> event.
+ *
+ * <p>The properties of the event object have the following values:</p>
+ * <table class="innertable">
+ * <tr><th>Property</th><th>Value</th></tr>
+ * <tr><td><code>bubbles</code></td><td>false</td></tr>
+ * <tr><td><code>cancelable</code></td><td>false</td></tr>
+ * <tr><td><code>currentTarget</code></td><td>The Object that defines the
+ * event listener that handles the event. For example, if you use
+ * <code>myButton.addEventListener()</code> to register an event listener,
+ * myButton is the value of the <code>currentTarget</code>. </td></tr>
+ * <tr><td><code>target</code></td><td>The Object that dispatched the event;
+ * it is not always the Object listening for the event.
+ * Use the <code>currentTarget</code> property to always access the
+ * Object listening for the event.</td></tr>
+ * </table>
+ *
+ * @eventType effectStop
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public static const EFFECT_STOP:String = "effectStop";
+
+
+
+ //--------------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function Effect()
+ {
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Properties
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // duration
+ //----------------------------------
+
+ private var _duration:Number = 500;
+ /**
+ * Duration of the animation, in milliseconds.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function get duration():Number
+ {
+ return _duration;
+ }
+ public function set duration(value:Number):void
+ {
+ _duration = value;
+ }
+
+
+ /**
+ * Plays the effect in reverse,
+ * starting from the current position of the effect.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function reverse():void
+ {
+ }
+
+ /**
+ * Pauses the effect until you call the <code>resume()</code> method.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function pause():void
+ {
+ }
+
+ /**
+ * Stops the tween, ending it without dispatching an event or calling
+ * the Tween's endFunction or <code>onTweenEnd()</code>.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function play():void
+ {
+ }
+
+ /**
+ * Stops the tween, ending it without dispatching an event or calling
+ * the Tween's endFunction or <code>onTweenEnd()</code>.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function stop():void
+ {
+ }
+
+ /**
+ * Resumes the effect after it has been paused
+ * by a call to the <code>pause()</code> method.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function resume():void
+ {
+ }
+
+ /**
+ * @copy org.apache.flex.effects.IEffect#captureStartValues
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function captureStartValues():void
+ {
+ }
+
+ /**
+ * @copy org.apache.flex.effects.IEffect#captureEndValues
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function captureEndValues():void
+ {
+ }
+}
+
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/72b21f62/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/Fade.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/Fade.as b/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/Fade.as
new file mode 100644
index 0000000..28f0d16
--- /dev/null
+++ b/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/Fade.as
@@ -0,0 +1,165 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.effects
+{
+
+import org.apache.flex.core.IDocument;
+import org.apache.flex.core.IUIBase;
+
+/**
+ * The Fade effect animates a UI component's alpha or opacity.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+public class Fade extends Tween implements IDocument
+{
+
+ //--------------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * @param target An object that will
+ * have its x and/or y property animated.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function Fade(target:IUIBase = null)
+ {
+ super();
+
+ this.actualTarget = target;
+ startValue = 0;
+ endValue = 1;
+
+ listener = this;
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Variables
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ * The document.
+ */
+ private var document:Object;
+
+ /**
+ * @private
+ * The target.
+ */
+ private var actualTarget:IUIBase;
+
+ /**
+ * The target as the String id
+ * of a widget in an MXML Document.
+ */
+ public var target:String;
+
+ /**
+ * @private
+ * The change in alpha.
+ */
+ private var d:Number;
+
+ /**
+ * @private
+ * The starting value.
+ */
+ private var start:Number;
+
+ /**
+ * Starting alpha value. If NaN, the current alpha value is used
+ */
+ public var alphaFrom:Number;
+
+ /**
+ * Ending alpha value. If NaN, the current alpha value is not changed
+ */
+ public var alphaTo:Number;
+
+
+
+ //--------------------------------------------------------------------------
+ //
+ // Properties
+ //
+ //--------------------------------------------------------------------------
+
+
+ //--------------------------------------------------------------------------
+ //
+ // Methods
+ //
+ //--------------------------------------------------------------------------
+
+ public function setDocument(document:Object, id:String = null):void
+ {
+ this.document = document;
+ }
+
+ /**
+ * @private
+ */
+ override public function play():void
+ {
+ if (target != null)
+ actualTarget = document[target];
+
+ if (isNaN(alphaFrom))
+ start = actualTarget.alpha;
+ else
+ start = alphaFrom;
+
+ if (isNaN(alphaTo))
+ d = 0;
+ else
+ d = alphaTo - start;
+
+ super.play();
+ }
+
+ public function onTweenUpdate(value:Number):void
+ {
+ if (d)
+ actualTarget.alpha = start + value * d;
+ }
+
+ public function onTweenEnd(value:Number):void
+ {
+ if (d)
+ actualTarget.alpha = start + d;
+ }
+}
+
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/72b21f62/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/IEffect.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/IEffect.as b/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/IEffect.as
new file mode 100644
index 0000000..f5b940c
--- /dev/null
+++ b/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/IEffect.as
@@ -0,0 +1,136 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.effects
+{
+
+import org.apache.flex.events.IEventDispatcher;
+
+/**
+ * IEffect is the lowest-level interface for effects in FlexJS.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+public interface IEffect extends IEventDispatcher
+{
+
+
+ //--------------------------------------------------------------------------
+ //
+ // Properties
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // duration
+ //----------------------------------
+
+ /**
+ * Duration of the animation, in milliseconds.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ function get duration():Number;
+ function set duration(value:Number):void;
+
+
+ /**
+ * Plays the effect in reverse,
+ * starting from the current position of the effect.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ function reverse():void;
+
+ /**
+ * Pauses the effect until you call the <code>resume()</code> method.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ function pause():void;
+
+ /**
+ * Stops the tween, ending it without dispatching an event or calling
+ * the Tween's endFunction or <code>onTweenEnd()</code>.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ function play():void;
+
+ /**
+ * Stops the tween, ending it without dispatching an event or calling
+ * the Tween's endFunction or <code>onTweenEnd()</code>.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ function stop():void;
+
+ /**
+ * Resumes the effect after it has been paused
+ * by a call to the <code>pause()</code> method.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ function resume():void;
+
+ /**
+ * Tries to compute initial values
+ * for effect
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ function captureStartValues():void;
+
+ /**
+ * Tries to compute final values
+ * for effect
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ function captureEndValues():void;
+}
+
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/72b21f62/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/Move.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/Move.as b/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/Move.as
new file mode 100644
index 0000000..2a42b19
--- /dev/null
+++ b/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/Move.as
@@ -0,0 +1,240 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.effects
+{
+
+import org.apache.flex.core.IDocument;
+import org.apache.flex.core.IUIBase;
+
+/**
+ * The Move effect animates a UI component's x or y position.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+public class Move extends Tween implements IDocument
+{
+
+ //--------------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * @param target Object ID or reference to an object that will
+ * have its x and/or y property animated.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function Move(target:IUIBase = null)
+ {
+ super();
+
+ this.actualTarget = target;
+ startValue = 0;
+ endValue = 1;
+
+ listener = this;
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Variables
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ * The document.
+ */
+ private var document:Object;
+
+ /**
+ * @private
+ * The actual target.
+ */
+ private var actualTarget:IUIBase;
+
+ /**
+ * The target as the String id
+ * of a widget in an MXML Document.
+ */
+ public var target:String;
+
+ /**
+ * The change in x.
+ */
+ public var xBy:Number;
+
+ /**
+ * The change in y.
+ */
+ public var yBy:Number;
+
+ /**
+ * @private
+ * The starting x.
+ */
+ private var xStart:Number;
+
+ /**
+ * @private
+ * The starting y.
+ */
+ private var yStart:Number;
+
+ /**
+ * @private
+ * The total change for x.
+ */
+ private var xMove:Number;
+
+ /**
+ * @private
+ * The total change for y.
+ */
+ private var yMove:Number;
+
+ /**
+ * Starting x value. If NaN, the current x value is used
+ */
+ public var xFrom:Number;
+
+ /**
+ * Ending x value. If NaN, the current x value is not changed
+ */
+ public var xTo:Number;
+
+ /**
+ * Starting y value. If NaN, the current y value is used
+ */
+ public var yFrom:Number;
+
+ /**
+ * Ending y value. If NaN, the current y value is not changed
+ */
+ public var yTo:Number;
+
+
+ //--------------------------------------------------------------------------
+ //
+ // Properties
+ //
+ //--------------------------------------------------------------------------
+
+
+ //--------------------------------------------------------------------------
+ //
+ // Methods
+ //
+ //--------------------------------------------------------------------------
+
+ public function setDocument(document:Object, id:String = null):void
+ {
+ this.document = document;
+ }
+
+ /**
+ * @private
+ */
+ override public function play():void
+ {
+ if (target != null)
+ actualTarget = document[target];
+
+ if (isNaN(xFrom))
+ xStart = actualTarget.x;
+ else
+ xStart = xFrom;
+
+ if (isNaN(xBy))
+ {
+ if (isNaN(xTo))
+ xMove = 0;
+ else
+ xMove = xTo - xStart;
+ }
+ else
+ xMove = xBy;
+
+ if (isNaN(yFrom))
+ yStart = actualTarget.y;
+ else
+ yStart = yFrom;
+ if (isNaN(yBy))
+ {
+ if (isNaN(yTo))
+ yMove = 0;
+ else
+ yMove = yTo - yStart;
+ }
+ else
+ yMove = yBy;
+
+ super.play();
+ }
+
+ public function onTweenUpdate(value:Number):void
+ {
+ if (xMove)
+ actualTarget.x = xStart + value * xMove;
+ if (yMove)
+ actualTarget.y = yStart + value * yMove;
+ }
+
+ public function onTweenEnd(value:Number):void
+ {
+ if (xMove)
+ actualTarget.x = xStart + xMove;
+ if (yMove)
+ actualTarget.y = yStart + yMove;
+
+ }
+
+ override public function captureStartValues():void
+ {
+ if (target != null)
+ {
+ actualTarget = document[target];
+ xFrom = actualTarget.x;
+ yFrom = actualTarget.y;
+ }
+ }
+
+ override public function captureEndValues():void
+ {
+ if (target != null)
+ {
+ actualTarget = document[target];
+ xTo = actualTarget.x;
+ yTo = actualTarget.y;
+ }
+ }
+}
+
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/72b21f62/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/Parallel.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/Parallel.as b/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/Parallel.as
new file mode 100644
index 0000000..6d08012
--- /dev/null
+++ b/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/Parallel.as
@@ -0,0 +1,152 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.effects
+{
+
+import org.apache.flex.core.IDocument;
+import org.apache.flex.core.IUIBase;
+import org.apache.flex.events.Event;
+
+[DefaultProperty("children")]
+
+/**
+ * The Parallel effect animates set of effects at the
+ * same time.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+public class Parallel extends Effect implements IDocument
+{
+
+ //--------------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function Parallel()
+ {
+ super();
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Variables
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ * The document.
+ */
+ private var document:Object;
+
+ /**
+ * @private
+ * The target.
+ */
+ private var target:IUIBase;
+
+ /**
+ * The children.
+ */
+ public var children:Array;
+
+
+
+ //--------------------------------------------------------------------------
+ //
+ // Properties
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ */
+ override public function set duration(value:Number):void
+ {
+ var n:int = children.length;
+ for (var i:int = 0; i < 0; i++)
+ {
+ children[i].duration = value;
+ }
+ super.duration = value;
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Methods
+ //
+ //--------------------------------------------------------------------------
+
+ public function setDocument(document:Object, id:String = null):void
+ {
+ this.document = document;
+ }
+
+ public function addChild(child:IEffect):void
+ {
+ if (!children)
+ children = [ child ];
+ else
+ children.push(child);
+ }
+
+ /**
+ * @private
+ */
+ override public function play():void
+ {
+ dispatchEvent(new Event(Effect.EFFECT_START));
+ current = 0;
+ var n:int = children.length;
+ for (var i:int = 0; i < n; i++)
+ playChildEffect(i);
+ }
+
+ private var current:int;
+
+ private function playChildEffect(index:int):void
+ {
+ var child:IEffect = children[index];
+ child.addEventListener(Effect.EFFECT_END, effectEndHandler);
+ child.play();
+ }
+
+ private function effectEndHandler(event:Event):void
+ {
+ current++;
+ if (current >= children.length)
+ dispatchEvent(new Event(Effect.EFFECT_END));
+ }
+}
+
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/72b21f62/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/Resize.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/Resize.as b/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/Resize.as
new file mode 100644
index 0000000..2ee1e15
--- /dev/null
+++ b/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/Resize.as
@@ -0,0 +1,197 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.effects
+{
+
+import org.apache.flex.core.IDocument;
+import org.apache.flex.core.IUIBase;
+
+/**
+ * The Resize effect animates a UI component's width or height.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+public class Resize extends Tween implements IDocument
+{
+
+ //--------------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * @param target Object ID or reference to an object that will
+ * have its x and/or y property animated.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function Resize(target:IUIBase = null)
+ {
+ super();
+
+ this.actualTarget = target;
+ startValue = 0;
+ endValue = 1;
+
+ listener = this;
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Variables
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ * The document.
+ */
+ private var document:Object;
+
+ /**
+ * @private
+ * The target.
+ */
+ private var actualTarget:IUIBase;
+
+ /**
+ * The target as the String id
+ * of a widget in an MXML Document.
+ */
+ public var target:String;
+
+ /**
+ * The change in width.
+ */
+ public var widthBy:Number;
+
+ /**
+ * The change in height.
+ */
+ public var heightBy:Number;
+
+ /**
+ * @private
+ * The starting width.
+ */
+ private var widthStart:Number;
+
+ /**
+ * @private
+ * The starting height.
+ */
+ private var heightStart:Number;
+
+ /**
+ * Starting width value. If NaN, the current width value is used
+ */
+ public var widthFrom:Number;
+
+ /**
+ * Starting height value. If NaN, the current height value is used
+ */
+ public var heightFrom:Number;
+
+ /**
+ * Ending width value.
+ */
+ public var widthTo:Number;
+
+ /**
+ * Ending height value.
+ */
+ public var heightTo:Number;
+
+
+ //--------------------------------------------------------------------------
+ //
+ // Properties
+ //
+ //--------------------------------------------------------------------------
+
+
+ //--------------------------------------------------------------------------
+ //
+ // Methods
+ //
+ //--------------------------------------------------------------------------
+
+ public function setDocument(document:Object, id:String = null):void
+ {
+ this.document = document;
+ }
+
+ /**
+ * @private
+ */
+ override public function play():void
+ {
+ if (target != null)
+ actualTarget = document[target];
+
+ if (isNaN(widthFrom))
+ widthStart = actualTarget.width;
+ if (isNaN(widthBy))
+ {
+ if (isNaN(widthTo))
+ widthBy = 0;
+ else
+ widthBy = widthTo - widthStart;
+ }
+
+ if (isNaN(heightFrom))
+ heightStart = actualTarget.height;
+ if (isNaN(heightBy))
+ {
+ if (isNaN(heightTo))
+ heightBy = 0;
+ else
+ heightBy = heightTo - heightStart;
+ }
+ super.play();
+ }
+
+ public function onTweenUpdate(value:Number):void
+ {
+ if (widthBy)
+ actualTarget.width = widthStart + value * widthBy;
+ if (heightBy)
+ actualTarget.height = heightStart + value * heightBy;
+ }
+
+ public function onTweenEnd(value:Number):void
+ {
+ if (widthBy)
+ actualTarget.width = widthStart + widthBy;
+ if (heightBy)
+ actualTarget.height = heightStart + heightBy;
+ }
+}
+
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/72b21f62/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/Sequence.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/Sequence.as b/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/Sequence.as
new file mode 100644
index 0000000..f6c3343
--- /dev/null
+++ b/frameworks/projects/Effects/asjs/src/org/apache/flex/effects/Sequence.as
@@ -0,0 +1,152 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.effects
+{
+
+import org.apache.flex.core.IDocument;
+import org.apache.flex.core.IUIBase;
+import org.apache.flex.events.Event;
+
+[DefaultProperty("children")]
+
+/**
+ * The Sequence effect animates a set of effects one
+ * at a time.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+public class Sequence extends Effect implements IDocument
+{
+
+ //--------------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function Sequence()
+ {
+ super();
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Variables
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ * The document.
+ */
+ private var document:Object;
+
+ /**
+ * @private
+ * The target.
+ */
+ private var target:IUIBase;
+
+ /**
+ * The children.
+ */
+ public var children:Array;
+
+
+
+ //--------------------------------------------------------------------------
+ //
+ // Properties
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ */
+ override public function set duration(value:Number):void
+ {
+ var n:int = children.length;
+ for (var i:int = 0; i < 0; i++)
+ {
+ children[i].duration = value;
+ }
+ super.duration = value;
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Methods
+ //
+ //--------------------------------------------------------------------------
+
+ public function setDocument(document:Object, id:String = null):void
+ {
+ this.document = document;
+ }
+
+ public function addChild(child:IEffect):void
+ {
+ if (!children)
+ children = [ child ];
+ else
+ children.push(child);
+ }
+
+ /**
+ * @private
+ */
+ override public function play():void
+ {
+ dispatchEvent(new Event(Effect.EFFECT_START));
+ current = 0;
+ playChildEffect();
+ }
+
+ private var current:int;
+
+ private function playChildEffect():void
+ {
+ var child:IEffect = children[current];
+ child.addEventListener(Effect.EFFECT_END, effectEndHandler);
+ child.play();
+ }
+
+ private function effectEndHandler(event:Event):void
+ {
+ current++;
+ if (current >= children.length)
+ dispatchEvent(new Event(Effect.EFFECT_END));
+ else
+ playChildEffect();
+ }
+}
+
+}