http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/DataGridCustomRendererExample.mxml
----------------------------------------------------------------------
diff --git 
a/tourdeflexmodules/src/spark/controls/DataGridCustomRendererExample.mxml 
b/tourdeflexmodules/src/spark/controls/DataGridCustomRendererExample.mxml
new file mode 100644
index 0000000..8de56c0
--- /dev/null
+++ b/tourdeflexmodules/src/spark/controls/DataGridCustomRendererExample.mxml
@@ -0,0 +1,62 @@
+<?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.
+
+-->
+<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009"; 
+                          xmlns:s="library://ns.adobe.com/flex/spark" 
+                          xmlns:mx="library://ns.adobe.com/flex/mx">
+
+       <fx:Script>
+               import mx.collections.ArrayList;
+       </fx:Script>
+       
+       <fx:Declarations>
+               <s:RemoteObject id="ro" 
endpoint="http://www.jamesward.com/census2-tests/messagebroker/amf"; 
destination="census"/>
+       </fx:Declarations>
+       
+       <s:creationComplete>
+               ro.getElements(0, 500);
+       </s:creationComplete>
+       
+       <s:DataGrid width="100%" height="100%" dataProvider="{new 
ArrayList(ro.getElements.lastResult)}">
+               <s:columns>
+                       <s:ArrayList>
+                               <s:GridColumn dataField="id"/>
+                               <s:GridColumn dataField="age">
+                                       <s:itemRenderer>
+                                               <fx:Component>
+                                                       <s:GridItemRenderer>
+                                                               <s:Rect 
percentWidth="{data.age}" top="3" bottom="3">
+                                                                       <s:fill>
+                                                                               
<s:SolidColor color="#0000ff"/>
+                                                                       
</s:fill>
+                                                               </s:Rect>
+                                                       </s:GridItemRenderer>
+                                               </fx:Component>
+                                       </s:itemRenderer>
+                               </s:GridColumn>
+                               <s:GridColumn dataField="classOfWorker"/>
+                               <s:GridColumn dataField="education"/>
+                               <s:GridColumn dataField="maritalStatus"/>
+                               <s:GridColumn dataField="race"/>
+                               <s:GridColumn dataField="sex"/>
+                       </s:ArrayList>
+               </s:columns>
+       </s:DataGrid>
+       
+</s:Module>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/DataGridCustomRendererPrepareExample.mxml
----------------------------------------------------------------------
diff --git 
a/tourdeflexmodules/src/spark/controls/DataGridCustomRendererPrepareExample.mxml
 
b/tourdeflexmodules/src/spark/controls/DataGridCustomRendererPrepareExample.mxml
new file mode 100644
index 0000000..841fea5
--- /dev/null
+++ 
b/tourdeflexmodules/src/spark/controls/DataGridCustomRendererPrepareExample.mxml
@@ -0,0 +1,68 @@
+<?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.
+
+-->
+<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009"; 
+                          xmlns:s="library://ns.adobe.com/flex/spark" 
+                          xmlns:mx="library://ns.adobe.com/flex/mx">
+
+       <fx:Script>
+               import mx.collections.ArrayList;
+       </fx:Script>
+       
+       <fx:Declarations>
+               <s:RemoteObject id="ro" 
endpoint="http://www.jamesward.com/census2-tests/messagebroker/amf"; 
destination="census"/>
+       </fx:Declarations>
+       
+       <s:creationComplete>
+               ro.getElements(0, 500);
+       </s:creationComplete>
+       
+       <s:DataGrid width="100%" height="100%" dataProvider="{new 
ArrayList(ro.getElements.lastResult)}">
+               <s:columns>
+                       <s:ArrayList>
+                               <s:GridColumn dataField="id"/>
+                               <s:GridColumn dataField="age">
+                                       <s:itemRenderer>
+                                               <fx:Component>
+                                                       <s:GridItemRenderer>
+                                                               <fx:Script>
+                                                                       
override public function prepare(hasBeenRecycled:Boolean):void
+                                                                       {
+                                                                               
r.percentWidth = data.age;
+                                                                       }
+                                                               </fx:Script>
+                                                               <s:Rect id="r" 
top="3" bottom="3">
+                                                                       <s:fill>
+                                                                               
<s:SolidColor color="#0000ff"/>
+                                                                       
</s:fill>
+                                                               </s:Rect>
+                                                       </s:GridItemRenderer>
+                                               </fx:Component>
+                                       </s:itemRenderer>
+                               </s:GridColumn>
+                               <s:GridColumn dataField="classOfWorker"/>
+                               <s:GridColumn dataField="education"/>
+                               <s:GridColumn dataField="maritalStatus"/>
+                               <s:GridColumn dataField="race"/>
+                               <s:GridColumn dataField="sex"/>
+                       </s:ArrayList>
+               </s:columns>
+       </s:DataGrid>
+       
+</s:Module>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/DataGridCustomSkinExample.mxml
----------------------------------------------------------------------
diff --git 
a/tourdeflexmodules/src/spark/controls/DataGridCustomSkinExample.mxml 
b/tourdeflexmodules/src/spark/controls/DataGridCustomSkinExample.mxml
new file mode 100644
index 0000000..8c66a44
--- /dev/null
+++ b/tourdeflexmodules/src/spark/controls/DataGridCustomSkinExample.mxml
@@ -0,0 +1,39 @@
+<?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.
+
+-->
+<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009"; 
+                          xmlns:s="library://ns.adobe.com/flex/spark">
+       
+       <fx:Script>
+               import mx.collections.ArrayList;
+       </fx:Script>
+       
+       <fx:Declarations>
+               <s:RemoteObject id="ro" 
endpoint="http://www.jamesward.com/census2-tests/messagebroker/amf"; 
destination="census"/>
+       </fx:Declarations>
+       
+       <s:creationComplete>
+               ro.getElements(0, 500);
+       </s:creationComplete>
+       
+       <s:DataGrid width="100%" height="100%"
+                               dataProvider="{new 
ArrayList(ro.getElements.lastResult)}"
+                               skinClass="CustomDataGridSkin"/>
+       
+</s:Module>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/DataGridExample.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmodules/src/spark/controls/DataGridExample.mxml 
b/tourdeflexmodules/src/spark/controls/DataGridExample.mxml
new file mode 100644
index 0000000..c879d6b
--- /dev/null
+++ b/tourdeflexmodules/src/spark/controls/DataGridExample.mxml
@@ -0,0 +1,86 @@
+<?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.
+
+-->
+<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009";  
+                          xmlns:s="library://ns.adobe.com/flex/spark" 
+                          xmlns:mx="library://ns.adobe.com/flex/mx">
+       
+       <fx:Declarations>
+               <fx:XMLList id="employees">
+                       <employee>
+                               <name>Christina Coenraets</name>
+                               <phone>555-219-2270</phone>
+                               <email>[email protected]</email>
+                               <active>true</active>
+                               <image>images/arrow_icon_sm.png</image>
+                       </employee>
+                       <employee>
+                               <name>Joanne Wall</name>
+                               <phone>555-219-2012</phone>
+                               <email>[email protected]</email>
+                               <active>true</active>
+                       </employee>
+                       <employee>
+                               <name>Maurice Smith</name>
+                               <phone>555-219-2012</phone>
+                               <email>[email protected]</email>
+                               <active>false</active>
+                       </employee>
+                       <employee>
+                               <name>Mary Jones</name>
+                               <phone>555-219-2000</phone>
+                               <email>[email protected]</email>
+                               <active>true</active>
+                       </employee>
+               </fx:XMLList>
+       </fx:Declarations>
+       
+       <s:Panel title="DataGrid Control" width="100%" height="100%">
+               
+               <s:layout>
+                       <s:VerticalLayout paddingLeft="10" paddingRight="10" 
paddingTop="10" paddingBottom="10"/>
+               </s:layout>
+               
+               <s:Label width="100%" text="Select a row in the DataGrid 
control."/>
+               
+               <mx:DataGrid id="dg" width="100%" rowCount="3" 
dataProvider="{employees}">
+                       <mx:columns>
+                               <mx:DataGridColumn dataField="name" 
headerText="Name"/>
+                               <mx:DataGridColumn dataField="phone" 
headerText="Phone"/>
+                               <mx:DataGridColumn dataField="email" 
headerText="Email"/>
+                       </mx:columns>
+               </mx:DataGrid>
+               
+               <mx:Form width="100%" height="100%" paddingTop="0" 
paddingBottom="0"  >
+                       
+                       <mx:FormItem label="Name" paddingTop="0" 
paddingBottom="0">
+                               <s:Label text="{dg.selectedItem.name}"/>
+                       </mx:FormItem>
+                       <mx:FormItem label="Email" paddingTop="0" 
paddingBottom="0">
+                               <s:Label text="{dg.selectedItem.email}"/>
+                       </mx:FormItem>
+                       <mx:FormItem label="Phone" paddingTop="0" 
paddingBottom="0">
+                               <s:Label text="{dg.selectedItem.phone}"/>
+                       </mx:FormItem>
+                       
+               </mx:Form>
+               
+       </s:Panel>
+       
+</s:Module>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/DataGridExample2.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmodules/src/spark/controls/DataGridExample2.mxml 
b/tourdeflexmodules/src/spark/controls/DataGridExample2.mxml
new file mode 100644
index 0000000..82a0ef3
--- /dev/null
+++ b/tourdeflexmodules/src/spark/controls/DataGridExample2.mxml
@@ -0,0 +1,47 @@
+<?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.
+
+-->
+<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009";
+                          xmlns:s="library://ns.adobe.com/flex/spark"
+                          creationComplete="creationCompleteHandler(event)">
+       
+       <fx:Script>
+               <![CDATA[
+                       import mx.collections.ArrayList;
+                       import mx.events.FlexEvent;     
+
+                       protected function 
creationCompleteHandler(event:FlexEvent):void
+                       {
+                               ro.getElements(0, 500);
+                       }
+               ]]>
+       </fx:Script>
+       <s:creationComplete>
+               
Security.loadPolicyFile("http://www.jamesward.com/census2-tests/crossdomain.xml";);
+               ro.getElements(0, 500);
+       </s:creationComplete>
+
+       
+       <fx:Declarations>
+               <s:RemoteObject id="ro" 
endpoint="http://www.jamesward.com/census2-tests/messagebroker/amf"; 
destination="census"/>
+       </fx:Declarations>
+       
+       <s:DataGrid width="100%" height="100%" dataProvider="{new 
ArrayList(ro.getElements.lastResult)}"/>
+       
+</s:Module>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/DataGridSimpleColumnsExample.mxml
----------------------------------------------------------------------
diff --git 
a/tourdeflexmodules/src/spark/controls/DataGridSimpleColumnsExample.mxml 
b/tourdeflexmodules/src/spark/controls/DataGridSimpleColumnsExample.mxml
new file mode 100644
index 0000000..8e6cd83
--- /dev/null
+++ b/tourdeflexmodules/src/spark/controls/DataGridSimpleColumnsExample.mxml
@@ -0,0 +1,49 @@
+<?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.
+
+-->
+<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009"; 
+                          xmlns:s="library://ns.adobe.com/flex/spark">
+       
+       <fx:Script>
+               import mx.collections.ArrayList;
+       </fx:Script>
+       
+       <fx:Declarations>
+               <s:RemoteObject id="ro" 
endpoint="http://www.jamesward.com/census2-tests/messagebroker/amf"; 
destination="census"/>
+       </fx:Declarations>
+       
+       <s:creationComplete>
+               ro.getElements(0, 500);
+       </s:creationComplete>
+       
+       <s:DataGrid width="100%" height="100%" dataProvider="{new 
ArrayList(ro.getElements.lastResult)}">
+               <s:columns>
+                       <s:ArrayList id="columns">
+                               <s:GridColumn dataField="id"/>
+                               <s:GridColumn dataField="age" minWidth="45"/>
+                               <s:GridColumn dataField="classOfWorker" 
minWidth="100"/>
+                               <s:GridColumn dataField="education" 
minWidth="100"/>
+                               <s:GridColumn dataField="maritalStatus" 
minWidth="100"/>
+                               <s:GridColumn dataField="race" minWidth="100"/>
+                               <s:GridColumn dataField="sex" minWidth="60"/>
+                       </s:ArrayList>
+               </s:columns>
+       </s:DataGrid>
+       
+</s:Module>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/DataGridSimpleNoWrapExample.mxml
----------------------------------------------------------------------
diff --git 
a/tourdeflexmodules/src/spark/controls/DataGridSimpleNoWrapExample.mxml 
b/tourdeflexmodules/src/spark/controls/DataGridSimpleNoWrapExample.mxml
new file mode 100644
index 0000000..78a0eb5
--- /dev/null
+++ b/tourdeflexmodules/src/spark/controls/DataGridSimpleNoWrapExample.mxml
@@ -0,0 +1,37 @@
+<?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.
+
+-->
+<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009"; 
+                          xmlns:s="library://ns.adobe.com/flex/spark">
+       
+       <fx:Script>
+               import mx.collections.ArrayList;
+       </fx:Script>
+       
+       <fx:Declarations>
+               <s:RemoteObject id="ro" 
endpoint="http://www.jamesward.com/census2-tests/messagebroker/amf"; 
destination="census" />
+       </fx:Declarations>
+       
+       <s:creationComplete>
+               ro.getElements(0, 500);
+       </s:creationComplete>
+       
+       <s:DataGrid width="100%" height="100%" dataProvider="{new 
ArrayList(ro.getElements.lastResult)}" />
+       
+</s:Module>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/DataGridSizingExample.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmodules/src/spark/controls/DataGridSizingExample.mxml 
b/tourdeflexmodules/src/spark/controls/DataGridSizingExample.mxml
new file mode 100644
index 0000000..b1cb185
--- /dev/null
+++ b/tourdeflexmodules/src/spark/controls/DataGridSizingExample.mxml
@@ -0,0 +1,47 @@
+<?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.
+
+-->
+<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009"; 
+                          xmlns:s="library://ns.adobe.com/flex/spark"
+                          xmlns="*">
+
+       <fx:Declarations>
+               <s:RemoteObject id="ro" 
endpoint="http://www.jamesward.com/census2-tests/messagebroker/amf"; 
destination="census"/>
+               <s:ArrayList id="columns">
+                       <s:GridColumn dataField="id" minWidth="30"/>
+                       <s:GridColumn dataField="age" minWidth="45"/>
+                       <s:GridColumn dataField="classOfWorker" minWidth="100"/>
+                       <s:GridColumn dataField="education" minWidth="100"/>
+                       <s:GridColumn dataField="maritalStatus" minWidth="100"/>
+                       <s:GridColumn dataField="race" minWidth="100"/>
+                       <s:GridColumn dataField="sex" minWidth="60"/>
+               </s:ArrayList>
+       </fx:Declarations>
+       
+       <s:creationComplete>
+               ro.getElements(0, 500);
+       </s:creationComplete>
+       
+       <s:HGroup width="100%">
+               <s:DataGrid requestedRowCount="5" width="100%" 
dataProvider="{new ArrayList(ro.getElements.lastResult)}" columns="{columns}" />
+               <s:DataGrid requestedRowCount="7" width="100%" 
dataProvider="{new ArrayList(ro.getElements.lastResult)}" columns="{columns}" />
+               <s:DataGrid requestedRowCount="9" width="100%" 
dataProvider="{new ArrayList(ro.getElements.lastResult)}" columns="{columns}" />
+       </s:HGroup>
+       
+</s:Module>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/DataGroupExample.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmodules/src/spark/controls/DataGroupExample.mxml 
b/tourdeflexmodules/src/spark/controls/DataGroupExample.mxml
new file mode 100644
index 0000000..e047e6a
--- /dev/null
+++ b/tourdeflexmodules/src/spark/controls/DataGroupExample.mxml
@@ -0,0 +1,134 @@
+<?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.
+
+-->
+<!-- Simple example to demonstrate a DataGroup with a virtualized layout. 
+     Written by Flex 4 Team
+-->
+<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009";
+                          xmlns:mx="library://ns.adobe.com/flex/mx"
+                          xmlns:s="library://ns.adobe.com/flex/spark">
+       
+       <fx:Script>
+               <![CDATA[
+                       import mx.collections.ArrayCollection;
+                       
+                       public function generateDataProvider(nItems:int = 
10000):ArrayCollection {
+                               var ac:ArrayCollection = new ArrayCollection();
+                               
+                               var sources:Array = ['San Francisco', 'New 
York', 'Vancouver', 'Denver', 'Hong Kong'];
+                               var destinations:Array = ['London', 'Houston', 
'Orlando', 'Los Angeles', 'Seattle'];
+                               var airlines:Array = ['Green Jet', 'Orange 
Jet', 'Yellow Jet', 'Blue Jet', 'Red Jet'];
+                               var dates:Array = ['March 23-29', 'April 
23-29', 'May 1-3', 'May 10-13', 'June 6'];
+                               
+                               // create a collection of random flights
+                               for (var i:int = 0; i < nItems; i++){
+                                       var temp:Object = new Object();
+                                       var random:int = Math.random() * 5;
+                                       
+                                       temp.start = sources[random];
+                                       temp.end = destinations[random];
+                                       temp.details = dates[random] + ', ' + 
airlines[random] + " (Flight " + i + ")";
+                                       ac.addItem(temp);
+                               }
+                               
+                               return ac;
+                               
+                       }
+               ]]>
+       </fx:Script>
+       
+       <s:Panel title="DataGroup with Virtual Layout" width="100%" 
height="100%">
+               
+               <s:layout>
+                       <s:VerticalLayout paddingLeft="10" paddingRight="10" 
paddingTop="10" paddingBottom="10"/>
+               </s:layout>
+               
+               <s:Scroller horizontalCenter="0" top="10">
+                       <s:DataGroup width="600" height="123" 
clipAndEnableScrolling="true" dataProvider="{generateDataProvider(9000)}">
+                               <s:layout>
+                                       <s:VerticalLayout gap="1" 
useVirtualLayout="true" />
+                               </s:layout>
+                               <s:itemRenderer>
+                                       <fx:Component>
+                                               <s:ItemRenderer width="600" 
height="20">
+                                                       <s:states>
+                                                               <s:State 
name="normal" />
+                                                               <s:State 
name="hovered" />
+                                                               <s:State 
name="selected" />
+                                                       </s:states>
+                                                       
+                                                       <fx:Script>
+                                                               <![CDATA[
+                                                                       
override public function set data(value:Object):void {
+                                                                               
super.data = value;
+                                                                               
+                                                                               
if (data == null) // a renderer's data is set to null when it goes out of view
+                                                                               
        return;
+                                                                               
+                                                                               
txtStart.text = data.start;
+                                                                               
txtEnd.text = data.end;
+                                                                               
txtDetails.text = data.details;
+                                                                       }
+                                                               ]]>
+                                                       </fx:Script>
+                                                       
+                                                       <s:transitions>
+                                                               <mx:Transition 
fromState="normal" toState="hovered">
+                                                                       
<s:Animate target="{flightPlan}" duration="200">
+                                                                               
<s:SimpleMotionPath property="width" />
+                                                                       
</s:Animate>
+                                                               </mx:Transition>
+                                                               <mx:Transition 
fromState="hovered" toState="normal">
+                                                                       
<s:Animate target="{flightPlan}" duration="200" >
+                                                                               
<s:SimpleMotionPath property="width" />
+                                                                       
</s:Animate>
+                                                               </mx:Transition>
+                                                       </s:transitions>
+                                                       
+                                                       <s:Rect left="0" 
right="0" top="0" bottom="0" radiusX="5" radiusY="5">
+                                                               <s:fill>
+                                                                       
<s:SolidColor color="#E1ECF4" />
+                                                               </s:fill>
+                                                       </s:Rect>
+                                                       
+                                                       <s:HGroup 
verticalAlign="middle">
+                                                               <s:Group 
id="flightPlan" height="20" width="300" width.hovered="330">
+                                                                       <s:Rect 
left="0" right="0" top="0" bottom="0" radiusX="5" radiusY="5">
+                                                                               
<s:fill>
+                                                                               
        <s:SolidColor color="#65A3CE" color.hovered="#65A3FF" />
+                                                                               
</s:fill>
+                                                                       
</s:Rect>
+                                                                       
<s:Label id="txtStart" color="#FFFFFF" fontWeight="bold" left="20" 
verticalCenter="2" />
+                                                                       
<s:Label id="txtEnd" color="#FFFFFF" fontWeight="bold" right="20" 
verticalCenter="2" textAlign="right" />
+                                                               </s:Group>
+                                                               <s:Label 
id="txtDetails" color="#32353f" fontSize="11" />
+                                                       </s:HGroup>
+                                               </s:ItemRenderer>
+                                       </fx:Component>
+                               </s:itemRenderer>
+                       </s:DataGroup>
+               </s:Scroller>   
+               <s:Label width="90%" horizontalCenter="0" bottom="40"
+                                text="Apache Flex DataGroups support 
virtualization. Virtualization is an optimization for layout and rendering 
+that reduces the footprint and startup time for containers with large numbers 
of items. This sample shows how
+virtualization can be achieved by only creating enough objects for the items 
currently being displayed. The 
+useVirtualLayout property should be set on the layout object to achieve 
virtualization."/>
+       </s:Panel>
+       
+</s:Module>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/DateChooserExample.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmodules/src/spark/controls/DateChooserExample.mxml 
b/tourdeflexmodules/src/spark/controls/DateChooserExample.mxml
new file mode 100644
index 0000000..c184ba3
--- /dev/null
+++ b/tourdeflexmodules/src/spark/controls/DateChooserExample.mxml
@@ -0,0 +1,71 @@
+<?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.
+
+-->
+<!-- Simple example to demonstrate DateChooser control. -->
+<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009";  
+                          xmlns:s="library://ns.adobe.com/flex/spark" 
+                          xmlns:mx="library://ns.adobe.com/flex/mx">
+       
+       <fx:Script>
+               <![CDATA[
+               
+                       // Event handler function to write the selected
+                       // date to the Label control.        
+                       private function displayDate(date:Date):void {
+                               if (date == null)
+                                       selection.text = "Date selected: ";
+                               else
+                                       selection.text = "Date selected: " + 
date.getFullYear().toString() +
+                                                                               
'/' + (date.getMonth()+1).toString() + '/' + date.getDate();
+                       }
+               ]]>
+       </fx:Script>
+       
+       <fx:Declarations>
+               <mx:DateFormatter id="df"/>
+       </fx:Declarations>
+
+       <s:Panel title="DateChooser Control Example" width="100%" height="100%">
+
+               <s:layout>
+                       <s:HorizontalLayout paddingLeft="10" paddingRight="10" 
paddingTop="10" paddingBottom="10"/>
+               </s:layout>
+               
+               <s:VGroup>
+                       <s:Label width="100%" color="0x000000" text="Simple 
DateChooser Control"/>
+                       <mx:DateChooser id="dateChooser1" 
yearNavigationEnabled="true"  height="145"   
+                                                       
change="displayDate(DateChooser(event.target).selectedDate)" color="0x000000"/>
+                       <s:Label id="selection" text="Date selected:"/>
+               </s:VGroup>
+               
+               <s:VGroup>
+                       <s:Label width="100%" color="0x000000" text="Disable 
dates before Oct 31st, 2008"/>
+                       <mx:DateChooser id="dateChooser2" 
yearNavigationEnabled="true" width="175" height="145"
+                                                       disabledRanges="{[ 
{rangeEnd: new Date(2008, 9, 31)} ]}" color="0x000000"/>
+                       <s:Label text="Date selected: 
{df.format(dateChooser2.selectedDate)}"/>
+               </s:VGroup>
+               
+               <s:VGroup width="30%">
+                       <mx:Text width="100%" text="Select a date in the 
DateChooser control."/>
+                       <mx:Text width="100%" text="Select it again while 
holding down the Control key to clear it."/>
+               </s:VGroup>
+               
+       </s:Panel>    
+       
+</s:Module>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/DateFieldExample.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmodules/src/spark/controls/DateFieldExample.mxml 
b/tourdeflexmodules/src/spark/controls/DateFieldExample.mxml
new file mode 100644
index 0000000..6b544cd
--- /dev/null
+++ b/tourdeflexmodules/src/spark/controls/DateFieldExample.mxml
@@ -0,0 +1,85 @@
+<?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.
+
+-->
+<!-- Simple example to demonstrate the DateField control. -->
+<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009";  
+                          xmlns:s="library://ns.adobe.com/flex/spark" 
+                          xmlns:mx="library://ns.adobe.com/flex/mx">
+       
+       <fx:Script>
+               <![CDATA[
+                       
+                       // Event handler for the DateField change event.
+                       private function dateChanged(date:Date):void {
+                               if (date == null)
+                                       selection.text = "Date selected: ";     
           
+                               else
+                                       selection.text = "Date selected: " + 
date.getFullYear().toString() + 
+                                               '/' + 
(date.getMonth()+1).toString() + '/' + date.getDate();
+                       }
+               ]]>
+       </fx:Script>
+       
+       <fx:Declarations>
+               <mx:DateFormatter id="df"/>
+       </fx:Declarations>
+       
+       <s:Panel title="DateField Control Example" width="100%" height="100%">
+
+               <s:layout>
+                       <s:HorizontalLayout paddingLeft="10" paddingRight="10" 
paddingTop="10" paddingBottom="10"/>
+               </s:layout>
+               
+               <s:BorderContainer width="50%" borderColor="0xDCDCDC" 
height="100%" borderStyle="solid">
+                       
+                       <s:layout>
+                               <s:VerticalLayout paddingBottom="5" 
paddingLeft="5" paddingRight="5" paddingTop="5"/>
+                       </s:layout>
+                       
+                       <s:Label id="selection" text="Date selected:" />
+                       
+                       <mx:DateField id="dateField1" 
yearNavigationEnabled="true"
+                                                 
change="dateChanged(DateField(event.target).selectedDate)" color="0x000000"/>
+                       
+                       <s:Label text="Basic DateField:"/>
+                       
+                       
+                       <s:Label width="100%"
+                                        text="Select a date in the DateField 
control. Select it again while holding down the Control key to clear it."/>
+                       
+               </s:BorderContainer>
+               
+               <s:BorderContainer width="50%" borderColor="0xDCDCDC" 
height="100%" borderStyle="solid">
+                       
+                       <s:layout>
+                               <s:VerticalLayout paddingBottom="5" 
paddingLeft="5" paddingRight="5" paddingTop="5"/>
+                       </s:layout>
+                       
+                       <s:Label text="Date selected: 
{df.format(dateField2.selectedDate)}"/>
+                       
+                       <mx:DateField id="dateField2" 
yearNavigationEnabled="true" 
+                                                 disabledRanges="{[ {rangeEnd: 
new Date(2008, 9, 31)} ]}" color="0x000000"/>
+                       
+                       <s:Label text="Disable dates on or before Oct 31, 
2008."/>
+                       
+               </s:BorderContainer>
+               
+       </s:Panel>
+       
+</s:Module>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/DropdownExample.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmodules/src/spark/controls/DropdownExample.mxml 
b/tourdeflexmodules/src/spark/controls/DropdownExample.mxml
new file mode 100644
index 0000000..389c8b9
--- /dev/null
+++ b/tourdeflexmodules/src/spark/controls/DropdownExample.mxml
@@ -0,0 +1,86 @@
+<?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.
+
+-->
+<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009"; 
+                          xmlns:s="library://ns.adobe.com/flex/spark" 
+                          xmlns:mx="library://ns.adobe.com/flex/mx">
+       
+       <fx:Script>
+               <![CDATA[
+                       import spark.events.IndexChangeEvent;
+                       import mx.collections.ArrayCollection;
+                       
+                       [Bindable]
+                       public var depts:ArrayCollection = new ArrayCollection([
+                               {label:"Electronics", data:1}, 
+                               {label:"Home Goods", data:2}, 
+                               {label:"Toys", data:3} ]);
+                       
+                       [Bindable]
+                       public var elecItems:ArrayCollection = new 
ArrayCollection([
+                               {label:"Samsung 25in TV", data:299}, 
+                               {label:"Panasonic Plasma", data:999}, 
+                               {label:"Sony LCD", data:899} ]);
+                       
+                       [Bindable]
+                       public var homeItems:ArrayCollection = new 
ArrayCollection([
+                               {label:"Blendtec Blender", data:399}, 
+                               {label:"Hoover Vaccuum", data:599}, 
+                               {label:"Black & Decker Toaster", data:99} ]);
+                       
+                       [Bindable]
+                       public var toyItems:ArrayCollection = new 
ArrayCollection([
+                               {label:"Nintendo DS", data:120}, 
+                               {label:"Lego's Star Wars Set", data:50}, 
+                               {label:"Leapfrog Leapster", data:30} ]);
+                       
+                       private function 
handleDepartmentSelected(event:IndexChangeEvent):void
+                       {
+                               list2.prompt="Select Item";
+                               list2.selectedIndex=-1; // reset so prompt shows
+                               if (list1.selectedIndex==0)
+                                       list2.dataProvider=elecItems;
+                               else if (list1.selectedIndex==1)
+                                       list2.dataProvider=homeItems;
+                               else if (list1.selectedIndex==2)
+                                       list2.dataProvider=toyItems;
+                               
+                       }
+                       
+               ]]>
+       </fx:Script>
+       
+       <s:Panel title="DropDownList Sample" width="100%" height="100%">
+               
+               <s:VGroup width="100%" height="100%" left="120" top="5">
+                       <s:Label text="RJ's Warehouse Price Checker" 
fontSize="18" />
+                       <s:DropDownList id="list1" width="50%" 
dataProvider="{depts}" labelField="label" 
+                                                       prompt="Select Category"
+                                                       
change="handleDepartmentSelected(event)"/>
+                       <s:Label id="text2"/>
+                       <s:DropDownList id="list2" width="50%" 
labelField="label" prompt="None"/>
+                       <mx:Spacer height="10"/>
+                       <s:Label fontSize="14" color="0x336699" text="The price 
of item: {list2.selectedItem.label} is: ${list1.selectedItem.data}" 
verticalAlign="bottom"/>
+               </s:VGroup>
+               <s:Label top="10" right="10" width="250" 
verticalAlign="justify" 
+                                         text="The DropDownList control 
contains a drop-down list from which the user can select a single value. Its 
functionality is very similar to that of the SELECT form element in HTML.
+The DropDownList control consists of the anchor button, prompt area, and 
drop-down-list, Use the anchor button to open and close the drop-down-list. The 
prompt area displays a prompt String, or the selected item in the 
drop-down-list."/>
+       </s:Panel>
+       
+</s:Module>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/FormExample.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmodules/src/spark/controls/FormExample.mxml 
b/tourdeflexmodules/src/spark/controls/FormExample.mxml
new file mode 100644
index 0000000..a3afe0f
--- /dev/null
+++ b/tourdeflexmodules/src/spark/controls/FormExample.mxml
@@ -0,0 +1,82 @@
+<?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.
+
+-->
+<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009";  
+                          xmlns:s="library://ns.adobe.com/flex/spark" 
+                          xmlns:mx="library://ns.adobe.com/flex/mx">
+       
+       <fx:Declarations>
+               <fx:Model id="checkModel">
+                       <User>
+                               <FirstName>{fname.text}</FirstName>
+                               <DOB>{dob.text}</DOB>
+                               <Email>{email.text}</Email>
+                               <Age>{age.text}</Age>
+                               <Zip>{zip.text}</Zip>
+                               <Phone>{phone.text}</Phone>
+                       </User>
+               </fx:Model>
+               
+               <mx:StringValidator source="{fname}" property="text" 
minLength="4" maxLength="12"/>
+               <mx:PhoneNumberValidator source="{phone}" property="text"/>
+               <mx:DateValidator source="{dob}" property="text"/>
+               <mx:EmailValidator source="{email}" property="text"/>
+               <mx:NumberValidator source="{age}" property="text" 
integerError="Enter Integer value"
+                                                       minValue="18" 
maxValue="100" domain="int"/>
+               <mx:ZipCodeValidator source="{zip}" property="text"/>
+               
+       </fx:Declarations>
+       
+       <s:Panel title="Form Container: Moving from one form field to another 
triggers the validator" width="100%" height="100%">
+               
+               <s:layout>
+                       <s:VerticalLayout paddingLeft="10" paddingRight="10" 
paddingTop="10" paddingBottom="10"/>
+               </s:layout>
+
+        <mx:Form width="100%" paddingTop="0">
+            <mx:FormHeading fontSize="10"  label="Enter values into the form." 
paddingTop="0" />
+
+            <mx:FormItem label="First name">
+                <s:TextInput id="fname" width="200"/>
+            </mx:FormItem>
+
+            <mx:FormItem label="Date of birth (mm/dd/yyyy)">
+                <s:TextInput id="dob" width="200"/>
+            </mx:FormItem>
+
+            <mx:FormItem label="E-mail address">
+                <s:TextInput id="email" width="200"/>
+            </mx:FormItem>
+
+            <mx:FormItem label="Age">
+                <s:TextInput id="age" width="200"/>
+            </mx:FormItem>
+
+            <mx:FormItem label="Zip">
+                <s:TextInput id="zip" width="200"/>
+            </mx:FormItem>
+
+            <mx:FormItem label="Phone">
+                <s:TextInput id="phone" width="200"/>
+            </mx:FormItem>
+        </mx:Form>
+        
+       </s:Panel>
+       
+</s:Module>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/ImageExample.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmodules/src/spark/controls/ImageExample.mxml 
b/tourdeflexmodules/src/spark/controls/ImageExample.mxml
new file mode 100644
index 0000000..fb45115
--- /dev/null
+++ b/tourdeflexmodules/src/spark/controls/ImageExample.mxml
@@ -0,0 +1,57 @@
+<?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.
+
+-->
+<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009";  
+                          xmlns:s="library://ns.adobe.com/flex/spark" 
+                          xmlns:mx="library://ns.adobe.com/flex/mx">
+       
+       <fx:Script>
+               <![CDATA[
+                       private function smoothImage(ev:Event):void{
+               //set image smoothing so image looks better when transformed.
+                               var bmp:Bitmap = ev.target.content as Bitmap;
+                               bmp.smoothing = true;
+                       }
+               ]]>
+       </fx:Script>
+       
+       <s:Panel title="Image Samples" width="100%" height="100%">
+
+               <s:layout>
+                       <s:HorizontalLayout paddingLeft="10" paddingRight="10" 
paddingTop="10" paddingBottom="10"/>
+               </s:layout>
+               
+               <s:BorderContainer width="50%" height="100%">
+                       <s:layout>
+                               <s:VerticalLayout paddingBottom="5" 
paddingLeft="5" paddingRight="5" paddingTop="5"/>
+                       </s:layout>
+                       <s:Label text="Sample of image embeded at compile 
time." />
+                       <mx:Image id="embededImage" width="50%" height="50%" 
source="@Embed('assets/ApacheFlexLogo.png')" 
creationComplete="smoothImage(event)"/>
+               </s:BorderContainer>
+               
+               <s:BorderContainer width="50%" height="100%">
+                       <s:layout>
+                               <s:VerticalLayout paddingBottom="5" 
paddingLeft="5" paddingRight="5" paddingTop="5"/>
+                       </s:layout>
+                       <s:Label text="Sample of image loaded at run-time." />
+                       <mx:Image id="loadedImage" width="50%" height="50%" 
source="assets/ApacheFlexLogo.png" creationComplete="smoothImage(event)"/>
+               </s:BorderContainer>
+       </s:Panel>
+       
+</s:Module>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/Item.as
----------------------------------------------------------------------
diff --git a/tourdeflexmodules/src/spark/controls/Item.as 
b/tourdeflexmodules/src/spark/controls/Item.as
new file mode 100644
index 0000000..f5f0a30
--- /dev/null
+++ b/tourdeflexmodules/src/spark/controls/Item.as
@@ -0,0 +1,62 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+{
+    [Bindable]
+    public class Item
+    {
+        private var _name:String;
+        private var _photo:String;
+               private var _price:String;
+        
+        public function Item()
+        {
+        }
+        
+        public function get name():String
+        {
+            return _name;
+        }
+               
+               public function set name(name:String):void
+               {
+                       _name = name;
+               }
+
+               public function get photo():String
+        {
+            return _photo;
+        }
+               
+               public function set photo(photo:String):void
+               {
+                       _photo = photo;
+               }
+        
+               public function get price():String
+               {
+                       return _price;
+               }
+               public function set price(price:String):void
+               {
+                       _price = price;
+               }
+
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/LinkBarExample.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmodules/src/spark/controls/LinkBarExample.mxml 
b/tourdeflexmodules/src/spark/controls/LinkBarExample.mxml
new file mode 100644
index 0000000..72259c6
--- /dev/null
+++ b/tourdeflexmodules/src/spark/controls/LinkBarExample.mxml
@@ -0,0 +1,82 @@
+<?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.
+
+-->
+<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009";  
+                          xmlns:s="library://ns.adobe.com/flex/spark" 
+                          xmlns:mx="library://ns.adobe.com/flex/mx">
+       
+       <s:Panel title="LinkBar Control" width="100%" height="100%">
+               
+               <s:layout>
+                       <s:VerticalLayout paddingLeft="10" paddingRight="10" 
paddingTop="10" paddingBottom="10"/>
+               </s:layout>
+               
+               <s:Label width="100%" textAlign="center"
+                                text="Select a link in the LinkBar control to 
set the active child of the ViewStack container."/>
+               
+               <mx:LinkBar color="0x0050AA" horizontalAlign="center" 
width="100%" fontWeight="bold" dataProvider="{myViewStack}" 
borderColor="0xACACAC" borderStyle="solid"/>
+               
+               <!-- Define the ViewStack and the three child containers -->
+               <mx:ViewStack id="myViewStack" borderStyle="solid" width="100%" 
height="80%">
+                       
+                       <s:NavigatorContent id="search" label="Customer Info" 
backgroundColor="0xDCDCDC" fontWeight="bold">
+                               <s:layout>
+                                       <s:VerticalLayout 
horizontalAlign="center" />
+                               </s:layout>
+                               
+                               <s:Label text="Search Panel" width="100%" 
textAlign="center" paddingTop="10" />
+                               <s:HGroup>
+                                       <s:TextInput id="Searchtxt" width="200" 
/>
+                                       <s:Button label="search" 
click="Searchtxt.text=''" />
+                               </s:HGroup>
+                       </s:NavigatorContent>
+                       
+                       <s:NavigatorContent id="custInfo" label="Customer Info" 
backgroundColor="0xDCDCDC" width="100%" height="100%">
+                               
+                               <s:layout>
+                                       <s:VerticalLayout 
horizontalAlign="center" />
+                               </s:layout>
+                               
+                               <s:Label text="Customer Info" width="100%" 
textAlign="center" paddingTop="10" />
+                               <s:HGroup>
+                                       <s:Label text="Email Address"/>
+                                       <s:TextInput id="email" width="200"/>
+                                       <s:Button label="Submit" 
click="email.text=''" />
+                               </s:HGroup>
+                               
+                       </s:NavigatorContent>
+                       
+                       <s:NavigatorContent id="accountInfo" label="Account 
Info" backgroundColor="0xDCDCDC" width="100%" height="100%" fontWeight="bold" >
+                               
+                               <s:layout>
+                                       <s:VerticalLayout 
horizontalAlign="center" />
+                               </s:layout>
+                               
+                               <s:Label text="Account Info" width="100%" 
textAlign="center" paddingTop="10" />
+                               <s:HGroup>
+                                       <mx:Button label="Purchases" />
+                                       <mx:Button label="Sales" />
+                                       <mx:Button label="Reports" />
+                               </s:HGroup>
+                       </s:NavigatorContent>
+                       
+               </mx:ViewStack>
+               
+       </s:Panel>
+</s:Module>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/LinkButtonExample.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmodules/src/spark/controls/LinkButtonExample.mxml 
b/tourdeflexmodules/src/spark/controls/LinkButtonExample.mxml
new file mode 100644
index 0000000..42b1224
--- /dev/null
+++ b/tourdeflexmodules/src/spark/controls/LinkButtonExample.mxml
@@ -0,0 +1,41 @@
+<?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.
+
+-->
+<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009";  
+                          xmlns:s="library://ns.adobe.com/flex/spark" 
+                          xmlns:mx="library://ns.adobe.com/flex/mx">
+       
+       <fx:Script>
+               <![CDATA[
+                       import mx.controls.Alert;
+               ]]>
+       </fx:Script>
+       
+       <s:Panel title="LinkButton Sample" width="100%" height="100%">
+
+               <s:layout>
+                       <s:VerticalLayout paddingLeft="10" paddingRight="10" 
paddingTop="10" paddingBottom="10"/>
+               </s:layout>
+               
+               <s:Label text="Sample of image embeded at compile time." />
+               <mx:LinkButton label="LinkButton Control" color="0x3380DD" 
click="{Alert.show('LinkButton Pressed');}"
+                        textDecoration="underline" fontWeight="normal" 
icon="@Embed('assets/arrow_icon.png')" />
+       </s:Panel>
+       
+</s:Module>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/ListDataPagingExample.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmodules/src/spark/controls/ListDataPagingExample.mxml 
b/tourdeflexmodules/src/spark/controls/ListDataPagingExample.mxml
new file mode 100644
index 0000000..848ed96
--- /dev/null
+++ b/tourdeflexmodules/src/spark/controls/ListDataPagingExample.mxml
@@ -0,0 +1,80 @@
+<?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.
+
+-->
+<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009";
+                          xmlns:s="library://ns.adobe.com/flex/spark"
+                          xmlns:local="*"
+                          initialize="loadSecurity()">
+       
+       <fx:Script>
+               <![CDATA[
+                       import mx.collections.IList;
+                       import mx.collections.errors.ItemPendingError;
+                       import mx.rpc.AsyncResponder;
+                       import mx.rpc.AsyncToken;
+                       import mx.rpc.events.FaultEvent;
+                       import mx.rpc.events.ResultEvent;
+                       
+                       private function loadSecurity():void 
+                       {
+                               
Security.loadPolicyFile("http://www.jamesward.com/census2-tests/crossdomain.xml";);
+                       }
+                       
+                       private function 
handleCreatePendingItemFunction(index:int, ipe:ItemPendingError):Object {
+                               return {};
+                       }
+                       
+                       private function loadItems(list:IList, start:uint, 
count:uint):void
+                       {
+                               var asyncToken:AsyncToken = 
ro.getElements(start, count);
+                               asyncToken.addResponder(new 
AsyncResponder(function result(event:ResultEvent, token:Object = null):void {
+                                       var v:Vector.<Object> = new 
Vector.<Object>();
+                                       for each (var i:Object in event.result)
+                                       {
+                                               v.push(i);
+                                       }
+                                       pagedList.storeItemsAt(v, token as int);
+                               }, function fault(event:FaultEvent, 
token:Object = null):void {
+                                       trace(event.fault.faultString);
+                               }, start));
+                       }
+               ]]>
+       </fx:Script>
+       
+       <fx:Declarations>
+               <local:PagedList id="pagedList" pageSize="100" length="100000" 
loadItemsFunction="loadItems"/>
+               <s:AsyncListView id="asyncListView" list="{pagedList}" 
createPendingItemFunction="handleCreatePendingItemFunction"/>
+               <s:RemoteObject id="ro" destination="census" 
endpoint="http://www.jamesward.com/census2-tests/messagebroker/amf"/>
+       </fx:Declarations>
+       
+       <s:DataGrid dataProvider="{asyncListView}" width="100%" height="100%">
+               <s:columns>
+                       <s:ArrayList>
+                               <s:GridColumn dataField="id"/>
+                               <s:GridColumn dataField="age"/>
+                               <s:GridColumn dataField="classOfWorker"/>
+                               <s:GridColumn dataField="education"/>
+                               <s:GridColumn dataField="maritalStatus"/>
+                               <s:GridColumn dataField="race"/>
+                               <s:GridColumn dataField="sex"/>
+                       </s:ArrayList>
+               </s:columns>
+       </s:DataGrid>
+       
+</s:Module>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/ListExample.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmodules/src/spark/controls/ListExample.mxml 
b/tourdeflexmodules/src/spark/controls/ListExample.mxml
new file mode 100644
index 0000000..69c416d
--- /dev/null
+++ b/tourdeflexmodules/src/spark/controls/ListExample.mxml
@@ -0,0 +1,103 @@
+<?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.
+
+-->
+<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009"; 
+                          xmlns:s="library://ns.adobe.com/flex/spark" 
+                          xmlns:mx="library://ns.adobe.com/flex/mx"
+                          xmlns:local="*">
+       <fx:Script>
+               <![CDATA[
+                       import spark.events.IndexChangeEvent;
+                       
+                       [Bindable]
+                       private var totalPrice:Number = 0.00;
+                       
+                       protected function 
itemIndexChangeHandler(event:IndexChangeEvent):void
+                       {
+                               if (ta.text.length!=0) 
+                                       
ta.text=ta.text+"\n"+myList.selectedItem.name + " $"+myList.selectedItem.price;
+                               else ta.text=myList.selectedItem.name+ " 
$"+myList.selectedItem.price;
+                               totalPrice += Number(myList.selectedItem.price);
+                       }
+                       protected function 
buyBtn_clickHandler(event:MouseEvent):void
+                       {
+                               txtResponse.text="Thank you for your order 
totaling: " + usdFormatter.format(totalPrice) + "\nItems will ship in 3 days.";
+                       }
+
+               ]]>
+       </fx:Script>
+       <fx:Declarations>
+               <mx:CurrencyFormatter id="usdFormatter" precision="2" 
currencySymbol="$"
+                                                         
decimalSeparatorFrom="." decimalSeparatorTo="." useNegativeSign="true"
+                                                         
useThousandsSeparator="true" alignSymbol="left"/>
+       </fx:Declarations>
+       <fx:Style>
+               @namespace "library://ns.adobe.com/flex/spark";
+               #vGrp { 
+                       color: #000000; 
+                       fontFamily: "Arial";
+                       fontSize: "12";
+               }
+       </fx:Style>
+               
+       <s:Panel title="List Sample" width="100%" height="100%">
+               
+               <s:layout>
+                       <s:VerticalLayout paddingLeft="10" paddingRight="10" 
paddingTop="10" paddingBottom="10"/>
+               </s:layout>
+
+               <s:HGroup verticalAlign="middle">
+                       <s:Label text="Select items to add, price will be shown 
when added:" 
+                                                 verticalAlign="bottom"/>
+               </s:HGroup>
+               <s:HGroup>
+                       <s:List id="myList" height="157" width="160" 
+                                       itemRenderer="MyListItemRenderer" 
+                                       change="itemIndexChangeHandler(event)">
+                               <s:dataProvider>
+                                       <s:ArrayCollection>
+                                               <local:Item name="Backpack" 
photo="assets/ApacheFlexLogo.png" price="29.99"/>
+                                               <local:Item name="Boots" 
photo="assets/ApacheFlexLogo.png" price="69.99"/>
+                                               <local:Item name="Compass" 
photo="assets/ApacheFlexLogo.png" price="12.99"/>
+                                               <local:Item name="Goggles" 
photo="assets/ApacheFlexLogo.png" price="14.99"/>
+                                               <local:Item name="Helmet" 
photo="assets/ApacheFlexLogo.png" price="47.99"/>
+                                       </s:ArrayCollection>
+                               </s:dataProvider>
+                       </s:List>
+                       <s:TextArea id="ta" width="{myList.width}" 
height="{myList.height}" 
+                                               color="0xAE0A0A" 
fontWeight="bold"/>
+                       <s:VGroup>
+                               <mx:Spacer height="10"/>
+                               <s:Label text="Total of Items selected: 
{usdFormatter.format(this.totalPrice)}"/> 
+                               <s:Button id="buyBtn" horizontalCenter="0" 
bottom="30" label="Buy Now!" 
+                                                 fontWeight="bold" 
+                                                 
click="buyBtn_clickHandler(event)"/>
+                               <s:Label id="txtResponse"/>
+                       </s:VGroup>
+               </s:HGroup>
+
+               <s:Label bottom="15" horizontalCenter="0" width="95%" 
verticalAlign="justify" 
+                                         text="The Spark List control displays 
a list of data items. Its functionality is
+very similar to that of the SELECT form element in HTML. The user can select 
one or more items from the list. 
+The List control automatically displays horizontal and vertical scroll bar 
when the list items do not fit 
+the size of the control."/>
+       </s:Panel>
+       
+       
+</s:Module>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/MenuExample.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmodules/src/spark/controls/MenuExample.mxml 
b/tourdeflexmodules/src/spark/controls/MenuExample.mxml
new file mode 100644
index 0000000..c86913e
--- /dev/null
+++ b/tourdeflexmodules/src/spark/controls/MenuExample.mxml
@@ -0,0 +1,93 @@
+<?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.
+
+-->
+<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009"; 
+                          xmlns:s="library://ns.adobe.com/flex/spark" 
+                          xmlns:mx="library://ns.adobe.com/flex/mx">
+       <fx:Script>
+               <![CDATA[
+                       import mx.controls.Menu;
+                       import mx.events.FlexEvent;
+                       import mx.events.MenuEvent;
+                       
+                       protected var myMenu:Menu; 
+                       
+                       protected function showHandler(event:MouseEvent):void
+                       {
+                               myMenu = Menu.createMenu(null, myMenuData, 
false);
+                               myMenu.labelField="@label";
+                               myMenu.show(90, 35);
+                               
myMenu.addEventListener(MenuEvent.CHANGE,onMenuChange);
+                       }
+
+                       protected function hideHandler(event:MouseEvent):void
+                       {
+                               myMenu.hide();
+                       }
+                       
+                       protected function onMenuChange(event:MenuEvent):void
+                       {
+                               lblSelected.text =  event.label;
+                       }
+
+               ]]>
+       </fx:Script>
+       
+
+       <fx:Declarations>
+               <fx:XML format="e4x" id="myMenuData">
+                       <root>
+                               <menuitem label="MenuItem A" >
+                                       <menuitem label="SubMenuItem A-1" 
enabled="false"/>
+                                       <menuitem label="SubMenuItem A-2"/>
+                               </menuitem>
+                               <menuitem label="MenuItem B" type="check" 
toggled="true"/>
+                               <menuitem label="MenuItem C" type="check" 
toggled="false"/>
+                               <menuitem type="separator"/>     
+                               <menuitem label="MenuItem D" >
+                                       <menuitem label="SubMenuItem D-1" 
type="radio" 
+                                                         groupName="one"/>
+                                       <menuitem label="SubMenuItem D-2" 
type="radio" 
+                                                         groupName="one" 
toggled="true"/>
+                                       <menuitem label="SubMenuItem D-3" 
type="radio" 
+                                                         groupName="one"/>
+                               </menuitem>
+                       </root>
+               </fx:XML>
+       </fx:Declarations>
+       
+       <s:Panel title="Menu Sample" width="100%" height="100%">
+               
+               <s:layout>
+                       <s:VerticalLayout paddingLeft="10" paddingRight="10" 
paddingTop="10" paddingBottom="10"/>
+               </s:layout>
+               
+               <s:HGroup bottom="15" horizontalCenter="0" 
verticalAlign="middle">
+                       <s:Button label="Show Menu" click="showHandler(event)" 
/>
+                       <s:Button label="Hide Menu" click="hideHandler(event)" 
/>
+                       <s:Label text="Menu Item Selected:" fontWeight="bold" />
+                       <s:Label id="lblSelected" />
+               </s:HGroup>
+               <s:Label width="220" top="15" right="50"
+                                text="The Menu control is a pop-up control 
that contains a menu of individually selectable choices. You use ActionScript 
+                                to create a Menu control that pops up in 
response to a user action, typically as part of an event listener."/> 
+
+       </s:Panel>
+       
+</s:Module>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/MyListItemRenderer.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmodules/src/spark/controls/MyListItemRenderer.mxml 
b/tourdeflexmodules/src/spark/controls/MyListItemRenderer.mxml
new file mode 100644
index 0000000..1f00f1d
--- /dev/null
+++ b/tourdeflexmodules/src/spark/controls/MyListItemRenderer.mxml
@@ -0,0 +1,39 @@
+<!--
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<s:ItemRenderer
+       xmlns:fx="http://ns.adobe.com/mxml/2009";
+       xmlns:s="library://ns.adobe.com/flex/spark"
+       xmlns:mx="library://ns.adobe.com/flex/mx">
+       
+       <s:states>
+               <s:State name="normal"/>
+               <s:State name="hovered"/>
+               <s:State name="selected" />
+       </s:states>
+       
+       <s:layout>
+               <s:VerticalLayout/>
+       </s:layout>
+       
+       <s:HGroup verticalAlign="middle" paddingTop="0" paddingBottom="0">
+               <mx:Image source="{data.photo}" width="50" height="40" 
alpha.hovered=".5"/>
+               <s:Label text="{data.name}" color.hovered="0x1313cd" 
color.selected="0x000000" verticalAlign="bottom"/>
+       </s:HGroup>
+       
+</s:ItemRenderer>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/MyTextFlow.xml
----------------------------------------------------------------------
diff --git a/tourdeflexmodules/src/spark/controls/MyTextFlow.xml 
b/tourdeflexmodules/src/spark/controls/MyTextFlow.xml
new file mode 100644
index 0000000..8b787ea
--- /dev/null
+++ b/tourdeflexmodules/src/spark/controls/MyTextFlow.xml
@@ -0,0 +1,23 @@
+<?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.
+
+-->
+<!-- 
http://blog.flexexamples.com/2009/08/11/setting-text-in-a-spark-richtext-control-in-flex-4/
 -->
+<TextFlow xmlns="http://ns.adobe.com/textLayout/2008"; 
whiteSpaceCollapse="preserve">
+    <p><span>This is an example of external text being included that is using 
the </span> <span fontWeight="bold">Text Layout Framework </span> <span> 
markup.</span></p>
+</TextFlow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/NumericStepperExample.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmodules/src/spark/controls/NumericStepperExample.mxml 
b/tourdeflexmodules/src/spark/controls/NumericStepperExample.mxml
new file mode 100644
index 0000000..79f9856
--- /dev/null
+++ b/tourdeflexmodules/src/spark/controls/NumericStepperExample.mxml
@@ -0,0 +1,87 @@
+<?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.
+
+-->
+<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009"; 
+                          xmlns:s="library://ns.adobe.com/flex/spark" 
+                          xmlns:mx="library://ns.adobe.com/flex/mx">
+
+       <fx:Script>
+               <![CDATA[
+                       protected function clickHandler(event:MouseEvent):void
+                       {
+                               responseText.text = "Thank you for your 
purchase of " +this.numStepper.value + " tickets!";
+                       }
+               ]]>
+       </fx:Script>
+
+       <fx:Style>
+               @namespace "library://ns.adobe.com/flex/spark";
+               @namespace mx "library://ns.adobe.com/flex/mx";
+               #formHead { 
+                       fontSize: 18;
+                       fontFamily: Arial;
+                       fontWeight: bold;
+               }
+               mx|FormItem { 
+                       fontSize: 12;
+                       fontFamily: Arial;
+                       fontWeight: bold;
+               }       
+                       
+       </fx:Style>
+       
+       <s:Panel title="NumericStepper Sample" width="100%" height="100%">
+               
+               <s:layout>
+                       <s:HorizontalLayout paddingLeft="10" paddingRight="10" 
paddingTop="10" paddingBottom="10"/>
+               </s:layout>
+                       
+               <s:Label width="250" verticalAlign="justify" 
+                                text="The NumericStepper control allows you to 
select a number from an
+ordered set. The NumericStepper control consists of a single-line input text 
field and a pair of arrow buttons
+for stepping through the valid values. You can use the Up Arrow and Down arrow 
keys to cycle through the values."/>
+               
+               <mx:Form>
+                       <mx:FormHeading id="formHead" label="Welcome to Ticket 
Grabber!"/>
+                       <mx:FormItem label="Name:">
+                               <s:TextInput id="nameTxt" widthInChars="20"/>
+                       </mx:FormItem>
+                       <mx:FormItem label="Address:">
+                               <s:TextArea widthInChars="20" 
heightInLines="2"/>
+                       </mx:FormItem>
+                       <mx:FormItem label="Phone:">
+                               <s:TextInput id="phoneTxt" widthInChars="20"/>  
+                       </mx:FormItem>
+                       <mx:FormItem label="Select # of tickets:">
+                               <s:NumericStepper id="numStepper" width="55" 
+                                                                 value="0" 
snapInterval="2"/>
+                       </mx:FormItem>
+                       <mx:FormItem>
+                               <s:Button label="Buy Now!" 
click="clickHandler(event)"/>
+                       </mx:FormItem>
+                       <mx:FormItem>
+                               <s:Group>
+                                       <s:Label id="responseText"/>    
+                               </s:Group>
+                       </mx:FormItem>
+               </mx:Form>
+               
+       </s:Panel>
+       
+</s:Module>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/OLAPDataGridExample.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmodules/src/spark/controls/OLAPDataGridExample.mxml 
b/tourdeflexmodules/src/spark/controls/OLAPDataGridExample.mxml
new file mode 100644
index 0000000..1d72c5e
--- /dev/null
+++ b/tourdeflexmodules/src/spark/controls/OLAPDataGridExample.mxml
@@ -0,0 +1,223 @@
+<?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.
+
+-->
+<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009";  
+                          xmlns:s="library://ns.adobe.com/flex/spark" 
+                          xmlns:mx="library://ns.adobe.com/flex/mx"
+                          creationComplete="creationCompleteHandler()">
+       
+       <fx:Script>
+               <![CDATA[
+                       import mx.rpc.AsyncResponder;
+                       import mx.rpc.AsyncToken;
+                       import mx.olap.OLAPQuery;
+                       import mx.olap.OLAPSet;
+                       import mx.olap.IOLAPQuery;
+                       import mx.olap.IOLAPQueryAxis;
+                       import mx.olap.IOLAPCube;
+                       import mx.olap.OLAPResult;
+                       import mx.events.CubeEvent;
+                       import mx.controls.Alert;
+                       import mx.collections.ArrayCollection;
+                       
+                       
+                       //
+                       // Format of Objects in the ArrayCollection:
+                       //
+                       //  data:Object = {
+                       //    customer:"AAA", 
+                       //    product:"ColdFusion",
+                       //    quarter:"Q1"
+                       //    revenue: "100.00" 
+                       //  }
+                       //
+                       
+                       [Bindable]
+                       private var flatData:ArrayCollection = new 
ArrayCollection(
+                       [
+                       {customer:"AAA", product:"ColdFusion", quarter:"Q1", 
revenue:210, cost:25},
+                       {customer:"AAA", product:"Flex", quarter:"Q2", 
revenue:210, cost:25},
+                       {customer:"AAA", product:"Dreamweaver", quarter:"Q3", 
revenue:250, cost:125},
+                       {customer:"AAA", product:"Flash", quarter:"Q4", 
revenue:430, cost:75},
+                       
+                       {customer:"BBB", product:"ColdFusion", quarter:"Q2", 
revenue:125, cost:20},
+                       {customer:"BBB", product:"Flex", quarter:"Q3", 
revenue:210, cost:20},
+                       {customer:"BBB", product:"Dreamweaver", quarter:"Q4", 
revenue:320, cost:120},
+                       {customer:"BBB", product:"Flash", quarter:"Q1", 
revenue:280, cost:70},
+                       
+                       {customer:"CCC", product:"ColdFusion", quarter:"Q3", 
revenue:375, cost:120},
+                       {customer:"CCC", product:"Flex", quarter:"Q4", 
revenue:430, cost:120},
+                       {customer:"CCC", product:"Dreamweaver", quarter:"Q1", 
revenue:470, cost:220},
+                       {customer:"CCC", product:"Flash", quarter:"Q2", 
revenue:570, cost:170},
+                       
+                       {customer:"AAA", product:"ColdFusion", quarter:"Q4", 
revenue:215, cost:90},
+                       {customer:"AAA", product:"Flex", quarter:"Q1", 
revenue:210, cost:90},
+                       {customer:"AAA", product:"Dreamweaver", quarter:"Q2", 
revenue:175, cost:190},
+                       {customer:"AAA", product:"Flash", quarter:"Q3", 
revenue:670, cost:75},
+                       
+                       {customer:"BBB", product:"ColdFusion", quarter:"Q1", 
revenue:175, cost:20},
+                       {customer:"BBB", product:"Flex", quarter:"Q2", 
revenue:210, cost:20},
+                       {customer:"BBB", product:"Dreamweaver",quarter:"Q3", 
revenue:120, cost:120},
+                       {customer:"BBB", product:"Flash", quarter:"Q4", 
revenue:310, cost:70},
+                       
+                       {customer:"CCC", product:"ColdFusion", quarter:"Q1", 
revenue:385, cost:120},
+                       {customer:"CCC", product:"Flex", quarter:"Q2", 
revenue:340, cost:120},
+                       {customer:"CCC", product:"Dreamweaver", quarter:"Q3", 
revenue:470, cost:220},
+                       {customer:"CCC", product:"Flash", quarter:"Q4", 
revenue:270, cost:170},
+                       
+                       {customer:"AAA", product:"ColdFusion", quarter:"Q1", 
revenue:100, cost:25},
+                       {customer:"AAA", product:"Flex", quarter:"Q2", 
revenue:150, cost:25},
+                       {customer:"AAA", product:"Dreamweaver", quarter:"Q3", 
revenue:200, cost:125},
+                       {customer:"AAA", product:"Flash", quarter:"Q4", 
revenue:300, cost:75},
+                       
+                       {customer:"BBB", product:"ColdFusion", quarter:"Q2", 
revenue:175, cost:20},
+                       {customer:"BBB", product:"Flex", quarter:"Q3", 
revenue:100, cost:20},
+                       {customer:"BBB", product:"Dreamweaver", quarter:"Q4", 
revenue:270, cost:120},
+                       {customer:"BBB", product:"Flash", quarter:"Q1", 
revenue:370, cost:70},
+                       
+                       {customer:"CCC", product:"ColdFusion", quarter:"Q3", 
revenue:410, cost:120},
+                       {customer:"CCC", product:"Flex", quarter:"Q4", 
revenue:300, cost:320},
+                       {customer:"CCC", product:"Dreamweaver", quarter:"Q1", 
revenue:510, cost:220},
+                       {customer:"CCC", product:"Flash", quarter:"Q2", 
revenue:620, cost:170},
+                       
+                       {customer:"AAA", product:"ColdFusion", quarter:"Q4", 
revenue:215, cost:90},
+                       {customer:"AAA", product:"Flex", quarter:"Q1", 
revenue:210, cost:90},
+                       {customer:"AAA", product:"Dreamweaver", quarter:"Q2", 
revenue:175, cost:190},
+                       {customer:"AAA", product:"Flash", quarter:"Q3", 
revenue:420, cost:75},
+                       
+                       {customer:"BBB", product:"ColdFusion", quarter:"Q1", 
revenue:240, cost:20},
+                       {customer:"BBB", product:"Flex", quarter:"Q2", 
revenue:100, cost:20},
+                       {customer:"BBB", product:"Dreamweaver", quarter:"Q3", 
revenue:270, cost:120},
+                       {customer:"BBB", product:"Flash", quarter:"Q4", 
revenue:370, cost:70},
+                       
+                       {customer:"CCC", product:"ColdFusion", quarter:"Q1", 
revenue:375, cost:120},
+                       {customer:"CCC", product:"Flex", quarter:"Q2", 
revenue:420, cost:120},
+                       {customer:"CCC", product:"Dreamweaver", quarter:"Q3", 
revenue:680, cost:220},
+                       {customer:"CCC", product:"Flash", quarter:"Q4", 
revenue:570, cost:170}         
+                       ]);
+                       
+                       private function creationCompleteHandler():void {
+                               // You must initialize the cube before you 
+                               // can execute a query on it.
+                               myMXMLCube.refresh();
+                       }
+                       
+                       // Create the OLAP query.
+                       private function getQuery(cube:IOLAPCube):IOLAPQuery {
+                               // Create an instance of OLAPQuery to represent 
the query. 
+                               var query:OLAPQuery = new OLAPQuery;
+                               
+                               // Get the row axis from the query instance.
+                               var rowQueryAxis:IOLAPQueryAxis = 
+                               query.getAxis(OLAPQuery.ROW_AXIS);
+                               // Create an OLAPSet instance to configure the 
axis.
+                               var productSet:OLAPSet = new OLAPSet;
+                               // Add the Product to the row to aggregate data 
+                               // by the Product dimension.
+                               productSet.addElements(
+                               
cube.findDimension("ProductDim").findAttribute("Product").children);
+                               // Add the OLAPSet instance to the axis.
+                               rowQueryAxis.addSet(productSet);
+                               
+                               // Get the column axis from the query instance, 
and configure it
+                               // to aggregate the columns by the Quarter 
dimension. 
+                               var colQueryAxis:IOLAPQueryAxis = 
+                               query.getAxis(OLAPQuery.COLUMN_AXIS);         
+                               var quarterSet:OLAPSet= new OLAPSet;
+                               quarterSet.addElements(
+                               
cube.findDimension("QuarterDim").findAttribute("Quarter").children);
+                               colQueryAxis.addSet(quarterSet);
+                               
+                               return query;       
+                       }
+                       
+                       // Event handler to execute the OLAP query 
+                       // after the cube completes initialization.
+                       private function runQuery(event:CubeEvent):void {
+                               // Get cube.
+                               var cube:IOLAPCube = 
IOLAPCube(event.currentTarget);
+                               // Create a query instance.
+                               var query:IOLAPQuery = getQuery(cube);
+                               // Execute the query.
+                               var token:AsyncToken = cube.execute(query);
+                               // Setup handlers for the query results.
+                               token.addResponder(new 
AsyncResponder(showResult, showFault));
+                       }
+                       
+                       // Handle a query fault.
+                       private function showFault(result:Object, 
token:Object):void {
+                               Alert.show("Error in query.");
+                       }
+                       
+                       // Handle a successful query by passing the query 
results to 
+                       // the OLAPDataGrid control..
+                       private function showResult(result:Object, 
token:Object):void {
+                               if (!result) {
+                                       Alert.show("No results from query.");
+                                       return;
+                               }
+                               myOLAPDG.dataProvider= result as OLAPResult;    
        
+                       }        
+               ]]>
+       </fx:Script>
+       
+       <fx:Declarations>
+               <mx:OLAPCube name="FlatSchemaCube" dataProvider="{flatData}" 
id="myMXMLCube" complete="runQuery(event)">
+                       <mx:OLAPDimension name="CustomerDim">
+                               <mx:OLAPAttribute name="Customer" 
dataField="customer"/>
+                               <mx:OLAPHierarchy name="CustomerHier" 
hasAll="true">
+                                       <mx:OLAPLevel attributeName="Customer"/>
+                               </mx:OLAPHierarchy>
+                       </mx:OLAPDimension>
+                       
+                       <mx:OLAPDimension name="ProductDim">
+                               <mx:OLAPAttribute name="Product" 
dataField="product"/>
+                               <mx:OLAPHierarchy name="ProductHier" 
hasAll="true">
+                                       <mx:OLAPLevel attributeName="Product"/>
+                               </mx:OLAPHierarchy>
+                       </mx:OLAPDimension>
+                       
+                       <mx:OLAPDimension name="QuarterDim">
+                               <mx:OLAPAttribute name="Quarter" 
dataField="quarter"/>
+                               <mx:OLAPHierarchy name="QuarterHier" 
hasAll="true">
+                                       <mx:OLAPLevel attributeName="Quarter"/>
+                               </mx:OLAPHierarchy> 
+                       </mx:OLAPDimension>
+                       
+                       <mx:OLAPMeasure name="Revenue" 
+                                                       dataField="revenue" 
+                                                       aggregator="SUM"/>
+               </mx:OLAPCube>
+       </fx:Declarations>
+       
+       
+       
+       <s:Panel title="OLAPDataGrid Control" width="100%" height="100%">
+
+               <s:layout>
+                       <s:HorizontalLayout horizontalAlign="center" 
+                                                               
paddingLeft="10" paddingRight="10" 
+                                                               paddingTop="10" 
paddingBottom="10"/>
+               </s:layout>
+               
+               <mx:OLAPDataGrid id="myOLAPDG" width="100%" height="100%"/>
+               
+       </s:Panel>
+       
+</s:Module>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/9343d391/tourdeflexmodules/src/spark/controls/OSMFExample.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmodules/src/spark/controls/OSMFExample.mxml 
b/tourdeflexmodules/src/spark/controls/OSMFExample.mxml
new file mode 100644
index 0000000..642ea3f
--- /dev/null
+++ b/tourdeflexmodules/src/spark/controls/OSMFExample.mxml
@@ -0,0 +1,27 @@
+<?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.
+
+-->
+<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009";
+                          xmlns:s="library://ns.adobe.com/flex/spark">
+       
+       <s:VideoPlayer horizontalCenter="0" verticalCenter="0"
+               
source="http://mediapm.edgesuite.net/osmf/content/test/manifest-files/dynamic_Streaming.f4m";
 
+               autoPlay="true"/>
+       
+</s:Module>

Reply via email to