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/10/31 23:08:49 UTC

[14/14] git commit: [flex-asjs] [refs/heads/develop] - FlexJSStore works well enough to try to make it work on JS. Drag/Drop, ToolTips, States with Transitions are functional

FlexJSStore works well enough to try to make it work on JS.  Drag/Drop, ToolTips, States with Transitions are functional


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/f2a370c6
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/f2a370c6
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/f2a370c6

Branch: refs/heads/develop
Commit: f2a370c669de2a62292a65ff58cae96cb90e3c31
Parents: 0cce95a
Author: Alex Harui <ah...@apache.org>
Authored: Fri Oct 31 15:07:34 2014 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Fri Oct 31 15:08:16 2014 -0700

----------------------------------------------------------------------
 examples/FlexJSStore/build.xml                  |  51 ++
 examples/FlexJSStore/src/FlexJSStore.mxml       | 269 +++++++++
 examples/FlexJSStore/src/HomeView.mxml          | 206 +++++++
 .../FlexJSStore/src/ProductJSONItemConverter.as |  41 ++
 examples/FlexJSStore/src/ProductsView.mxml      | 130 +++++
 examples/FlexJSStore/src/SupportView.mxml       | 139 +++++
 examples/FlexJSStore/src/assets/akotter.jpg     | Bin 0 -> 19395 bytes
 examples/FlexJSStore/src/assets/bcrater.jpg     | Bin 0 -> 22670 bytes
 .../FlexJSStore/src/assets/beige_background.jpg | Bin 0 -> 12533 bytes
 .../FlexJSStore/src/assets/beige_dotted_map.png | Bin 0 -> 216598 bytes
 .../FlexJSStore/src/assets/blue_background.jpg  | Bin 0 -> 12868 bytes
 .../FlexJSStore/src/assets/blue_dotted_map.png  | Bin 0 -> 217088 bytes
 .../src/assets/button_cart_empty.png            | Bin 0 -> 289 bytes
 .../FlexJSStore/src/assets/button_cart_full.png | Bin 0 -> 308 bytes
 .../FlexJSStore/src/assets/button_compare.png   | Bin 0 -> 304 bytes
 .../FlexJSStore/src/assets/button_details.png   | Bin 0 -> 284 bytes
 .../FlexJSStore/src/assets/button_tiles.png     | Bin 0 -> 218 bytes
 examples/FlexJSStore/src/assets/grip.png        | Bin 0 -> 19836 bytes
 .../FlexJSStore/src/assets/icon_cart_empty.png  | Bin 0 -> 29594 bytes
 .../FlexJSStore/src/assets/icon_magnifier.png   | Bin 0 -> 30454 bytes
 examples/FlexJSStore/src/assets/jproctor.jpg    | Bin 0 -> 21684 bytes
 examples/FlexJSStore/src/assets/logo_blue.png   | Bin 0 -> 33427 bytes
 examples/FlexJSStore/src/assets/logo_orange.png | Bin 0 -> 33897 bytes
 .../FlexJSStore/src/assets/pic/abrilliam.jpg    | Bin 0 -> 18903 bytes
 examples/FlexJSStore/src/assets/pic/akotter.jpg | Bin 0 -> 19395 bytes
 examples/FlexJSStore/src/assets/pic/bcrater.jpg | Bin 0 -> 22670 bytes
 .../FlexJSStore/src/assets/pic/bleporte.jpg     | Bin 0 -> 23363 bytes
 .../FlexJSStore/src/assets/pic/bvanbrocklin.jpg | Bin 0 -> 18066 bytes
 .../FlexJSStore/src/assets/pic/ccarpenter.jpg   | Bin 0 -> 19219 bytes
 .../FlexJSStore/src/assets/pic/clampberto.jpg   | Bin 0 -> 18611 bytes
 examples/FlexJSStore/src/assets/pic/davenon.jpg | Bin 0 -> 20028 bytes
 .../FlexJSStore/src/assets/pic/dmcgoyal.jpg     | Bin 0 -> 19395 bytes
 .../FlexJSStore/src/assets/pic/dwillhelm.jpg    | Bin 0 -> 22670 bytes
 .../FlexJSStore/src/assets/pic/esunderland.jpg  | Bin 0 -> 23363 bytes
 .../FlexJSStore/src/assets/pic/jproctor.jpg     | Bin 0 -> 21684 bytes
 examples/FlexJSStore/src/assets/pic/mfields.jpg | Bin 0 -> 18066 bytes
 .../FlexJSStore/src/assets/pic/pdempsey.jpg     | Bin 0 -> 18611 bytes
 examples/FlexJSStore/src/assets/pic/ptranep.jpg | Bin 0 -> 19627 bytes
 .../FlexJSStore/src/assets/pic/rcrawley.jpg     | Bin 0 -> 23692 bytes
 .../FlexJSStore/src/assets/pic/rdreifus.jpg     | Bin 0 -> 20028 bytes
 examples/FlexJSStore/src/assets/pic/twong.jpg   | Bin 0 -> 19395 bytes
 examples/FlexJSStore/src/assets/support_map.png | Bin 0 -> 172293 bytes
 .../src/assets/support_mapmarker_a.png          | Bin 0 -> 834 bytes
 .../src/assets/support_mapmarker_b.png          | Bin 0 -> 822 bytes
 .../src/assets/support_mapmarker_c.png          | Bin 0 -> 817 bytes
 .../src/assets/support_mapmarker_plus.png       | Bin 0 -> 827 bytes
 examples/FlexJSStore/src/assets/trashcan.png    | Bin 0 -> 182 bytes
 examples/FlexJSStore/src/beige.css              | 170 ++++++
 examples/FlexJSStore/src/blue.css               | 165 ++++++
 examples/FlexJSStore/src/data/catalog.json      | 255 +++++++++
 examples/FlexJSStore/src/data/catalog.xml       | 256 +++++++++
 examples/FlexJSStore/src/main.css               |  95 ++++
 .../src/productsView/CatalogTitleButtons.mxml   |  70 +++
 examples/FlexJSStore/src/productsView/Grip.mxml |  49 ++
 .../src/productsView/ProductCart.mxml           | 114 ++++
 .../src/productsView/ProductCatalogPanel.mxml   | 545 +++++++++++++++++++
 .../ProductCatalogPanelTitleBarView.mxml        |  49 ++
 .../productsView/ProductCatalogThumbnail.mxml   | 232 ++++++++
 .../src/productsView/ProductDetails.mxml        | 153 ++++++
 .../src/productsView/ProductFilterPanel.mxml    | 221 ++++++++
 .../src/productsView/ProductList.mxml           | 217 ++++++++
 .../src/productsView/ProductListItem.mxml       | 131 +++++
 .../src/productsView/ProductSupport.mxml        |  91 ++++
 .../samples/flexstore/ButtonBarButtonSkin.as    | 298 ++++++++++
 .../src/samples/flexstore/Product.as            |  78 +++
 .../src/samples/flexstore/ProductFilter.as      |  56 ++
 .../src/samples/flexstore/ProductFilterEvent.as |  39 ++
 .../src/samples/flexstore/ProductListEvent.as   |  42 ++
 .../src/samples/flexstore/ProductThumbEvent.as  |  45 ++
 69 files changed, 4207 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/build.xml
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/build.xml b/examples/FlexJSStore/build.xml
new file mode 100644
index 0000000..6a6643b
--- /dev/null
+++ b/examples/FlexJSStore/build.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+
+
+<project name="flexjsstore" default="main" basedir=".">
+    <property name="FLEXJS_HOME" location="../.."/>
+    <property name="example" value="FlexJSStore" />
+    
+    <property file="${FLEXJS_HOME}/env.properties"/>
+    <property environment="env"/>
+    <property file="${FLEXJS_HOME}/build.properties"/>
+    <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
+    <property name="FALCON_HOME" value="${env.FALCON_HOME}"/>
+    <property name="FALCONJX_HOME" value="${env.FALCONJX_HOME}"/>
+    <property name="GOOG_HOME" value="${env.GOOG_HOME}"/>
+
+    <include file="${basedir}/../build_example.xml" />
+    
+    <!-- disable JS compile until we get it working
+         <target name="main" depends="clean,build_example.compile,build_example.compilejs" description="Clean build of ${example}">-->
+    <target name="main" depends="clean,build_example.compile" description="Clean build of ${example}">
+        <mkdir dir="${basedir}/bin-debug/data" />
+        <copy file="${basedir}/src/data/catalog.json" tofile="${basedir}/bin-debug/data/catalog.json" />
+    </target>
+    
+    <target name="clean">
+        <delete dir="${basedir}/bin" failonerror="false" />
+        <delete dir="${basedir}/bin-debug" failonerror="false" />
+        <delete dir="${basedir}/bin-release" failonerror="false" />
+    </target>
+
+    
+    
+</project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/FlexJSStore.mxml
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/FlexJSStore.mxml b/examples/FlexJSStore/src/FlexJSStore.mxml
new file mode 100755
index 0000000..cab579a
--- /dev/null
+++ b/examples/FlexJSStore/src/FlexJSStore.mxml
@@ -0,0 +1,269 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<basic:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
+                xmlns:basic="library://ns.apache.org/flexjs/basic" 
+                xmlns:mx="library://ns.adobe.com/flex/mx"
+                xmlns="*"
+                initialize="startService()"
+			    pageTitle="FlexStore">
+	
+	<fx:Script>
+		<![CDATA[	
+            import org.apache.flex.core.ValuesManager;
+            
+            /*
+			private var currentTheme:String = "beige";
+			
+			private function toggleTheme():void
+			{
+				if (currentTheme == "beige")
+				{
+					currentTheme = "blue";
+				}
+				else
+				{
+					currentTheme = "beige";
+				}
+				
+				loadStyle();
+			}
+			*/
+            
+			private function startService():void
+			{
+				productService.send();
+			}
+			
+			private function loadStyle():void
+			{
+                /* load css not implemented yet
+				var eventDispatcher:IEventDispatcher =
+					styleManager.loadStyleDeclarations(currentTheme + ".swf");
+				eventDispatcher.addEventListener(StyleEvent.COMPLETE, completeHandler);
+                */
+			}
+			
+			private function completeHandler(event:Event):void
+			{
+				image.source = ValuesManager.valuesImpl.getValue(acb, "storeLogo");
+                /*
+				super.initialized = true;
+                */
+                callLater.callLater(prebake);
+			}
+			
+            /*
+			override public function set initialized(value:Boolean):void
+			{
+				// Hold off until the Runtime CSS SWF is done loading.
+			}
+            */
+            
+            private var stateChain:Array;
+            
+            private function headHome():void
+            {
+                homeButton.selected = true;
+                if (initialView.currentState == "ProductsState")
+                {
+                    productsButton.selected = false;
+                    stateChain = ["ProductsWipeUp", "HomeWipeDown", "HomeState"];
+                    initialView.currentState = "ProductsWipeUp";
+                }
+                else if (initialView.currentState == "SupportState")
+                {
+                    supportButton.selected = false;
+                    stateChain = ["SupportWipeUp", "HomeWipeDown", "HomeState"];
+                    initialView.currentState = "SupportWipeUp";                    
+                }
+            }
+            
+            private function headToProducts():void
+            {
+                productsButton.selected = true;
+                if (initialView.currentState == "SupportState")
+                {
+                    supportButton.selected = false;
+                    stateChain = ["SupportWipeUp", "ProductsWipeDown", "ProductsState"];
+                    initialView.currentState = "SupportWipeUp";                    
+                }
+                if (initialView.currentState == "HomeState")
+                {
+                    homeButton.selected = false;
+                    stateChain = ["HomeWipeUp", "ProductsWipeDown", "ProductsState"];
+                    initialView.currentState = "HomeWipeUp";                    
+                }
+            }
+            
+            private function headToSupport():void
+            {
+                supportButton.selected = true;
+                if (initialView.currentState == "ProductsState")
+                {
+                    productsButton.selected = false;
+                    stateChain = ["ProductsWipeUp", "SupportWipeDown", "SupportState"];
+                    initialView.currentState = "ProductsWipeUp";                    
+                }
+                if (initialView.currentState == "HomeState")
+                {
+                    homeButton.selected = false;
+                    stateChain = ["HomeWipeUp", "SupportWipeDown", "SupportState"];
+                    initialView.currentState = "HomeWipeUp";                    
+                }
+            }
+            
+            private function prebake():void
+            {
+                callLater.callLater(prebake2);
+            }
+            
+            private function prebake2():void
+            {
+                trace("prebake2");
+                stateChain = ["ProductsPreBake", "HomeState"];
+                initialView.currentState = "ProductsPreBake";
+            }
+                
+            private function chainStatesIfNeeded():void
+            {
+                if (stateChain != null)
+                {
+                    if (initialView.currentState == stateChain[0])
+                    {
+                        callLater.callLater(nextState);
+                    }
+                }
+            }
+            
+            private function nextState():void
+            {
+                stateChain.shift();
+                if (stateChain.length)
+                    initialView.currentState = stateChain[0];
+                else
+                    stateChain == null;
+            }
+		]]>
+	</fx:Script>
+	
+	<fx:Style source="main.css"/>
+    <fx:Style source="beige.css"/>
+	
+    <fx:Declarations>
+        <basic:HTTPService id="productService" url="data/catalog.json">
+            <basic:LazyCollection id="catalog">
+                <basic:inputParser>
+                    <basic:JSONInputParser />
+                </basic:inputParser>
+                <basic:itemConverter>
+                    <ProductJSONItemConverter />
+                </basic:itemConverter> 
+            </basic:LazyCollection>
+        </basic:HTTPService>        
+    </fx:Declarations>
+    <basic:valuesImpl>
+        <basic:SimpleCSSValuesImpl />
+    </basic:valuesImpl>
+	<basic:beads>
+        <basic:CallLaterBead id="callLater" />
+        <basic:ApplicationDataBinding />
+    </basic:beads>
+    <basic:initialView>
+        <basic:ViewBase	width="990" height="550"
+                        initComplete="completeHandler(null)"
+                        stateChangeComplete="chainStatesIfNeeded()">
+            <basic:states>
+                <mx:State name="HomeState" stateGroups="['Home']" />
+                <mx:State name="HomeWipeUp" stateGroups="['Home']" />
+                <mx:State name="HomeWipeDown" stateGroups="['Home']" />
+                <mx:State name="ProductsPreBake" stateGroups="['Home', 'Products']" />
+                <mx:State name="ProductsState" stateGroups="['Products']" />
+                <mx:State name="ProductsWipeUp" stateGroups="['Products']" />
+                <mx:State name="ProductsWipeDown" stateGroups="['Products']" />
+                <mx:State name="SupportState" stateGroups="['Support']" />
+                <mx:State name="SupportWipeUp" stateGroups="['Support']" />
+                <mx:State name="SupportWipeDown" stateGroups="['Support']" />
+            </basic:states>
+            
+            <basic:transitions>
+                <basic:Transition fromState="HomeState" toState="HomeWipeUp">
+                    <basic:Wipe direction="up" target="homeView" />
+                </basic:Transition>
+                <basic:Transition fromState="HomeWipeDown" toState="HomeState">
+                    <basic:Wipe direction="down" target="homeView" />
+                </basic:Transition>
+                <basic:Transition fromState="ProductsState" toState="ProductsWipeUp">
+                    <basic:Wipe direction="up" target="pView" />
+                </basic:Transition>
+                <basic:Transition fromState="ProductsWipeDown" toState="ProductsState">
+                    <basic:Wipe direction="down" target="pView" />
+                </basic:Transition>
+                <basic:Transition fromState="SupportState" toState="SupportWipeUp">
+                    <basic:Wipe direction="up" target="supportView" />
+                </basic:Transition>
+                <basic:Transition fromState="SupportWipeDown" toState="SupportState">
+                    <basic:Wipe direction="down" target="supportView" />
+                </basic:Transition>
+            </basic:transitions>
+            <basic:beads>
+                <basic:NonVirtualVerticalLayout />
+            </basic:beads>
+            <basic:ControlBar id="acb" width="100%" className="storeControlBar" >
+                <basic:beads>
+                    <basic:NonVirtualHorizontalLayout />
+                    <basic:LayoutChangeNotifier watchedProperty="{image.width}" />
+                </basic:beads>
+                <basic:Image id="image" />
+                         <!-- click="toggleTheme()" -->
+                         <!-- toolTip="Change Theme"/ -->
+                <basic:ToggleTextButton id="homeButton"
+                                text="Home"
+                                height="100%"
+                                selected="true"
+                                className="storeButtonBar"
+                                click="headHome()" />
+                <basic:ToggleTextButton id="productsButton"
+                                text="Products"
+                                height="100%"
+                                className="storeButtonBar"
+                                click="headToProducts()"/>
+                <basic:ToggleTextButton id="supportButton"
+                                text="Support"
+                                height="100%"
+                                className="storeButtonBar"
+                                click="headToSupport()"/>            
+            </basic:ControlBar>
+            <basic:Container width="990" >
+                <basic:style>
+                    <basic:SimpleCSSStyles paddingLeft="0" paddingRight="0" horizontalCenter="0" top="12" />
+                </basic:style>
+                        
+                <HomeView id="homeView" width="100%" height="550" includeIn="Home"
+                          />
+                <ProductsView id="pView" includeIn="Products" visible.ProductsPreBake="false"
+                              width="100%" height="550" initComplete="pView.catalog = catalog"
+                              />
+                <SupportView id="supportView" includeIn="Support"
+                             width="100%" height="550"
+                             />
+            </basic:Container>
+        </basic:ViewBase>        
+    </basic:initialView>    
+</basic:Application>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/HomeView.mxml
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/HomeView.mxml b/examples/FlexJSStore/src/HomeView.mxml
new file mode 100755
index 0000000..be34beb
--- /dev/null
+++ b/examples/FlexJSStore/src/HomeView.mxml
@@ -0,0 +1,206 @@
+<?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.
+
+-->
+<!--
+This component is primarily static and is only meant to show what other
+pages of the store could look like.
+
+Note that this page was put together in the Design view so you'll see more
+hard coded locations and sizes.
+
+Also note when working with a Canvas that using the constraint styles 
+(e.g., left, top, right, bottom) can provide better layout predictability than 
+using x and y, especially when percentage widths and heights are used.
+
+Width and height are hard-coded in the root tag to help the Design view.
+-->
+<basic:Container xmlns:fx="http://ns.adobe.com/mxml/2009"
+         xmlns:basic="library://ns.apache.org/flexjs/basic" 
+         xmlns:mx="library://ns.adobe.com/flex/mx"
+           xmlns="*" width="990" height="550"
+           initComplete="updateMapImage()">
+	<fx:Script>
+		<![CDATA[
+            import org.apache.flex.core.ValuesManager;
+			import org.apache.flex.html.SimpleAlert;
+
+			public function updateMapImage():void
+			{
+				mapImage.source = ValuesManager.valuesImpl.getValue(mapCanvas, 'dottedMap');
+			}
+		]]>
+	</fx:Script>
+    <basic:beads>
+        <basic:ContainerDataBinding />
+    </basic:beads>
+	<basic:HContainer width="100%" height="100%" y="0" x="0" className="colorPanel">
+		<basic:VContainer width="230" height="100%">
+			<basic:Container width="100%" height="100%">
+			
+				<basic:Container width="100%" height="60" className="homeSection">
+                    <basic:style>
+                        <basic:SimpleCSSStyles backgroundColor="#ebebe9" left="10" top="10" />
+                    </basic:style>
+					<basic:Label style="left:10;top:10" text="Search Developers" height="22" className="sectionHeader" />
+					<basic:TextButton style="left:168;top:30" text="Go" width="47" height="20" className="glass" click="SimpleAlert.show('This feature is not implemented in this sample', 'Go')"/>
+					<basic:TextInput style="left:10;top:30" height="20" width="150"/>
+				</basic:Container>
+				
+				<basic:Container width="100%" height="280" className="homeSection">
+                    <basic:style>
+                        <basic:SimpleCSSStyles backgroundColor="#ffffff" left="10" top="78" />                        
+                    </basic:style>
+					<basic:VContainer width="100%" height="100%">
+                        <basic:style>
+                            <basic:SimpleCSSStyles left="10" top="10" />                        
+                        </basic:style>
+						<basic:Label text="Flex Experts That Can Help You" className="sectionHeader"/>
+						<basic:HRule height="5" width="197"/>
+						<basic:Label text="General" className="homeProgramHeader"/>
+						<basic:Label text="BlazeDS Experts" style="fontSize:9"/>
+						<basic:Spacer height="8" width="100%"/>
+						<basic:Label text="Server-side" className="homeProgramHeader"/>
+						<basic:Label text="Java, PHP Developers" style="fontSize:9"/>
+						<basic:Spacer height="8" width="100%"/>
+						<basic:Label text="Mobile" className="homeProgramHeader"/>
+						<basic:Label text="Android, IOS and more" style="fontSize:9"/>
+						<basic:Spacer height="8" width="100%"/>
+						<basic:Label text="Students" className="homeProgramHeader"/>
+						<basic:Label text="Free Assistance" style="fontSize:9"/>
+						<basic:Spacer height="8" width="100%"/>
+					</basic:VContainer>
+				</basic:Container>
+				
+				<basic:Container width="100%" height="174" className="homeSection">
+                    <basic:style>
+                        <basic:SimpleCSSStyles backgroundColor="#ebebe9" left="10" top="366" />
+                    </basic:style>
+					<basic:VContainer width="100%" height="100%">
+                        <basic:style>
+                            <basic:SimpleCSSStyles left="10" top="10" />
+                        </basic:style>
+						<basic:Label text="Manage My Account" className="sectionHeader"/>
+						
+						<basic:Label text="Phone Number"/>
+						
+						<basic:HContainer width="100%" height="25" >
+                            <basic:style>
+                                <basic:SimpleCSSStyles horizontalAlign="left" verticalAlign="middle" />
+                            </basic:style>
+							<basic:TextInput height="20" width="40"/>
+							<basic:HRule width="8" height="25"/>
+							<basic:TextInput height="20" width="40"/>
+							<basic:HRule width="8" height="25"/>
+							<basic:TextInput height="20" width="40"/>
+						</basic:HContainer>
+						
+						<basic:Label text="Password"/>
+						<basic:TextInput height="20"/>
+						<basic:Spacer height="8" width="100%"/>
+						
+						<basic:CheckBox text="Remember my phone number" selected="true"/>
+						<basic:Spacer height="8" width="100%"/>
+						
+						<basic:TextButton text="Login" className="glass" height="20" width="55" click="SimpleAlert.show('This feature is not implemented in this sample', 'Login')"/>
+						
+					</basic:VContainer>
+				</basic:Container>
+				
+			</basic:Container>
+			
+		</basic:VContainer>
+		
+		<basic:VContainer width="750" height="100%">
+			<basic:Container width="100%" height="100%">
+			
+			    <!-- can't use binding to set the mapImage source because the style isn't available early enough -->
+				<basic:Container id="mapCanvas" width="100%" height="35%" className="homeMap">
+                    <basic:style>
+                        <basic:SimpleCSSStyles right="10" top="10" />
+                    </basic:style>
+					<basic:Image id="mapImage" width="487" height="100%" alpha="1.0" style="left:10;top:10"/>
+					<basic:Label y="110" text="US Developers . Flex . FlexJS" width="95%" height="40" style="horizontalCenter:0;fontWeight:'bold';fontSize:22;color:#ffffff;fontFamily:'Arial';textAlign:'center'"/>
+					<basic:Label text="Learn More &gt;&gt;" width="95" style="fontSize:12;fontFamily:'Arial';bottom:10;right:10"/>
+					<basic:Label text="$60/hr" style="color:#ffffff;fontWeight:'bold';fontFamily:'Arial';fontSize:20;right:10:top:10"/>
+					<basic:Label text="Rates as low as" x="551" y="16" style="fontSize:12"/>
+				</basic:Container>
+				
+				<basic:Container width="100%" height="330" >
+                    <basic:style>
+                        <basic:SimpleCSSStyles backgroundColor="#ffffff" borderStyle="solid" bottom="10" right="10" /> <!-- cornerRadius="4" -->
+                    </basic:style>
+					
+					<basic:Label style="left:10;top:10" text="Featured Developers" width="173" height="25" className="sectionHeader"/>
+					
+					<basic:HContainer style="left:0;top:43" width="100%" height="100%">
+						<basic:VContainer width="33%" height="100%">
+							<basic:beads>
+                                <basic:LayoutChangeNotifier watchedProperty="{image1.height}" />
+                            </basic:beads>
+							<basic:Container width="100%">
+								<basic:Image id="image1" source="assets/akotter.jpg" style="horizontalCenter:0;verticalCenter:0"/>
+							</basic:Container>
+							
+							<basic:Container width="100%">
+								<basic:Label text="Annette Kotter" id="feat_prod_1" style="horizontalCenter:0;fontWeight:'bold';fontSize:12"/>
+							</basic:Container>
+							
+						</basic:VContainer>
+						
+						<basic:VContainer width="33%" height="100%">
+                            <basic:beads>
+                                <basic:LayoutChangeNotifier watchedProperty="{image2.height}" />
+                            </basic:beads>
+							
+							<basic:Container width="100%">
+								<basic:Image id="image2" style="horizontalCenter:0;verticalCenter:0" source="assets/bcrater.jpg"/>
+							</basic:Container>
+							
+							<basic:Container width="100%">
+								<basic:Label text="Ben Crater" id="feat_prod_2" style="horizontalCenter:0;fontWeight:'bold';fontSize:12"/>
+							</basic:Container>
+							
+						</basic:VContainer>
+						
+						<basic:VContainer width="33%" height="100%">
+                            <basic:beads>
+                                <basic:LayoutChangeNotifier watchedProperty="{image3.height}" />
+                            </basic:beads>
+							
+							<basic:Container width="100%">
+								<basic:Image id="image3" style="horizontalCenter:0;verticalCenter:0" source="assets/jproctor.jpg"/>
+							</basic:Container>
+							
+							<basic:Container width="100%">
+								<basic:Label text="Jane Proctor" id="feat_prod_3" style="horizontalCenter:0;fontWeight:'bold';fontSize:12"/>
+							</basic:Container>
+							
+						</basic:VContainer>
+						
+					</basic:HContainer>
+					
+				</basic:Container>
+				
+			</basic:Container>
+		
+		</basic:VContainer>
+		
+	</basic:HContainer>
+	
+</basic:Container>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/ProductJSONItemConverter.as
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/ProductJSONItemConverter.as b/examples/FlexJSStore/src/ProductJSONItemConverter.as
new file mode 100755
index 0000000..4d44ecf
--- /dev/null
+++ b/examples/FlexJSStore/src/ProductJSONItemConverter.as
@@ -0,0 +1,41 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+{
+    import org.apache.flex.net.JSONItemConverter;
+    
+    import samples.flexstore.Product;
+    
+    public class ProductJSONItemConverter extends JSONItemConverter
+    {
+        public function ProductJSONItemConverter()
+        {
+            super();
+        }
+        
+        override public function convertItem(data:String):Object
+        {
+            var obj:Object = super.convertItem(data);
+            var product:Product = new Product();
+            for (var p:String in obj)
+                product[p] = obj[p];
+			return product;
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/ProductsView.mxml
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/ProductsView.mxml b/examples/FlexJSStore/src/ProductsView.mxml
new file mode 100755
index 0000000..9b42fa1
--- /dev/null
+++ b/examples/FlexJSStore/src/ProductsView.mxml
@@ -0,0 +1,130 @@
+<?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.
+
+-->
+<!-- width and height hard-coded in the root tag to better support the 
+     Design view in FlexBuilder since we know the width and height from the 
+     settings in flexstore.mxml -->
+<basic:Container xmlns:fx="http://ns.adobe.com/mxml/2009"
+         xmlns:basic="library://ns.apache.org/flexjs/basic" 
+         xmlns:mx="library://ns.adobe.com/flex/mx"
+    xmlns:productsView="productsView.*"
+    width="990" height="550"
+    currentState="showFilter"
+    >
+
+    <fx:Script>
+        <![CDATA[
+        import org.apache.flex.events.Event;
+        import org.apache.flex.net.dataConverters.LazyCollection;
+        import samples.flexstore.Product;
+                
+        private var _catalog:LazyCollection;
+        
+        [Bindable("catalogChange")]
+        public function get catalog():LazyCollection
+        {
+            return _catalog;
+        }
+        
+        public function set catalog(c:LazyCollection):void
+        {
+            _catalog = c;
+            if (filterPanel != null)
+            {
+                filterPanel.filter.count = c.length;
+            }
+            dispatchEvent(new org.apache.flex.events.Event("catalogChange"));
+        }
+        
+        public function addToCompare(product:Product):void
+        {
+            //setting the state before adding the product avoids jumpiness in the transition, not sure why
+            currentState = 'showFilter';
+            filterPanel.productList.addProduct(product);
+        }
+        
+        public function addToCart(product:Product):void
+        {
+            //setting the state before adding the product avoids jumpiness in the transition, not sure why
+            currentState = 'showCart'; 
+            cartPanel.productList.addProduct(product);
+        }
+        
+        
+        ]]>
+    </fx:Script>
+    <basic:beads>
+        <basic:ContainerDataBinding />
+        <basic:LayoutChangeNotifier watchedProperty="{catalogPanelPosition.right}" initialValue="17" />
+    </basic:beads>
+    <basic:Container 
+        className="colorPanel"
+        height="100%" width="100%" 
+        >
+    
+        <productsView:Grip id="filterGrip" gripIcon="assets/icon_magnifier.png" 
+            gripTip="Show filter panel" click="currentState = 'showFilter'"/>
+    
+        <productsView:ProductFilterPanel x="{filterGrip.width}" id="filterPanel" width="265" height="100%"
+            filter="catalogPanel.filter(event.filter, event.live)"
+            compare="catalogPanel.compare(filterPanel.productList.getProducts())"
+            initComplete="if (catalog) filterPanel.filter.count = catalog.length"/>
+    
+        <productsView:ProductCart id="cartPanel" width="265" height="100%">
+            <productsView:style>
+                <basic:SimpleCSSStyles right="{cartGrip.width}" />
+            </productsView:style>
+        </productsView:ProductCart>
+
+        <productsView:Grip id="cartGrip" gripIcon="assets/icon_cart_empty.png"
+            gripTip="Show cart" click="currentState = 'showCart'">
+            <productsView:style>
+                <basic:SimpleCSSStyles right="0" />
+            </productsView:style>
+        </productsView:Grip>
+    
+    </basic:Container>
+        
+    <productsView:ProductCatalogPanel id="catalogPanel" y="4" width="685" height="540"
+        catalog="{catalog}"
+        compare="addToCompare(event.product)"
+        purchase="addToCart(event.product)"
+        cartCount="{cartPanel.numProducts}">
+        <productsView:style>
+            <basic:BindableCSSStyles id="catalogPanelPosition" right.showFilter="17"
+                                  right.showCart="285" />
+        </productsView:style>
+    </productsView:ProductCatalogPanel>
+    
+    <basic:states>
+       <mx:State name="showFilter" />
+       <mx:State name="showCart" />
+    </basic:states>
+    
+    <!-- 
+      make sure to use transitions here instead of applying a Move effect
+      to the Panel itself which will result in odd behavior
+    -->
+    <basic:transitions>
+       <basic:Transition fromState="*" toState="*">
+          <basic:Move target="catalogPanel" />
+       </basic:Transition>
+    </basic:transitions>
+        
+</basic:Container>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/SupportView.mxml
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/SupportView.mxml b/examples/FlexJSStore/src/SupportView.mxml
new file mode 100755
index 0000000..0410e1b
--- /dev/null
+++ b/examples/FlexJSStore/src/SupportView.mxml
@@ -0,0 +1,139 @@
+<?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.
+
+-->
+<!--
+This component is primarily static and is only meant to show what other
+pages of the store could look like.
+
+Note that this page was put together in the Design view so you'll see more
+hard coded locations and sizes.
+
+We did not have sizing issues here as much so you'll see more hardcoded 
+"y" values rather than "top."
+
+The width and height are hard-coded in the root tag to help the Design view.
+-->
+<basic:Container xmlns:fx="http://ns.adobe.com/mxml/2009"
+                 xmlns:basic="library://ns.apache.org/flexjs/basic" 
+                 xmlns:mx="library://ns.adobe.com/flex/mx" xmlns="*" alpha="1.0"
+    width="990" height="550">
+	
+	<fx:Script>
+	    <![CDATA[
+	       import org.apache.flex.html.SimpleAlert; 
+	    ]]>
+	</fx:Script>
+	
+    <fx:Declarations>
+        <fx:Array id="locations">
+            <fx:Object image="assets/support_mapmarker_a.png" name="601 Townsend St" /> 
+            <fx:Object image="assets/support_mapmarker_b.png" name="Location B" />
+            <fx:Object image="assets/support_mapmarker_c.png" name="Location C" />	   	   
+        </fx:Array>   
+        
+    </fx:Declarations>
+	
+	<basic:HContainer x="0" y="0" width="100%" height="100%" className="colorPanel">
+	
+		<basic:VContainer width="32%" height="100%">
+			<basic:Container width="100%" height="60%">
+			
+				<basic:Label y="10" text="Check Location" className="sectionHeader" x="20"/>
+				
+				<basic:Container width="95%" height="150" y="64" style="horizontalCenter:0">
+                    <basic:beads>
+                        <basic:VerticalColumnLayout numColumns="2" />
+                    </basic:beads>
+					<basic:Label text="Address:" width="100%"/>
+					<basic:TextInput id="address" width="90%"/>
+					
+					<basic:Label text="City:" width="100%"/>
+					<basic:TextInput id="city" width="60%"/>						
+					
+					<basic:Label text="State:" width="100%"/>
+					<basic:DropDownList id="state" width="50%">
+						<basic:dataProvider>
+                            <fx:Array>
+                                <fx:String>California</fx:String>
+                                <fx:String>Nevada</fx:String>
+                                <fx:String>Oregon</fx:String>
+                                <fx:String>Washington</fx:String>
+                            </fx:Array>                                    
+            			</basic:dataProvider>
+					</basic:DropDownList>
+					
+					<basic:Label text="ZIP Code:" width="100%" />
+					<basic:TextInput id="zip" width="30%"/>
+					
+				</basic:Container>
+				
+				<basic:Label y="38" text="Option1: Enter Address" style="horizontalCenter:0" className="instructions"/>
+				
+				<basic:TextButton y="297" text="Locate" click="SimpleAlert.show('This feature is not implemented in this sample', 'Locate')" 
+                                  style="horizontalCenter:0"/>
+				
+				<basic:HContainer y="327" width="80%" height="20" >
+                    <basic:style>
+                        <basic:SimpleCSSStyles horizontalAlign="center" verticalAlign="middle" horizontalCenter="0" />
+                    </basic:style>
+					<basic:HRule width="60" />
+					<basic:Label text="OR"/>
+                    <basic:HRule width="60" />
+				</basic:HContainer>
+				
+				<basic:Label y="355" text="Option 2: Drag this marker into the map" style="horizontalCenter:0" className="instructions"/>
+				
+				<basic:Image y="380" style="horizontalCenter:0" source="assets/support_mapmarker_plus.png"/>
+				
+				<basic:HRule y="415" style="horizontalCenter:0" width="200" alpha="0.6"/>
+				
+			</basic:Container>
+			
+			<basic:Container width="100%" height="40%">
+				<basic:VContainer width="80%" height="90%" >
+                    <basic:style>
+                        <basic:SimpleCSSStyles horizontalCenter="0" top="0"/>
+                    </basic:style>
+					<basic:Label text="Location" className="instructions"/>
+					<basic:List width="100%" dataProvider="{locations}">
+                        <basic:itemRenderer>
+                            <fx:Component>
+                                <basic:DataItemRenderer className="listItem" width="100%">
+                                    <basic:Image width="21" height="25" source="{data.image}" />
+                                    <basic:Label width="100%" text="{data.name}" />
+                                </basic:DataItemRenderer>                                                            
+                            </fx:Component>
+                        </basic:itemRenderer>
+					</basic:List>
+				</basic:VContainer>
+			</basic:Container>
+			
+		</basic:VContainer>
+		
+		<basic:Container width="68%" height="100%">
+			<basic:Image source="assets/support_map.png">
+                <basic:style>
+                    <basic:SimpleCSSStyles left="2" right="2" top="2" bottom="2"/>
+                </basic:style>
+            </basic:Image>
+		</basic:Container>
+		
+	</basic:HContainer>
+	
+</basic:Container>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/akotter.jpg
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/akotter.jpg b/examples/FlexJSStore/src/assets/akotter.jpg
new file mode 100755
index 0000000..1124b71
Binary files /dev/null and b/examples/FlexJSStore/src/assets/akotter.jpg differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/bcrater.jpg
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/bcrater.jpg b/examples/FlexJSStore/src/assets/bcrater.jpg
new file mode 100755
index 0000000..fd15d59
Binary files /dev/null and b/examples/FlexJSStore/src/assets/bcrater.jpg differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/beige_background.jpg
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/beige_background.jpg b/examples/FlexJSStore/src/assets/beige_background.jpg
new file mode 100755
index 0000000..8f034ba
Binary files /dev/null and b/examples/FlexJSStore/src/assets/beige_background.jpg differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/beige_dotted_map.png
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/beige_dotted_map.png b/examples/FlexJSStore/src/assets/beige_dotted_map.png
new file mode 100755
index 0000000..e88d9ef
Binary files /dev/null and b/examples/FlexJSStore/src/assets/beige_dotted_map.png differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/blue_background.jpg
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/blue_background.jpg b/examples/FlexJSStore/src/assets/blue_background.jpg
new file mode 100755
index 0000000..361ce0e
Binary files /dev/null and b/examples/FlexJSStore/src/assets/blue_background.jpg differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/blue_dotted_map.png
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/blue_dotted_map.png b/examples/FlexJSStore/src/assets/blue_dotted_map.png
new file mode 100755
index 0000000..5fa6714
Binary files /dev/null and b/examples/FlexJSStore/src/assets/blue_dotted_map.png differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/button_cart_empty.png
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/button_cart_empty.png b/examples/FlexJSStore/src/assets/button_cart_empty.png
new file mode 100644
index 0000000..0e1a2b5
Binary files /dev/null and b/examples/FlexJSStore/src/assets/button_cart_empty.png differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/button_cart_full.png
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/button_cart_full.png b/examples/FlexJSStore/src/assets/button_cart_full.png
new file mode 100644
index 0000000..9c9eea0
Binary files /dev/null and b/examples/FlexJSStore/src/assets/button_cart_full.png differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/button_compare.png
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/button_compare.png b/examples/FlexJSStore/src/assets/button_compare.png
new file mode 100644
index 0000000..c2ac969
Binary files /dev/null and b/examples/FlexJSStore/src/assets/button_compare.png differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/button_details.png
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/button_details.png b/examples/FlexJSStore/src/assets/button_details.png
new file mode 100644
index 0000000..3e6238c
Binary files /dev/null and b/examples/FlexJSStore/src/assets/button_details.png differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/button_tiles.png
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/button_tiles.png b/examples/FlexJSStore/src/assets/button_tiles.png
new file mode 100644
index 0000000..4266a22
Binary files /dev/null and b/examples/FlexJSStore/src/assets/button_tiles.png differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/grip.png
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/grip.png b/examples/FlexJSStore/src/assets/grip.png
new file mode 100755
index 0000000..64ee835
Binary files /dev/null and b/examples/FlexJSStore/src/assets/grip.png differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/icon_cart_empty.png
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/icon_cart_empty.png b/examples/FlexJSStore/src/assets/icon_cart_empty.png
new file mode 100644
index 0000000..562064b
Binary files /dev/null and b/examples/FlexJSStore/src/assets/icon_cart_empty.png differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/icon_magnifier.png
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/icon_magnifier.png b/examples/FlexJSStore/src/assets/icon_magnifier.png
new file mode 100755
index 0000000..939f814
Binary files /dev/null and b/examples/FlexJSStore/src/assets/icon_magnifier.png differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/jproctor.jpg
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/jproctor.jpg b/examples/FlexJSStore/src/assets/jproctor.jpg
new file mode 100755
index 0000000..1111787
Binary files /dev/null and b/examples/FlexJSStore/src/assets/jproctor.jpg differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/logo_blue.png
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/logo_blue.png b/examples/FlexJSStore/src/assets/logo_blue.png
new file mode 100755
index 0000000..132b894
Binary files /dev/null and b/examples/FlexJSStore/src/assets/logo_blue.png differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/logo_orange.png
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/logo_orange.png b/examples/FlexJSStore/src/assets/logo_orange.png
new file mode 100755
index 0000000..c776c8c
Binary files /dev/null and b/examples/FlexJSStore/src/assets/logo_orange.png differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/pic/abrilliam.jpg
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/pic/abrilliam.jpg b/examples/FlexJSStore/src/assets/pic/abrilliam.jpg
new file mode 100755
index 0000000..6954858
Binary files /dev/null and b/examples/FlexJSStore/src/assets/pic/abrilliam.jpg differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/pic/akotter.jpg
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/pic/akotter.jpg b/examples/FlexJSStore/src/assets/pic/akotter.jpg
new file mode 100755
index 0000000..1124b71
Binary files /dev/null and b/examples/FlexJSStore/src/assets/pic/akotter.jpg differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/pic/bcrater.jpg
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/pic/bcrater.jpg b/examples/FlexJSStore/src/assets/pic/bcrater.jpg
new file mode 100755
index 0000000..fd15d59
Binary files /dev/null and b/examples/FlexJSStore/src/assets/pic/bcrater.jpg differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/pic/bleporte.jpg
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/pic/bleporte.jpg b/examples/FlexJSStore/src/assets/pic/bleporte.jpg
new file mode 100755
index 0000000..c4769e8
Binary files /dev/null and b/examples/FlexJSStore/src/assets/pic/bleporte.jpg differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/pic/bvanbrocklin.jpg
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/pic/bvanbrocklin.jpg b/examples/FlexJSStore/src/assets/pic/bvanbrocklin.jpg
new file mode 100755
index 0000000..489fa2e
Binary files /dev/null and b/examples/FlexJSStore/src/assets/pic/bvanbrocklin.jpg differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/pic/ccarpenter.jpg
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/pic/ccarpenter.jpg b/examples/FlexJSStore/src/assets/pic/ccarpenter.jpg
new file mode 100755
index 0000000..c1dc3d8
Binary files /dev/null and b/examples/FlexJSStore/src/assets/pic/ccarpenter.jpg differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/pic/clampberto.jpg
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/pic/clampberto.jpg b/examples/FlexJSStore/src/assets/pic/clampberto.jpg
new file mode 100755
index 0000000..9deacd2
Binary files /dev/null and b/examples/FlexJSStore/src/assets/pic/clampberto.jpg differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/pic/davenon.jpg
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/pic/davenon.jpg b/examples/FlexJSStore/src/assets/pic/davenon.jpg
new file mode 100755
index 0000000..6a2a142
Binary files /dev/null and b/examples/FlexJSStore/src/assets/pic/davenon.jpg differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/pic/dmcgoyal.jpg
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/pic/dmcgoyal.jpg b/examples/FlexJSStore/src/assets/pic/dmcgoyal.jpg
new file mode 100755
index 0000000..1124b71
Binary files /dev/null and b/examples/FlexJSStore/src/assets/pic/dmcgoyal.jpg differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/pic/dwillhelm.jpg
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/pic/dwillhelm.jpg b/examples/FlexJSStore/src/assets/pic/dwillhelm.jpg
new file mode 100755
index 0000000..fd15d59
Binary files /dev/null and b/examples/FlexJSStore/src/assets/pic/dwillhelm.jpg differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/pic/esunderland.jpg
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/pic/esunderland.jpg b/examples/FlexJSStore/src/assets/pic/esunderland.jpg
new file mode 100755
index 0000000..c4769e8
Binary files /dev/null and b/examples/FlexJSStore/src/assets/pic/esunderland.jpg differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/pic/jproctor.jpg
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/pic/jproctor.jpg b/examples/FlexJSStore/src/assets/pic/jproctor.jpg
new file mode 100755
index 0000000..1111787
Binary files /dev/null and b/examples/FlexJSStore/src/assets/pic/jproctor.jpg differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/pic/mfields.jpg
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/pic/mfields.jpg b/examples/FlexJSStore/src/assets/pic/mfields.jpg
new file mode 100755
index 0000000..489fa2e
Binary files /dev/null and b/examples/FlexJSStore/src/assets/pic/mfields.jpg differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/pic/pdempsey.jpg
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/pic/pdempsey.jpg b/examples/FlexJSStore/src/assets/pic/pdempsey.jpg
new file mode 100755
index 0000000..9deacd2
Binary files /dev/null and b/examples/FlexJSStore/src/assets/pic/pdempsey.jpg differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/pic/ptranep.jpg
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/pic/ptranep.jpg b/examples/FlexJSStore/src/assets/pic/ptranep.jpg
new file mode 100755
index 0000000..4b9a03b
Binary files /dev/null and b/examples/FlexJSStore/src/assets/pic/ptranep.jpg differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/pic/rcrawley.jpg
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/pic/rcrawley.jpg b/examples/FlexJSStore/src/assets/pic/rcrawley.jpg
new file mode 100755
index 0000000..9b60320
Binary files /dev/null and b/examples/FlexJSStore/src/assets/pic/rcrawley.jpg differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/pic/rdreifus.jpg
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/pic/rdreifus.jpg b/examples/FlexJSStore/src/assets/pic/rdreifus.jpg
new file mode 100755
index 0000000..6a2a142
Binary files /dev/null and b/examples/FlexJSStore/src/assets/pic/rdreifus.jpg differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/pic/twong.jpg
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/pic/twong.jpg b/examples/FlexJSStore/src/assets/pic/twong.jpg
new file mode 100755
index 0000000..1124b71
Binary files /dev/null and b/examples/FlexJSStore/src/assets/pic/twong.jpg differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/support_map.png
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/support_map.png b/examples/FlexJSStore/src/assets/support_map.png
new file mode 100755
index 0000000..c2f2394
Binary files /dev/null and b/examples/FlexJSStore/src/assets/support_map.png differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/support_mapmarker_a.png
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/support_mapmarker_a.png b/examples/FlexJSStore/src/assets/support_mapmarker_a.png
new file mode 100755
index 0000000..20c21e1
Binary files /dev/null and b/examples/FlexJSStore/src/assets/support_mapmarker_a.png differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/support_mapmarker_b.png
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/support_mapmarker_b.png b/examples/FlexJSStore/src/assets/support_mapmarker_b.png
new file mode 100755
index 0000000..069ccd8
Binary files /dev/null and b/examples/FlexJSStore/src/assets/support_mapmarker_b.png differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/support_mapmarker_c.png
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/support_mapmarker_c.png b/examples/FlexJSStore/src/assets/support_mapmarker_c.png
new file mode 100755
index 0000000..f6b587e
Binary files /dev/null and b/examples/FlexJSStore/src/assets/support_mapmarker_c.png differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/support_mapmarker_plus.png
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/support_mapmarker_plus.png b/examples/FlexJSStore/src/assets/support_mapmarker_plus.png
new file mode 100755
index 0000000..4192088
Binary files /dev/null and b/examples/FlexJSStore/src/assets/support_mapmarker_plus.png differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/assets/trashcan.png
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/assets/trashcan.png b/examples/FlexJSStore/src/assets/trashcan.png
new file mode 100644
index 0000000..483a37c
Binary files /dev/null and b/examples/FlexJSStore/src/assets/trashcan.png differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/beige.css
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/beige.css b/examples/FlexJSStore/src/beige.css
new file mode 100755
index 0000000..a5b23ba
--- /dev/null
+++ b/examples/FlexJSStore/src/beige.css
@@ -0,0 +1,170 @@
+/*
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+*/
+
+/* Style for color-specific state - Beige */
+
+@namespace "library://ns.apache.org/flexjs/basic";
+
+/*
+//----------------------------
+//  Global styles
+//----------------------------
+*/
+.global
+{
+    highlightAlphas:        .5, .25;
+    borderColor:            #939A9D;
+    headerColors:           #A65904, #E68701;
+    themeColor:             #75B1CE;
+    rollOverColor:          #D6E6EE;
+    selectionColor:         #B8D5E4;
+}
+
+/*
+//----------------------------
+// Type selectors
+//----------------------------
+*/
+Application
+{
+    backgroundColor:		#EAE6DD;
+    backgroundImage:        "assets/beige_background.jpg";
+}
+
+/*
+//----------------------------
+// Apply to Panels and Alerts by default
+//----------------------------
+*/
+.windowStatus {
+	color: #FFCC99;
+}
+
+.windowStyles {		/* catalog panel's title text */
+	color: #FFCC99;
+}
+
+/*
+//----------------------------
+// Named styles
+//----------------------------
+*/
+
+.colorPanel /* for the background of some surfaces */
+{
+    borderStyle:            "solid";
+    borderThickness:        0;
+    backgroundColor:		#BCB29F;
+    backgroundAlpha:		0.4;
+    color: 					#170505;
+    cornerRadius:           4;
+    dropShadowEnabled:      true;
+}
+
+.homeProgramHeader /* in HomeView */
+{
+    fontWeight:             "bold";
+    fontSize:               13;
+    color:                  #BE7E3F;
+}
+
+.homeMap
+{
+    borderStyle:            "solid";
+    cornerRadius:           4;
+    backgroundColor:        #BE7E3F;
+    alpha:                  1;
+    dottedMap:              "assets/beige_dotted_map.png";
+}
+
+.instructions
+{
+    alpha:                  .85;
+    color:                  #5C5857;
+}
+
+.storeControlBar
+{
+    fillAlphas: 			.60, .40;
+    fillColors: 			#8F8879, #BCB29F;
+    highlightAlphas:		.05, .25;
+    cornerRadius: 			3;
+	shadowDistance:         4;
+	paddingLeft:            0;
+	paddingRight:           0;
+	paddingTop:             0;
+	paddingBottom:          0;
+	horizontalGap:          0;
+    storeLogo:              "assets/logo_orange.png";
+}
+
+.storeButtonBar
+{
+    cornerRadius:           0;
+    buttonStyleName:        "storeButton";
+    themeColor:             #A65904;
+}
+
+.storeButton
+{
+    cornerRadius:           0;
+    fillColors:             #8F8879, #BCB29F, #A65904, #E68701;
+    fillAlphas:             1, 1;
+    highlightAlphas:        .5, .25;
+    fontWeight:             "normal";
+    /** need to port to ButtonView 
+    selectedOverSkin:       ClassReference("samples.flexstore.ButtonBarButtonSkin");
+    selectedUpSkin:         ClassReference("samples.flexstore.ButtonBarButtonSkin");
+    overSkin:               ClassReference("samples.flexstore.ButtonBarButtonSkin");
+    **/
+}
+
+.catalogTitleButtonSelected
+{
+    color:                  #FFFFFF;
+    fontWeight:             "bold";
+}
+
+.catalogTitleButtonDeselected
+{
+    color:                  #222222;
+    fontWeight:             "bold";
+}
+
+.catalogTitleButtonHighlighted
+{
+    color:                  #FFCC99;
+    fontWeight:             "bold";
+}
+
+.catalogPanel
+{
+    highlightAlphas:        .5, .25;
+    headerColors:           #A65904, #E68701;
+    borderAlpha:            1;
+    borderColor:            #FFFFFF;
+    borderThicknessRight:   1;
+    borderThicknessBottom:  1;
+    paddingRight:           0;
+    paddingBottom:          0;
+}
+
+

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/blue.css
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/blue.css b/examples/FlexJSStore/src/blue.css
new file mode 100755
index 0000000..58e98cd
--- /dev/null
+++ b/examples/FlexJSStore/src/blue.css
@@ -0,0 +1,165 @@
+/*
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+*/
+
+/* Style for color-specific state - Beige */
+
+/*
+//----------------------------
+//  Global styles
+//----------------------------
+*/
+.global
+{
+    highlightAlphas:        .5, .25;
+    borderColor:            #939A9D;
+    headerColors:           #456F84, #9ABBC9;
+    themeColor:             #75B1CE;
+    rollOverColor:          #D6E6EE;
+    selectionColor:         #B8D5E4;
+}
+
+/*
+//----------------------------
+// Type selectors
+//----------------------------
+*/
+Application
+{
+    backgroundColor:		#AAB2B7;
+    backgroundImage:        Embed("assets/blue_background.jpg");
+}
+
+/*
+//----------------------------
+// Apply to Panels and Alerts by default
+//----------------------------
+*/
+.windowStatus {
+	color: #BDE9FA;
+}
+
+.windowStyles {		/* catalog panel's title text */
+	color: #BDE9FA;
+}
+
+/*
+//----------------------------
+// Named styles
+//----------------------------
+*/
+
+.colorPanel /* for the background of some surfaces */
+{
+    borderStyle:            "solid";
+    borderThickness:        0;
+    backgroundColor:		#BDD6E2;
+    backgroundAlpha:		0.4;
+    color: 					#170505;
+    cornerRadius:           4;
+    dropShadowEnabled:      true;
+}
+
+.homeProgramHeader /* in HomeView */
+{
+    fontWeight:             "bold";
+    fontSize:               13;
+    color:                  #7AA4B9;
+}
+
+.homeMap
+{
+    borderStyle:            "solid";
+    cornerRadius:           4;
+    backgroundColor:        #7AA4B9;
+    alpha:                  1;
+    dottedMap:              Embed("assets/blue_dotted_map.png");
+}
+
+.instructions
+{
+    alpha:                  .85;
+    color:                  #5C5857;
+}
+
+.storeControlBar
+{
+    fillAlphas: 			.60, .40;
+    fillColors: 			#4A6F81, #BDD6E2;
+    highlightAlphas:		.05, .25;
+    cornerRadius: 			3;
+	shadowDistance:         4;
+	paddingLeft:            0;
+	paddingRight:           0;
+	paddingTop:             0;
+	paddingBottom:          0;
+	horizontalGap:          0;
+    storeLogo:              Embed("assets/logo_blue.png");
+}
+
+.storeButtonBar
+{
+    cornerRadius:           0;
+    buttonStyleName:        "storeButton";
+    themeColor:             #456F84;
+}
+
+.storeButton
+{
+    cornerRadius:           0;
+    fillColors:             #4A6F81, #BDD6E2, #456F84, #9ABBC9;
+    fillAlphas:             1, 1;
+    highlightAlphas:        .5, .25;
+    fontWeight:             "normal";
+    selectedOverSkin:       ClassReference("samples.flexstore.ButtonBarButtonSkin");
+    selectedUpSkin:         ClassReference("samples.flexstore.ButtonBarButtonSkin");
+    overSkin:               ClassReference("samples.flexstore.ButtonBarButtonSkin");
+}
+
+.catalogTitleButtonSelected
+{
+    color:                  #FFFFFF;
+    fontWeight:             "bold";
+}
+
+.catalogTitleButtonDeselected
+{
+    color:                  #222222;
+    fontWeight:             "bold";
+}
+
+.catalogTitleButtonHighlighted
+{
+    color:                  #BDE9FA;
+    fontWeight:             "bold";
+}
+
+.catalogPanel
+{
+    highlightAlphas:        .5, .25;
+    headerColors:           #456F84, #9ABBC9;
+    borderAlpha:            1;
+    borderColor:            #FFFFFF;
+    borderThicknessRight:   1;
+    borderThicknessBottom:  1;
+    paddingRight:           0;
+    paddingBottom:          0;
+}
+

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f2a370c6/examples/FlexJSStore/src/data/catalog.json
----------------------------------------------------------------------
diff --git a/examples/FlexJSStore/src/data/catalog.json b/examples/FlexJSStore/src/data/catalog.json
new file mode 100755
index 0000000..f42a76f
--- /dev/null
+++ b/examples/FlexJSStore/src/data/catalog.json
@@ -0,0 +1,255 @@
+<?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.
+ 
+ -->
+{ catalog : [
+
+    { "productId" :"1",
+      "name" : "Andrew Brilliam",
+      "description" : "15 years experience. 8 years with Flex.  Specializing in Text Layout Framework",
+      "price" : 60.00,
+      "image" : "assets/pic/abrilliam.jpg",
+      "experience" : 15,
+      "blazeds" : false,
+      "mobile" : false,
+      "video" : false,
+      "highlight1" : "Text Layout Framework",
+	  "highlight2" : "Parsley"
+    },
+    
+    { "productId" : "2",
+        "name" : "Annette Kotter",
+        "description" : "Specializing in custom components.  PHP servers.",
+        "price" : 55,
+        "image" : "assets/pic/akotter.jpg",
+        "experience" : 3,
+        "blazeds" : true,
+        "mobile" : false,
+        "video" : false,
+        "highlight1" : "Custom Components",
+		"highlight2" : "PHP"
+    },
+
+    { "productId" : "3",
+        "name" : "Ben Crater",
+        "description" : "Specializing in BlazeDS backends.",
+        "price" : 55,
+        "image" : "assets/pic/bcrater.jpg",
+        "experience" : 4,
+        "blazeds" : true,
+        "mobile" : false,
+        "video" : false,
+        "highlight1" : "BlazeDS",
+		"highlight2" : "Remote Object"
+    },
+
+    { "productId" : "4",
+        "name" : "Beth Leporte",
+        "description" : "BlazeDS or PHP servers.  Multimedia messagin.",
+        "price" : 70.00,
+        "image" : "assets/pic/bleporte.jpg",
+        "experience" : 6,
+        "blazeds" : true,
+        "mobile" : false,
+        "video" : false,
+        "highlight1" : "Multimedia messaging",
+		"highlight2" : "BlazeDS"
+    },
+
+    { "productId" : "5",
+        "name" : "Brad Van Brocklin",
+        "description" : "Emphasis on mobile application development",
+        "price" : 80,
+        "image" : "assets/pic/bvanbrocklin.jpg",
+        "experience" : 6,
+        "blazeds" : false,
+        "mobile" : true,
+        "video" : false,
+        "highlight1" : "Mobile",
+		"highlight2" : "Android"
+    },
+
+    { "productId" : "6",
+        "name" : "Carlos Carpenter",
+        "description" : "Built many mobile apps and video apps.",
+        "price" : 80,
+        "image" : "assets/pic/ccarpenter.jpg",
+        "experience" : 4,
+        "blazeds" : false,
+        "mobile" : true,
+        "video" : true,
+        "highlight1" : "Mobile",
+		"highlight2" : "Video"
+    },
+
+    { "productId" : "7",
+        "name" : "Christine Lampberto",
+        "description" : "7 years experience building mobile applications.",
+        "price" : 90,
+        "image" : "assets/pic/clampberto.jpg",
+        "experience" : 7,
+        "blazeds" : true,
+        "mobile" : true,
+        "video" : false,
+        "highlight1" : "BlazeDS",
+		"highlight2" : "Mobile"
+    },
+
+    { "productId" : "8",
+        "name" : "Dee Dee Avenon",
+        "description" : "I've been making video apps for over 5 years and mobile apps for about 3 years.",
+        "price" : 100,
+        "image" : "assets/pic/davenon.jpg",
+        "experience" : 10,
+        "blazeds" : false,
+        "mobile" : true,
+        "video" : true,
+        "highlight1" : "Video Applications",
+		"highlight2" : "Mobile Applications"
+    },
+
+    { "productId" : "9",
+        "name" : "Denise McGoyal",
+        "description" : "Specializing in video sharing applicaions.  MObile apps too.",
+        "price" : 100,
+        "image" : "assets/pic/dmcgoyal.jpg",
+        "experience" : 5,
+        "blazeds" : false,
+        "mobile" : true,
+        "video" : true,
+        "highlight1" : "Video Applications",
+		"highlight2" : "Mobile Applications"
+    },
+
+    { "productId" : "10",
+        "name" : "Daniel Willhelm",
+        "description" : "I'm into mobile apps, video apps and social apps.",
+        "price" : 70,
+        "image" : "assets/pic/dwillhelm.jpg",
+        "experience" : 90,
+        "blazeds" : false,
+        "mobile" : true,
+        "video" : true,
+        "highlight1" : "Video Applications",
+		"highlight2" : "Mobile Applications"
+    },
+
+    { "productId" : "11",
+        "name" : "Eunice Sunderland",
+        "description" : "My recent focus is on mobile apps, but I have considerable experience in video apps as well.",
+        "price" : 150,
+        "image" : "assets/pic/esunderland.jpg",
+        "experience" : 30,
+        "blazeds" : false,
+        "mobile" : true,
+        "video" : true,
+        "highlight1" : "Video Applications",
+		"highlight2" : "Mobile Applications"
+    },
+
+    { "productId" : "12",
+        "name" : "Jane Proctor",
+        "description" : "I've been developing mobile companion apps for the past 3 years.",
+        "price" : 75,
+        "image" : "assets/pic/jproctor.jpg",
+        "experience" : 6,
+        "blazeds" : false,
+        "mobile" : true,
+        "video" : true,
+        "highlight1" : "Video Applications",
+		"highlight2" : "Mobile Applications"
+    },
+
+    { "productId" : "13",
+        "name" : "Mark Fields",
+        "description" : "Video is my favorite thing.  Mobile is also a favorite.",
+        "price" : 60,
+        "image" : "assets/pic/mfields.jpg",
+        "experience" : 70,
+        "blazeds" : false,
+        "mobile" : true,
+        "video" : true,
+        "highlight1" : "Video Applications",
+		"highlight2" : "Mobile Applications"
+    },
+
+    { "productId" : "14",
+        "name" : "Patricia Dempsey",
+        "description" : "I've been cranking out mobile apps for the past 6 years.  A few have involved video as well.",
+        "price" : 120,
+        "image" : "assets/pic/pdempsey.jpg",
+        "experience" : 7,
+        "blazeds" : false,
+        "mobile" : true,
+        "video" : true,
+        "highlight1" : "Video Applications",
+		"highlight2" : "Mobile Applications"
+    },
+
+    { "productId" : "15",
+        "name" : "Paul Trandep",
+        "description" : "I've been working on a mobile app that incorporates music.  It just shipped so now I'm looking for the next fun thing to work on.'",
+        "price" : 50,
+        "image" : "assets/pic/ptranep.jpg",
+        "experience" : 6,
+        "blazeds" : false,
+        "mobile" : true,
+        "video" : true,
+        "highlight1" : "Video Applications",
+		"highlight2" : "Mobile Applications"
+    },
+
+    { "productId" : "16",
+        "name" : "Roscoe Crawley",
+        "description" : "My main specialty is in BlazeDS connected to Flex.",
+        "price" : 59,
+        "image" : "assets/pic/rcrawley.jpg",
+        "experience" : 9,
+        "blazeds" : true,
+        "mobile" : false,
+        "video" : false,
+        "highlight1" : "BlazeDS",
+		"highlight2" : "Remote Object"
+    },
+
+    { "productId" : "17",
+        "name" : "Renee Dreifus",
+            "description" : "I can do it all: BlazeDS, Mobile, Video.",
+        "price" : 79,
+        "image" : "assets/pic/rdreifus.jpg",
+        "experience" : 90,
+        "blazeds" : true,
+        "mobile" : true,
+        "video" : true,
+        "highlight1" : "Video Applications",
+		"highlight2" : "Mobile Applications"
+    },
+
+    { "productId" : "18",
+        "name" : "Tina Wong",
+        "description" : "I've been developing Flex apps since 1.5.  Most of my recent work has been on mobile apps.",
+        "price" : 109,
+        "image" : "assets/pic/twong.jpg",
+        "experience" : 9,
+        "blazeds" : false,
+        "mobile" : true,
+        "video" : true,
+        "highlight1" : "Video Applications",
+		"highlight2" : "Mobile Applications"
+    
+];


Re: [14/14] git commit: [flex-asjs] [refs/heads/develop] - FlexJSStore works well enough to try to make it work on JS. Drag/Drop, ToolTips, States with Transitions are functional

Posted by OmPrakash Muppirala <bi...@gmail.com>.
Wow, this is a fantastic milestone!

On Fri, Oct 31, 2014 at 3:08 PM, <ah...@apache.org> wrote:

> FlexJSStore works well enough to try to make it work on JS.  Drag/Drop,
> ToolTips, States with Transitions are functional
>
>
> Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
> Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/f2a370c6
> Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/f2a370c6
> Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/f2a370c6
>