You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2014/08/01 07:44:08 UTC

[47/51] [partial] this folder was called TourDeFlex_content.com and was hidden by .gitignore

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d43c133c/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/source/com/devgirl/runtracker/skins/IncrementSkin.mxml.html
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/source/com/devgirl/runtracker/skins/IncrementSkin.mxml.html b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/source/com/devgirl/runtracker/skins/IncrementSkin.mxml.html
new file mode 100644
index 0000000..3870ce8
--- /dev/null
+++ b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/source/com/devgirl/runtracker/skins/IncrementSkin.mxml.html
@@ -0,0 +1,112 @@
+<!--
+  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.
+-->
+<!-- saved from url=(0014)about:internet -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<title>IncrementSkin.mxml</title>
+<link rel="stylesheet" type="text/css" href="../../../../../SourceStyles.css"/>
+</head>
+
+<body><pre><span class="MXMLProcessing_Instruction">&lt;?xml version="1.0" encoding="utf-8"?&gt;</span>
+
+<span class="MXMLASDoc">&lt;!---</span><span class="MXMLASDoc"> The default skin class for the up button of a Spark NumericStepper component.  
+    
+    @see spark.components.NumericStepper
+    
+    @langversion 3.0
+    @playerversion Flash 10
+    @playerversion AIR 1.5
+    @productversion Flex 4
+</span><span class="MXMLASDoc">--&gt;</span>
+<span class="MXMLComponent_Tag">&lt;s:SparkSkin</span><span class="MXMLDefault_Text"> xmlns:fx="</span><span class="MXMLString">http://ns.adobe.com/mxml/2009</span><span class="MXMLDefault_Text">" xmlns:s="</span><span class="MXMLString">library://ns.adobe.com/flex/spark</span><span class="MXMLDefault_Text">"
+             xmlns:fb="</span><span class="MXMLString">http://ns.adobe.com/flashbuilder/2009</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">&gt;</span>
+    
+    <span class="MXMLSpecial_Tag">&lt;fx:Metadata&gt;</span>
+        &lt;![CDATA[ 
+        <span class="ActionScriptASDoc">/** 
+        * @copy spark.skins.spark.ApplicationSkin#hostComponent
+        */</span>
+        <span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptMetadata">HostComponent</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"spark.components.Button"</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">]</span>
+        <span class="ActionScriptBracket/Brace">]</span><span class="ActionScriptBracket/Brace">]</span><span class="ActionScriptOperator">&gt;</span>
+    <span class="MXMLSpecial_Tag">&lt;/fx:Metadata&gt;</span> 
+    
+    <span class="MXMLComponent_Tag">&lt;s:states&gt;</span>
+        <span class="MXMLComponent_Tag">&lt;s:State</span><span class="MXMLDefault_Text"> name="</span><span class="MXMLString">up</span><span class="MXMLDefault_Text">" </span><span class="MXMLComponent_Tag">/&gt;</span>
+        <span class="MXMLComponent_Tag">&lt;s:State</span><span class="MXMLDefault_Text"> name="</span><span class="MXMLString">over</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/&gt;</span>
+        <span class="MXMLComponent_Tag">&lt;s:State</span><span class="MXMLDefault_Text"> name="</span><span class="MXMLString">down</span><span class="MXMLDefault_Text">" </span><span class="MXMLComponent_Tag">/&gt;</span>
+        <span class="MXMLComponent_Tag">&lt;s:State</span><span class="MXMLDefault_Text"> name="</span><span class="MXMLString">disabled</span><span class="MXMLDefault_Text">" </span><span class="MXMLComponent_Tag">/&gt;</span>
+    <span class="MXMLComponent_Tag">&lt;/s:states&gt;</span>
+    
+    <span class="MXMLComponent_Tag">&lt;s:Group</span><span class="MXMLDefault_Text"> left="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" top="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" right="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" bottom="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">&gt;</span>
+        
+        <span class="MXMLComment">&lt;!--</span><span class="MXMLComment"> border/fill </span><span class="MXMLComment">--&gt;</span>
+        <span class="MXMLASDoc">&lt;!---</span><span class="MXMLASDoc"> @private </span><span class="MXMLASDoc">--&gt;</span>
+        <span class="MXMLComponent_Tag">&lt;s:Rect</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">fill</span><span class="MXMLDefault_Text">" left="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" top="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" right="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" bottom="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">"  width="</span><span class="MXMLString">18</span><span class="MXMLDefault_Text">" height="</span><span class="MXMLString">16</span><span class="MXMLDefault_Text">" topRightRadiusX="</span><span class="MXMLString">2</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">&gt;</span>
+            <span class="MXMLComponent_Tag">&lt;s:stroke&gt;</span>
+                <span class="MXMLComponent_Tag">&lt;s:SolidColorStroke</span><span class="MXMLDefault_Text"> color="</span><span class="MXMLString">0x686868</span><span class="MXMLDefault_Text">" weight="</span><span class="MXMLString">1</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/&gt;</span>
+            <span class="MXMLComponent_Tag">&lt;/s:stroke&gt;</span>
+            <span class="MXMLComponent_Tag">&lt;s:fill&gt;</span>
+                <span class="MXMLComponent_Tag">&lt;s:LinearGradient</span><span class="MXMLDefault_Text"> rotation="</span><span class="MXMLString">90</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">&gt;</span>
+                    <span class="MXMLComponent_Tag">&lt;s:GradientEntry</span><span class="MXMLDefault_Text"> color="</span><span class="MXMLString">0xFFFFFF</span><span class="MXMLDefault_Text">"
+                                     color.over="</span><span class="MXMLString">0xC2C2C2</span><span class="MXMLDefault_Text">"
+                                     color.down="</span><span class="MXMLString">0xAEB0B1</span><span class="MXMLDefault_Text">" </span><span class="MXMLComponent_Tag">/&gt;</span>
+                    <span class="MXMLComponent_Tag">&lt;s:GradientEntry</span><span class="MXMLDefault_Text"> color="</span><span class="MXMLString">0xF0F0F0</span><span class="MXMLDefault_Text">"
+                                     color.over="</span><span class="MXMLString">0xADAEAF</span><span class="MXMLDefault_Text">"
+                                     color.down="</span><span class="MXMLString">0xA1A3A5</span><span class="MXMLDefault_Text">" </span><span class="MXMLComponent_Tag">/&gt;</span>
+                <span class="MXMLComponent_Tag">&lt;/s:LinearGradient&gt;</span>
+            <span class="MXMLComponent_Tag">&lt;/s:fill&gt;</span>
+        <span class="MXMLComponent_Tag">&lt;/s:Rect&gt;</span>
+        
+        <span class="MXMLComment">&lt;!--</span><span class="MXMLComment"> highlight </span><span class="MXMLComment">--&gt;</span>
+        <span class="MXMLASDoc">&lt;!---</span><span class="MXMLASDoc"> @private </span><span class="MXMLASDoc">--&gt;</span>
+        <span class="MXMLComponent_Tag">&lt;s:Rect</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">highlight</span><span class="MXMLDefault_Text">" left="</span><span class="MXMLString">1</span><span class="MXMLDefault_Text">" top="</span><span class="MXMLString">1</span><span class="MXMLDefault_Text">" right="</span><span class="MXMLString">1</span><span class="MXMLDefault_Text">" bottom="</span><span class="MXMLString">1</span><span class="MXMLDefault_Text">" topRightRadiusX="</span><span class="MXMLString">2</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">&gt;</span>
+            <span class="MXMLComponent_Tag">&lt;s:stroke&gt;</span>
+                <span class="MXMLComponent_Tag">&lt;s:LinearGradientStroke</span><span class="MXMLDefault_Text"> rotation="</span><span class="MXMLString">90</span><span class="MXMLDefault_Text">" weight="</span><span class="MXMLString">1</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">&gt;</span>
+                    <span class="MXMLComponent_Tag">&lt;s:GradientEntry</span><span class="MXMLDefault_Text"> color="</span><span class="MXMLString">0xFFFFFF</span><span class="MXMLDefault_Text">" 
+                                     color.down="</span><span class="MXMLString">0x000000</span><span class="MXMLDefault_Text">"
+                                     alpha.over="</span><span class="MXMLString">0.55</span><span class="MXMLDefault_Text">" 
+                                     alpha.down="</span><span class="MXMLString">0.15</span><span class="MXMLDefault_Text">" </span><span class="MXMLComponent_Tag">/&gt;</span>
+                    <span class="MXMLComponent_Tag">&lt;s:GradientEntry</span><span class="MXMLDefault_Text"> color="</span><span class="MXMLString">0xFFFFFF</span><span class="MXMLDefault_Text">" 
+                                     color.down="</span><span class="MXMLString">0x336699</span><span class="MXMLDefault_Text">"
+                                     alpha="</span><span class="MXMLString">0.45</span><span class="MXMLDefault_Text">"
+                                     alpha.over="</span><span class="MXMLString">0.2475</span><span class="MXMLDefault_Text">"
+                                     alpha.down="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" </span><span class="MXMLComponent_Tag">/&gt;</span>
+                <span class="MXMLComponent_Tag">&lt;/s:LinearGradientStroke&gt;</span>
+            <span class="MXMLComponent_Tag">&lt;/s:stroke&gt;</span>
+        <span class="MXMLComponent_Tag">&lt;/s:Rect&gt;</span>
+        
+        <span class="MXMLComment">&lt;!--</span><span class="MXMLComment"> shadow </span><span class="MXMLComment">--&gt;</span>
+        <span class="MXMLComponent_Tag">&lt;s:Rect</span><span class="MXMLDefault_Text"> left="</span><span class="MXMLString">1</span><span class="MXMLDefault_Text">" top="</span><span class="MXMLString">2</span><span class="MXMLDefault_Text">" right="</span><span class="MXMLString">1</span><span class="MXMLDefault_Text">" height="</span><span class="MXMLString">1</span><span class="MXMLDefault_Text">" includeIn="</span><span class="MXMLString">down</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">&gt;</span>
+            <span class="MXMLComponent_Tag">&lt;s:fill&gt;</span>
+                <span class="MXMLComponent_Tag">&lt;s:SolidColor</span><span class="MXMLDefault_Text"> color="</span><span class="MXMLString">0x336699</span><span class="MXMLDefault_Text">" alpha="</span><span class="MXMLString">0.07</span><span class="MXMLDefault_Text">" </span><span class="MXMLComponent_Tag">/&gt;</span>
+            <span class="MXMLComponent_Tag">&lt;/s:fill&gt;</span>
+        <span class="MXMLComponent_Tag">&lt;/s:Rect&gt;</span>   
+    <span class="MXMLComponent_Tag">&lt;/s:Group&gt;</span>
+    
+    <span class="MXMLComponent_Tag">&lt;s:Rect</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">arrow</span><span class="MXMLDefault_Text">" horizontalCenter="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" verticalCenter="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" width="</span><span class="MXMLString">38</span><span class="MXMLDefault_Text">" height="</span><span class="MXMLString">29</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">&gt;</span>
+        <span class="MXMLComponent_Tag">&lt;s:fill&gt;</span>
+            <span class="MXMLComponent_Tag">&lt;s:BitmapFill</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">arrowFill</span><span class="MXMLDefault_Text">" source="</span><span class="MXMLString">@Embed(source='assets/arrow_up_float.png')</span><span class="MXMLDefault_Text">" fillMode="</span><span class="MXMLString">clip</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/&gt;</span>
+        <span class="MXMLComponent_Tag">&lt;/s:fill&gt;</span>
+    <span class="MXMLComponent_Tag">&lt;/s:Rect&gt;</span>
+    
+    
+         
+    
+<span class="MXMLComponent_Tag">&lt;/s:SparkSkin&gt;</span></pre></body>
+</html>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d43c133c/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/source/com/devgirl/runtracker/skins/MyNumericStepperSkin.mxml.html
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/source/com/devgirl/runtracker/skins/MyNumericStepperSkin.mxml.html b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/source/com/devgirl/runtracker/skins/MyNumericStepperSkin.mxml.html
new file mode 100644
index 0000000..b16a96e
--- /dev/null
+++ b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/source/com/devgirl/runtracker/skins/MyNumericStepperSkin.mxml.html
@@ -0,0 +1,99 @@
+<!--
+  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.
+-->
+<!-- saved from url=(0014)about:internet -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<title>MyNumericStepperSkin.mxml</title>
+<link rel="stylesheet" type="text/css" href="../../../../../SourceStyles.css"/>
+</head>
+
+<body><pre><span class="MXMLProcessing_Instruction">&lt;?xml version="1.0" encoding="utf-8"?&gt;</span>
+
+<span class="MXMLASDoc">&lt;!---</span><span class="MXMLASDoc"> The default skin class for a Spark NumericStepper component. The skin for the text input field on a NumericStepper
+component is defined by the NumericStepperTextInputSkin class.  
+
+       @see spark.components.NumericStepper
+       @see spark.skins.spark.NumericStepperTextInputSkin
+        
+      @langversion 3.0
+      @playerversion Flash 10
+      @playerversion AIR 1.5
+      @productversion Flex 4
+</span><span class="MXMLASDoc">--&gt;</span>
+<span class="MXMLComponent_Tag">&lt;s:SparkSkin</span><span class="MXMLDefault_Text"> xmlns:fx="</span><span class="MXMLString">http://ns.adobe.com/mxml/2009</span><span class="MXMLDefault_Text">" xmlns:s="</span><span class="MXMLString">library://ns.adobe.com/flex/spark</span><span class="MXMLDefault_Text">"
+      xmlns:fb="</span><span class="MXMLString">http://ns.adobe.com/flashbuilder/2009</span><span class="MXMLDefault_Text">" minHeight="</span><span class="MXMLString">23</span><span class="MXMLDefault_Text">" minWidth="</span><span class="MXMLString">40</span><span class="MXMLDefault_Text">" 
+      alpha.disabled="</span><span class="MXMLString">0.5</span><span class="MXMLDefault_Text">" height="</span><span class="MXMLString">100</span><span class="MXMLDefault_Text">" width="</span><span class="MXMLString">120</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">&gt;</span>
+
+    <span class="MXMLSpecial_Tag">&lt;fx:Metadata&gt;</span>
+    &lt;![CDATA[ 
+        <span class="ActionScriptASDoc">/** 
+         * @copy spark.skins.spark.ApplicationSkin#hostComponent
+         */</span>
+        <span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptMetadata">HostComponent</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"spark.components.NumericStepper"</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">]</span>
+    <span class="ActionScriptBracket/Brace">]</span><span class="ActionScriptBracket/Brace">]</span><span class="ActionScriptOperator">&gt;</span>
+    <span class="MXMLSpecial_Tag">&lt;/fx:Metadata&gt;</span> 
+    <span class="MXMLComment">&lt;!--</span><span class="MXMLComment">&lt;fx:Script&gt;
+        &lt;![CDATA[
+            import flash.globalization.NumberFormatter;
+            
+            import mx.events.FlexEvent;
+            
+            import spark.skins.spark.NumericStepperIncrementButtonSkin;
+
+            // customize display of the text to show a leading zero
+            protected function textDisplay_valueCommitHandler(event:FlexEvent):void
+            {
+                if (textDisplay.text.length == 1)
+                    textDisplay.text = "0"+textDisplay.text;
+            }
+
+        ]]&gt;
+    &lt;/fx:Script&gt;</span><span class="MXMLComment">--&gt;</span>
+    
+    <span class="MXMLComment">&lt;!--</span><span class="MXMLComment">
+        NOTE: this skin file contains sub-parts that may continue to react to
+        Style code.  To remove this behavior create new copies of those skins
+        and remove the styles.
+    </span><span class="MXMLComment">--&gt;</span>
+    <span class="MXMLComponent_Tag">&lt;s:states&gt;</span>
+        <span class="MXMLComponent_Tag">&lt;s:State</span><span class="MXMLDefault_Text"> name="</span><span class="MXMLString">normal</span><span class="MXMLDefault_Text">" </span><span class="MXMLComponent_Tag">/&gt;</span>
+        <span class="MXMLComponent_Tag">&lt;s:State</span><span class="MXMLDefault_Text"> name="</span><span class="MXMLString">disabled</span><span class="MXMLDefault_Text">" </span><span class="MXMLComponent_Tag">/&gt;</span>
+    <span class="MXMLComponent_Tag">&lt;/s:states&gt;</span>
+
+    <span class="MXMLASDoc">&lt;!---</span><span class="MXMLASDoc"> The default class is NumericStepperIncrementButtonSkin.
+           @copy spark.components.Spinner#incrementButton
+           @see spark.skins.spark.NumericStepperIncrementButtonSkin </span><span class="MXMLASDoc">--&gt;</span>
+    <span class="MXMLComponent_Tag">&lt;s:Button</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">incrementButton</span><span class="MXMLDefault_Text">" right="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" top="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" height="</span><span class="MXMLString">50%</span><span class="MXMLDefault_Text">" 
+               skinClass="</span><span class="MXMLString">com.devgirl.runtracker.skins.IncrementSkin</span><span class="MXMLDefault_Text">" width.normal="</span><span class="MXMLString">65</span><span class="MXMLDefault_Text">" top.normal="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" right.normal="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/&gt;</span>
+              
+    <span class="MXMLASDoc">&lt;!---</span><span class="MXMLASDoc"> The default class is NumericStepperDecrementButtonSkin.
+            @copy spark.components.Spinner#decrementButton
+            @see spark.skins.spark.NumericStepperDecrementButtonSkin </span><span class="MXMLASDoc">--&gt;</span>
+    <span class="MXMLComponent_Tag">&lt;s:Button</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">decrementButton</span><span class="MXMLDefault_Text">" right="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" bottom="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" height="</span><span class="MXMLString">50%</span><span class="MXMLDefault_Text">" 
+                skinClass="</span><span class="MXMLString">com.devgirl.runtracker.skins.DecrementSkin</span><span class="MXMLDefault_Text">" width.normal="</span><span class="MXMLString">65</span><span class="MXMLDefault_Text">" bottom.normal="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" right.normal="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/&gt;</span>
+                           
+    <span class="MXMLASDoc">&lt;!---</span><span class="MXMLASDoc"> The default class is NumericStepperTextInputSkin.
+            @copy spark.components.NumericStepper#textDisplay
+            @see spark.skins.spark.NumericStepperTextInputSkin </span><span class="MXMLASDoc">--&gt;</span>
+    <span class="MXMLComponent_Tag">&lt;s:TextInput</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">textDisplay</span><span class="MXMLDefault_Text">" restrict="</span><span class="MXMLString">0-9</span><span class="MXMLDefault_Text">" 
+                 skinClass="</span><span class="MXMLString">com.devgirl.runtracker.skins.NumericStepperTextInputSkin</span><span class="MXMLDefault_Text">" fontSize="</span><span class="MXMLString">32</span><span class="MXMLDefault_Text">" fontFamily="</span><span class="MXMLString">Verdana</span><span class="MXMLDefault_Text">" 
+                 left="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" x="</span><span class="MXMLString">-13</span><span class="MXMLDefault_Text">" right="</span><span class="MXMLString">60</span><span class="MXMLDefault_Text">" height="</span><span class="MXMLString">100</span><span class="MXMLDefault_Text">" top="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" y="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" bottom="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" width="</span><span class="MXMLString">10</span><span class="MXMLDefault_Text">" color="</span><span class="MXMLString">0x000000</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/&gt;</span>
+        
+<span class="MXMLComponent_Tag">&lt;/s:SparkSkin&gt;</span></pre></body>
+</html>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d43c133c/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/source/com/devgirl/runtracker/skins/NumericStepperTextInputSkin.mxml.html
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/source/com/devgirl/runtracker/skins/NumericStepperTextInputSkin.mxml.html b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/source/com/devgirl/runtracker/skins/NumericStepperTextInputSkin.mxml.html
new file mode 100644
index 0000000..0cf6817
--- /dev/null
+++ b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/source/com/devgirl/runtracker/skins/NumericStepperTextInputSkin.mxml.html
@@ -0,0 +1,101 @@
+<!--
+  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.
+-->
+<!-- saved from url=(0014)about:internet -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<title>NumericStepperTextInputSkin.mxml</title>
+<link rel="stylesheet" type="text/css" href="../../../../../SourceStyles.css"/>
+</head>
+
+<body><pre><span class="MXMLProcessing_Instruction">&lt;?xml version="1.0" encoding="utf-8"?&gt;</span>
+<span class="MXMLASDoc">&lt;!---</span><span class="MXMLASDoc"> The default skin class for Spark TextInput component.  
+
+     @see spark.components.TextInput
+        
+      @langversion 3.0
+      @playerversion Flash 10
+      @playerversion AIR 1.5
+      @productversion Flex 4
+</span><span class="MXMLASDoc">--&gt;</span>
+<span class="MXMLComponent_Tag">&lt;s:SparkSkin</span><span class="MXMLDefault_Text"> xmlns:fx="</span><span class="MXMLString">http://ns.adobe.com/mxml/2009</span><span class="MXMLDefault_Text">" xmlns:s="</span><span class="MXMLString">library://ns.adobe.com/flex/spark</span><span class="MXMLDefault_Text">"
+    xmlns:fb="</span><span class="MXMLString">http://ns.adobe.com/flashbuilder/2009</span><span class="MXMLDefault_Text">" alpha.disabled="</span><span class="MXMLString">0.5</span><span class="MXMLDefault_Text">" blendMode="</span><span class="MXMLString">normal</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">&gt;</span>
+
+    <span class="MXMLSpecial_Tag">&lt;fx:Metadata&gt;</span>
+    &lt;![CDATA[ 
+        <span class="ActionScriptASDoc">/** 
+         * @copy spark.skins.spark.ApplicationSkin#hostComponent
+         */</span>
+        <span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptMetadata">HostComponent</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"spark.components.TextInput"</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">]</span>
+    <span class="ActionScriptBracket/Brace">]</span><span class="ActionScriptBracket/Brace">]</span><span class="ActionScriptOperator">&gt;</span>
+    <span class="MXMLSpecial_Tag">&lt;/fx:Metadata&gt;</span> 
+    
+    <span class="MXMLSpecial_Tag">&lt;fx:Script&gt;</span>
+        &lt;![CDATA[
+        <span class="ActionScriptASDoc">/** 
+         * @private 
+         */</span>     
+        <span class="ActionScriptReserved">private</span> <span class="ActionScriptReserved">static</span> <span class="ActionScriptReserved">const</span> <span class="ActionScriptDefault_Text">focusExclusions</span>:<span class="ActionScriptDefault_Text">Array</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptString">"textDisplay"</span><span class="ActionScriptBracket/Brace">]</span>;
+
+        <span class="ActionScriptASDoc">/**
+         *  @private
+         */</span>
+        <span class="ActionScriptReserved">override</span> <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">get</span> <span class="ActionScriptDefault_Text">focusSkinExclusions</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptDefault_Text">Array</span> <span class="ActionScriptBracket/Brace">{</span> <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">focusExclusions</span>;<span class="ActionScriptBracket/Brace">}</span>;
+        <span class="ActionScriptBracket/Brace">]</span><span class="ActionScriptBracket/Brace">]</span><span class="ActionScriptOperator">&gt;</span>
+    <span class="MXMLSpecial_Tag">&lt;/fx:Script&gt;</span>
+    
+    <span class="MXMLComponent_Tag">&lt;s:states&gt;</span>
+        <span class="MXMLComponent_Tag">&lt;s:State</span><span class="MXMLDefault_Text"> name="</span><span class="MXMLString">normal</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/&gt;</span>
+        <span class="MXMLComponent_Tag">&lt;s:State</span><span class="MXMLDefault_Text"> name="</span><span class="MXMLString">disabled</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/&gt;</span>
+    <span class="MXMLComponent_Tag">&lt;/s:states&gt;</span>
+    
+    <span class="MXMLComment">&lt;!--</span><span class="MXMLComment"> border </span><span class="MXMLComment">--&gt;</span> 
+    <span class="MXMLASDoc">&lt;!---</span><span class="MXMLASDoc"> @private </span><span class="MXMLASDoc">--&gt;</span>
+    <span class="MXMLComponent_Tag">&lt;s:Rect</span><span class="MXMLDefault_Text"> left="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" right="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" top="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" bottom="</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">" id="</span><span class="MXMLString">border</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">&gt;</span>
+        <span class="MXMLComponent_Tag">&lt;s:stroke&gt;</span>     
+            <span class="MXMLASDoc">&lt;!---</span><span class="MXMLASDoc"> @private </span><span class="MXMLASDoc">--&gt;</span>
+            <span class="MXMLComponent_Tag">&lt;s:SolidColorStroke</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">borderStroke</span><span class="MXMLDefault_Text">" weight="</span><span class="MXMLString">1</span><span class="MXMLDefault_Text">" </span><span class="MXMLComponent_Tag">/&gt;</span>
+        <span class="MXMLComponent_Tag">&lt;/s:stroke&gt;</span>
+    <span class="MXMLComponent_Tag">&lt;/s:Rect&gt;</span>
+
+    <span class="MXMLComment">&lt;!--</span><span class="MXMLComment"> fill </span><span class="MXMLComment">--&gt;</span>
+    <span class="MXMLASDoc">&lt;!---</span><span class="MXMLASDoc"> Defines the appearance of the TextInput component's background. </span><span class="MXMLASDoc">--&gt;</span>
+    <span class="MXMLComponent_Tag">&lt;s:Rect</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">background</span><span class="MXMLDefault_Text">" left="</span><span class="MXMLString">1</span><span class="MXMLDefault_Text">" right="</span><span class="MXMLString">1</span><span class="MXMLDefault_Text">" top="</span><span class="MXMLString">1</span><span class="MXMLDefault_Text">" bottom="</span><span class="MXMLString">1</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">&gt;</span>
+        <span class="MXMLComponent_Tag">&lt;s:fill&gt;</span>
+            <span class="MXMLASDoc">&lt;!---</span><span class="MXMLASDoc"> @private Defines the background fill color. </span><span class="MXMLASDoc">--&gt;</span>
+            <span class="MXMLComponent_Tag">&lt;s:SolidColor</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">bgFill</span><span class="MXMLDefault_Text">" color="</span><span class="MXMLString">0xC0C0C0</span><span class="MXMLDefault_Text">" </span><span class="MXMLComponent_Tag">/&gt;</span>
+        <span class="MXMLComponent_Tag">&lt;/s:fill&gt;</span>
+    <span class="MXMLComponent_Tag">&lt;/s:Rect&gt;</span>
+    
+    <span class="MXMLComment">&lt;!--</span><span class="MXMLComment"> shadow </span><span class="MXMLComment">--&gt;</span>
+    <span class="MXMLASDoc">&lt;!---</span><span class="MXMLASDoc"> @private </span><span class="MXMLASDoc">--&gt;</span>
+    <span class="MXMLComponent_Tag">&lt;s:Rect</span><span class="MXMLDefault_Text"> left="</span><span class="MXMLString">1</span><span class="MXMLDefault_Text">" top="</span><span class="MXMLString">1</span><span class="MXMLDefault_Text">" right="</span><span class="MXMLString">1</span><span class="MXMLDefault_Text">" height="</span><span class="MXMLString">1</span><span class="MXMLDefault_Text">" id="</span><span class="MXMLString">shadow</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">&gt;</span>
+        <span class="MXMLComponent_Tag">&lt;s:fill&gt;</span>
+            <span class="MXMLComponent_Tag">&lt;s:SolidColor</span><span class="MXMLDefault_Text"> color="</span><span class="MXMLString">0x000000</span><span class="MXMLDefault_Text">" alpha="</span><span class="MXMLString">0.12</span><span class="MXMLDefault_Text">" </span><span class="MXMLComponent_Tag">/&gt;</span>
+        <span class="MXMLComponent_Tag">&lt;/s:fill&gt;</span>
+    <span class="MXMLComponent_Tag">&lt;/s:Rect&gt;</span>
+    
+    <span class="MXMLComment">&lt;!--</span><span class="MXMLComment"> text </span><span class="MXMLComment">--&gt;</span>
+    <span class="MXMLASDoc">&lt;!---</span><span class="MXMLASDoc"> @copy spark.components.supportClasses.SkinnableTextBase#textDisplay </span><span class="MXMLASDoc">--&gt;</span>
+    <span class="MXMLComponent_Tag">&lt;s:RichEditableText</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">textDisplay</span><span class="MXMLDefault_Text">"
+              verticalAlign="</span><span class="MXMLString">middle</span><span class="MXMLDefault_Text">"
+              widthInChars="</span><span class="MXMLString">10</span><span class="MXMLDefault_Text">"
+              left="</span><span class="MXMLString">7</span><span class="MXMLDefault_Text">" right="</span><span class="MXMLString">1</span><span class="MXMLDefault_Text">" top="</span><span class="MXMLString">1</span><span class="MXMLDefault_Text">" bottom="</span><span class="MXMLString">1</span><span class="MXMLDefault_Text">" </span><span class="MXMLComponent_Tag">/&gt;</span>
+
+<span class="MXMLComponent_Tag">&lt;/s:SparkSkin&gt;</span></pre></body>
+</html>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d43c133c/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/source/com/devgirl/runtracker/vo/RunVO.as.html
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/source/com/devgirl/runtracker/vo/RunVO.as.html b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/source/com/devgirl/runtracker/vo/RunVO.as.html
new file mode 100644
index 0000000..7ac7bc4
--- /dev/null
+++ b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/source/com/devgirl/runtracker/vo/RunVO.as.html
@@ -0,0 +1,44 @@
+<!--
+  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.
+-->
+<!-- saved from url=(0014)about:internet -->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<title>RunVO.as</title>
+<link rel="stylesheet" type="text/css" href="../../../../../SourceStyles.css"/>
+</head>
+
+<body><pre><span class="ActionScriptpackage">package</span> <span class="ActionScriptDefault_Text">com</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">devgirl</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">runtracker</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">vo</span>
+<span class="ActionScriptBracket/Brace">{</span>
+    <span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptMetadata">Bindable</span><span class="ActionScriptBracket/Brace">]</span><span class="ActionScriptReserved">public</span> <span class="ActionScriptclass">class</span> <span class="ActionScriptDefault_Text">RunVO</span>
+    <span class="ActionScriptBracket/Brace">{</span>
+        <span class="ActionScriptReserved">public</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">run_id</span>:<span class="ActionScriptDefault_Text">int</span>;
+        <span class="ActionScriptReserved">public</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">runDate</span>:<span class="ActionScriptDefault_Text">String</span>;
+        <span class="ActionScriptComment">//public var hours:String;
+</span>        <span class="ActionScriptComment">//public var mins:String;
+</span>        <span class="ActionScriptComment">//public var seconds:String;
+</span>        <span class="ActionScriptReserved">public</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">pace</span>:<span class="ActionScriptDefault_Text">String</span>;
+        <span class="ActionScriptReserved">public</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">miles</span>:<span class="ActionScriptDefault_Text">Number</span>;
+        <span class="ActionScriptReserved">public</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">notes</span>:<span class="ActionScriptDefault_Text">String</span>;
+        
+        <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">RunVO</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>
+        <span class="ActionScriptBracket/Brace">{</span>
+        <span class="ActionScriptBracket/Brace">}</span>
+    <span class="ActionScriptBracket/Brace">}</span>
+<span class="ActionScriptBracket/Brace">}</span></pre></body>
+</html>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d43c133c/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/RunTracker-app.xml
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/RunTracker-app.xml b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/RunTracker-app.xml
new file mode 100644
index 0000000..9fe29ba
--- /dev/null
+++ b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/RunTracker-app.xml
@@ -0,0 +1,181 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!--
+
+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.
+
+-->
+<application xmlns="http://ns.adobe.com/air/application/2.5">
+
+<!-- Adobe AIR Application Descriptor File Template.
+
+	Specifies parameters for identifying, installing, and launching AIR applications.
+
+	xmlns - The Adobe AIR namespace: http://ns.adobe.com/air/application/2.5
+			The last segment of the namespace specifies the version 
+			of the AIR runtime required for this application to run.
+			
+	minimumPatchLevel - The minimum patch level of the AIR runtime required to run 
+			the application. Optional.
+-->
+
+	<!-- A universally unique application identifier. Must be unique across all AIR applications.
+	     Using a reverse DNS-style name as the id is recommended. (Eg. com.example.ExampleApplication.) Required. -->
+	<id>RunTracker</id>
+
+	<!-- Used as the filename for the application. Required. -->
+	<filename>RunTracker</filename>
+
+	<!-- The name that is displayed in the AIR application installer. 
+	     May have multiple values for each language. See samples or xsd schema file. Optional. -->
+	<name>RunTracker</name>
+
+	<!-- An application version designator (such as "v1", "2.5", or "Alpha 1"). Required. -->
+	<version>v1</version>
+
+	<!-- Description, displayed in the AIR application installer.
+	     May have multiple values for each language. See samples or xsd schema file. Optional. -->
+	<!-- <description></description> -->
+
+	<!-- Copyright information. Optional -->
+	<!-- <copyright></copyright> -->
+
+	<!-- Publisher ID. Used if you're updating an application created prior to 1.5.3 -->
+	<!-- <publisherID></publisherID> -->
+
+	<!-- Settings for the application's initial window. Required. -->
+	<initialWindow>
+		<!-- The main SWF or HTML file of the application. Required. -->
+		<!-- Note: In Flash Builder, the SWF reference is set automatically. -->
+		<content>[This value will be overwritten by Flash Builder in the output app.xml]</content>
+		
+		<!-- The title of the main window. Optional. -->
+		<!-- <title></title> -->
+
+		<!-- The type of system chrome to use (either "standard" or "none"). Optional. Default standard. -->
+		<!-- <systemChrome></systemChrome> -->
+
+		<!-- Whether the window is transparent. Only applicable when systemChrome is none. Optional. Default false. -->
+		<!-- <transparent></transparent> -->
+
+		<!-- Whether the window is initially visible. Optional. Default false. -->
+		<visible>true</visible>
+
+		<!-- Whether the user can minimize the window. Optional. Default true. -->
+		<!-- <minimizable></minimizable> -->
+
+		<!-- Whether the user can maximize the window. Optional. Default true. -->
+		<!-- <maximizable></maximizable> -->
+
+		<!-- Whether the user can resize the window. Optional. Default true. -->
+		<!-- <resizable></resizable> -->
+
+		<!-- The window's initial width in pixels. Optional. -->
+		<width>600</width>
+
+		<!-- The window's initial height in pixels. Optional. -->
+		<height>700</height>
+
+		<!-- The window's initial x position. Optional. -->
+		<x>300</x>
+
+		<!-- The window's initial y position. Optional. -->
+		<y>200</y>
+
+		<!-- The window's minimum size, specified as a width/height pair in pixels, such as "400 200". Optional. -->
+		<!-- <minSize></minSize> -->
+
+		<!-- The window's initial maximum size, specified as a width/height pair in pixels, such as "1600 1200". Optional. -->
+		<!-- <maxSize></maxSize> -->
+	</initialWindow>
+
+    <!-- We recommend omitting the supportedProfiles element, -->
+    <!-- which in turn permits your application to be deployed to all -->
+    <!-- devices supported by AIR. If you wish to restrict deployment -->
+    <!-- (i.e., to only mobile devices) then add this element and list -->
+    <!-- only the profiles which your application does support. -->
+    <!-- <supportedProfiles>desktop extendedDesktop mobileDevice extendedMobileDevice</supportedProfiles> -->
+
+	<!-- The subpath of the standard default installation location to use. Optional. -->
+	<!-- <installFolder></installFolder> -->
+
+	<!-- The subpath of the Programs menu to use. (Ignored on operating systems without a Programs menu.) Optional. -->
+	<!-- <programMenuFolder></programMenuFolder> -->
+
+	<!-- The icon the system uses for the application. For at least one resolution,
+		 specify the path to a PNG file included in the AIR package. Optional. -->
+	<icon>
+		<image72x72>assets/runner72.png</image72x72>
+	</icon> 
+
+	<!-- Whether the application handles the update when a user double-clicks an update version
+	of the AIR file (true), or the default AIR application installer handles the update (false).
+	Optional. Default false. -->
+	<!-- <customUpdateUI></customUpdateUI> -->
+	
+	<!-- Whether the application can be launched when the user clicks a link in a web browser.
+	Optional. Default false. -->
+	<!-- <allowBrowserInvocation></allowBrowserInvocation> -->
+
+	<!-- Listing of file types for which the application can register. Optional. -->
+	<!-- <fileTypes> -->
+
+		<!-- Defines one file type. Optional. -->
+		<!-- <fileType> -->
+
+			<!-- The name that the system displays for the registered file type. Required. -->
+			<!-- <name></name> -->
+
+			<!-- The extension to register. Required. -->
+			<!-- <extension></extension> -->
+			
+			<!-- The description of the file type. Optional. -->
+			<!-- <description></description> -->
+			
+			<!-- The MIME content type. -->
+			<!-- <contentType></contentType> -->
+			
+			<!-- The icon to display for the file type. Optional. -->
+			<!-- <icon>
+				<image16x16></image16x16>
+				<image32x32></image32x32>
+				<image48x48></image48x48>
+				<image128x128></image128x128>
+			</icon> -->
+			
+		<!-- </fileType> -->
+	<!-- </fileTypes> -->
+
+    <!-- iPhone/iPad -specific capabilities -->
+	<!-- <iPhone> -->
+
+		<!-- A list of plist key/value pairs to be added to the application Info.plist -->
+		<!-- <InfoAdditions>
+            <![CDATA[
+                <key>UIDeviceFamily</key>
+                <array>
+                    <string>1</string>
+                    <string>2</string>
+                </array>
+                <key>UIStatusBarStyle</key>
+                <string>UIStatusBarStyleBlackOpaque</string>
+                <key>UIRequiresPersistentWiFi</key>
+                <string>YES</string>
+            ]]>
+        </InfoAdditions> -->
+
+	<!-- </iPhone> -->
+
+</application>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d43c133c/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/RunTracker.mxml
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/RunTracker.mxml b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/RunTracker.mxml
new file mode 100644
index 0000000..8cd1106
--- /dev/null
+++ b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/RunTracker.mxml
@@ -0,0 +1,260 @@
+<?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" 
+			   xmlns:mx="library://ns.adobe.com/flex/mx" backgroundColor="0x000000" 
+			   width="100%" height="100%" frameRate="60" applicationComplete="appCompleteHandler(event)" viewSourceURL="srcview/index.html">
+	
+	
+	<fx:Script>
+		<![CDATA[
+			import com.devgirl.runtracker.events.RunListResultEvent;
+			import com.devgirl.runtracker.service.DBService;
+			import com.devgirl.runtracker.vo.RunVO;
+			
+			import mx.charts.HitData;
+			import mx.charts.chartClasses.IAxis;
+			import mx.charts.chartClasses.Series;
+			import mx.controls.Alert;
+			import mx.events.CalendarLayoutChangeEvent;
+			import mx.events.DataGridEvent;
+			import mx.events.FlexEvent;
+			import mx.events.IndexChangedEvent;
+			
+			private var dbService:DBService;
+			private var userPace:String;
+			
+			private function btnCalc_clickHandler():void
+			{
+				if (numMiles.text == null || (hrsVal.value==0 && minsVal.value==0 && secsVal.value==0))
+				{
+					Alert.show("Please enter both miles and time for pace calculation.","Required Values Error");
+					return;
+				}
+				
+				var totalSeconds:Number = ((hrsVal.value*3600)+(minsVal.value*60)+secsVal.value)/parseFloat(numMiles.text);
+				userPace = this.convertTime(totalSeconds);
+				lblPace.text = userPace + " mins/mile";
+				grpPace.visible=true;
+			}
+			
+			private function convertTime(timeInSecs:int):String
+			{
+				var hours:int = timeInSecs / 3600;
+				var mins:int  = timeInSecs / 60 - (hours * 60);
+				var secs:int  = timeInSecs - (hours * 3600) - (mins * 60);
+				trace(hours + ":" + mins + ":" + secs);
+				var d:Date = new Date(null,null,null,hours,mins,secs,null);
+				timeFormatter.format(d);
+				return timeFormatter.format(d);
+			}
+			
+			private function appCompleteHandler(event:FlexEvent):void
+			{
+				dbService = new DBService();
+				dbService.addEventListener(RunListResultEvent.RUN_LIST_EVENT,handleRunList);
+			}
+			
+			private function handleRunList(event:RunListResultEvent):void
+			{
+				runsAC = event.runEntries;
+			}
+			
+			private function saveBtn_clickHandler(event:MouseEvent):void
+			{
+				var run:RunVO = new RunVO();
+				run.runDate = dateFormatter.format(this.date.text);
+				run.miles = parseFloat(numMiles.text);
+				run.pace = userPace;
+				run.notes = notes.text;
+				dbService.addRun(run);
+				lbl.text = "Run data saved successfully";
+				resetFields();
+			}
+			
+			private function resetFields():void
+			{
+				// clear fields for more input
+				this.date.text = '';
+				this.numMiles.text = '';
+				this.hrsVal.value = 0;
+				this.minsVal.value = 0;
+				this.secsVal.value = 0;
+				this.notes.text = '';	
+				this.lblPace.text = '';
+			}
+			
+			private function tabChangeHandler(event:IndexChangedEvent):void
+			{
+				dbService.getRuns();
+				if (event.newIndex==1)
+				{
+					dg.dispatchEvent(new DataGridEvent(DataGridEvent.HEADER_RELEASE,false,true,0,null,0,null,null,0));
+				}
+			}
+			
+			
+			private function dateFunction(s:String):Date 
+			{ 
+				var newDate:Date = DateField.stringToDate(s,"YYYY-MM-DD");
+				return newDate;
+			}
+			
+			private function paceFunction(s:String):Date 
+			{ 
+				if (s!=null)
+				{
+					var idx:int = s.indexOf(':');
+					// Create a new date object with just the time values parsed from the String
+					var newDate:Date = new Date(null,null,null,"00",s.substring(0,idx),s.substring(idx+1,s.length),null);
+					return newDate;	
+				}
+				else return null;
+			}
+			
+			private function dataTipFunction(hitData:HitData):String  
+			{  
+				var tip:String;  
+				var run:RunVO = hitData.item as RunVO;
+				tip = run.miles + " miles on " + run.runDate+"\n";
+				tip += " at " + run.pace;
+				return tip;  
+			}  
+			
+			private function paceLblFunc(labelValue:Date, previousValue:Object, axis:IAxis):String 
+			{
+				return timeFormatter.format(labelValue);
+			}
+			
+			private function dateLblFunc(labelValue:Date, previousValue:Object, axis:IAxis):String 
+			{
+				return dateFormatter.format(labelValue.toDateString());
+			}
+
+			private function date_changeHandler(event:CalendarLayoutChangeEvent):void
+			{
+				// A new date is being entered, clear saved label
+				lbl.text = '';
+			}
+
+		]]>
+	</fx:Script>
+	
+	<fx:Declarations>
+		<s:ArrayCollection id="runsAC"/>
+		<mx:DateFormatter id="timeFormatter" formatString="NN:SS" />
+		<mx:DateFormatter id="dateFormatter" formatString="YYYY-MM-DD"/>
+	</fx:Declarations>
+	
+	<s:layout>
+		<s:VerticalLayout gap="8" paddingLeft="50" paddingTop="10" paddingRight="20" paddingBottom="20" horizontalAlign="left" 
+						  verticalAlign="middle"/>
+	</s:layout>
+	
+	<mx:TabNavigator width="100%" height="100%" fontSize="26" backgroundColor="0x000000" color="0x323232" change="tabChangeHandler(event)">
+		<s:NavigatorContent label="Miles" width="100%" height="100%" backgroundColor="0x000000" color="0xFFFFFF">
+			<s:layout>
+				<s:VerticalLayout gap="8" paddingTop="8" paddingLeft="8" paddingRight="8" paddingBottom="8"/>
+			</s:layout>
+			
+			<s:HGroup horizontalAlign="center" verticalAlign="middle">
+				<s:Label text="Date:" fontSize="26"/>
+				<mx:DateField id="date" color="0x000000" showToday="true" selectedDate="{new Date()}" change="date_changeHandler(event)"/>
+			</s:HGroup>
+			
+			<s:HGroup horizontalAlign="center" verticalAlign="middle">
+				<s:Label text="Miles:" fontSize="26"/>
+				<s:TextInput id="numMiles" fontSize="26" color="0x000000" widthInChars="3" restrict="0-9." text="0"/>
+				<mx:Spacer width="25"/>
+				<mx:Image source="@Embed(source='assets/runner3.jpg')" width="100" height="100"/>
+			</s:HGroup>
+			
+			<s:VGroup horizontalAlign="center" verticalAlign="middle" gap="15">
+				<s:HGroup horizontalAlign="center" verticalAlign="middle" paddingTop="8">
+					<s:VGroup >
+						<s:Label text="Hours" fontSize="18"/>
+						<s:NumericStepper id="hrsVal" maximum="99" maxChars="2" fontSize="26" 
+										  skinClass="com.devgirl.runtracker.skins.MyNumericStepperSkin"/>
+					</s:VGroup>
+					<s:VGroup>
+						<s:Label text="Mins" fontSize="18"/>
+						<s:NumericStepper id="minsVal" maxChars="2" maximum="59" fontSize="26" 
+										  skinClass="com.devgirl.runtracker.skins.MyNumericStepperSkin"/>
+					</s:VGroup>
+					<s:VGroup>
+						<s:Label text="Secs" fontSize="18"/>
+						<s:NumericStepper id="secsVal" maxChars="2" maximum="59" fontSize="26" 
+										  skinClass="com.devgirl.runtracker.skins.MyNumericStepperSkin"/>					
+					</s:VGroup>	
+				</s:HGroup>
+				<s:Button id="btnCalc" label="Calculate Pace" fontSize="24" left="200" height="40" click="btnCalc_clickHandler()" 
+						   color="0x000000"/>
+			</s:VGroup>
+			
+			<s:HGroup horizontalAlign="center" verticalAlign="middle" visible="false" id="grpPace" >
+				<s:Label text="Pace:" fontSize="28"/>
+				<s:Label id="lblPace" color="0x336699" fontSize="26"/>		
+			</s:HGroup>
+			
+			<s:Label text="Notes:" fontSize="26" color="0xFFFFFF"/>
+			<s:TextArea id="notes" width="90%" height="100" fontSize="26" color="0x000000"/>
+			<s:Button id="saveBtn" label="Save Run" click="saveBtn_clickHandler(event)" color="0x000000"/>
+			<s:Label id="lbl"/>
+		</s:NavigatorContent>
+		
+		<s:NavigatorContent label="History" height="100%" width="100%" backgroundColor="0x000000">
+			<s:layout>
+				<s:VerticalLayout gap="8" paddingTop="8" paddingLeft="8" paddingRight="8" paddingBottom="8" horizontalAlign="center" 
+								  verticalAlign="middle"/>
+			</s:layout>
+			<mx:DataGrid id="dg" width="90%" height="90%" dataProvider="{runsAC}" color="0x000000" fontSize="18">
+				<mx:columns>
+					<mx:DataGridColumn dataField="runDate" headerText="Date" width="120"/>
+					<mx:DataGridColumn dataField="miles" headerText="Miles" width="50"/>
+					<mx:DataGridColumn dataField="pace" headerText="Pace" width="60"/>
+					<mx:DataGridColumn dataField="notes" headerText="Notes" width="140"/>
+				</mx:columns>
+			</mx:DataGrid>
+		</s:NavigatorContent> 
+		
+		<s:NavigatorContent label="Trends" color="0xFFFFFF" width="100%" height="100%">
+			<s:VGroup>
+				<mx:Legend dataProvider="{mychart}"/>
+				<mx:LineChart id="mychart" height="100%" width="100%"
+							  paddingRight="5" paddingLeft="5" 
+							  showDataTips="true" dataTipFunction="dataTipFunction" dataProvider="{runsAC}">
+					
+					<mx:horizontalAxis>
+						<mx:DateTimeAxis parseFunction="dateFunction" labelFunction="dateLblFunc" dataUnits="days"/>
+					</mx:horizontalAxis>
+					
+					<mx:verticalAxis>
+						<mx:DateTimeAxis baseAtZero="true" parseFunction="paceFunction" labelFunction="paceLblFunc" dataUnits="seconds" />
+					</mx:verticalAxis>
+					
+					<mx:series>
+						<mx:LineSeries xField="runDate" yField="pace" displayName="Pace Trend" sortOnXField="true"/>
+					</mx:series>
+				</mx:LineChart>
+			</s:VGroup>
+		</s:NavigatorContent>
+	</mx:TabNavigator>
+	
+</s:Application>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d43c133c/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/assets/arrow_bluelink_down.png
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/assets/arrow_bluelink_down.png b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/assets/arrow_bluelink_down.png
new file mode 100644
index 0000000..58c248a
Binary files /dev/null and b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/assets/arrow_bluelink_down.png differ

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d43c133c/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/assets/arrow_bluelink_up.png
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/assets/arrow_bluelink_up.png b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/assets/arrow_bluelink_up.png
new file mode 100644
index 0000000..7d0f38e
Binary files /dev/null and b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/assets/arrow_bluelink_up.png differ

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d43c133c/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/assets/arrow_down_float.png
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/assets/arrow_down_float.png b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/assets/arrow_down_float.png
new file mode 100644
index 0000000..923d330
Binary files /dev/null and b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/assets/arrow_down_float.png differ

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d43c133c/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/assets/arrow_up_float.png
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/assets/arrow_up_float.png b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/assets/arrow_up_float.png
new file mode 100644
index 0000000..eda5faf
Binary files /dev/null and b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/assets/arrow_up_float.png differ

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d43c133c/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/events/DeleteLocalEvent.as
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/events/DeleteLocalEvent.as b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/events/DeleteLocalEvent.as
new file mode 100644
index 0000000..b41d43d
--- /dev/null
+++ b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/events/DeleteLocalEvent.as
@@ -0,0 +1,35 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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 com.devgirl.runtracker.events
+{
+	import flash.events.Event;
+	import com.devgirl.runtracker.vo.RunVO;
+	
+	public class DeleteLocalEvent extends Event
+	{
+		public static const DELETE_LOCAL_SUCCESS:String = "deleteLocal";
+		public var deletedEntry:RunVO;
+		
+		public function DeleteLocalEvent(runVO:RunVO)
+		{
+			super(DELETE_LOCAL_SUCCESS, true);
+			this.deletedEntry = runVO;
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d43c133c/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/events/RemoteSaveFailEvent.as
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/events/RemoteSaveFailEvent.as b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/events/RemoteSaveFailEvent.as
new file mode 100644
index 0000000..2ece4a4
--- /dev/null
+++ b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/events/RemoteSaveFailEvent.as
@@ -0,0 +1,34 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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 com.devgirl.runtracker.events
+{
+	import flash.events.Event;
+	
+	public class RemoteSaveFailEvent extends Event
+	{
+		public static const REMOTE_SAVE_FAIL:String = "remoteSaveFail";
+		public var errorMsg:String;
+		
+		public function RemoteSaveFailEvent(errorString:String)
+		{
+			super(REMOTE_SAVE_FAIL, true);
+			this.errorMsg = errorString;
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d43c133c/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/events/RunListResultEvent.as
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/events/RunListResultEvent.as b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/events/RunListResultEvent.as
new file mode 100644
index 0000000..c1ef951
--- /dev/null
+++ b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/events/RunListResultEvent.as
@@ -0,0 +1,35 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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 com.devgirl.runtracker.events
+{
+	import flash.events.Event;
+	import mx.collections.ArrayCollection;
+	
+	public class RunListResultEvent extends Event
+	{
+		public static const RUN_LIST_EVENT:String = "runListEvent";
+		public var runEntries:ArrayCollection;
+		
+		public function RunListResultEvent(runEntries:ArrayCollection)
+		{
+			super(RUN_LIST_EVENT, true);
+			this.runEntries = runEntries;
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d43c133c/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/events/SaveLocalEvent.as
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/events/SaveLocalEvent.as b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/events/SaveLocalEvent.as
new file mode 100644
index 0000000..5ba28fd
--- /dev/null
+++ b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/events/SaveLocalEvent.as
@@ -0,0 +1,36 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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 com.devgirl.runtracker.events
+{
+	import flash.events.Event;
+	import com.devgirl.runtracker.vo.RunVO;
+	
+	public class SaveLocalEvent extends Event
+	{
+		public static const SAVE_LOCAL_SUCCESS:String = "saveLocal";
+		public var savedRunID:int;
+		
+		public function SaveLocalEvent(runId:int)
+		{
+			super(SAVE_LOCAL_SUCCESS, true);
+			this.savedRunID = runId;
+			
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d43c133c/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/service/DBService.as
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/service/DBService.as b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/service/DBService.as
new file mode 100644
index 0000000..6f2d423
--- /dev/null
+++ b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/service/DBService.as
@@ -0,0 +1,222 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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 com.devgirl.runtracker.service
+{
+	import com.devgirl.runtracker.events.DeleteLocalEvent;
+	import com.devgirl.runtracker.events.RunListResultEvent;
+	import com.devgirl.runtracker.events.SaveLocalEvent;
+	import com.devgirl.runtracker.vo.RunVO;
+	
+	import flash.data.SQLColumnSchema;
+	import flash.data.SQLConnection;
+	import flash.data.SQLResult;
+	import flash.data.SQLSchemaResult;
+	import flash.data.SQLStatement;
+	import flash.data.SQLTableSchema;
+	import flash.errors.SQLError;
+	import flash.events.Event;
+	import flash.events.EventDispatcher;
+	import flash.events.SQLErrorEvent;
+	import flash.events.SQLEvent;
+	import flash.filesystem.File;
+	
+	import mx.collections.ArrayCollection;
+	import mx.controls.Alert;
+	
+	[Event(name=LOCAL_SAVE_FAIL,type="flash.events.Event")]
+	[Event(name=LOCAL_DELETE_ALL_SUCCESS,type="flash.events.Event")]
+	[Event(name="runListEvent",type="com.devgirl.runtracker.events.RunListResultEvent")]
+	
+	
+	public class DBService extends EventDispatcher
+	{
+		private var runDB:SQLConnection;
+		private var dbStatement:SQLStatement;
+		private var currentRun:RunVO;
+		private var lastUpdateRowId:int;
+		
+		[Bindable]
+		private var runCollection:Array = new Array();
+		
+		public static const LOCAL_SAVE_FAIL:String = "localSaveFailed";
+		public static const LOCAL_DELETE_ALL_SUCCESS:String = "deleteAllSuccess";
+		
+		
+		public function DBService()
+		{
+			trace("DB Service init");
+			var dbFile:File = File.applicationStorageDirectory.resolvePath("runtracker5.db");
+			dbStatement = new SQLStatement();
+			dbStatement.itemClass = RunVO;
+			runDB = new SQLConnection();
+			dbStatement.sqlConnection = runDB;
+			runDB.addEventListener(SQLEvent.OPEN, onDatabaseOpen);
+			runDB.addEventListener(SQLErrorEvent.ERROR, errorHandler);
+			runDB.open(dbFile);	
+		}
+		
+		
+		private function onDatabaseOpen(event:SQLEvent):void
+		{
+			dbStatement.text = "CREATE TABLE IF NOT EXISTS runtracker (run_id INTEGER PRIMARY KEY AUTOINCREMENT, runDate TEXT, " +
+				"pace TEXT, miles REAL, notes TEXT)";
+			dbStatement.addEventListener(SQLEvent.RESULT, handleOpenResult);
+			dbStatement.addEventListener(SQLErrorEvent.ERROR, createError);			
+			dbStatement.execute();
+		}
+		
+		private function handleOpenResult(event:SQLEvent):void
+		{
+			var result:SQLResult = dbStatement.getResult();
+			dbStatement.removeEventListener(SQLEvent.RESULT, handleOpenResult);
+			dbStatement.removeEventListener(SQLErrorEvent.ERROR, createError);			
+
+		}
+		
+		private function handleAlterResult(event:SQLEvent):void
+		{
+			// nothing to do here
+			dbStatement.removeEventListener(SQLEvent.RESULT, handleAlterResult);			
+			trace("New column added");
+		}
+				
+		
+		
+		private function handleListResult(event:SQLEvent):void
+		{
+			var result:SQLResult = dbStatement.getResult();
+			trace("Handling list result... " + result.data);
+			if (result.data != null) {  
+				this.runCollection = result.data;
+				dispatchEvent(new RunListResultEvent(new ArrayCollection(this.runCollection)));
+			}
+		}
+		
+		private function handleSaveResult(event:SQLEvent):void
+		{
+			dbStatement.removeEventListener(SQLEvent.RESULT, handleSaveResult);
+			dispatchEvent(new SaveLocalEvent(runDB.lastInsertRowID));
+		}
+		
+		private function handleUpdateResult(event:SQLEvent):void
+		{
+			dispatchEvent(new SaveLocalEvent(lastUpdateRowId));
+		}
+		
+		private function handleDeleteResult(event:SQLEvent):void
+		{
+			if (event.target.sqlConnection.totalChanges > 0)
+				dispatchEvent(new DeleteLocalEvent(currentRun));
+		}
+		
+		private function handleDeleteAllResult(event:SQLEvent):void
+		{
+			dispatchEvent(new Event(DBService.LOCAL_DELETE_ALL_SUCCESS));
+		}
+		
+		public function getRuns():void
+		{
+			dbStatement = new SQLStatement();
+			dbStatement.itemClass = RunVO;
+			dbStatement.sqlConnection = runDB;
+			trace("SQL " + dbStatement.itemClass);
+			dbStatement.text = "SELECT * FROM runtracker";
+			dbStatement.addEventListener(SQLEvent.RESULT, handleListResult);
+			dbStatement.addEventListener(SQLErrorEvent.ERROR, createError);	
+			dbStatement.execute();
+		}
+		
+		public function saveLocal(runs:ArrayCollection):void
+		{
+			for each (var item:RunVO in runs)
+			{
+				addRun(item);
+			}
+		}
+		
+		public function updateRun(run:RunVO):void
+		{
+			var sql:String = "UPDATE runtracker SET date=:run_date, pace=:run_pace, miles=:run_miles, " +
+							 "notes=:run_notes WHERE run_id=:run_runid";
+			
+			dbStatement = new SQLStatement();
+			dbStatement.sqlConnection = runDB;
+			dbStatement.text = sql;
+			
+			dbStatement.parameters[":run_date"] = run.runDate;
+			dbStatement.parameters[":run_pace"] = run.pace;
+			dbStatement.parameters[":run_miles"] = run.miles;
+			dbStatement.parameters[":run_notes"] = run.notes;
+			dbStatement.parameters[":run_runid"] = run.run_id;
+			
+			// Use the same save result listener as when we insert, same behavior needed in controller...
+			dbStatement.addEventListener(SQLEvent.RESULT, handleUpdateResult);
+			lastUpdateRowId = run.run_id;
+			dbStatement.execute();
+		}
+		
+		public function addRun(run:RunVO):void
+		{
+			var sql:String = "INSERT into runtracker(runDate,pace,miles,notes) VALUES " +
+				"(?, ?, ?, ?)";
+			dbStatement = new SQLStatement();
+			dbStatement.sqlConnection = runDB;
+			dbStatement.text = sql;
+			
+			dbStatement.parameters[0] = run.runDate;
+			dbStatement.parameters[1] = run.pace;
+			dbStatement.parameters[2] = run.miles;
+			dbStatement.parameters[3] = run.notes;
+			
+			dbStatement.addEventListener(SQLEvent.RESULT, handleSaveResult);
+			dbStatement.execute();
+		}
+		
+		public function deleteRun(run:RunVO):void
+		{
+			var sqlDelete:String = "delete from runtracker where run_id='"+run.run_id+"';";
+			dbStatement = new SQLStatement();
+			dbStatement.sqlConnection = runDB;
+			dbStatement.text = sqlDelete;
+			dbStatement.addEventListener(SQLEvent.RESULT, handleDeleteResult);
+			currentRun = run;
+			dbStatement.execute();
+		}
+		
+		public function deleteRuns(runList:ArrayCollection):void
+		{
+			var sqlDelete:String = "delete from runtracker";
+			dbStatement = new SQLStatement();
+			dbStatement.sqlConnection = runDB;
+			dbStatement.text = sqlDelete;
+			dbStatement.addEventListener(SQLEvent.RESULT, handleDeleteAllResult);
+			dbStatement.execute();
+		}
+		
+		private function errorHandler(error:SQLError):void
+		{
+			Alert.show("SQL Error occurred on operation: " + error.operation + " message " + error.message);
+		}
+		
+		private function createError(event:SQLErrorEvent):void
+		{
+			dispatchEvent(new Event(DBService.LOCAL_SAVE_FAIL));
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d43c133c/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/skins/DecrementSkin.mxml
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/skins/DecrementSkin.mxml b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/skins/DecrementSkin.mxml
new file mode 100644
index 0000000..ae842c6
--- /dev/null
+++ b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/skins/DecrementSkin.mxml
@@ -0,0 +1,104 @@
+<?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.
+
+-->
+
+
+<!--- The default skin class for the down button of a Spark NumericStepper component.  
+
+    @see spark.components.NumericStepper
+    
+    @langversion 3.0
+    @playerversion Flash 10
+    @playerversion AIR 1.5
+    @productversion Flex 4
+-->
+<s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
+             xmlns:fb="http://ns.adobe.com/flashbuilder/2009">
+    
+    <fx:Metadata>
+        <![CDATA[ 
+        /** 
+        * @copy spark.skins.spark.ApplicationSkin#hostComponent
+        */
+        [HostComponent("spark.components.Button")]
+        ]]>
+    </fx:Metadata> 
+    
+    <s:states>
+        <s:State name="up" />
+        <s:State name="over"/>
+        <s:State name="down" />
+        <s:State name="disabled" />
+    </s:states>
+    
+    <s:Group left="0" top="0" right="0" bottom="0">
+        
+        <!-- border/fill -->
+        <!--- @private -->
+        <s:Rect id="fill" left="0" top="0" right="0" bottom="0" width="18" height="16" bottomRightRadiusX="2">
+            <s:stroke>
+                <s:SolidColorStroke color="0x686868" weight="1"/>
+            </s:stroke>
+            <s:fill>
+                <s:LinearGradient rotation="90">
+                    <s:GradientEntry color="0xE8E8E8"
+                                     color.over="0xC2C2C2"
+                                     color.down="0xAEB0B1" />
+                    <s:GradientEntry color="0xDFDFDF"
+                                     color.over="0xADAEAF"
+                                     color.down="0xA1A3A5" />
+                </s:LinearGradient>
+            </s:fill>
+        </s:Rect>    
+        
+        <!-- highlight -->
+        <!--- @private -->
+        <s:Rect id="highlight" left="1" top="1" right="1" bottom="1" bottomRightRadiusX="2">
+            <s:stroke>
+                <s:LinearGradientStroke rotation="90" weight="1">
+                    <s:GradientEntry color="0xFFFFFF" 
+                                     color.down="0x000000" 
+                                     alpha="0.55"
+                                     alpha.over="0.55" 
+                                     alpha.down="0.15" />
+                    <s:GradientEntry color="0xFFFFFF" 
+                                     color.down="0x336699"
+                                     alpha="0.2475"
+                                     alpha.over="0.2475"
+                                     alpha.down="0" />
+                </s:LinearGradientStroke>
+            </s:stroke>
+        </s:Rect>
+        
+        <!-- shadow -->
+        <s:Rect left="1" top="2" right="1" height="1" includeIn="down">
+            <s:fill>
+                <s:SolidColor color="0x336699" alpha="0.07" />
+            </s:fill>
+        </s:Rect>
+    </s:Group>
+	     
+	<s:Rect id="arrow" horizontalCenter="0" verticalCenter="0" width="38" height="29">
+		<s:fill>
+			<s:BitmapFill id="arrowFill" source="@Embed(source='assets/arrow_down_float.png')" fillMode="clip"/>
+		</s:fill>
+	</s:Rect>
+           
+    
+</s:SparkSkin>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/d43c133c/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/skins/IncrementSkin.mxml
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/skins/IncrementSkin.mxml b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/skins/IncrementSkin.mxml
new file mode 100644
index 0000000..969f0d1
--- /dev/null
+++ b/TourDeFlex/TourDeFlex_content/AIR-for-Android/srcview/src/com/devgirl/runtracker/skins/IncrementSkin.mxml
@@ -0,0 +1,105 @@
+<?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.
+
+-->
+
+
+<!--- The default skin class for the up button of a Spark NumericStepper component.  
+    
+    @see spark.components.NumericStepper
+    
+    @langversion 3.0
+    @playerversion Flash 10
+    @playerversion AIR 1.5
+    @productversion Flex 4
+-->
+<s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
+             xmlns:fb="http://ns.adobe.com/flashbuilder/2009">
+    
+    <fx:Metadata>
+        <![CDATA[ 
+        /** 
+        * @copy spark.skins.spark.ApplicationSkin#hostComponent
+        */
+        [HostComponent("spark.components.Button")]
+        ]]>
+    </fx:Metadata> 
+    
+    <s:states>
+        <s:State name="up" />
+        <s:State name="over"/>
+        <s:State name="down" />
+        <s:State name="disabled" />
+    </s:states>
+    
+    <s:Group left="0" top="0" right="0" bottom="0">
+        
+        <!-- border/fill -->
+        <!--- @private -->
+        <s:Rect id="fill" left="0" top="0" right="0" bottom="0"  width="18" height="16" topRightRadiusX="2">
+            <s:stroke>
+                <s:SolidColorStroke color="0x686868" weight="1"/>
+            </s:stroke>
+            <s:fill>
+                <s:LinearGradient rotation="90">
+                    <s:GradientEntry color="0xFFFFFF"
+                                     color.over="0xC2C2C2"
+                                     color.down="0xAEB0B1" />
+                    <s:GradientEntry color="0xF0F0F0"
+                                     color.over="0xADAEAF"
+                                     color.down="0xA1A3A5" />
+                </s:LinearGradient>
+            </s:fill>
+        </s:Rect>
+        
+        <!-- highlight -->
+        <!--- @private -->
+        <s:Rect id="highlight" left="1" top="1" right="1" bottom="1" topRightRadiusX="2">
+            <s:stroke>
+                <s:LinearGradientStroke rotation="90" weight="1">
+                    <s:GradientEntry color="0xFFFFFF" 
+                                     color.down="0x000000"
+                                     alpha.over="0.55" 
+                                     alpha.down="0.15" />
+                    <s:GradientEntry color="0xFFFFFF" 
+                                     color.down="0x336699"
+                                     alpha="0.45"
+                                     alpha.over="0.2475"
+                                     alpha.down="0" />
+                </s:LinearGradientStroke>
+            </s:stroke>
+        </s:Rect>
+        
+        <!-- shadow -->
+        <s:Rect left="1" top="2" right="1" height="1" includeIn="down">
+            <s:fill>
+                <s:SolidColor color="0x336699" alpha="0.07" />
+            </s:fill>
+        </s:Rect>   
+    </s:Group>
+    
+	<s:Rect id="arrow" horizontalCenter="0" verticalCenter="0" width="38" height="29">
+		<s:fill>
+			<s:BitmapFill id="arrowFill" source="@Embed(source='assets/arrow_up_float.png')" fillMode="clip"/>
+		</s:fill>
+	</s:Rect>
+    
+    
+	     
+    
+</s:SparkSkin>