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:51 UTC
[46/55] [abbrv] git commit: [flex-asjs] [refs/heads/develop] -
refactor classes into more swcs and get AS build running (JS build will be
fixed in later commit)
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c84daedb/frameworks/projects/Binding/asjs/src/org/apache/flex/binding/MXMLBeadViewBaseDataBinding.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/asjs/src/org/apache/flex/binding/MXMLBeadViewBaseDataBinding.as b/frameworks/projects/Binding/asjs/src/org/apache/flex/binding/MXMLBeadViewBaseDataBinding.as
new file mode 100644
index 0000000..3b6e4f6
--- /dev/null
+++ b/frameworks/projects/Binding/asjs/src/org/apache/flex/binding/MXMLBeadViewBaseDataBinding.as
@@ -0,0 +1,328 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.binding
+{
+ import org.apache.flex.binding.ConstantBinding;
+ import org.apache.flex.binding.GenericBinding;
+ import org.apache.flex.binding.PropertyWatcher;
+ import org.apache.flex.binding.SimpleBinding;
+ import org.apache.flex.binding.WatcherBase;
+ import org.apache.flex.core.DataBindingBase;
+ import org.apache.flex.core.IBead;
+ import org.apache.flex.core.IStrand;
+ import org.apache.flex.events.Event;
+ import org.apache.flex.events.IEventDispatcher;
+
+ /**
+ * The ViewBaseDataBinding class implements databinding for
+ * ViewBase instances. Different classes can have
+ * different databinding implementation that optimize for
+ * the different lifecycles. For example, an item renderer
+ * databinding implementation can wait to execute databindings
+ * until the data property is set.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class MXMLBeadViewBaseDataBinding extends DataBindingBase implements IBead
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function MXMLBeadViewBaseDataBinding()
+ {
+ super();
+ }
+
+ private var _strand:IStrand;
+
+ /**
+ * @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("initBindings", initCompleteHandler);
+ }
+
+ private function initCompleteHandler(event:Event):void
+ {
+ var fieldWatcher:Object;
+ var sb:SimpleBinding;
+ if (!("_bindings" in _strand))
+ return;
+ var bindingData:Array = _strand["_bindings"];
+ var n:int = bindingData[0];
+ var bindings:Array = [];
+ var i:int;
+ var index:int = 1;
+ for (i = 0; i < n; i++)
+ {
+ var binding:Object = {};
+ binding.source = bindingData[index++];
+ binding.destFunc = bindingData[index++];
+ binding.destination = bindingData[index++];
+ bindings.push(binding);
+ }
+ var watchers:Object = decodeWatcher(bindingData.slice(index));
+ for (i = 0; i < n; i++)
+ {
+ binding = bindings[i];
+ if (binding.source is Array)
+ {
+ if (binding.source[0] in _strand)
+ {
+ if (binding.source.length == 2 && binding.destination.length == 2)
+ {
+ var destObject:Object;
+ var destination:IStrand;
+ // can be simplebinding or constantbinding
+ var modelWatcher:Object = watchers.watcherMap[binding.source[0]];
+ fieldWatcher = modelWatcher.children.watcherMap[binding.source[1]];
+ if (fieldWatcher.eventNames is String)
+ {
+ sb = new SimpleBinding();
+ sb.destinationPropertyName = binding.destination[1];
+ sb.eventName = fieldWatcher.eventNames as String;
+ sb.sourceID = binding.source[0];
+ sb.sourcePropertyName = binding.source[1];
+ sb.setDocument(_strand);
+ destObject = _strand[binding.destination[0]];
+ destination = destObject as IStrand;
+ if (destination)
+ destination.addBead(sb);
+ else
+ {
+ if (destObject)
+ {
+ sb.destination = destObject;
+ _strand.addBead(sb);
+ }
+ else
+ {
+ deferredBindings[binding.destination[0]] = sb;
+ IEventDispatcher(_strand).addEventListener("valueChange", deferredBindingsHandler);
+ }
+ }
+ }
+ else if (fieldWatcher.eventNames == null)
+ {
+ var cb:ConstantBinding = new ConstantBinding();
+ cb.destinationPropertyName = binding.destination[1];
+ cb.sourceID = binding.source[0];
+ cb.sourcePropertyName = binding.source[1];
+ cb.setDocument(_strand);
+ destObject = _strand[binding.destination[0]];
+ destination = destObject as IStrand;
+ if (destination)
+ destination.addBead(cb);
+ else
+ {
+ if (destObject)
+ {
+ cb.destination = destObject;
+ _strand.addBead(cb);
+ }
+ else
+ {
+ deferredBindings[binding.destination[0]] = cb;
+ IEventDispatcher(_strand).addEventListener("valueChange", deferredBindingsHandler);
+ }
+ }
+ }
+ }
+ }
+ }
+ else if (binding.source is String)
+ {
+ fieldWatcher = watchers.watcherMap[binding.source];
+ if (fieldWatcher.eventNames is String)
+ {
+ sb = new SimpleBinding();
+ sb.destinationPropertyName = binding.destination[1];
+ sb.eventName = fieldWatcher.eventNames as String;
+ sb.sourcePropertyName = binding.source;
+ sb.setDocument(_strand);
+ destObject = _strand[binding.destination[0]];
+ destination = destObject as IStrand;
+ if (destination)
+ destination.addBead(sb);
+ else
+ {
+ if (destObject)
+ {
+ sb.destination = destObject;
+ _strand.addBead(sb);
+ }
+ else
+ {
+ deferredBindings[binding.destination[0]] = sb;
+ IEventDispatcher(_strand).addEventListener("valueChange", deferredBindingsHandler);
+ }
+ }
+ }
+ }
+ else
+ {
+ makeGenericBinding(binding, i, watchers);
+ }
+ }
+ }
+
+ private function makeGenericBinding(binding:Object, index:int, watchers:Object):void
+ {
+ var gb:GenericBinding = new GenericBinding();
+ gb.setDocument(_strand);
+ gb.destinationData = binding.destination;
+ gb.destinationFunction = binding.destFunc;
+ gb.source = binding.source;
+ setupWatchers(gb, index, watchers.watchers, null);
+ }
+
+ private function setupWatchers(gb:GenericBinding, index:int, watchers:Array, parentWatcher:WatcherBase):void
+ {
+ var n:int = watchers.length;
+ for (var i:int = 0; i < n; i++)
+ {
+ var watcher:Object = watchers[i];
+ if (watcher.bindings.indexOf(index) != -1)
+ {
+ var type:String = watcher.type;
+ switch (type)
+ {
+ case "property":
+ {
+ var pw:PropertyWatcher = new PropertyWatcher(this,
+ watcher.propertyName,
+ watcher.eventNames,
+ watcher.getterFunction);
+ watcher.watcher = pw;
+ if (parentWatcher)
+ pw.parentChanged(parentWatcher.value);
+ else
+ pw.parentChanged(_strand);
+ if (parentWatcher)
+ parentWatcher.addChild(pw);
+ if (watcher.children == null)
+ pw.addBinding(gb);
+ break;
+ }
+ }
+ if (watcher.children)
+ {
+ setupWatchers(gb, index, watcher.children, watcher.watcher);
+ }
+ }
+ }
+ }
+
+ private function decodeWatcher(bindingData:Array):Object
+ {
+ var watcherMap:Object = {};
+ var watchers:Array = [];
+ var n:int = bindingData.length;
+ var index:int = 0;
+ var watcherData:Object;
+ // FalconJX adds an extra null to the data so make sure
+ // we have enough data for a complete watcher otherwise
+ // say we are done
+ while (index < n - 2)
+ {
+ var watcherIndex:int = bindingData[index++];
+ var type:int = bindingData[index++];
+ switch (type)
+ {
+ case 0:
+ {
+ watcherData = { type: "function" };
+ watcherData.functionName = bindingData[index++];
+ watcherData.paramFunction = bindingData[index++];
+ watcherData.eventNames = bindingData[index++];
+ watcherData.bindings = bindingData[index++];
+ break;
+ }
+ case 1:
+ {
+ watcherData = { type: "static" };
+ watcherData.propertyName = bindingData[index++];
+ watcherData.eventNames = bindingData[index++];
+ watcherData.bindings = bindingData[index++];
+ watcherData.getterFunction = bindingData[index++];
+ watcherData.parentObj = bindingData[index++];
+ watcherMap[watcherData.propertyName] = watcherData;
+ break;
+ }
+ case 2:
+ {
+ watcherData = { type: "property" };
+ watcherData.propertyName = bindingData[index++];
+ watcherData.eventNames = bindingData[index++];
+ watcherData.bindings = bindingData[index++];
+ watcherData.getterFunction = bindingData[index++];
+ watcherMap[watcherData.propertyName] = watcherData;
+ break;
+ }
+ case 3:
+ {
+ watcherData = { type: "xml" };
+ watcherData.propertyName = bindingData[index++];
+ watcherData.bindings = bindingData[index++];
+ watcherMap[watcherData.propertyName] = watcherData;
+ break;
+ }
+ }
+ watcherData.children = bindingData[index++];
+ if (watcherData.children != null)
+ {
+ watcherData.children = decodeWatcher(watcherData.children);
+ }
+ watcherData.index = watcherIndex;
+ watchers.push(watcherData);
+ }
+ return { watchers: watchers, watcherMap: watcherMap };
+ }
+
+ private var deferredBindings:Object = {};
+ private function deferredBindingsHandler(event:Event):void
+ {
+ for (var p:String in deferredBindings)
+ {
+ if (_strand[p] != null)
+ {
+ var destination:IStrand = _strand[p] as IStrand;
+ destination.addBead(deferredBindings[p]);
+ delete deferredBindings[p];
+ }
+ }
+ }
+
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c84daedb/frameworks/projects/Binding/basic-manifest.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/basic-manifest.xml b/frameworks/projects/Binding/basic-manifest.xml
new file mode 100644
index 0000000..5ce9333
--- /dev/null
+++ b/frameworks/projects/Binding/basic-manifest.xml
@@ -0,0 +1,31 @@
+<?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.
+
+-->
+
+
+<componentPackage>
+
+ <component id="ConstantBinding" class="org.apache.flex.binding.ConstantBinding"/>
+ <component id="SimpleBinding" class="org.apache.flex.binding.SimpleBinding"/>
+ <component id="ViewBaseDataBinding" class="org.apache.flex.binding.ViewBaseDataBinding"/>
+ <component id="MXMLBeadViewBaseDataBinding" class="org.apache.flex.binding.MXMLBeadViewBaseDataBinding"/>
+ <component id="ApplicationDataBinding" class="org.apache.flex.binding.ApplicationDataBinding"/>
+ <component id="ContainerDataBinding" class="org.apache.flex.binding.ContainerDataBinding"/>
+
+</componentPackage>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c84daedb/frameworks/projects/Binding/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/build.xml b/frameworks/projects/Binding/build.xml
new file mode 100644
index 0000000..f33faad
--- /dev/null
+++ b/frameworks/projects/Binding/build.xml
@@ -0,0 +1,81 @@
+<?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="Binding" 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="${FLEXJS_HOME}"/>
+ <property name="FALCON_HOME" value="${env.FALCON_HOME}"/>
+
+ <target name="main" depends="clean,compile,test" description="Clean build of Binding.swc">
+ </target>
+
+ <target name="test" unless="is.jenkins">
+ <!-- no tests yet
+ <ant dir="as/tests" />
+ -->
+ </target>
+
+ <target name="clean">
+ <delete failonerror="false">
+ <fileset dir="${FLEXJS_HOME}/frameworks/libs">
+ <include name="Binding.swc"/>
+ </fileset>
+ </delete>
+ </target>
+
+ <path id="lib.path">
+ <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
+ </path>
+
+ <target name="compile" description="Compiles .as files into .swc">
+ <echo message="Compiling libs/Binding.swc"/>
+ <echo message="FLEX_HOME: ${FLEX_HOME}"/>
+ <echo message="FALCON_HOME: ${FALCON_HOME}"/>
+
+ <!-- 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 BindingClasses.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.
+ -->
+ <compc fork="true"
+ output="${FLEXJS_HOME}/frameworks/libs/Binding.swc">
+ <jvmarg line="${compc.jvm.args}"/>
+ <load-config filename="compile-config.xml" />
+ <arg value="+playerglobal.version=${playerglobal.version}" />
+ <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
+ </compc>
+ </target>
+
+</project>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c84daedb/frameworks/projects/Binding/compile-config.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/compile-config.xml b/frameworks/projects/Binding/compile-config.xml
new file mode 100644
index 0000000..12e20c9
--- /dev/null
+++ b/frameworks/projects/Binding/compile-config.xml
@@ -0,0 +1,77 @@
+<!--
+
+ 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.
+
+-->
+<flex-config>
+
+ <compiler>
+ <accessible>false</accessible>
+
+ <external-library-path>
+ <path-element>${env.AIR_HOME}/frameworks/libs/air/airglobal.swc</path-element>
+ <path-element>../../libs/Core.swc</path-element>
+ </external-library-path>
+
+ <mxml>
+ <children-as-data>true</children-as-data>
+ </mxml>
+ <binding-value-change-event>org.apache.flex.events.ValueChangeEvent</binding-value-change-event>
+ <binding-value-change-event-kind>org.apache.flex.events.ValueChangeEvent</binding-value-change-event-kind>
+ <binding-value-change-event-type>valueChange</binding-value-change-event-type>
+
+ <keep-as3-metadata>
+ <name>Bindable</name>
+ <name>Managed</name>
+ <name>ChangeEvent</name>
+ <name>NonCommittingChangeEvent</name>
+ <name>Transient</name>
+ </keep-as3-metadata>
+
+ <locale/>
+
+ <library-path/>
+
+ <namespaces>
+ <namespace>
+ <uri>library://ns.apache.org/flexjs/basic</uri>
+ <manifest>basic-manifest.xml</manifest>
+ </namespace>
+ </namespaces>
+
+ <source-path>
+ <path-element>as/src</path-element>
+ <path-element>asjs/src</path-element>
+ </source-path>
+
+ <warn-no-constructor>false</warn-no-constructor>
+ </compiler>
+
+ <include-file>
+ </include-file>
+
+ <include-classes>
+ <class>BindingClasses</class>
+ </include-classes>
+
+ <include-namespaces>
+ <uri>library://ns.apache.org/flexjs/basic</uri>
+ </include-namespaces>
+
+ <target-player>${playerglobal.version}</target-player>
+
+
+</flex-config>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c84daedb/frameworks/projects/Charts/as/src/ChartsClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/as/src/ChartsClasses.as b/frameworks/projects/Charts/as/src/ChartsClasses.as
index 2886df2..b0be738 100644
--- a/frameworks/projects/Charts/as/src/ChartsClasses.as
+++ b/frameworks/projects/Charts/as/src/ChartsClasses.as
@@ -25,12 +25,8 @@ package
* beyond those that are found by dependecy analysis starting
* from the classes specified in manifest.xml.
*/
-internal class FlexJSUIClasses
+internal class ChartsClasses
{
- import org.apache.cordova.camera.Camera; Camera;
- import org.apache.cordova.Application; Application;
- import org.apache.cordova.Weinre; Weinre;
-
import org.apache.flex.charts.core.CartesianChart; CartesianChart;
import org.apache.flex.charts.core.ChartBase; ChartBase;
import org.apache.flex.charts.core.IAxisBead; IAxisBead;
@@ -46,112 +42,6 @@ internal class FlexJSUIClasses
import org.apache.flex.charts.core.PolarChart; PolarChart;
import org.apache.flex.charts.supportClasses.ChartAxisGroup; ChartAxisGroup;
import org.apache.flex.charts.supportClasses.ChartDataGroup; ChartDataGroup;
- import org.apache.flex.maps.google.Map; Map;
-
- import org.apache.flex.html.ToolTip; ToolTip;
- import org.apache.flex.html.accessories.NumericOnlyTextInputBead; NumericOnlyTextInputBead;
- import org.apache.flex.html.accessories.PasswordInputBead; PasswordInputBead;
- import org.apache.flex.html.accessories.TextPromptBead; TextPromptBead;
- import org.apache.flex.html.beads.AlertView; AlertView;
- import org.apache.flex.html.beads.BackgroundImageBead; BackgroundImageBead;
- import org.apache.flex.html.beads.ButtonBarView; ButtonBarView;
- import org.apache.flex.html.beads.CheckBoxView; CheckBoxView;
- import org.apache.flex.html.beads.ComboBoxView; ComboBoxView;
- import org.apache.flex.html.beads.ContainerView; ContainerView;
- import org.apache.flex.html.beads.ControlBarMeasurementBead; ControlBarMeasurementBead;
- import org.apache.flex.html.beads.CSSButtonView; CSSButtonView;
- import org.apache.flex.html.beads.CSSTextButtonView; CSSTextButtonView;
- import org.apache.flex.html.beads.CSSTextToggleButtonView; CSSTextToggleButtonView;
- import org.apache.flex.html.beads.DropDownListView; DropDownListView;
- import org.apache.flex.html.beads.CloseButtonView; CloseButtonView;
- import org.apache.flex.html.beads.ImageButtonView; ImageButtonView;
- import org.apache.flex.html.beads.ImageAndTextButtonView; ImageAndTextButtonView;
- import org.apache.flex.html.beads.ImageView; ImageView;
- import org.apache.flex.html.beads.ListView; ListView;
- import org.apache.flex.html.beads.NumericStepperView; NumericStepperView;
- import org.apache.flex.html.beads.PanelView; PanelView;
- import org.apache.flex.html.beads.PanelWithControlBarView; PanelWithControlBarView;
- import org.apache.flex.html.beads.RadioButtonView; RadioButtonView;
- import org.apache.flex.html.beads.ScrollBarView; ScrollBarView;
- import org.apache.flex.html.beads.SimpleAlertView; SimpleAlertView;
- import org.apache.flex.html.beads.SingleLineBorderBead; SingleLineBorderBead;
- import org.apache.flex.html.beads.SliderView; SliderView;
- import org.apache.flex.html.beads.SliderThumbView; SliderThumbView;
- import org.apache.flex.html.beads.SliderTrackView; SliderTrackView;
- import org.apache.flex.html.beads.SolidBackgroundBead; SolidBackgroundBead;
- import org.apache.flex.html.beads.SpinnerView; SpinnerView;
- import org.apache.flex.html.beads.TextButtonMeasurementBead; TextButtonMeasurementBead;
- import org.apache.flex.html.beads.TextFieldLabelMeasurementBead; TextFieldLabelMeasurementBead;
- import org.apache.flex.html.beads.TextAreaView; TextAreaView;
- import org.apache.flex.html.beads.TextButtonView; TextButtonView;
- import org.apache.flex.html.beads.TextFieldView; TextFieldView;
- import org.apache.flex.html.beads.TextInputView; TextInputView;
- import org.apache.flex.html.beads.TextInputWithBorderView; TextInputWithBorderView;
- import org.apache.flex.html.beads.models.AlertModel; AlertModel;
- import org.apache.flex.html.beads.models.ArraySelectionModel; ArraySelectionModel;
- import org.apache.flex.html.beads.models.ComboBoxModel; ComboBoxModel;
- import org.apache.flex.html.beads.models.ImageModel; ImageModel;
- import org.apache.flex.html.beads.models.ImageAndTextModel; ImageAndTextModel;
- import org.apache.flex.html.beads.models.PanelModel; PanelModel;
- import org.apache.flex.html.beads.models.SingleLineBorderModel; SingleLineBorderModel;
- import org.apache.flex.html.beads.models.TextModel; TextModel;
- import org.apache.flex.html.beads.models.TitleBarModel; TitleBarModel;
- import org.apache.flex.html.beads.models.ToggleButtonModel; ToggleButtonModel;
- import org.apache.flex.html.beads.models.ValueToggleButtonModel; ValueToggleButtonModel;
- import org.apache.flex.html.beads.controllers.AlertController; AlertController;
- import org.apache.flex.html.beads.controllers.ComboBoxController; ComboBoxController;
- import org.apache.flex.html.beads.controllers.DropDownListController; DropDownListController;
- import org.apache.flex.html.beads.controllers.EditableTextKeyboardController; EditableTextKeyboardController;
- import org.apache.flex.html.beads.controllers.ItemRendererMouseController; ItemRendererMouseController;
- import org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController; ListSingleSelectionMouseController;
- import org.apache.flex.html.beads.controllers.SliderMouseController; SliderMouseController;
- import org.apache.flex.html.beads.controllers.SpinnerMouseController; SpinnerMouseController;
- import org.apache.flex.html.beads.controllers.VScrollBarMouseController; VScrollBarMouseController;
- import org.apache.flex.html.beads.layouts.ButtonBarLayout; ButtonBarLayout;
- import org.apache.flex.html.beads.layouts.NonVirtualVerticalScrollingLayout; NonVirtualVerticalScrollingLayout;
- import org.apache.flex.html.beads.layouts.NonVirtualHorizontalScrollingLayout; NonVirtualHorizontalScrollingLayout;
- import org.apache.flex.html.beads.layouts.NonVirtualBasicLayout; NonVirtualBasicLayout;
- import org.apache.flex.html.beads.layouts.VScrollBarLayout; VScrollBarLayout;
- import org.apache.flex.html.beads.layouts.TileLayout; TileLayout;
- import org.apache.flex.html.beads.TextItemRendererFactoryForArrayData; TextItemRendererFactoryForArrayData;
- import org.apache.flex.html.beads.DataItemRendererFactoryForArrayData; DataItemRendererFactoryForArrayData;
- import org.apache.flex.html.supportClasses.NonVirtualDataGroup; NonVirtualDataGroup;
- import org.apache.flex.core.ItemRendererClassFactory; ItemRendererClassFactory;
- import org.apache.flex.core.FilledRectangle; FilledRectangle;
- import org.apache.flex.core.FormatBase; FormatBase;
- import org.apache.flex.events.CustomEvent; CustomEvent;
- import org.apache.flex.events.Event; Event;
- import org.apache.flex.events.MouseEvent; MouseEvent;
- import org.apache.flex.events.ValueEvent; ValueEvent;
- import org.apache.flex.utils.EffectTimer; EffectTimer;
- import org.apache.flex.utils.Timer; Timer;
- import org.apache.flex.utils.UIUtils; UIUtils;
- import org.apache.flex.core.ISelectableItemRenderer; ISelectableItemRenderer;
- import org.apache.flex.core.SimpleStatesImpl; SimpleStatesImpl;
- import org.apache.flex.core.graphics.GraphicShape; GraphicShape;
- import org.apache.flex.core.graphics.Rect; Rect;
- import org.apache.flex.core.graphics.Ellipse; Ellipse;
- import org.apache.flex.core.graphics.Circle; Circle;
- import org.apache.flex.core.graphics.Path; Path;
- import org.apache.flex.core.graphics.SolidColor; SolidColor;
- import org.apache.flex.core.graphics.SolidColorStroke; SolidColorStroke;
- import org.apache.flex.core.graphics.Text; Text;
- import org.apache.flex.core.graphics.GraphicsContainer; GraphicsContainer;
- import org.apache.flex.core.graphics.LinearGradient; LinearGradient;
- import org.apache.flex.core.DataBindingBase; DataBindingBase;
- import org.apache.flex.binding.ChainBinding; ChainBinding;
- import org.apache.flex.effects.PlatformWiper; PlatformWiper;
- import org.apache.flex.events.DragEvent; DragEvent;
- import org.apache.flex.events.utils.MouseUtils; MouseUtils;
- import org.apache.flex.geom.Rectangle; Rectangle;
-
- import org.apache.flex.mobile.ManagerBase; ManagerBase;
-
- import mx.core.ClassFactory; ClassFactory;
- import mx.states.AddItems; AddItems;
- import mx.states.SetEventHandler; SetEventHandler;
- import mx.states.SetProperty; SetProperty;
- import mx.states.State; State;
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c84daedb/frameworks/projects/Charts/asjs/ChartsClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/asjs/ChartsClasses.as b/frameworks/projects/Charts/asjs/ChartsClasses.as
deleted file mode 100644
index 9454aad..0000000
--- a/frameworks/projects/Charts/asjs/ChartsClasses.as
+++ /dev/null
@@ -1,95 +0,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.
-//
-////////////////////////////////////////////////////////////////////////////////
-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/c84daedb/frameworks/projects/Charts/asjs/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/asjs/defaults.css b/frameworks/projects/Charts/asjs/defaults.css
new file mode 100644
index 0000000..0ab5ec4
--- /dev/null
+++ b/frameworks/projects/Charts/asjs/defaults.css
@@ -0,0 +1,102 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+@namespace "library://ns.apache.org/flexjs/basic";
+
+BarChart
+{
+ IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
+ IBeadView: ClassReference("org.apache.flex.charts.beads.ChartView");
+ IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController");
+ IBeadLayout: ClassReference("org.apache.flex.charts.beads.layouts.BarChartLayout");
+ IDataGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartDataGroup");
+ IDataProviderItemRendererMapper: ClassReference("org.apache.flex.charts.beads.DataItemRendererFactoryForSeriesData");
+ IItemRenderer: ClassReference("org.apache.flex.charts.supportClasses.BoxItemRenderer");
+ IHorizontalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
+ IVerticalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
+}
+
+BoxItemRenderer
+{
+ IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ItemRendererMouseController");
+}
+
+ColumnChart
+{
+ IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
+ IBeadView: ClassReference("org.apache.flex.charts.beads.ChartView");
+ IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController");
+ IBeadLayout: ClassReference("org.apache.flex.charts.beads.layouts.ColumnChartLayout");
+ IDataGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartDataGroup");
+ IDataProviderItemRendererMapper: ClassReference("org.apache.flex.charts.beads.DataItemRendererFactoryForSeriesData");
+ IItemRenderer: ClassReference("org.apache.flex.charts.supportClasses.BoxItemRenderer");
+ IHorizontalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
+ IVerticalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
+}
+
+LineChart
+{
+ IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
+ IBeadView: ClassReference("org.apache.flex.charts.beads.ChartView");
+ IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController");
+ IBeadLayout: ClassReference("org.apache.flex.charts.beads.layouts.LineChartCategoryVsLinearLayout");
+ IDataGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartDataGroup");
+ IDataProviderItemRendererMapper: ClassReference("org.apache.flex.charts.beads.DataItemRendererFactoryForSeriesData");
+ IItemRenderer: ClassReference("org.apache.flex.charts.supportClasses.BoxItemRenderer");
+ IConnectedItemRenderer: ClassReference("org.apache.flex.charts.supportClasses.LineSegmentItemRenderer");
+ IHorizontalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
+ IVerticalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
+}
+
+PieChart
+{
+ IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
+ IBeadView: ClassReference("org.apache.flex.charts.beads.ChartView");
+ IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController");
+ IBeadLayout: ClassReference("org.apache.flex.charts.beads.layouts.PieChartLayout");
+ IDataGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartDataGroup");
+ IDataProviderItemRendererMapper: ClassReference("org.apache.flex.charts.beads.DataItemRendererFactoryForSeriesData");
+ IItemRenderer: ClassReference("org.apache.flex.charts.supportClasses.WedgeItemRenderer");
+}
+
+StackedColumnChart
+{
+ IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
+ IBeadView: ClassReference("org.apache.flex.charts.beads.ChartView");
+ IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController");
+ IBeadLayout: ClassReference("org.apache.flex.charts.beads.layouts.StackedColumnChartLayout");
+ IDataGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartDataGroup");
+ IDataProviderItemRendererMapper: ClassReference("org.apache.flex.charts.beads.DataItemRendererFactoryForSeriesData");
+ IItemRenderer: ClassReference("org.apache.flex.charts.supportClasses.BoxItemRenderer");
+ IHorizontalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
+ IVerticalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
+}
+
+StackedBarChart
+{
+ IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
+ IBeadView: ClassReference("org.apache.flex.charts.beads.ChartView");
+ IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController");
+ IBeadLayout: ClassReference("org.apache.flex.charts.beads.layouts.StackedBarChartLayout");
+ IDataGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartDataGroup");
+ IDataProviderItemRendererMapper: ClassReference("org.apache.flex.charts.beads.DataItemRendererFactoryForSeriesData");
+ IItemRenderer: ClassReference("org.apache.flex.charts.supportClasses.BoxItemRenderer");
+ IHorizontalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
+ IVerticalAxisGroup: ClassReference("org.apache.flex.charts.supportClasses.ChartAxisGroup");
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c84daedb/frameworks/projects/Charts/asjs/src/ChartASJSClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/asjs/src/ChartASJSClasses.as b/frameworks/projects/Charts/asjs/src/ChartASJSClasses.as
new file mode 100644
index 0000000..7a509e2
--- /dev/null
+++ b/frameworks/projects/Charts/asjs/src/ChartASJSClasses.as
@@ -0,0 +1,61 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 ChartASJSClasses
+{
+
+ 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;
+
+}
+
+}
+
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c84daedb/frameworks/projects/Charts/basic-manifest.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/basic-manifest.xml b/frameworks/projects/Charts/basic-manifest.xml
new file mode 100644
index 0000000..d25b3fb
--- /dev/null
+++ b/frameworks/projects/Charts/basic-manifest.xml
@@ -0,0 +1,50 @@
+<?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.
+
+-->
+<!-- the MXML components in the Charts SWC -->
+
+<componentPackage>
+ <component id="BarChart" class="org.apache.flex.charts.BarChart" />
+ <component id="BarSeries" class="org.apache.flex.charts.supportClasses.BarSeries" />
+ <component id="ColumnChart" class="org.apache.flex.charts.ColumnChart" />
+ <component id="ColumnSeries" class="org.apache.flex.charts.supportClasses.ColumnSeries" />
+ <component id="LineChart" class="org.apache.flex.charts.LineChart" />
+ <component id="LineSeries" class="org.apache.flex.charts.supportClasses.LineSeries" />
+ <component id="PieChart" class="org.apache.flex.charts.PieChart" />
+ <component id="PieSeries" class="org.apache.flex.charts.supportClasses.PieSeries" />
+ <component id="StackedColumnChart" class="org.apache.flex.charts.StackedColumnChart" />
+ <component id="StackedBarChart" class="org.apache.flex.charts.StackedBarChart" />
+ <component id="DataTipBead" class="org.apache.flex.charts.beads.DataTipBead" />
+ <component id="HorizontalCategoryAxisBead" class="org.apache.flex.charts.beads.HorizontalCategoryAxisBead" />
+ <component id="HorizontalLinearAxisBead" class="org.apache.flex.charts.beads.HorizontalLinearAxisBead" />
+ <component id="VerticalCategoryAxisBead" class="org.apache.flex.charts.beads.VerticalCategoryAxisBead" />
+ <component id="VerticalLinearAxisBead" class="org.apache.flex.charts.beads.VerticalLinearAxisBead" />
+
+ <component id="BoxItemRenderer" class="org.apache.flex.charts.supportClasses.BoxItemRenderer" />
+ <component id="WedgeItemRenderer" class="org.apache.flex.charts.supportClasses.WedgeItemRenderer" />
+ <component id="LineSegmentItemRenderer" class="org.apache.flex.charts.supportClasses.LineSegmentItemRenderer" />
+
+ <component id="LineChartCategoryVsLinearLayout" class="org.apache.flex.charts.beads.layouts.LineChartCategoryVsLinearLayout" />
+ <component id="LineChartLinearVsLinearLayout" class="org.apache.flex.charts.beads.layouts.LineChartLinearVsLinearLayout" />
+
+ <component id="SVGChartDataGroup" class="org.apache.flex.charts.optimized.SVGChartDataGroup"/>
+ <component id="SVGBoxItemRenderer" class="org.apache.flex.charts.optimized.SVGBoxItemRenderer"/>
+ <component id="SVGWedgeItemRenderer" class="org.apache.flex.charts.optimized.SVGWedgeItemRenderer"/>
+ <component id="SVGLineSegmentItemRenderer" class="org.apache.flex.charts.optimized.SVGLineSegmentItemRenderer"/>
+</componentPackage>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c84daedb/frameworks/projects/Charts/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/build.xml b/frameworks/projects/Charts/build.xml
new file mode 100644
index 0000000..7d90350
--- /dev/null
+++ b/frameworks/projects/Charts/build.xml
@@ -0,0 +1,81 @@
+<?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="Charts" 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="${FLEXJS_HOME}"/>
+ <property name="FALCON_HOME" value="${env.FALCON_HOME}"/>
+
+ <target name="main" depends="clean,compile,test" description="Clean build of Charts.swc">
+ </target>
+
+ <target name="test" unless="is.jenkins">
+ <!-- no tests yet
+ <ant dir="as/tests" />
+ -->
+ </target>
+
+ <target name="clean">
+ <delete failonerror="false">
+ <fileset dir="${FLEXJS_HOME}/frameworks/libs">
+ <include name="Charts.swc"/>
+ </fileset>
+ </delete>
+ </target>
+
+ <path id="lib.path">
+ <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
+ </path>
+
+ <target name="compile" description="Compiles .as files into .swc">
+ <echo message="Compiling libs/Charts.swc"/>
+ <echo message="FLEX_HOME: ${FLEX_HOME}"/>
+ <echo message="FALCON_HOME: ${FALCON_HOME}"/>
+
+ <!-- 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 ChartsClasses.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.
+ -->
+ <compc fork="true"
+ output="${FLEXJS_HOME}/frameworks/libs/Charts.swc">
+ <jvmarg line="${compc.jvm.args}"/>
+ <load-config filename="compile-config.xml" />
+ <arg value="+playerglobal.version=${playerglobal.version}" />
+ <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
+ </compc>
+ </target>
+
+</project>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c84daedb/frameworks/projects/Charts/compile-config.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/compile-config.xml b/frameworks/projects/Charts/compile-config.xml
new file mode 100644
index 0000000..c8e301e
--- /dev/null
+++ b/frameworks/projects/Charts/compile-config.xml
@@ -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.
+
+-->
+<flex-config>
+
+ <compiler>
+ <accessible>false</accessible>
+
+ <external-library-path>
+ <path-element>${env.AIR_HOME}/frameworks/libs/air/airglobal.swc</path-element>
+ <path-element>../../libs/Core.swc</path-element>
+ <path-element>../../libs/Graphics.swc</path-element>
+ <path-element>../../libs/HTML.swc</path-element>
+ </external-library-path>
+
+ <mxml>
+ <children-as-data>true</children-as-data>
+ </mxml>
+ <binding-value-change-event>org.apache.flex.events.ValueChangeEvent</binding-value-change-event>
+ <binding-value-change-event-kind>org.apache.flex.events.ValueChangeEvent</binding-value-change-event-kind>
+ <binding-value-change-event-type>valueChange</binding-value-change-event-type>
+
+ <keep-as3-metadata>
+ <name>Bindable</name>
+ <name>Managed</name>
+ <name>ChangeEvent</name>
+ <name>NonCommittingChangeEvent</name>
+ <name>Transient</name>
+ </keep-as3-metadata>
+
+ <locale/>
+
+ <library-path/>
+
+ <namespaces>
+ <namespace>
+ <uri>library://ns.apache.org/flexjs/basic</uri>
+ <manifest>basic-manifest.xml</manifest>
+ </namespace>
+ </namespaces>
+
+ <source-path>
+ <path-element>as/src</path-element>
+ <path-element>asjs/src</path-element>
+ </source-path>
+
+ <warn-no-constructor>false</warn-no-constructor>
+ </compiler>
+
+ <include-file>
+ <name>defaults.css</name>
+ <path>asjs/defaults.css</path>
+ </include-file>
+
+ <include-classes>
+ <class>ChartsClasses</class>
+ <class>ChartASJSClasses</class>
+ </include-classes>
+
+ <include-namespaces>
+ <uri>library://ns.apache.org/flexjs/basic</uri>
+ </include-namespaces>
+
+ <target-player>${playerglobal.version}</target-player>
+
+
+</flex-config>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c84daedb/frameworks/projects/Collections/as/src/CollectionsClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Collections/as/src/CollectionsClasses.as b/frameworks/projects/Collections/as/src/CollectionsClasses.as
index 2886df2..dcbf02c 100644
--- a/frameworks/projects/Collections/as/src/CollectionsClasses.as
+++ b/frameworks/projects/Collections/as/src/CollectionsClasses.as
@@ -25,133 +25,8 @@ package
* beyond those that are found by dependecy analysis starting
* from the classes specified in manifest.xml.
*/
-internal class FlexJSUIClasses
+internal class CollectionsClasses
{
- import org.apache.cordova.camera.Camera; Camera;
- import org.apache.cordova.Application; Application;
- import org.apache.cordova.Weinre; Weinre;
-
- import org.apache.flex.charts.core.CartesianChart; CartesianChart;
- import org.apache.flex.charts.core.ChartBase; ChartBase;
- import org.apache.flex.charts.core.IAxisBead; IAxisBead;
- import org.apache.flex.charts.core.IAxisGroup; IAxisGroup;
- import org.apache.flex.charts.core.IChart; IChart;
- import org.apache.flex.charts.core.ICartesianChartLayout; ICartesianChartLayout;
- import org.apache.flex.charts.core.IChartDataGroup; IChartDataGroup;
- import org.apache.flex.charts.core.IChartSeries; IChartSeries;
- import org.apache.flex.charts.core.IHorizontalAxisBead; IHorizontalAxisBead;
- import org.apache.flex.charts.core.IVerticalAxisBead; IVerticalAxisBead;
- import org.apache.flex.charts.core.IChartItemRenderer; IChartItemRenderer;
- import org.apache.flex.charts.core.IConnectedItemRenderer; IConnectedItemRenderer;
- import org.apache.flex.charts.core.PolarChart; PolarChart;
- import org.apache.flex.charts.supportClasses.ChartAxisGroup; ChartAxisGroup;
- import org.apache.flex.charts.supportClasses.ChartDataGroup; ChartDataGroup;
- import org.apache.flex.maps.google.Map; Map;
-
- import org.apache.flex.html.ToolTip; ToolTip;
- import org.apache.flex.html.accessories.NumericOnlyTextInputBead; NumericOnlyTextInputBead;
- import org.apache.flex.html.accessories.PasswordInputBead; PasswordInputBead;
- import org.apache.flex.html.accessories.TextPromptBead; TextPromptBead;
- import org.apache.flex.html.beads.AlertView; AlertView;
- import org.apache.flex.html.beads.BackgroundImageBead; BackgroundImageBead;
- import org.apache.flex.html.beads.ButtonBarView; ButtonBarView;
- import org.apache.flex.html.beads.CheckBoxView; CheckBoxView;
- import org.apache.flex.html.beads.ComboBoxView; ComboBoxView;
- import org.apache.flex.html.beads.ContainerView; ContainerView;
- import org.apache.flex.html.beads.ControlBarMeasurementBead; ControlBarMeasurementBead;
- import org.apache.flex.html.beads.CSSButtonView; CSSButtonView;
- import org.apache.flex.html.beads.CSSTextButtonView; CSSTextButtonView;
- import org.apache.flex.html.beads.CSSTextToggleButtonView; CSSTextToggleButtonView;
- import org.apache.flex.html.beads.DropDownListView; DropDownListView;
- import org.apache.flex.html.beads.CloseButtonView; CloseButtonView;
- import org.apache.flex.html.beads.ImageButtonView; ImageButtonView;
- import org.apache.flex.html.beads.ImageAndTextButtonView; ImageAndTextButtonView;
- import org.apache.flex.html.beads.ImageView; ImageView;
- import org.apache.flex.html.beads.ListView; ListView;
- import org.apache.flex.html.beads.NumericStepperView; NumericStepperView;
- import org.apache.flex.html.beads.PanelView; PanelView;
- import org.apache.flex.html.beads.PanelWithControlBarView; PanelWithControlBarView;
- import org.apache.flex.html.beads.RadioButtonView; RadioButtonView;
- import org.apache.flex.html.beads.ScrollBarView; ScrollBarView;
- import org.apache.flex.html.beads.SimpleAlertView; SimpleAlertView;
- import org.apache.flex.html.beads.SingleLineBorderBead; SingleLineBorderBead;
- import org.apache.flex.html.beads.SliderView; SliderView;
- import org.apache.flex.html.beads.SliderThumbView; SliderThumbView;
- import org.apache.flex.html.beads.SliderTrackView; SliderTrackView;
- import org.apache.flex.html.beads.SolidBackgroundBead; SolidBackgroundBead;
- import org.apache.flex.html.beads.SpinnerView; SpinnerView;
- import org.apache.flex.html.beads.TextButtonMeasurementBead; TextButtonMeasurementBead;
- import org.apache.flex.html.beads.TextFieldLabelMeasurementBead; TextFieldLabelMeasurementBead;
- import org.apache.flex.html.beads.TextAreaView; TextAreaView;
- import org.apache.flex.html.beads.TextButtonView; TextButtonView;
- import org.apache.flex.html.beads.TextFieldView; TextFieldView;
- import org.apache.flex.html.beads.TextInputView; TextInputView;
- import org.apache.flex.html.beads.TextInputWithBorderView; TextInputWithBorderView;
- import org.apache.flex.html.beads.models.AlertModel; AlertModel;
- import org.apache.flex.html.beads.models.ArraySelectionModel; ArraySelectionModel;
- import org.apache.flex.html.beads.models.ComboBoxModel; ComboBoxModel;
- import org.apache.flex.html.beads.models.ImageModel; ImageModel;
- import org.apache.flex.html.beads.models.ImageAndTextModel; ImageAndTextModel;
- import org.apache.flex.html.beads.models.PanelModel; PanelModel;
- import org.apache.flex.html.beads.models.SingleLineBorderModel; SingleLineBorderModel;
- import org.apache.flex.html.beads.models.TextModel; TextModel;
- import org.apache.flex.html.beads.models.TitleBarModel; TitleBarModel;
- import org.apache.flex.html.beads.models.ToggleButtonModel; ToggleButtonModel;
- import org.apache.flex.html.beads.models.ValueToggleButtonModel; ValueToggleButtonModel;
- import org.apache.flex.html.beads.controllers.AlertController; AlertController;
- import org.apache.flex.html.beads.controllers.ComboBoxController; ComboBoxController;
- import org.apache.flex.html.beads.controllers.DropDownListController; DropDownListController;
- import org.apache.flex.html.beads.controllers.EditableTextKeyboardController; EditableTextKeyboardController;
- import org.apache.flex.html.beads.controllers.ItemRendererMouseController; ItemRendererMouseController;
- import org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController; ListSingleSelectionMouseController;
- import org.apache.flex.html.beads.controllers.SliderMouseController; SliderMouseController;
- import org.apache.flex.html.beads.controllers.SpinnerMouseController; SpinnerMouseController;
- import org.apache.flex.html.beads.controllers.VScrollBarMouseController; VScrollBarMouseController;
- import org.apache.flex.html.beads.layouts.ButtonBarLayout; ButtonBarLayout;
- import org.apache.flex.html.beads.layouts.NonVirtualVerticalScrollingLayout; NonVirtualVerticalScrollingLayout;
- import org.apache.flex.html.beads.layouts.NonVirtualHorizontalScrollingLayout; NonVirtualHorizontalScrollingLayout;
- import org.apache.flex.html.beads.layouts.NonVirtualBasicLayout; NonVirtualBasicLayout;
- import org.apache.flex.html.beads.layouts.VScrollBarLayout; VScrollBarLayout;
- import org.apache.flex.html.beads.layouts.TileLayout; TileLayout;
- import org.apache.flex.html.beads.TextItemRendererFactoryForArrayData; TextItemRendererFactoryForArrayData;
- import org.apache.flex.html.beads.DataItemRendererFactoryForArrayData; DataItemRendererFactoryForArrayData;
- import org.apache.flex.html.supportClasses.NonVirtualDataGroup; NonVirtualDataGroup;
- import org.apache.flex.core.ItemRendererClassFactory; ItemRendererClassFactory;
- import org.apache.flex.core.FilledRectangle; FilledRectangle;
- import org.apache.flex.core.FormatBase; FormatBase;
- import org.apache.flex.events.CustomEvent; CustomEvent;
- import org.apache.flex.events.Event; Event;
- import org.apache.flex.events.MouseEvent; MouseEvent;
- import org.apache.flex.events.ValueEvent; ValueEvent;
- import org.apache.flex.utils.EffectTimer; EffectTimer;
- import org.apache.flex.utils.Timer; Timer;
- import org.apache.flex.utils.UIUtils; UIUtils;
- import org.apache.flex.core.ISelectableItemRenderer; ISelectableItemRenderer;
- import org.apache.flex.core.SimpleStatesImpl; SimpleStatesImpl;
- import org.apache.flex.core.graphics.GraphicShape; GraphicShape;
- import org.apache.flex.core.graphics.Rect; Rect;
- import org.apache.flex.core.graphics.Ellipse; Ellipse;
- import org.apache.flex.core.graphics.Circle; Circle;
- import org.apache.flex.core.graphics.Path; Path;
- import org.apache.flex.core.graphics.SolidColor; SolidColor;
- import org.apache.flex.core.graphics.SolidColorStroke; SolidColorStroke;
- import org.apache.flex.core.graphics.Text; Text;
- import org.apache.flex.core.graphics.GraphicsContainer; GraphicsContainer;
- import org.apache.flex.core.graphics.LinearGradient; LinearGradient;
- import org.apache.flex.core.DataBindingBase; DataBindingBase;
- import org.apache.flex.binding.ChainBinding; ChainBinding;
- import org.apache.flex.effects.PlatformWiper; PlatformWiper;
- import org.apache.flex.events.DragEvent; DragEvent;
- import org.apache.flex.events.utils.MouseUtils; MouseUtils;
- import org.apache.flex.geom.Rectangle; Rectangle;
-
- import org.apache.flex.mobile.ManagerBase; ManagerBase;
-
- import mx.core.ClassFactory; ClassFactory;
- import mx.states.AddItems; AddItems;
- import mx.states.SetEventHandler; SetEventHandler;
- import mx.states.SetProperty; SetProperty;
- import mx.states.State; State;
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c84daedb/frameworks/projects/Collections/as/src/org/apache/flex/collections/ICollection.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Collections/as/src/org/apache/flex/collections/ICollection.as b/frameworks/projects/Collections/as/src/org/apache/flex/collections/ICollection.as
new file mode 100644
index 0000000..e9ae8fd
--- /dev/null
+++ b/frameworks/projects/Collections/as/src/org/apache/flex/collections/ICollection.as
@@ -0,0 +1,43 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.collections
+{
+ /**
+ * The ICollection interface is the basic interface for an iterable collection
+ * of data items. Other extension may offer the ability to modify the collection
+ * and dispatch change events.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public interface ICollection
+ {
+ /**
+ * Get the item at a particular index.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function getItemAt(index:int):Object
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c84daedb/frameworks/projects/Collections/as/src/org/apache/flex/collections/IStringCollection.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Collections/as/src/org/apache/flex/collections/IStringCollection.as b/frameworks/projects/Collections/as/src/org/apache/flex/collections/IStringCollection.as
new file mode 100644
index 0000000..daf47bc
--- /dev/null
+++ b/frameworks/projects/Collections/as/src/org/apache/flex/collections/IStringCollection.as
@@ -0,0 +1,43 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.collections
+{
+ /**
+ * The IStringCollection interface is the basic interface for an iterable collection
+ * of strings. Other extension may offer the ability to modify the collection
+ * and dispatch change events.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public interface IStringCollection
+ {
+ /**
+ * Get the string at a particular index.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function getItemAt(index:int):String
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c84daedb/frameworks/projects/Collections/as/src/org/apache/flex/collections/LazyCollection.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Collections/as/src/org/apache/flex/collections/LazyCollection.as b/frameworks/projects/Collections/as/src/org/apache/flex/collections/LazyCollection.as
new file mode 100644
index 0000000..15948fe
--- /dev/null
+++ b/frameworks/projects/Collections/as/src/org/apache/flex/collections/LazyCollection.as
@@ -0,0 +1,248 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.collections
+{
+ import flash.events.Event;
+ import flash.events.IEventDispatcher;
+
+ import org.apache.flex.core.IBead;
+ import org.apache.flex.core.IStrand;
+ import org.apache.flex.events.EventDispatcher;
+ import org.apache.flex.collections.parsers.IInputParser;
+ import org.apache.flex.collections.converters.IItemConverter;
+
+ //--------------------------------------
+ // Events
+ //--------------------------------------
+
+ /**
+ * Dispatched when the collection has processed a complete event.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ [Event(name="complete", type="org.apache.flex.events.Event")]
+
+ /**
+ * The LazyCollection class implements a collection
+ * whose items require conversion from a source data format
+ * to some other data type. For example, converting
+ * SOAP or JSON to ActionScript data classes.
+ * The Flex SDK used to convert all of the data items
+ * when the source data arrived, which, for very large data sets
+ * or complex data classes, could lock up the user interface.
+ * The lazy collection converts items as they are fetched from
+ * the collection, resulting in significant performance savings
+ * in many cases. Note that, if you need to compute a summary of
+ * data in the collection when the source data arrives, the
+ * computation can still lock up the user interface as you will
+ * have to visit and convert every data item. Of course, it is
+ * possible to compute that summary in a worker or pseudo-thread.
+ * The LazyCollection class is designed to be a bead that attaches
+ * to a data retrieval strand that dispatches an Event.COMPLETE and
+ * has a "data" property that gets passed to the input parser.
+ *
+ * This LazyCollection does not support adding/removing items from
+ * the collection or sending data back to the source. Subclasses
+ * have that additional functionality.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class LazyCollection extends EventDispatcher implements IBead, ICollection
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function LazyCollection()
+ {
+ super();
+ }
+
+ private var _inputParser:IInputParser;
+
+ /**
+ * A lazy collection uses an IInputParser to convert the source data items
+ * into an array of data items. This is required in order to determine
+ * the length of the collection. This conversion happens as the source
+ * data arrives so it needs to be fast to avoid locking up the UI.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get inputParser():IInputParser
+ {
+ return _inputParser;
+ }
+
+ /**
+ * @private
+ */
+ public function set inputParser(value:IInputParser):void
+ {
+ if (_inputParser != value)
+ {
+ _inputParser = value;
+ dispatchEvent(new Event("inputParserChanged"));
+ }
+ }
+
+ private var _itemConverter:IItemConverter;
+
+ /**
+ * A lazy collection uses an IItemConverter to convert the source data items
+ * into the desired data type. The converter is only called as items
+ * are fetched from the collection.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get itemConverter():IItemConverter
+ {
+ return _itemConverter;
+ }
+
+ /**
+ * @private
+ */
+ public function set itemConverter(value:IItemConverter):void
+ {
+ if (_itemConverter != value)
+ {
+ _itemConverter = value;
+ dispatchEvent(new Event("itemConverterChanged"));
+ }
+ }
+
+ private var _id:String;
+
+ /**
+ * @copy org.apache.flex.core.UIBase#id
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get id():String
+ {
+ return _id;
+ }
+
+ /**
+ * @private
+ */
+ public function set id(value:String):void
+ {
+ if (_id != value)
+ {
+ _id = value;
+ dispatchEvent(new Event("idChanged"));
+ }
+ }
+
+ private var _strand:IStrand;
+
+ /**
+ * @copy org.apache.flex.core.UIBase#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(Event.COMPLETE, completeHandler);
+ }
+
+ /**
+ * The array of raw data needing conversion.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ protected var rawData:Array;
+
+ /**
+ * The array of desired data types. This array is sparse and
+ * unconverted items are therefore undefined in the array.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ protected var data:Array;
+
+ private function completeHandler(event:Event):void
+ {
+ rawData = inputParser.parseItems(_strand["data"]);
+ data = new Array(rawData.length);
+ dispatchEvent(event);
+ }
+
+ /**
+ * Fetches an item from the collection, converting it first if necessary.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function getItemAt(index:int):Object
+ {
+ if (data[index] == undefined)
+ {
+ data[index] = itemConverter.convertItem(rawData[index]);
+ }
+ return data[index];
+ }
+
+ /**
+ * The number of items.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get length():int
+ {
+ return rawData ? rawData.length : 0;
+ }
+
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c84daedb/frameworks/projects/Collections/as/src/org/apache/flex/collections/converters/IItemConverter.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Collections/as/src/org/apache/flex/collections/converters/IItemConverter.as b/frameworks/projects/Collections/as/src/org/apache/flex/collections/converters/IItemConverter.as
new file mode 100644
index 0000000..11492ac
--- /dev/null
+++ b/frameworks/projects/Collections/as/src/org/apache/flex/collections/converters/IItemConverter.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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.collections.converters
+{
+ /**
+ * The IItemConverter interface is the basic interface for
+ * converting a serialized data item to a data class instance.
+ *
+ * This interface is generally used in a LazyCollection.
+ * @see org.apache.flex.net.dataConverters.LazyCollection.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public interface IItemConverter
+ {
+ /**
+ * Take the input string (could be serialized data set,
+ * XML, or JSON) and return a data class instance.
+ *
+ * @param s Serialized data item, XML or JSON.
+ * @return An instance of a data class.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function convertItem(data:String):Object
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c84daedb/frameworks/projects/Collections/as/src/org/apache/flex/collections/converters/JSONItemConverter.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Collections/as/src/org/apache/flex/collections/converters/JSONItemConverter.as b/frameworks/projects/Collections/as/src/org/apache/flex/collections/converters/JSONItemConverter.as
new file mode 100644
index 0000000..6fc5888
--- /dev/null
+++ b/frameworks/projects/Collections/as/src/org/apache/flex/collections/converters/JSONItemConverter.as
@@ -0,0 +1,74 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.collections.converters
+{
+ import org.apache.flex.collections.converters.IItemConverter;
+
+ /**
+ * The JSONItemConverter class parses a JSON structure
+ * into an ActionScript object. Other variants
+ * would return a specific data class instance.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class JSONItemConverter implements IItemConverter
+ {
+ public function convertItem(data:String):Object
+ {
+ var c:int = data.indexOf("{");
+ if (c > 0)
+ data = data.substring(c);
+ if (data.indexOf("}") == -1)
+ data += "}";
+ return JSON.parse(data);
+ }
+
+ /**
+ * Get a property from an object.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ protected function getProperty(obj:Object, propName:String):*
+ {
+ if (propName === 'this')
+ return obj;
+
+ return obj[propName];
+ }
+
+ /**
+ * Set a property on an object.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ protected function setProperty(obj:Object, propName:String, value:*):void
+ {
+ obj[propName] = value;
+ }
+ }
+}
\ No newline at end of file