You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by cd...@apache.org on 2014/08/06 15:38:26 UTC

[2/3] - Updated the project to be buildable with flexmojos 7.0.0 (Not intended on being merged back, but might be useful for others as the original had to be setup first)

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/UIViews/ListView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/UIViews/ListView.mxml b/tourdeflexmobile/src/UIViews/ListView.mxml
deleted file mode 100644
index ce00d68..0000000
--- a/tourdeflexmobile/src/UIViews/ListView.mxml
+++ /dev/null
@@ -1,85 +0,0 @@
-<?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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
-		xmlns:s="library://ns.adobe.com/flex/spark" title="List">
-	
-	<fx:Script>
-		<![CDATA[
-			import spark.skins.mobile.TextAreaSkin;
-			
-			protected function buttonHandler(event:MouseEvent):void
-			{
-				if(currentState == "DemoState"){
-					currentState = "InfoState";				
-				}else if(currentState == "InfoState"){
-					currentState = "DemoState";
-				}
-			}
-			
-		]]>
-	</fx:Script>
-	
-	<s:states>
-		<s:State name="DemoState"/>
-		<s:State name="InfoState"/>
-	</s:states>
-	
-	<fx:Declarations>
-		<s:MultiDPIBitmapSource id="aboutIcon" source160dpi="@Embed('assets/icons/160/about.png')" source240dpi="@Embed('assets/icons/240/about.png')" source320dpi="@Embed('assets/icons/320/about.png')"/>
-		<s:MultiDPIBitmapSource id="demoIcon" source160dpi="@Embed('assets/icons/160/dock.png')" source240dpi="@Embed('assets/icons/240/dock.png')" source320dpi="@Embed('assets/icons/320/dock.png')"/>
-	</fx:Declarations>
-	
-	<s:List includeIn="DemoState" width="100%" height="100%">
-		<s:ArrayList>
-			<fx:Object label="Item 1"/>
-			<fx:Object label="Item 2"/>
-			<fx:Object label="Item 3"/>
-			<fx:Object label="Item 4"/>
-			<fx:Object label="Item 5"/>
-			<fx:Object label="Item 6"/>
-			<fx:Object label="Item 7"/>
-			<fx:Object label="Item 8"/>
-			<fx:Object label="Item 9"/>
-			<fx:Object label="Item 10"/>
-			<fx:Object label="Item 11"/>
-			<fx:Object label="Item 12"/>
-			<fx:Object label="Item 13"/>
-			<fx:Object label="Item 14"/>
-			<fx:Object label="Item 15"/>
-			<fx:Object label="Item 16"/>
-			<fx:Object label="Item 17"/>
-			<fx:Object label="Item 18"/>
-			<fx:Object label="Item 19"/>
-			<fx:Object label="Item 20"/>
-			<fx:Object label="Item 21"/>
-			<fx:Object label="Item 22"/>
-			<fx:Object label="Item 23"/>
-		</s:ArrayList>
-	</s:List>
-	
-	<s:TextArea includeIn="InfoState" skinClass="spark.skins.mobile.TextAreaSkin" left="10" right="10" top="10" bottom="10" editable="false" text="The List control displays a vertical list of items. Its functionality is similar to that of the SELECT form element in HTML. If there are more items than can be displayed at once, it can display a vertical scroll bar so the user can access all items in the list. An optional horizontal scroll bar lets the user view items when the full width of the list items is unlikely to fit. The user can select one or more items from the list, depending on the value of the allowMultipleSelection property.
-				&#xd;&#xd;Note: The Spark list-based controls (the Spark ListBase class and its subclasses such as ButtonBar, ComboBox, DropDownList, List, and TabBar) do not support the BasicLayout class as the value of the layout property. Do not use BasicLayout with the Spark list-based controls. When a layout is specified, the layout's typicalLayoutElement property should not be set; it's automatically set to an item renderer created with the List's typicalItem.
-				
-				&#xd;&#xd;To use this component in a list-based component, such as a List or DataGrid, create an item renderer. For information about creating an item renderer, see Custom Spark item renderers."/>
-	
-	<s:actionContent>
-		<s:Button click="buttonHandler(event)" icon.DemoState="{aboutIcon}" icon.InfoState="{demoIcon}"/>
-	</s:actionContent>
-</s:View>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/UIViews/MobileGridView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/UIViews/MobileGridView.mxml b/tourdeflexmobile/src/UIViews/MobileGridView.mxml
deleted file mode 100644
index d875580..0000000
--- a/tourdeflexmobile/src/UIViews/MobileGridView.mxml
+++ /dev/null
@@ -1,106 +0,0 @@
-<?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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
-		xmlns:s="library://ns.adobe.com/flex/spark" title="MobileGrid" xmlns:ns="http://flex.apache.org/experimental/ns">
-	<fx:Script>
-		<![CDATA[
-			import spark.skins.mobile.TextAreaSkin;
-			
-			protected function buttonHandler(event:MouseEvent):void
-			{
-				if(currentState == "DemoState"){
-					currentState = "InfoState";				
-				}else if(currentState == "InfoState"){
-					currentState = "DemoState";
-				}
-			}
-		]]>
-	</fx:Script>
-	
-	<s:states>
-		<s:State name="DemoState"/>
-		<s:State name="InfoState"/>
-	</s:states>
-	
-	<fx:Declarations>
-		<s:MultiDPIBitmapSource id="aboutIcon" source160dpi="@Embed('assets/icons/160/about.png')" source240dpi="@Embed('assets/icons/240/about.png')" source320dpi="@Embed('assets/icons/320/about.png')"/>
-		<s:MultiDPIBitmapSource id="demoIcon" source160dpi="@Embed('assets/icons/160/dock.png')" source240dpi="@Embed('assets/icons/240/dock.png')" source320dpi="@Embed('assets/icons/320/dock.png')"/>
-	</fx:Declarations>
-	
-	<ns:MobileGrid includeIn="DemoState" width="100%" height="100%">
-		<ns:columns>
-			<ns:MobileGridColumn width="33%" headerText="Column 1" dataField="label"/>
-			<ns:MobileGridColumn width="33%" headerText="Column 2" dataField="label"/>
-			<ns:MobileGridColumn width="33%" headerText="Column 3" dataField="label"/>
-		</ns:columns>
-		<s:ArrayList>
-			<fx:Object label="Item 1"/>
-			<fx:Object label="Item 2"/>
-			<fx:Object label="Item 3"/>
-			<fx:Object label="Item 4"/>
-			<fx:Object label="Item 5"/>
-			<fx:Object label="Item 6"/>
-			<fx:Object label="Item 7"/>
-			<fx:Object label="Item 8"/>
-			<fx:Object label="Item 9"/>
-			<fx:Object label="Item 10"/>
-			<fx:Object label="Item 11"/>
-			<fx:Object label="Item 12"/>
-			<fx:Object label="Item 13"/>
-			<fx:Object label="Item 14"/>
-			<fx:Object label="Item 15"/>
-			<fx:Object label="Item 16"/>
-			<fx:Object label="Item 17"/>
-			<fx:Object label="Item 18"/>
-			<fx:Object label="Item 19"/>
-			<fx:Object label="Item 20"/>
-			<fx:Object label="Item 21"/>
-			<fx:Object label="Item 22"/>
-			<fx:Object label="Item 23"/>
-		</s:ArrayList>
-	</ns:MobileGrid>
-	
-	
-	<s:TextArea includeIn="InfoState" skinClass="spark.skins.mobile.TextAreaSkin" left="10" right="10" top="10" bottom="10" editable="false" text="The MobileGrid displays a collection of items in a grid of rows and columns and column headers and is optimized for speed on mobile devices.
-				&#xd;&#xd;The MobileGrid component provides the following features:
-				
-				&#xd;&#xd;user can swipe through the rows in the datagrid.
-				&#xd;&#xd;supports single selection of a row.
-				&#xd;&#xd;rows can be sorted according to a given column by clicking on the column's header.
-				&#xd;&#xd;cells can be displayed as text in different fonts and formats, as images, or using a custom renderer.
-				&#xd;&#xd;default skin uses dark shades of gray, and is available in different screen densities.
-				&#xd;&#xd;It's important to understand that MobileGrid does not have all the capabilities and flexibility of it's desktop equivalent, in order to ensure optimal display and scrolling performance on mobile devices.
-				
-				&#xd;&#xd;Typically, the following features are not available in MobileGrid:
-				
-				&#xd;&#xd;multiple selection is not supported
-				&#xd;&#xd;it's not possible to interactively reorder columns
-				&#xd;&#xd;MobileGrid does not scroll horizontally, even when the column widths exceeds the component's width.
-				&#xd;&#xd;custom cell renderers must be designed with care, preferably in ActionScript, to ensure good display performance
-				&#xd;&#xd;Internally, MobileGrid inherits for Mobile spark.List component rather than any Grid or DataGrid, which means that all cell renderers in a single row are managed by one single MobileGridRowRenderer that delegates the individual cell renderers to light-weight sub-renderers.
-				
-				&#xd;&#xd;You usually don't access this internal row renderer yourself, and will rather define the individual cell renderers.
-				
-				&#xd;&#xd;This technique ensures optimal display and memory performance, which is critical for mobile devices, at the price of less flexibility for cell renderers."/>
-	
-	<s:actionContent>
-		<s:Button click="buttonHandler(event)" icon.DemoState="{aboutIcon}" icon.InfoState="{demoIcon}"/>
-	</s:actionContent>
-</s:View>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/UIViews/RadiobuttonView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/UIViews/RadiobuttonView.mxml b/tourdeflexmobile/src/UIViews/RadiobuttonView.mxml
deleted file mode 100644
index 47d1804..0000000
--- a/tourdeflexmobile/src/UIViews/RadiobuttonView.mxml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
-		xmlns:s="library://ns.adobe.com/flex/spark" title="RadioButton">
-	
-	<fx:Script>
-		<![CDATA[
-			import spark.skins.mobile.TextAreaSkin;
-			protected function radiobuttonHandler(event:Event):void
-			{
-				label.text = event.target.label + " Selected.";
-			}
-			
-			protected function buttonHandler(event:MouseEvent):void
-			{
-				if(currentState == "DemoState"){
-					currentState = "InfoState";				
-				}else if(currentState == "InfoState"){
-					currentState = "DemoState";
-				}
-			}
-		]]>
-	</fx:Script>
-	
-	<fx:Declarations>
-		<s:MultiDPIBitmapSource id="aboutIcon" source160dpi="@Embed('assets/icons/160/about.png')" source240dpi="@Embed('assets/icons/240/about.png')" source320dpi="@Embed('assets/icons/320/about.png')"/>
-		<s:MultiDPIBitmapSource id="demoIcon" source160dpi="@Embed('assets/icons/160/dock.png')" source240dpi="@Embed('assets/icons/240/dock.png')" source320dpi="@Embed('assets/icons/320/dock.png')"/>
-
-		<s:RadioButtonGroup id="radiogroup1"/>
-	</fx:Declarations>
-	
-	<s:states>
-		<s:State name="DemoState"/>
-		<s:State name="InfoState"/>
-	</s:states>
-
-	<s:VGroup includeIn="DemoState" horizontalCenter="0" y="20">
-		<s:RadioButton change="radiobuttonHandler(event)" label="RadioButton 1" groupName="radiogroup1"/>
-		<s:RadioButton change="radiobuttonHandler(event)" label="RadioButton 2" groupName="radiogroup1"/>
-		<s:RadioButton change="radiobuttonHandler(event)" label="RadioButton 3" groupName="radiogroup1"/>
-	</s:VGroup>
-	
-	<s:Label id="label" horizontalCenter="0" textAlign="center" bottom="20"/>
-	
-	<s:TextArea includeIn="InfoState" skinClass="spark.skins.mobile.TextAreaSkin" left="10" right="10" top="10" bottom="10" editable="false" text="The RadioButton component allows the user make a single choice within a set of mutually exclusive choices. A RadioButtonGroup is composed of two or more RadioButton components with the same groupName property. While grouping RadioButton instances in a RadioButtonGroup is optional, a group lets you do things like set a single event handler on a group of RadioButtons, rather than on each individual RadioButton.
-				&#xd;&#xd;The RadioButton group can refer to the a group created by the RadioButtonGroup tag. The user selects only one member of the group at a time. Selecting an unselected group member deselects the currently selected RadioButton component within that group.
-																		  
-				&#xd;&#xd; To use this component in a list-based component, such as a List or DataGrid, create an item renderer. For information about creating an item renderer, see Custom Spark item renderers."/>
-	
-	<s:actionContent>
-		<s:Button click="buttonHandler(event)" icon.DemoState="{aboutIcon}" icon.InfoState="{demoIcon}"/>
-	</s:actionContent>
-</s:View>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/UIViews/SpinnerListView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/UIViews/SpinnerListView.mxml b/tourdeflexmobile/src/UIViews/SpinnerListView.mxml
deleted file mode 100644
index c94f59b..0000000
--- a/tourdeflexmobile/src/UIViews/SpinnerListView.mxml
+++ /dev/null
@@ -1,116 +0,0 @@
-<?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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
-		xmlns:s="library://ns.adobe.com/flex/spark" title="SpinnerList">
-	<fx:Script>
-		<![CDATA[
-			import spark.events.IndexChangeEvent;
-			import spark.skins.mobile.TextAreaSkin;
-			
-			protected function spinnerListHandler(event:IndexChangeEvent):void
-			{
-				label.text = spinnerList1.selectedItem.label + " " + spinnerList2.selectedItem.label;
-			}
-			
-			protected function buttonHandler(event:MouseEvent):void
-			{
-				if(currentState == "DemoState"){
-					currentState = "InfoState";				
-				}else if(currentState == "InfoState"){
-					currentState = "DemoState";
-				}
-			}
-			
-		]]>
-	</fx:Script>
-	
-	<s:states>
-		<s:State name="DemoState"/>
-		<s:State name="InfoState"/>
-	</s:states>
-	
-	<fx:Declarations>
-		<s:MultiDPIBitmapSource id="aboutIcon" source160dpi="@Embed('assets/icons/160/about.png')" source240dpi="@Embed('assets/icons/240/about.png')" source320dpi="@Embed('assets/icons/320/about.png')"/>
-		<s:MultiDPIBitmapSource id="demoIcon" source160dpi="@Embed('assets/icons/160/dock.png')" source240dpi="@Embed('assets/icons/240/dock.png')" source320dpi="@Embed('assets/icons/320/dock.png')"/>
-	</fx:Declarations>
-	
-	<s:SpinnerListContainer includeIn="DemoState" width="100%">
-		<s:SpinnerList id="spinnerList1" change="spinnerListHandler(event)" width="50%" height="150">
-			<s:ArrayCollection>
-				<fx:Object label="Item A 1"/>
-				<fx:Object label="Item A 2"/>
-				<fx:Object label="Item A 3"/>
-				<fx:Object label="Item A 4"/>
-				<fx:Object label="Item A 5"/>
-				<fx:Object label="Item A 6"/>
-				<fx:Object label="Item A 7"/>
-				<fx:Object label="Item A 8"/>
-				<fx:Object label="Item A 9"/>
-				<fx:Object label="Item A 10"/>
-				<fx:Object label="Item A 11"/>
-				<fx:Object label="Item A 12"/>
-				<fx:Object label="Item A 13"/>
-				<fx:Object label="Item A 14"/>
-				<fx:Object label="Item A 15"/>
-				<fx:Object label="Item A 16"/>
-				<fx:Object label="Item A 17"/>
-				<fx:Object label="Item A 18"/>
-				<fx:Object label="Item A 19"/>
-				<fx:Object label="Item A 20"/>
-			</s:ArrayCollection>
-		</s:SpinnerList>
-		
-		<s:SpinnerList id="spinnerList2" change="spinnerListHandler(event)" width="50%" height="150">
-			<s:ArrayCollection>
-				<fx:Object label="Item B 1"/>
-				<fx:Object label="Item B 2"/>
-				<fx:Object label="Item B 3"/>
-				<fx:Object label="Item B 4"/>
-				<fx:Object label="Item B 5"/>
-				<fx:Object label="Item B 6"/>
-				<fx:Object label="Item B 7"/>
-				<fx:Object label="Item B 8"/>
-				<fx:Object label="Item B 9"/>
-				<fx:Object label="Item B 10"/>
-				<fx:Object label="Item B 11"/>
-				<fx:Object label="Item B 12"/>
-				<fx:Object label="Item B 13"/>
-				<fx:Object label="Item B 14"/>
-				<fx:Object label="Item B 15"/>
-				<fx:Object label="Item B 16"/>
-				<fx:Object label="Item B 17"/>
-				<fx:Object label="Item B 18"/>
-				<fx:Object label="Item B 19"/>
-				<fx:Object label="Item B 20"/>
-			</s:ArrayCollection>
-		</s:SpinnerList>
-	</s:SpinnerListContainer>
-	
-	
-	<s:Label id="label" horizontalCenter="0" textAlign="center" bottom="20"/>
-	
-	<s:TextArea includeIn="InfoState" skinClass="spark.skins.mobile.TextAreaSkin" left="10" right="10" top="10" bottom="10" editable="false" text="The SpinnerList component displays a list of items. The item in the center of the list is always the selectedItem. By default, the list wraps around.
-				&#xd;&#xd;You can have multiple SpinnerList controls arranged horizontally within a single border by wrapping then in a SpinnerListContainer."/>
-	
-	<s:actionContent>
-		<s:Button click="buttonHandler(event)" icon.DemoState="{aboutIcon}" icon.InfoState="{demoIcon}"/>
-	</s:actionContent>
-
-</s:View>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/UIViews/TextInputView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/UIViews/TextInputView.mxml b/tourdeflexmobile/src/UIViews/TextInputView.mxml
deleted file mode 100644
index 8a765c8..0000000
--- a/tourdeflexmobile/src/UIViews/TextInputView.mxml
+++ /dev/null
@@ -1,87 +0,0 @@
-<?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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
-		xmlns:s="library://ns.adobe.com/flex/spark" title="TextInput">
-	<fx:Script>
-		<![CDATA[
-			import mx.events.FlexEvent;
-			
-			import spark.skins.mobile.TextAreaSkin;
-			
-			protected function buttonHandler(event:MouseEvent):void
-			{
-				if(currentState == "DemoState"){
-					currentState = "InfoState";				
-				}else if(currentState == "InfoState"){
-					currentState = "DemoState";
-				}
-			}
-			
-			private function submitText():void
-			{
-				label.text = textInput.text;
-			}
-			
-		]]>
-	</fx:Script>
-	
-	<s:states>
-		<s:State name="DemoState"/>
-		<s:State name="InfoState"/>
-	</s:states>
-	
-	<fx:Declarations>
-		<s:MultiDPIBitmapSource id="aboutIcon" source160dpi="@Embed('assets/icons/160/about.png')" source240dpi="@Embed('assets/icons/240/about.png')" source320dpi="@Embed('assets/icons/320/about.png')"/>
-		<s:MultiDPIBitmapSource id="demoIcon" source160dpi="@Embed('assets/icons/160/dock.png')" source240dpi="@Embed('assets/icons/240/dock.png')" source320dpi="@Embed('assets/icons/320/dock.png')"/>
-	</fx:Declarations>
-	
-	<s:TextInput includeIn="DemoState" id="textInput" skinClass="spark.skins.mobile.TextInputSkin" prompt="Type Here and Tap Enter" left="5" right="5" top="5" height="40" enter="submitText()" />
-	
-	<s:Label includeIn="DemoState" id="label" horizontalCenter="0" y="60" textAlign="center"/>
-	
-	<s:TextArea includeIn="InfoState" skinClass="spark.skins.mobile.TextAreaSkin" left="10" right="10" top="10" bottom="10" editable="false" text="TextInput is a text-entry control that lets users enter and edit a single line of uniformly-formatted text.
-				&#xd; &#xd;The TextInput skin for the Spark theme uses the RichEditableText class. This means that the Spark TextInput control supports the Text Layout Framework (TLF) library, which builds on the Flash Text Engine (FTE). In combination, these layers provide text editing with high-quality international typography and layout.
-				
-				&#xd; &#xd;The TextInput skin for the mobile theme uses the StyleableStageText class instead of RichEditableText. Since StyleableStageText uses native text fields it allows for better text entry and manipulation experiences on mobile devices however there are limitations and differences that you should consider. The native text controls used by StageText apply different paddings around text. In order to avoid vertical scrolling, the StageText-based TextInput skin attempts to estimate this padding and compensate for that. Because of this and other differences in how native text controls treat text, the default height of the TextInput control using StageText-based skin will differ from its default height using the the TextField-based TextInput skin.
-				
-				&#xd; &#xd;You can set the text to be displayed, or get the text that the user has entered, using the text property. This property is a String, so if the user enter a numeric value it will be reported, for example, as 123.45 rather than 123.45.
-				
-				&#xd; &#xd;The text is formatted using CSS styles such as fontFamily and fontSize.
-				
-				&#xd; &#xd;For the Spark theme you can specify the width of the control using the widthInChars property which provides a convenient way to specify the width in a way that scales with the font size or you can use the typicalText property. Note that if you use typicalText, the widthInChars property is ignored. For all themes, you can also specify an explicit width in pixels, a percent width, or use constraints such as left and right. You do not normally do anything to specify the height; the control's default height is sufficient to display one line of text.
-				
-				&#xd; &#xd;You can use the maxChars property to limit the number of character that the user can enter, and the restrict to limit which characters the user can enter. To use this control for password input, set the displayAsPassword property to true.
-				
-				&#xd; &#xd;For the mobile theme, the soft-keyboard-specific properties, autoCapitalize, autoCorrect, returnKeyLabel and softKeyboardType properties specify keyboard hints. If a soft-keyboard is present but does not support a feature represented by the hint, the hint is ignored. In mobile environments with only hardware keyboards, these hints are ignored.
-				
-				&#xd; &#xd;This control dispatches a FlexEvent.ENTER event when the user pressed the Enter key rather than inserting a line break, because this control does not support entering multiple lines of text. By default, this control has explicit line breaks.
-				
-				&#xd; &#xd;	This control is a skinnable control whose default skin contains either a RichEditableText instance for the Spark theme or a StyleableStageText instance for the Mobile theme. It handles displaying and editing the text. (The skin also handles drawing the border and background.) This RichEditableText or StyleableStageText instance can be accessed as the textDisplay object. For the mobile theme, if you wish to use the TextField-based skin, rather than the StageText-based skin, set the skinClass property to spark.skins.mobile.TextInputSkin.
-																																																																																																																																			 
-				&#xd; &#xd; For the Spark theme, as a result of its RichEditableText using TLF, the Spark TextInput control supports displaying left-to-right (LTR) text, such as French, right-to-left (RTL) text, such as Arabic, and bidirectional text such as a French phrase inside of an Arabic one. If the predominant text direction is right-to-left, set the direction style to rtl. The textAlign style defaults to start, which makes the text left-aligned when direction is ltr and right-aligned when direction is rtl. To get the opposite alignment, set textAlign to end.
-																																																																																																																																			 
-				&#xd; &#xd; Also as a result of using TLF, the Spark TextInput supports unlimited undo/redo within one editing session. An editing session starts when the control gets keyboard focus and ends when the control loses focus.
-																																																																																																																																			 
-				&#xd; &#xd;To use this component in a list-based component, such as a List or DataGrid, create an item renderer. For information about creating an item renderer, see Custom Spark item renderers."/>
-	
-	<s:actionContent>
-		<s:Button click="buttonHandler(event)" icon.DemoState="{aboutIcon}" icon.InfoState="{demoIcon}"/>
-	</s:actionContent>
-</s:View>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/UIViews/ToggleSwitchView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/UIViews/ToggleSwitchView.mxml b/tourdeflexmobile/src/UIViews/ToggleSwitchView.mxml
deleted file mode 100644
index 5309a75..0000000
--- a/tourdeflexmobile/src/UIViews/ToggleSwitchView.mxml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
-		xmlns:s="library://ns.adobe.com/flex/spark" title="ToggleSwitch">
-	
-	<fx:Script>
-		<![CDATA[
-
-			protected function buttonHandler(event:MouseEvent):void
-			{
-				if(currentState == "DemoState"){
-					currentState = "InfoState";				
-				}else if(currentState == "InfoState"){
-					currentState = "DemoState";
-				}
-			}
-			
-		]]>
-	</fx:Script>
-	
-	<s:states>
-		<s:State name="DemoState"/>
-		<s:State name="InfoState"/>
-	</s:states>
-	
-	<fx:Declarations>
-		<s:MultiDPIBitmapSource id="aboutIcon" source160dpi="@Embed('assets/icons/160/about.png')" source240dpi="@Embed('assets/icons/240/about.png')" source320dpi="@Embed('assets/icons/320/about.png')"/>
-		<s:MultiDPIBitmapSource id="demoIcon" source160dpi="@Embed('assets/icons/160/dock.png')" source240dpi="@Embed('assets/icons/240/dock.png')" source320dpi="@Embed('assets/icons/320/dock.png')"/>
-	</fx:Declarations>
-	
-	<s:ToggleSwitch includeIn="DemoState" horizontalCenter="0" y="20" />
-	
-	<s:TextArea includeIn="InfoState" skinClass="spark.skins.mobile.TextAreaSkin" left="10" right="10" top="10" bottom="10" editable="false" text="The Spark ToggleSwitch control defines a binary switch that can be in the selected or unselected position. The ToggleSwitch consists of a thumb skin part that moves between the two ends of the track skin part, similar to the Spark Slider control.
-				The ToggleSwitch control has two positions: selected and unselected. By default, the label OFF corresponds to the unselected position and ON corresponds to the selected position.
-				&#xd; &#xd;Clicking anywhere in the control toggles the position. You can also slide the thumb along the track to change position. When you release the thumb, it moves to the position, selected or unselected, that is closest to the thumb location.
-				&#xd; &#xd;The ToggleSwitch control uses the following default values for the unselected and selected labels: OFF (unselected) and ON (selected). Define a custom skin to change the labels, or to change other visual characteristics of the control."/>
-				
-	<s:actionContent>
-		<s:Button click="buttonHandler(event)" icon.DemoState="{aboutIcon}" icon.InfoState="{demoIcon}"/>
-	</s:actionContent>
-</s:View>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/assets/icons/160/about.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/icons/160/about.png b/tourdeflexmobile/src/assets/icons/160/about.png
deleted file mode 100644
index d7b7e69..0000000
Binary files a/tourdeflexmobile/src/assets/icons/160/about.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/assets/icons/160/add.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/icons/160/add.png b/tourdeflexmobile/src/assets/icons/160/add.png
deleted file mode 100644
index 4d5d484..0000000
Binary files a/tourdeflexmobile/src/assets/icons/160/add.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/assets/icons/160/dock.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/icons/160/dock.png b/tourdeflexmobile/src/assets/icons/160/dock.png
deleted file mode 100644
index aa0c320..0000000
Binary files a/tourdeflexmobile/src/assets/icons/160/dock.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/assets/icons/240/about.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/icons/240/about.png b/tourdeflexmobile/src/assets/icons/240/about.png
deleted file mode 100644
index 6eaf08a..0000000
Binary files a/tourdeflexmobile/src/assets/icons/240/about.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/assets/icons/240/add.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/icons/240/add.png b/tourdeflexmobile/src/assets/icons/240/add.png
deleted file mode 100644
index ad8ada6..0000000
Binary files a/tourdeflexmobile/src/assets/icons/240/add.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/assets/icons/240/dock.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/icons/240/dock.png b/tourdeflexmobile/src/assets/icons/240/dock.png
deleted file mode 100644
index 37f3a93..0000000
Binary files a/tourdeflexmobile/src/assets/icons/240/dock.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/assets/icons/320/about.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/icons/320/about.png b/tourdeflexmobile/src/assets/icons/320/about.png
deleted file mode 100644
index 4ee903f..0000000
Binary files a/tourdeflexmobile/src/assets/icons/320/about.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/assets/icons/320/add.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/icons/320/add.png b/tourdeflexmobile/src/assets/icons/320/add.png
deleted file mode 100644
index 23b9a1c..0000000
Binary files a/tourdeflexmobile/src/assets/icons/320/add.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/assets/icons/320/dock.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/icons/320/dock.png b/tourdeflexmobile/src/assets/icons/320/dock.png
deleted file mode 100644
index a749474..0000000
Binary files a/tourdeflexmobile/src/assets/icons/320/dock.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/assets/images/bg.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/images/bg.png b/tourdeflexmobile/src/assets/images/bg.png
deleted file mode 100644
index e1613e5..0000000
Binary files a/tourdeflexmobile/src/assets/images/bg.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/assets/images/box1.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/images/box1.png b/tourdeflexmobile/src/assets/images/box1.png
deleted file mode 100644
index 8c12918..0000000
Binary files a/tourdeflexmobile/src/assets/images/box1.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/assets/images/box2.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/images/box2.png b/tourdeflexmobile/src/assets/images/box2.png
deleted file mode 100644
index bb45969..0000000
Binary files a/tourdeflexmobile/src/assets/images/box2.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/assets/images/box3.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/images/box3.png b/tourdeflexmobile/src/assets/images/box3.png
deleted file mode 100644
index b5682da..0000000
Binary files a/tourdeflexmobile/src/assets/images/box3.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/assets/images/logo.png
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/assets/images/logo.png b/tourdeflexmobile/src/assets/images/logo.png
deleted file mode 100644
index 0278b81..0000000
Binary files a/tourdeflexmobile/src/assets/images/logo.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/main/flex/AIRViews/AccelerometerView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/main/flex/AIRViews/AccelerometerView.mxml b/tourdeflexmobile/src/main/flex/AIRViews/AccelerometerView.mxml
new file mode 100644
index 0000000..fbb7c5b
--- /dev/null
+++ b/tourdeflexmobile/src/main/flex/AIRViews/AccelerometerView.mxml
@@ -0,0 +1,148 @@
+<?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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
+		xmlns:s="library://ns.adobe.com/flex/spark" title="Accelerometer" viewActivate="init()" viewDeactivate="deactivate(event)">
+	
+	<fx:Script>
+		<![CDATA[
+			import flash.sensors.Accelerometer;
+			
+			import spark.events.ViewNavigatorEvent;
+
+			private var ball:Sprite;
+			private var accelerometer:Accelerometer;        
+			private var xSpeed:Number = 0;
+			private var ySpeed:Number = 0;
+			private const RADIUS:Number = 20;
+			
+			private function init():void
+			{
+				stage.autoOrients = false;
+				
+				createBall();
+				
+				if (Accelerometer.isSupported)
+				{
+					accelerometer = new Accelerometer();
+					accelerometer.addEventListener(AccelerometerEvent.UPDATE, accUpdateHandler);
+					stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
+				}
+			}
+			
+			private function createBall():void
+			{	
+				ball = new Sprite();
+				ball.graphics.beginFill(0xFF0000);
+				ball.graphics.drawCircle(0, 0, RADIUS);
+				ball.cacheAsBitmap = true;
+				ball.x = stage.stageWidth / 2;
+				ball.y = stage.stageHeight / 2;
+				container.addChild(ball);
+			}
+			
+			private function enterFrameHandler(event:Event):void
+			{
+				event.stopPropagation();
+				moveBall();
+			}
+			
+			private function moveBall():void
+			{
+				var newX:Number = ball.x + xSpeed;
+				var newY:Number = ball.y + ySpeed;
+				
+				if (newX < 20)
+				{
+					ball.x = RADIUS;
+					xSpeed = 0;
+				}
+				
+				else if (newX > stage.stageWidth - RADIUS)
+				{
+					ball.x = stage.stageWidth - RADIUS;
+					xSpeed = 0;
+				}
+				
+				else
+				{
+					ball.x += xSpeed;
+				}
+				
+				if (newY < RADIUS)
+				{
+					ball.y = RADIUS;
+					ySpeed = 0;
+				}
+				
+				else if (newY > this.height - RADIUS)
+				{
+					ball.y = this.height - RADIUS;
+					ySpeed = 0;
+				}
+				
+				else
+				{
+					ball.y += ySpeed;
+				}
+			}
+			
+			private function accUpdateHandler(event:AccelerometerEvent):void
+			{
+				xSpeed -= event.accelerationX * 2;
+				ySpeed += event.accelerationY * 2;
+			}
+			
+			protected function deactivate(event:ViewNavigatorEvent):void
+			{
+				stage.autoOrients = true;
+			}
+			
+			protected function buttonHandler(event:MouseEvent):void
+			{
+				if(currentState == "DemoState"){
+					currentState = "InfoState";				
+				}else if(currentState == "InfoState"){
+					currentState = "DemoState";
+				}
+			}
+			
+		]]>
+	</fx:Script>
+	
+	<s:states>
+		<s:State name="DemoState"/>
+		<s:State name="InfoState"/>
+	</s:states>
+	
+	<fx:Declarations>
+		<s:MultiDPIBitmapSource id="aboutIcon" source160dpi="@Embed('/assets/icons/160/about.png')" source240dpi="@Embed('/assets/icons/240/about.png')" source320dpi="@Embed('/assets/icons/320/about.png')"/>
+		<s:MultiDPIBitmapSource id="demoIcon" source160dpi="@Embed('/assets/icons/160/dock.png')" source240dpi="@Embed('/assets/icons/240/dock.png')" source320dpi="@Embed('/assets/icons/320/dock.png')"/>
+	</fx:Declarations>
+
+	<s:SpriteVisualElement id="container" includeIn="DemoState"/>
+	
+	<s:TextArea includeIn="InfoState" skinClass="spark.skins.mobile.TextAreaSkin" left="10" right="10" top="10" bottom="10" editable="false" text="The Accelerometer class dispatches events based on activity detected by the device's motion sensor. This data represents the device's location or movement along a 3-dimensional axis. When the device moves, the sensor detects this movement and returns acceleration data. The Accelerometer class provides methods to query whether or not accelerometer is supported, and also to set the rate at which acceleration events are dispatched.
+				&#xd; &#xd;Note: Use the Accelerometer.isSupported property to test the runtime environment for the ability to use this feature. While the Accelerometer class and its members are accessible to the Runtime Versions listed for each API entry, the current environment for the runtime determines the availability of this feature. For example, you can compile code using the Accelerometer class properties for Flash Player 10.1, but you need to use the Accelerometer.isSupported property to test for the availability of the Accelerometer feature in the current deployment environment for the Flash Player runtime. If Accelerometer.isSupported is true at runtime, then Accelerometer support currently exists."/>
+	
+	<s:actionContent>
+		<s:Button click="buttonHandler(event)" icon.DemoState="{aboutIcon}" icon.InfoState="{demoIcon}"/>
+	</s:actionContent>
+	
+</s:View>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/main/flex/AIRViews/SQLiteView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/main/flex/AIRViews/SQLiteView.mxml b/tourdeflexmobile/src/main/flex/AIRViews/SQLiteView.mxml
new file mode 100644
index 0000000..035c72a
--- /dev/null
+++ b/tourdeflexmobile/src/main/flex/AIRViews/SQLiteView.mxml
@@ -0,0 +1,156 @@
+<?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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
+		xmlns:s="library://ns.adobe.com/flex/spark" title="SQLite" viewActivate="init(event)">
+	
+	<fx:Script>
+		<![CDATA[
+        import flash.data.SQLConnection;
+        import flash.data.SQLResult;
+        import flash.data.SQLStatement;
+        import flash.filesystem.File;
+
+        import mx.collections.ArrayCollection;
+
+			import spark.events.ViewNavigatorEvent;
+
+			public var conn:SQLConnection;
+			public var db:File;
+			private var myStatement:SQLStatement;
+			private var myQuery:String;
+			
+			protected function init(event:ViewNavigatorEvent):void
+			{
+				db = File.applicationStorageDirectory.resolvePath("flex.db");
+				conn = new SQLConnection();
+				conn.addEventListener(SQLEvent.OPEN, openDatabaseHandler);
+				conn.openAsync(db);
+			}
+			
+			private function loadEntries():void{
+				myStatement = new SQLStatement();
+				myStatement.sqlConnection = conn;
+				myStatement.addEventListener(SQLEvent.RESULT, openDatabaseResult);				
+				var myQuery:String = "SELECT * FROM items";				
+				myStatement.text = myQuery;
+				myStatement.execute();
+			}
+			
+			private function openDatabaseHandler(event:SQLEvent):void{
+				myStatement = new SQLStatement();
+				myStatement.sqlConnection = conn;
+				myStatement.addEventListener(SQLEvent.RESULT, loadDatabaseResult);				
+				myQuery = "CREATE TABLE IF NOT EXISTS items (id INTEGER PRIMARY KEY, itemText TEXT)";
+				myStatement.text = myQuery;
+				myStatement.execute();
+			}
+			
+			private function loadDatabaseResult(event:SQLEvent):void{
+				loadEntries();
+			}
+			
+			private function openDatabaseResult(event:SQLEvent):void{
+				var itemsArray:Array = new Array();
+				
+				var result:SQLResult = myStatement.getResult();
+				
+				if(result.data != null){
+					for(var i:int = 0; i<result.data.length; i++){
+						itemsArray.push({label:unescape(result.data[i].itemText)});					
+					}
+				}
+							
+				itemsCollection = new ArrayCollection(itemsArray);
+				itemsList.dataProvider = itemsCollection;
+			}
+			
+			private function modifyDatabaseResult(event:SQLEvent):void{
+				loadEntries();
+			}
+			
+			protected function addItemHandler():void
+			{
+				if(textInput.text != ""){
+					var myStatement:SQLStatement = new SQLStatement();
+					myStatement.sqlConnection = conn;
+					myStatement.addEventListener(SQLEvent.RESULT, modifyDatabaseResult);
+					
+					var myQuery:String = "INSERT INTO items (itemText) VALUES ('"+textInput.text+"')";
+					
+					myStatement.text = myQuery;
+					myStatement.execute();
+					
+					textInput.text = "";
+				}
+			}
+			
+			protected function buttonHandler(event:MouseEvent):void
+			{
+				if(currentState == "DemoState"){
+					currentState = "InfoState";				
+				}else if(currentState == "InfoState"){
+					currentState = "DemoState";
+				}
+			}
+			
+		]]>
+	</fx:Script>
+	
+	<s:states>
+		<s:State name="DemoState"/>
+		<s:State name="InfoState"/>
+	</s:states>
+	
+	<fx:Declarations>
+		<s:MultiDPIBitmapSource id="aboutIcon" source160dpi="@Embed('/assets/icons/160/about.png')" source240dpi="@Embed('/assets/icons/240/about.png')" source320dpi="@Embed('/assets/icons/320/about.png')"/>
+		<s:MultiDPIBitmapSource id="demoIcon" source160dpi="@Embed('/assets/icons/160/dock.png')" source240dpi="@Embed('/assets/icons/240/dock.png')" source320dpi="@Embed('/assets/icons/320/dock.png')"/>
+		<s:ArrayCollection id="itemsCollection"/>
+	</fx:Declarations>
+	
+	<s:TextInput id="textInput" includeIn="DemoState" enter="addItemHandler()" skinClass="spark.skins.mobile.TextInputSkin" y="10" left="5" right="60" height="40"/>
+	<s:Button label="Add" y="10" includeIn="DemoState" width="50" height="40" right="5" click="addItemHandler()"/>
+	
+	<s:List id="itemsList" includeIn="DemoState" width="100%" bottom="0" top="60"/>
+	
+	<s:TextArea includeIn="InfoState" skinClass="spark.skins.mobile.TextAreaSkin" left="10" right="10" top="10" bottom="10" editable="false" text="A SQLConnection instance is used to manage the creation of and connection to local SQL database files (local databases).
+				&#xd; &#xd;The functionality of the SQLConnection class falls into several categories:
+				
+				&#xd; &#xd;A local SQL database file is created or opened by calling the open() method or the SQLConnection instance to the SQLStatement's sqlConnection property.
+				
+				&#xd; &#xd;The SQLConnection class also provides state for SQL statements, including a mechanism for executing multiple statements in a transaction. Transactions are managed using the begin(), commit(), and rollback() methods. In addition, the setSavepoint(), releaseSavepoint(), and rollbackToSavepoint() methods allow code to define and manage savepoints. These are used to subdivide transactions into sets of operations.
+				
+				&#xd; &#xd;The SQLConnection class provides access to database schema information for connected databases. A database's schema describes the definitions of its tables, columns, indices, and triggers. See the loadSchema() method for more information.
+				
+				&#xd; &#xd;The SQLConnection class provides the ability to encrypt databases using AES with CCM. This provides both authentication and privacy for data. To encrypt a database, a 16 byte key (specified using a ByteArray) must be specified when the database is created. This key can later be changed using the SQLConnection.reencrypt() method. Encryption imposes a performance penalty on writes to and reads from the database. Encryption is applied to data stored on the disk, but not to a temporary data cache in memory. Encryption is not supported for in-memory databases.
+				
+				&#xd; &#xd;A SQLConnection instance can be used to receive database-level event notifications and provide configuration control for all aspects of a database, including cache page size, process canceling, and statement execution options.
+				
+				&#xd; &#xd;A SQLConnection instance operates in one of two distinct execution modes: asynchronous and synchronous. To use synchronous execution, you use the open() method to connect to the main database for the SQLConnection instance. To use asynchronous execution, use the openAsync() method to connect to the main database for the instance.
+				
+				&#xd; &#xd;When you're using asynchronous execution, you use event listeners or a Responder instance to determine when an operation completes or fails. The operations run in the background rather than in the main application thread, so the application continues to run and respond to user interaction even while the database operations are being performed. Each asynchronous SQLConnection instance executes SQL statements in its own thread.
+				
+				&#xd; &#xd;In asynchronous execution mode, you begin a specific operation by calling the appropriate method, and you can detect the completion (or failure) of the operation by registering a listener for the appropriate event. Each operation has an associated event that is dispatched when the operation completes successfully; for example, when an openAsync() method call completes successfully (when the database connection is opened) the open event is dispatched. When any operation fails, an error event is dispatched. The SQLError instance in the SQLErrorEvent object's error property contains information about the specific error, including the operation that was being attempted and the reason the operation failed.
+				
+				&#xd; &#xd;When you're using synchronous execution, you do not need to register event listeners to determine when an operation completes or fails. To identify errors, enclose the error-throwing statements in a try..catch block. Because synchronous operations execute in the main execution thread, all application functionality (including refreshing the screen and allowing mouse and keyboard interaction) is paused while the database operation or operations are performed. For long-running operations this can cause a noticeable pause in the application.."/>
+	
+	<s:actionContent>
+		<s:Button click="buttonHandler(event)" icon.DemoState="{aboutIcon}" icon.InfoState="{demoIcon}"/>
+	</s:actionContent>
+</s:View>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/main/flex/LayoutViews/AccordionLayoutView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/main/flex/LayoutViews/AccordionLayoutView.mxml b/tourdeflexmobile/src/main/flex/LayoutViews/AccordionLayoutView.mxml
new file mode 100644
index 0000000..a3e0156
--- /dev/null
+++ b/tourdeflexmobile/src/main/flex/LayoutViews/AccordionLayoutView.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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
+		xmlns:s="library://ns.adobe.com/flex/spark" title="AccordionLayout" xmlns:ns="http://flex.apache.org/experimental/ns">
+	
+	<fx:Script>
+		<![CDATA[
+			import spark.primitives.BitmapImage;
+			protected function buttonHandler(event:MouseEvent):void
+			{
+				var random:Number = Math.ceil(Math.random()*3);
+				
+				var bitmapImage:BitmapImage = new BitmapImage();
+				bitmapImage.width =  150;
+				bitmapImage.height = bitmapImage.width;
+				bitmapImage.source = "assets/images/box"+random+".png";
+				group.addElement(bitmapImage);
+				
+				group.verticalScrollPosition = group.contentHeight;
+			}
+		]]>
+	</fx:Script>
+	
+	
+	<s:actionContent>
+		<s:Button click="buttonHandler(event)">
+			<s:icon>
+				<s:MultiDPIBitmapSource source160dpi="@Embed('/assets/icons/160/add.png')" source240dpi="@Embed('/assets/icons/240/add.png')" source320dpi="@Embed('/assets/icons/320/add.png')" />
+			</s:icon>
+		</s:Button>
+	</s:actionContent>
+			
+	<s:Scroller id="scroller" width="200" height="200" horizontalCenter="0" verticalCenter="0">
+		<s:Group id="group">
+			<s:layout>
+				<ns:AccordionLayout useVirtualLayout="true" />
+			</s:layout>
+		</s:Group>
+	</s:Scroller>
+</s:View>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/main/flex/LayoutViews/CarouselLayoutView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/main/flex/LayoutViews/CarouselLayoutView.mxml b/tourdeflexmobile/src/main/flex/LayoutViews/CarouselLayoutView.mxml
new file mode 100644
index 0000000..de68785
--- /dev/null
+++ b/tourdeflexmobile/src/main/flex/LayoutViews/CarouselLayoutView.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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
+		xmlns:s="library://ns.adobe.com/flex/spark" title="CarouselLayout" xmlns:ns="http://flex.apache.org/experimental/ns">
+	
+	<fx:Script>
+		<![CDATA[
+			import spark.primitives.BitmapImage;
+			protected function buttonHandler(event:MouseEvent):void
+			{
+				var random:Number = Math.ceil(Math.random()*3);
+				
+				var bitmapImage:BitmapImage = new BitmapImage();
+				bitmapImage.width =  Math.ceil(Math.random()*150);
+				bitmapImage.height = bitmapImage.width;
+				bitmapImage.source = "assets/images/box"+random+".png";
+				group.addElement(bitmapImage);
+				
+				group.verticalScrollPosition = group.contentHeight;
+			}
+		]]>
+	</fx:Script>
+	
+	
+	<s:actionContent>
+		<s:Button click="buttonHandler(event)">
+			<s:icon>
+				<s:MultiDPIBitmapSource source160dpi="@Embed('/assets/icons/160/add.png')" source240dpi="@Embed('/assets/icons/240/add.png')" source320dpi="@Embed('/assets/icons/320/add.png')" />
+			</s:icon>
+		</s:Button>
+	</s:actionContent>
+			
+	<s:Scroller id="scroller" width="100%" height="100%">
+		<s:Group id="group">
+			<s:layout>
+				<ns:CarouselLayout verticalAlign="middle" useVirtualLayout="true" />
+			</s:layout>
+		</s:Group>
+	</s:Scroller>
+</s:View>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/main/flex/LayoutViews/CoverFlowLayoutView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/main/flex/LayoutViews/CoverFlowLayoutView.mxml b/tourdeflexmobile/src/main/flex/LayoutViews/CoverFlowLayoutView.mxml
new file mode 100644
index 0000000..82a9469
--- /dev/null
+++ b/tourdeflexmobile/src/main/flex/LayoutViews/CoverFlowLayoutView.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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
+		xmlns:s="library://ns.adobe.com/flex/spark" title="CoverFlowLayout" xmlns:ns="http://flex.apache.org/experimental/ns">
+	
+	<fx:Script>
+		<![CDATA[
+			import spark.primitives.BitmapImage;
+			protected function buttonHandler(event:MouseEvent):void
+			{
+				var random:Number = Math.ceil(Math.random()*3);
+				
+				var bitmapImage:BitmapImage = new BitmapImage();
+				bitmapImage.width =  Math.ceil(Math.random()*150);
+				bitmapImage.height = bitmapImage.width;
+				bitmapImage.source = "assets/images/box"+random+".png";
+				group.addElement(bitmapImage);
+				
+				group.verticalScrollPosition = group.contentHeight;
+			}
+		]]>
+	</fx:Script>
+	
+	
+	<s:actionContent>
+		<s:Button click="buttonHandler(event)">
+			<s:icon>
+				<s:MultiDPIBitmapSource source160dpi="@Embed('/assets/icons/160/add.png')" source240dpi="@Embed('/assets/icons/240/add.png')" source320dpi="@Embed('/assets/icons/320/add.png')" />
+			</s:icon>
+		</s:Button>
+	</s:actionContent>
+			
+	<s:Scroller id="scroller" width="100%" height="100%">
+		<s:Group id="group">
+			<s:layout>
+				<ns:CoverflowLayout verticalAlign="middle" duration="500" useVirtualLayout="true" />
+			</s:layout>
+		</s:Group>
+	</s:Scroller>
+</s:View>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/main/flex/LayoutViews/HorizontalLayoutView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/main/flex/LayoutViews/HorizontalLayoutView.mxml b/tourdeflexmobile/src/main/flex/LayoutViews/HorizontalLayoutView.mxml
new file mode 100644
index 0000000..efb1747
--- /dev/null
+++ b/tourdeflexmobile/src/main/flex/LayoutViews/HorizontalLayoutView.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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
+		xmlns:s="library://ns.adobe.com/flex/spark" title="HorizontalLayout">
+	
+	<fx:Script>
+		<![CDATA[
+			import spark.primitives.BitmapImage;
+			protected function buttonHandler(event:MouseEvent):void
+			{
+				var random:Number = Math.ceil(Math.random()*3);
+				
+				var bitmapImage:BitmapImage = new BitmapImage();
+				bitmapImage.width =  Math.ceil(Math.random()*150);
+				bitmapImage.height = bitmapImage.width;
+				bitmapImage.source = "assets/images/box"+random+".png";
+				group.addElement(bitmapImage);
+				
+				group.horizontalScrollPosition = group.contentWidth;
+			}
+		]]>
+	</fx:Script>
+	
+	
+	<s:actionContent>
+		<s:Button click="buttonHandler(event)">
+			<s:icon>
+				<s:MultiDPIBitmapSource source160dpi="@Embed('/assets/icons/160/add.png')" source240dpi="@Embed('/assets/icons/240/add.png')" source320dpi="@Embed('/assets/icons/320/add.png')" />
+			</s:icon>
+		</s:Button>
+	</s:actionContent>
+			
+	<s:Scroller id="scroller" width="100%" height="100%">
+		<s:Group id="group">
+			<s:layout>
+				<s:HorizontalLayout verticalAlign="middle" useVirtualLayout="true" />
+			</s:layout>
+		</s:Group>
+	</s:Scroller>
+</s:View>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/main/flex/LayoutViews/RolodexLayoutView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/main/flex/LayoutViews/RolodexLayoutView.mxml b/tourdeflexmobile/src/main/flex/LayoutViews/RolodexLayoutView.mxml
new file mode 100644
index 0000000..ba38a23
--- /dev/null
+++ b/tourdeflexmobile/src/main/flex/LayoutViews/RolodexLayoutView.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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
+		xmlns:s="library://ns.adobe.com/flex/spark" title="RolodexLayout" xmlns:ns="http://flex.apache.org/experimental/ns">
+	
+	<fx:Script>
+		<![CDATA[
+			import spark.primitives.BitmapImage;
+			protected function buttonHandler(event:MouseEvent):void
+			{
+				var random:Number = Math.ceil(Math.random()*3);
+				
+				var bitmapImage:BitmapImage = new BitmapImage();
+				bitmapImage.width =  Math.ceil(Math.random()*150);
+				bitmapImage.height = bitmapImage.width;
+				bitmapImage.source = "assets/images/box"+random+".png";
+				group.addElement(bitmapImage);
+				
+				group.verticalScrollPosition = group.contentHeight;
+			}
+		]]>
+	</fx:Script>
+	
+	
+	<s:actionContent>
+		<s:Button click="buttonHandler(event)">
+			<s:icon>
+				<s:MultiDPIBitmapSource source160dpi="@Embed('/assets/icons/160/add.png')" source240dpi="@Embed('/assets/icons/240/add.png')" source320dpi="@Embed('/assets/icons/320/add.png')" />
+			</s:icon>
+		</s:Button>
+	</s:actionContent>
+			
+	<s:Scroller id="scroller" width="100%" height="100%">
+		<s:Group id="group">
+			<s:layout>
+				<ns:RolodexLayout horizontalAlign="center" useVirtualLayout="true" />
+			</s:layout>
+		</s:Group>
+	</s:Scroller>
+</s:View>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/main/flex/LayoutViews/StackLayoutView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/main/flex/LayoutViews/StackLayoutView.mxml b/tourdeflexmobile/src/main/flex/LayoutViews/StackLayoutView.mxml
new file mode 100644
index 0000000..4a59e4c
--- /dev/null
+++ b/tourdeflexmobile/src/main/flex/LayoutViews/StackLayoutView.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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
+		xmlns:s="library://ns.adobe.com/flex/spark" title="StackLayout" xmlns:ns="http://flex.apache.org/experimental/ns">
+	
+	<fx:Script>
+		<![CDATA[
+			import spark.primitives.BitmapImage;
+			protected function buttonHandler(event:MouseEvent):void
+			{
+				var random:Number = Math.ceil(Math.random()*3);
+				
+				var bitmapImage:BitmapImage = new BitmapImage();
+				bitmapImage.width =  Math.ceil(Math.random()*150);
+				bitmapImage.height = bitmapImage.width;
+				bitmapImage.source = "assets/images/box"+random+".png";
+				group.addElement(bitmapImage);
+				
+				group.verticalScrollPosition = group.contentHeight;
+			}
+		]]>
+	</fx:Script>
+	
+	
+	<s:actionContent>
+		<s:Button click="buttonHandler(event)">
+			<s:icon>
+				<s:MultiDPIBitmapSource source160dpi="@Embed('/assets/icons/160/add.png')" source240dpi="@Embed('/assets/icons/240/add.png')" source320dpi="@Embed('/assets/icons/320/add.png')" />
+			</s:icon>
+		</s:Button>
+	</s:actionContent>
+			
+	<s:Scroller id="scroller" width="100%" height="100%">
+		<s:Group id="group">
+			<s:layout>
+				<ns:StackLayout verticalAlign="middle" useVirtualLayout="true" />
+			</s:layout>
+		</s:Group>
+	</s:Scroller>
+</s:View>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/main/flex/LayoutViews/TileLayoutView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/main/flex/LayoutViews/TileLayoutView.mxml b/tourdeflexmobile/src/main/flex/LayoutViews/TileLayoutView.mxml
new file mode 100644
index 0000000..e807728
--- /dev/null
+++ b/tourdeflexmobile/src/main/flex/LayoutViews/TileLayoutView.mxml
@@ -0,0 +1,60 @@
+<?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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
+		xmlns:s="library://ns.adobe.com/flex/spark" title="TileLayout">
+	
+	<fx:Script>
+		<![CDATA[
+			import spark.primitives.BitmapImage;
+			protected function buttonHandler(event:MouseEvent):void
+			{
+				var random:Number = Math.ceil(Math.random()*3);
+				
+				var miniGroup:Group = new Group();
+				group.addElement(miniGroup);
+				
+				var bitmapImage:BitmapImage = new BitmapImage();
+				bitmapImage.width =  Math.ceil(Math.random()*100);
+				bitmapImage.height = bitmapImage.width;
+				bitmapImage.source = "assets/images/box"+random+".png";
+				miniGroup.addElement(bitmapImage);
+				
+				//group.verticalScrollPosition = group.contentHeight;
+			}
+		]]>
+	</fx:Script>
+	
+	
+	<s:actionContent>
+		<s:Button click="buttonHandler(event)">
+			<s:icon>
+				<s:MultiDPIBitmapSource source160dpi="@Embed('/assets/icons/160/add.png')" source240dpi="@Embed('/assets/icons/240/add.png')" source320dpi="@Embed('/assets/icons/320/add.png')" />
+			</s:icon>
+		</s:Button>
+	</s:actionContent>
+			
+	<s:Scroller id="scroller" width="100%" height="100%">
+		<s:Group id="group">
+			<s:layout>
+				<s:TileLayout orientation="rows" columnWidth="100" rowHeight="100" useVirtualLayout="true" />
+			</s:layout>
+		</s:Group>
+	</s:Scroller>
+</s:View>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/main/flex/LayoutViews/TimeMachineLayoutView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/main/flex/LayoutViews/TimeMachineLayoutView.mxml b/tourdeflexmobile/src/main/flex/LayoutViews/TimeMachineLayoutView.mxml
new file mode 100644
index 0000000..476f16d
--- /dev/null
+++ b/tourdeflexmobile/src/main/flex/LayoutViews/TimeMachineLayoutView.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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
+		xmlns:s="library://ns.adobe.com/flex/spark" title="TimeMachineLayout" xmlns:ns="http://flex.apache.org/experimental/ns">
+	
+	<fx:Script>
+		<![CDATA[
+			import spark.primitives.BitmapImage;
+			protected function buttonHandler(event:MouseEvent):void
+			{
+				var random:Number = Math.ceil(Math.random()*3);
+				
+				var bitmapImage:BitmapImage = new BitmapImage();
+				bitmapImage.width =  Math.ceil(Math.random()*150);
+				bitmapImage.height = bitmapImage.width;
+				bitmapImage.source = "assets/images/box"+random+".png";
+				group.addElement(bitmapImage);
+				
+				group.verticalScrollPosition = group.contentHeight;
+			}
+		]]>
+	</fx:Script>
+	
+	
+	<s:actionContent>
+		<s:Button click="buttonHandler(event)">
+			<s:icon>
+				<s:MultiDPIBitmapSource source160dpi="@Embed('/assets/icons/160/add.png')" source240dpi="@Embed('/assets/icons/240/add.png')" source320dpi="@Embed('/assets/icons/320/add.png')" />
+			</s:icon>
+		</s:Button>
+	</s:actionContent>
+			
+	<s:Scroller id="scroller" width="100%" height="100%">
+		<s:Group id="group">
+			<s:layout>
+				<ns:TimeMachineLayout verticalAlign="middle" useVirtualLayout="true" />
+			</s:layout>
+		</s:Group>
+	</s:Scroller>
+</s:View>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/main/flex/LayoutViews/VerticalLayoutView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/main/flex/LayoutViews/VerticalLayoutView.mxml b/tourdeflexmobile/src/main/flex/LayoutViews/VerticalLayoutView.mxml
new file mode 100644
index 0000000..72b7547
--- /dev/null
+++ b/tourdeflexmobile/src/main/flex/LayoutViews/VerticalLayoutView.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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
+		xmlns:s="library://ns.adobe.com/flex/spark" title="VerticalLayout">
+	
+	<fx:Script>
+		<![CDATA[
+			import spark.primitives.BitmapImage;
+			protected function buttonHandler(event:MouseEvent):void
+			{
+				var random:Number = Math.ceil(Math.random()*3);
+				
+				var bitmapImage:BitmapImage = new BitmapImage();
+				bitmapImage.width =  Math.ceil(Math.random()*150);
+				bitmapImage.height = bitmapImage.width;
+				bitmapImage.source = "assets/images/box"+random+".png";
+				group.addElement(bitmapImage);
+				
+				group.verticalScrollPosition = group.contentHeight;
+			}
+		]]>
+	</fx:Script>
+	
+	
+	<s:actionContent>
+		<s:Button click="buttonHandler(event)">
+			<s:icon>
+				<s:MultiDPIBitmapSource source160dpi="@Embed('/assets/icons/160/add.png')" source240dpi="@Embed('/assets/icons/240/add.png')" source320dpi="@Embed('/assets/icons/320/add.png')" />
+			</s:icon>
+		</s:Button>
+	</s:actionContent>
+			
+	<s:Scroller id="scroller" width="100%" height="100%">
+		<s:Group id="group">
+			<s:layout>
+				<s:VerticalLayout horizontalAlign="center" useVirtualLayout="true" />
+			</s:layout>
+		</s:Group>
+	</s:Scroller>
+</s:View>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/main/flex/TourDeFlexMobile.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/main/flex/TourDeFlexMobile.mxml b/tourdeflexmobile/src/main/flex/TourDeFlexMobile.mxml
new file mode 100644
index 0000000..b9faa1e
--- /dev/null
+++ b/tourdeflexmobile/src/main/flex/TourDeFlexMobile.mxml
@@ -0,0 +1,171 @@
+<?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:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
+							xmlns:s="library://ns.adobe.com/flex/spark" applicationDPI="160" applicationComplete="init(event)">
+	
+	<fx:Style source="styles.css"/>
+	
+	<fx:Script>
+		<![CDATA[
+			import mx.events.FlexEvent;
+			
+			import spark.events.IndexChangeEvent;
+			
+			import AIRViews.AccelerometerView;
+			import AIRViews.SQLiteView;
+			
+			import LayoutViews.AccordionLayoutView;
+			import LayoutViews.CarouselLayoutView;
+			import LayoutViews.CoverFlowLayoutView;
+			import LayoutViews.HorizontalLayoutView;
+			import LayoutViews.RolodexLayoutView;
+			import LayoutViews.TileLayoutView;
+			import LayoutViews.TimeMachineLayoutView;
+			import LayoutViews.VerticalLayoutView;
+			
+			import UIViews.ButtonBarView;
+			import UIViews.CalloutButtonView;
+			import UIViews.CheckboxView;
+			import UIViews.DateSpinnerView;
+			import UIViews.ListView;
+			import UIViews.MobileGridView;
+			import UIViews.RadiobuttonView;
+			import UIViews.SpinnerListView;
+			import UIViews.TextInputView;
+			import UIViews.ToggleSwitchView;
+			
+			import views.HttpServiceView;
+			
+			private var isOpen:Boolean;	
+			
+			[Bindable]
+			private var currentStageWidth:Number;
+		
+			[Bindable]
+			private var currentStageHeight:Number;
+			
+			protected function init(event:FlexEvent):void
+			{
+				stage.addEventListener(Event.RESIZE, orientationHandler);
+				
+				currentStageWidth = stage.stageWidth*-1;
+				lateralMenu.x = currentStageWidth;
+				currentStageHeight = navigator.height-45;
+				lateralMenu.height = currentStageHeight;			
+				lateralMenu.x = currentStageWidth;
+				isOpen = false;
+			}
+			
+			private function orientationHandler(event:Event):void{
+				currentStageWidth = stage.stageWidth*-1;
+				
+				if(isOpen == false){
+					lateralMenu.x = currentStageWidth;
+				}
+				
+				currentStageHeight = navigator.height-45;
+				lateralMenu.height = currentStageHeight;	
+				
+				trace(lateralMenu.height);
+			}
+			
+			protected function menuHandler(event:MouseEvent):void
+			{
+				
+				if(isOpen == true){
+					moveOut.play();
+					isOpen = false;
+				} else if(isOpen == false){
+					moveIn.play();
+					isOpen = true;
+				}
+			}
+			
+			protected function changeHandler(event:IndexChangeEvent):void
+			{
+				isOpen = false;
+				moveOut.play();
+				
+				navigator.pushView(componentsList.selectedItem.view);
+			}
+			
+			protected function menuBackgroundHandler(event:MouseEvent):void
+			{
+				isOpen = false;
+				moveOut.play();
+			}
+			
+		]]>
+	</fx:Script>
+	
+	<fx:Declarations>
+		<s:Move id="moveIn" duration="200" target="{lateralMenu}" xTo="0"/>
+		<s:Move id="moveOut" duration="200" target="{lateralMenu}" xTo="{currentStageWidth}"/>
+	</fx:Declarations>
+	
+	<s:ViewNavigator id="navigator" firstView="views.BlogView" width="100%" height="100%">
+		<s:navigationContent>
+			<s:Button icon="@Embed('/assets/images/logo.png')" height="35" width="77" label="Menu" click="menuHandler(event)"/>
+		</s:navigationContent>
+	</s:ViewNavigator>
+	
+	<s:Group id="lateralMenu" width="100%" y="45">
+		<s:Graphic width="100%" height="100%" click="menuBackgroundHandler(event)">
+			<s:BitmapImage width="100%" height="100%" scaleMode="zoom" source="@Embed('/assets/images/bg.png')"/>
+		</s:Graphic>
+		
+		<s:List id="componentsList" itemRenderer="renderers.MenuRenderer" width="200" height="100%" change="changeHandler(event)" contentBackgroundColor="#000000">
+			<s:ArrayList>
+				<fx:Object label="UI Components" type="separator"/>			
+				<fx:Object label="ButtonBar" type="view" view="{ButtonBarView}"/>
+				<fx:Object label="CalloutButton" type="view" view="{CalloutButtonView}"/>
+				<fx:Object label="CheckBox" type="view" view="{CheckboxView}"/>
+				<fx:Object label="DateSpinner" type="view" view="{DateSpinnerView}"/>
+				<fx:Object label="List" type="view" view="{ListView}"/>
+				<fx:Object label="MobileGrid" type="view" view="{MobileGridView}"/>
+				<fx:Object label="RadioButton" type="view" view="{RadiobuttonView}"/>
+				<fx:Object label="SpinnerList" type="view" view="{SpinnerListView}"/>
+				<fx:Object label="TextInput" type="view" view="{TextInputView}"/>
+				<fx:Object label="ToggleSwitch" type="view" view="{ToggleSwitchView}"/>
+				
+				<fx:Object label="Layouts" type="separator"/>				
+				<fx:Object label="HorizontalLayout" type="view" view="{HorizontalLayoutView}"/>
+				<fx:Object label="VerticalLayout" type="view" view="{VerticalLayoutView}"/>
+				<fx:Object label="TileLayout" type="view" view="{TileLayoutView}"/>
+				<fx:Object label="CoverFlowLayout" type="view" view="{CoverFlowLayoutView}"/>
+				<fx:Object label="TimeMachineLayout" type="view" view="{TimeMachineLayoutView}"/>
+				<fx:Object label="RolodexLayout" type="view" view="{RolodexLayoutView}"/>
+				<fx:Object label="CarouselLayout" type="view" view="{CarouselLayoutView}"/>
+				<fx:Object label="AccordionLayout" type="view" view="{AccordionLayoutView}"/>
+				<!-- <fx:Object label="StackLayout" type="view" view="{StackLayoutView}"/> -->
+				
+				<fx:Object label="AIR APIs" type="separator"/>				
+				<fx:Object label="SQLite" type="view" view="{SQLiteView}"/>
+				<fx:Object label="Accelerometer" type="view" view="{AccelerometerView}"/>
+				
+				<fx:Object label="Data Access" type="separator"/>			
+				<fx:Object label="HTTPService" type="view" view="{HttpServiceView}"/>
+			</s:ArrayList>
+		</s:List>
+	</s:Group>
+	
+	
+</s:Application>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/main/flex/UIViews/ButtonBarView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/main/flex/UIViews/ButtonBarView.mxml b/tourdeflexmobile/src/main/flex/UIViews/ButtonBarView.mxml
new file mode 100644
index 0000000..0ed687a
--- /dev/null
+++ b/tourdeflexmobile/src/main/flex/UIViews/ButtonBarView.mxml
@@ -0,0 +1,79 @@
+<?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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
+		xmlns:s="library://ns.adobe.com/flex/spark" title="ButtonBar">
+	
+	<fx:Script>
+		<![CDATA[
+			import spark.events.IndexChangeEvent;
+			import spark.skins.mobile.TextAreaSkin;
+			
+			protected function buttonbarHandler(event:IndexChangeEvent):void
+			{
+				label.text = buttonbar.selectedItem.label + " Pressed.";
+			}
+			
+			protected function buttonHandler(event:MouseEvent):void
+			{
+				if(currentState == "DemoState"){
+					currentState = "InfoState";				
+				}else if(currentState == "InfoState"){
+					currentState = "DemoState";
+				}
+			}
+			
+		]]>
+	</fx:Script>
+	
+	<s:states>
+		<s:State name="DemoState"/>
+		<s:State name="InfoState"/>
+	</s:states>
+	
+	<fx:Declarations>
+		<s:MultiDPIBitmapSource id="aboutIcon" source160dpi="@Embed('/assets/icons/160/about.png')" source240dpi="@Embed('/assets/icons/240/about.png')" source320dpi="@Embed('/assets/icons/320/about.png')"/>
+		<s:MultiDPIBitmapSource id="demoIcon" source160dpi="@Embed('/assets/icons/160/dock.png')" source240dpi="@Embed('/assets/icons/240/dock.png')" source320dpi="@Embed('/assets/icons/320/dock.png')"/>
+	</fx:Declarations>
+	
+	<s:ButtonBar id="buttonbar" includeIn="DemoState" change="buttonbarHandler(event)" left="5" right="5" top="5">
+		<s:ArrayList>
+			<fx:Object label="Button 1"/>
+			<fx:Object label="Button 2"/>
+			<fx:Object label="Button 3"/>
+		</s:ArrayList>
+	</s:ButtonBar>
+
+	<s:Label id="label" includeIn="DemoState" horizontalCenter="0" textAlign="center" bottom="20"/>
+	
+	<s:TextArea includeIn="InfoState" skinClass="spark.skins.mobile.TextAreaSkin" left="10" right="10" top="10" bottom="10" editable="false" text="The ButtonBar control defines a horizontal group of logically related buttons with a common look and navigation.
+				&#xd; &#xd;The typical use for a button bar is for grouping a set of related buttons together, which gives them a common look and navigation, and handling the logic for the change event in a single place.
+				
+				&#xd; &#xd;The ButtonBar control creates Button controls based on the value of its dataProvider property. Use methods such as addItem() and removeItem() to manipulate the dataProvider property to add and remove data items. The ButtonBar control automatically adds or removes the necessary children based on changes to the dataProvider property.
+				
+				&#xd; &#xd;To use this component in a list-based component, such as a List or DataGrid, create an item renderer. For information about creating an item renderer, see Custom Spark item renderers.
+				
+				&#xd; &#xd;For non-mobile projects, you can use the ButtonBar control to set the active child of a ViewStack container, as the following example shows:
+				
+				&#xd; &#xd;Note: The Spark list-based controls (the Spark ListBase class and its subclasses such as ButtonBar, ComboBox, DropDownList, List, and TabBar) do not support the BasicLayout class as the value of the layout property. Do not use BasicLayout with the Spark list-based controls."/>
+	
+	<s:actionContent>
+		<s:Button click="buttonHandler(event)" icon.DemoState="{aboutIcon}" icon.InfoState="{demoIcon}"/>
+	</s:actionContent>
+</s:View>

http://git-wip-us.apache.org/repos/asf/flex-examples/blob/bc1ad766/tourdeflexmobile/src/main/flex/UIViews/CalloutButtonView.mxml
----------------------------------------------------------------------
diff --git a/tourdeflexmobile/src/main/flex/UIViews/CalloutButtonView.mxml b/tourdeflexmobile/src/main/flex/UIViews/CalloutButtonView.mxml
new file mode 100644
index 0000000..5f2faeb
--- /dev/null
+++ b/tourdeflexmobile/src/main/flex/UIViews/CalloutButtonView.mxml
@@ -0,0 +1,72 @@
+<?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:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
+		xmlns:s="library://ns.adobe.com/flex/spark" title="CalloutButton">
+	
+	<fx:Script>
+		<![CDATA[
+			import spark.skins.mobile.TextAreaSkin;
+			protected function buttonHandler(event:MouseEvent):void
+			{
+				if(currentState == "DemoState"){
+					currentState = "InfoState";				
+				}else if(currentState == "InfoState"){
+					currentState = "DemoState";
+				}
+			}
+		]]>
+	</fx:Script>
+	
+	<s:states>
+		<s:State name="DemoState"/>
+		<s:State name="InfoState"/>
+	</s:states>
+	
+	<fx:Declarations>
+		<s:MultiDPIBitmapSource id="aboutIcon" source160dpi="@Embed('/assets/icons/160/about.png')" source240dpi="@Embed('/assets/icons/240/about.png')" source320dpi="@Embed('/assets/icons/320/about.png')"/>
+		<s:MultiDPIBitmapSource id="demoIcon" source160dpi="@Embed('/assets/icons/160/dock.png')" source240dpi="@Embed('/assets/icons/240/dock.png')" source320dpi="@Embed('/assets/icons/320/dock.png')"/>
+	</fx:Declarations>
+	
+	<s:CalloutButton label="CalloutButton" horizontalCenter="0" y="10">
+		<s:List>
+			<s:ArrayList>
+				<fx:Object label="Item 1"/>
+				<fx:Object label="Item 2"/>
+				<fx:Object label="Item 3"/>
+				<fx:Object label="Item 4"/>
+				<fx:Object label="Item 5"/>
+			</s:ArrayList>
+		</s:List>
+	</s:CalloutButton>
+	
+	<s:TextArea includeIn="InfoState" skinClass="spark.skins.mobile.TextAreaSkin" left="10" right="10" top="10" bottom="10" editable="false" text="The CalloutButton control is a drop down component that defines a button to open and close a Callout container. The CalloutButton specifies the layout and child components of the Callout container.
+				
+				&#xd; &#xd;The CalloutButton control uses the spark.components.supportClasses.DropDownController class to manage the Callout container. You can access the DropDownController by using the protected CalloutButton.dropDownController property.
+				
+				&#xd; &#xd;When the callout is open:
+				
+				&#xd; &#xd;Clicking the button closes the callout
+				&#xd; &#xd;Clicking outside of the callout closes the callout."/>
+	
+	<s:actionContent>
+		<s:Button click="buttonHandler(event)" icon.DemoState="{aboutIcon}" icon.InfoState="{demoIcon}"/>
+	</s:actionContent>
+	
+</s:View>