add mx and spark versions of FlexStore
Project: http://git-wip-us.apache.org/repos/asf/flex-examples/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-examples/commit/c652cfba Tree: http://git-wip-us.apache.org/repos/asf/flex-examples/tree/c652cfba Diff: http://git-wip-us.apache.org/repos/asf/flex-examples/diff/c652cfba Branch: refs/heads/develop Commit: c652cfba6bb46f1ec5c1fc0a6914eb88fc64f728 Parents: a3a9031 Author: Alex Harui <aha...@apache.org> Authored: Thu Aug 28 14:04:46 2014 -0700 Committer: Alex Harui <aha...@apache.org> Committed: Thu Aug 28 14:04:46 2014 -0700 ---------------------------------------------------------------------- FlexStore/mx/src/FlexStore.mxml | 131 +++++ FlexStore/mx/src/HomeView.mxml | 169 ++++++ FlexStore/mx/src/ProductsView.mxml | 117 ++++ FlexStore/mx/src/SupportView.mxml | 127 +++++ FlexStore/mx/src/assets/akotter.jpg | Bin 0 -> 19395 bytes FlexStore/mx/src/assets/bcrater.jpg | Bin 0 -> 22670 bytes FlexStore/mx/src/assets/beige_background.jpg | Bin 0 -> 12533 bytes FlexStore/mx/src/assets/beige_dotted_map.png | Bin 0 -> 216598 bytes FlexStore/mx/src/assets/blue_background.jpg | Bin 0 -> 12868 bytes FlexStore/mx/src/assets/blue_dotted_map.png | Bin 0 -> 217088 bytes FlexStore/mx/src/assets/grip.png | Bin 0 -> 19836 bytes FlexStore/mx/src/assets/icon_cart_empty.png | Bin 0 -> 29594 bytes FlexStore/mx/src/assets/icon_cart_full.png | Bin 0 -> 31388 bytes FlexStore/mx/src/assets/icon_compare.png | Bin 0 -> 30218 bytes FlexStore/mx/src/assets/icon_details.png | Bin 0 -> 29527 bytes FlexStore/mx/src/assets/icon_magnifier.png | Bin 0 -> 30454 bytes FlexStore/mx/src/assets/icon_tiles.png | Bin 0 -> 27988 bytes FlexStore/mx/src/assets/jproctor.jpg | Bin 0 -> 21684 bytes FlexStore/mx/src/assets/logo_blue.png | Bin 0 -> 33427 bytes FlexStore/mx/src/assets/logo_orange.png | Bin 0 -> 33897 bytes FlexStore/mx/src/assets/pic/abrilliam.jpg | Bin 0 -> 18903 bytes FlexStore/mx/src/assets/pic/akotter.jpg | Bin 0 -> 19395 bytes FlexStore/mx/src/assets/pic/bcrater.jpg | Bin 0 -> 22670 bytes FlexStore/mx/src/assets/pic/bleporte.jpg | Bin 0 -> 23363 bytes FlexStore/mx/src/assets/pic/bvanbrocklin.jpg | Bin 0 -> 18066 bytes FlexStore/mx/src/assets/pic/ccarpenter.jpg | Bin 0 -> 19219 bytes FlexStore/mx/src/assets/pic/clampberto.jpg | Bin 0 -> 18611 bytes FlexStore/mx/src/assets/pic/davenon.jpg | Bin 0 -> 20028 bytes FlexStore/mx/src/assets/pic/dmcgoyal.jpg | Bin 0 -> 19395 bytes FlexStore/mx/src/assets/pic/dwillhelm.jpg | Bin 0 -> 22670 bytes FlexStore/mx/src/assets/pic/esunderland.jpg | Bin 0 -> 23363 bytes FlexStore/mx/src/assets/pic/jproctor.jpg | Bin 0 -> 21684 bytes FlexStore/mx/src/assets/pic/mfields.jpg | Bin 0 -> 18066 bytes FlexStore/mx/src/assets/pic/pdempsey.jpg | Bin 0 -> 18611 bytes FlexStore/mx/src/assets/pic/ptranep.jpg | Bin 0 -> 19627 bytes FlexStore/mx/src/assets/pic/rcrawley.jpg | Bin 0 -> 23692 bytes FlexStore/mx/src/assets/pic/rdreifus.jpg | Bin 0 -> 20028 bytes FlexStore/mx/src/assets/pic/twong.jpg | Bin 0 -> 19395 bytes FlexStore/mx/src/assets/support_map.png | Bin 0 -> 172293 bytes FlexStore/mx/src/assets/support_mapmarker_a.png | Bin 0 -> 834 bytes FlexStore/mx/src/assets/support_mapmarker_b.png | Bin 0 -> 822 bytes FlexStore/mx/src/assets/support_mapmarker_c.png | Bin 0 -> 817 bytes .../mx/src/assets/support_mapmarker_plus.png | Bin 0 -> 827 bytes FlexStore/mx/src/assets/trashcan.png | Bin 0 -> 27189 bytes FlexStore/mx/src/beige.css | 166 ++++++ FlexStore/mx/src/blue.css | 165 ++++++ FlexStore/mx/src/data/catalog.xml | 256 +++++++++ FlexStore/mx/src/main.css | 83 +++ .../src/productsView/CatalogTitleButtons.mxml | 62 +++ FlexStore/mx/src/productsView/Grip.mxml | 35 ++ FlexStore/mx/src/productsView/ProductCart.mxml | 115 ++++ .../src/productsView/ProductCatalogPanel.mxml | 534 +++++++++++++++++++ .../productsView/ProductCatalogThumbnail.mxml | 226 ++++++++ .../mx/src/productsView/ProductDetails.mxml | 97 ++++ .../mx/src/productsView/ProductFilterPanel.mxml | 192 +++++++ FlexStore/mx/src/productsView/ProductList.mxml | 210 ++++++++ .../mx/src/productsView/ProductListItem.mxml | 85 +++ .../mx/src/productsView/ProductSupport.mxml | 84 +++ .../samples/flexstore/ButtonBarButtonSkin.as | 298 +++++++++++ FlexStore/mx/src/samples/flexstore/Product.as | 78 +++ .../mx/src/samples/flexstore/ProductFilter.as | 56 ++ .../src/samples/flexstore/ProductFilterEvent.as | 39 ++ .../src/samples/flexstore/ProductListEvent.as | 42 ++ .../src/samples/flexstore/ProductThumbEvent.as | 45 ++ FlexStore/spark/src/FlexStore.mxml | 280 ++++++++++ FlexStore/spark/src/HomeView.mxml | 171 ++++++ FlexStore/spark/src/ProductsView.mxml | 116 ++++ FlexStore/spark/src/SupportView.mxml | 144 +++++ FlexStore/spark/src/assets/akotter.jpg | Bin 0 -> 19395 bytes FlexStore/spark/src/assets/bcrater.jpg | Bin 0 -> 22670 bytes FlexStore/spark/src/assets/beige_background.jpg | Bin 0 -> 12533 bytes FlexStore/spark/src/assets/beige_dotted_map.png | Bin 0 -> 216598 bytes FlexStore/spark/src/assets/blue_background.jpg | Bin 0 -> 12868 bytes FlexStore/spark/src/assets/blue_dotted_map.png | Bin 0 -> 217088 bytes FlexStore/spark/src/assets/grip.png | Bin 0 -> 19836 bytes FlexStore/spark/src/assets/icon_cart_empty.png | Bin 0 -> 29594 bytes FlexStore/spark/src/assets/icon_cart_full.png | Bin 0 -> 31388 bytes FlexStore/spark/src/assets/icon_compare.png | Bin 0 -> 30218 bytes FlexStore/spark/src/assets/icon_details.png | Bin 0 -> 29527 bytes FlexStore/spark/src/assets/icon_magnifier.png | Bin 0 -> 30454 bytes FlexStore/spark/src/assets/icon_tiles.png | Bin 0 -> 27988 bytes FlexStore/spark/src/assets/jproctor.jpg | Bin 0 -> 21684 bytes FlexStore/spark/src/assets/logo_blue.png | Bin 0 -> 33427 bytes FlexStore/spark/src/assets/logo_orange.png | Bin 0 -> 33897 bytes FlexStore/spark/src/assets/pic/abrilliam.jpg | Bin 0 -> 18903 bytes FlexStore/spark/src/assets/pic/akotter.jpg | Bin 0 -> 19395 bytes FlexStore/spark/src/assets/pic/bcrater.jpg | Bin 0 -> 22670 bytes FlexStore/spark/src/assets/pic/bleporte.jpg | Bin 0 -> 23363 bytes FlexStore/spark/src/assets/pic/bvanbrocklin.jpg | Bin 0 -> 18066 bytes FlexStore/spark/src/assets/pic/ccarpenter.jpg | Bin 0 -> 19219 bytes FlexStore/spark/src/assets/pic/clampberto.jpg | Bin 0 -> 18611 bytes FlexStore/spark/src/assets/pic/davenon.jpg | Bin 0 -> 20028 bytes FlexStore/spark/src/assets/pic/dmcgoyal.jpg | Bin 0 -> 19395 bytes FlexStore/spark/src/assets/pic/dwillhelm.jpg | Bin 0 -> 22670 bytes FlexStore/spark/src/assets/pic/esunderland.jpg | Bin 0 -> 23363 bytes FlexStore/spark/src/assets/pic/jproctor.jpg | Bin 0 -> 21684 bytes FlexStore/spark/src/assets/pic/mfields.jpg | Bin 0 -> 18066 bytes FlexStore/spark/src/assets/pic/pdempsey.jpg | Bin 0 -> 18611 bytes FlexStore/spark/src/assets/pic/ptranep.jpg | Bin 0 -> 19627 bytes FlexStore/spark/src/assets/pic/rcrawley.jpg | Bin 0 -> 23692 bytes FlexStore/spark/src/assets/pic/rdreifus.jpg | Bin 0 -> 20028 bytes FlexStore/spark/src/assets/pic/twong.jpg | Bin 0 -> 19395 bytes FlexStore/spark/src/assets/support_map.png | Bin 0 -> 172293 bytes .../spark/src/assets/support_mapmarker_a.png | Bin 0 -> 834 bytes .../spark/src/assets/support_mapmarker_b.png | Bin 0 -> 822 bytes .../spark/src/assets/support_mapmarker_c.png | Bin 0 -> 817 bytes .../spark/src/assets/support_mapmarker_plus.png | Bin 0 -> 827 bytes FlexStore/spark/src/assets/trashcan.png | Bin 0 -> 27189 bytes FlexStore/spark/src/beige.css | 168 ++++++ FlexStore/spark/src/blue.css | 165 ++++++ FlexStore/spark/src/data/catalog.xml | 256 +++++++++ FlexStore/spark/src/main.css | 83 +++ .../src/productsView/CatalogTitleButtons.mxml | 64 +++ FlexStore/spark/src/productsView/Grip.mxml | 36 ++ .../spark/src/productsView/ProductCart.mxml | 118 ++++ .../src/productsView/ProductCatalogPanel.mxml | 513 ++++++++++++++++++ .../productsView/ProductCatalogPanelSkin.mxml | 286 ++++++++++ .../productsView/ProductCatalogThumbnail.mxml | 195 +++++++ .../spark/src/productsView/ProductDetails.mxml | 121 +++++ .../src/productsView/ProductFilterPanel.mxml | 200 +++++++ .../spark/src/productsView/ProductList.mxml | 214 ++++++++ .../spark/src/productsView/ProductListItem.mxml | 90 ++++ .../spark/src/productsView/ProductSupport.mxml | 88 +++ .../samples/flexstore/ButtonBarButtonSkin.as | 298 +++++++++++ .../spark/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 ++ 129 files changed, 7278 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/FlexStore.mxml ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/FlexStore.mxml b/FlexStore/mx/src/FlexStore.mxml new file mode 100644 index 0000000..db66b31 --- /dev/null +++ b/FlexStore/mx/src/FlexStore.mxml @@ -0,0 +1,131 @@ +<?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. + +--> +<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" + layout="absolute" minWidth="990" minHeight="550" + preinitialize="loadStyle()" + creationComplete="startService()" + pageTitle="FlexStore"> + + <mx:Script> + <![CDATA[ + import mx.collections.IViewCursor; + import mx.collections.ArrayCollection; + import samples.flexstore.Product; + import mx.rpc.events.ResultEvent; + import mx.events.StyleEvent; + import mx.styles.StyleManager; + + [Bindable] + private var catalog:ArrayCollection; + + 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 + { + var eventDispatcher:IEventDispatcher = + styleManager.loadStyleDeclarations(currentTheme + ".swf"); + eventDispatcher.addEventListener(StyleEvent.COMPLETE, completeHandler); + } + + private function completeHandler(event:StyleEvent):void + { + image.source = acb.getStyle("storeLogo"); + homeView.updateMapImage(); + super.initialized = true; + } + + private function productServiceResultHandler(event:ResultEvent):void + { + //HTTPService returns an ArrayCollection for nested arrays + var products:ArrayCollection = event.result.catalog.product; + var temp:ArrayCollection = new ArrayCollection(); + var cursor:IViewCursor = products.createCursor(); + while (!cursor.afterLast) + { + var product:Product = new Product(); + product.fill(cursor.current); + temp.addItem(product); + cursor.moveNext(); + } + catalog = temp; + } + + override public function set initialized(value:Boolean):void + { + // Hold off until the Runtime CSS SWF is done loading. + } + ]]> + </mx:Script> + + <mx:Style source="main.css"/> + + <mx:HTTPService id="productService" url="data/catalog.xml" + result="productServiceResultHandler(event)"/> + + <mx:VBox width="990" paddingLeft="0" paddingRight="0" horizontalCenter="0" top="12"> + + <mx:ApplicationControlBar id="acb" width="100%" styleName="storeControlBar"> + <mx:Image id="image" + click="toggleTheme()" + toolTip="Change Theme"/> + <mx:ToggleButtonBar + height="100%" + dataProvider="{storeViews}" + styleName="storeButtonBar"/> + </mx:ApplicationControlBar> + + <!-- using a creationPolicy of "auto" or "queued" has a bug at time of writing + that prevents initial states from applying styles correctly. + plus the instantiation of the cart view can cause a performance + hiccup which we might prefer at startup --> + <mx:ViewStack id="storeViews" width="100%" height="550" creationPolicy="all"> + <HomeView id="homeView" label="Home" + showEffect="WipeDown" hideEffect="WipeUp" + /> + <ProductsView id="pView" label="Products" catalog="{catalog}" + showEffect="WipeDown" hideEffect="WipeUp" + /> + <SupportView id="supportView" label="Support" + showEffect="WipeDown" hideEffect="WipeUp" + /> + </mx:ViewStack> + + </mx:VBox> + +</mx:Application> http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/HomeView.mxml ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/HomeView.mxml b/FlexStore/mx/src/HomeView.mxml new file mode 100644 index 0000000..601daa5 --- /dev/null +++ b/FlexStore/mx/src/HomeView.mxml @@ -0,0 +1,169 @@ +<?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. +--> +<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" width="990" height="550"> + <mx:Script> + <![CDATA[ + import mx.controls.Alert; + + public function updateMapImage():void + { + mapImage.source = mapCanvas.getStyle('dottedMap'); + } + ]]> + </mx:Script> + <mx:HBox width="100%" height="100%" y="0" x="0" styleName="colorPanel"> + + <mx:VBox width="230" height="100%"> + <mx:Canvas width="100%" height="100%"> + + <mx:Canvas left="10" top="10" width="100%" height="60" backgroundColor="#ebebe9" styleName="homeSection"> + <mx:Label left="10" top="10" text="Search Developers" height="22" styleName="sectionHeader"/> + <mx:Button left="168" top="30" label="Go" width="47" height="20" styleName="glass" click="Alert.show('This feature is not implemented in this sample', 'Go')"/> + <mx:TextInput left="10" top="30" height="20" width="150"/> + </mx:Canvas> + + <mx:Canvas left="10" top="78" width="100%" height="280" backgroundColor="#ffffff" styleName="homeSection"> + <mx:VBox left="10" top="10" width="100%" height="100%" verticalGap="0"> + <mx:Label text="Flex Experts That Can Help You" styleName="sectionHeader"/> + <mx:HRule height="5" width="197"/> + <mx:Label text="General" styleName="homeProgramHeader"/> + <mx:Label text="BlazeDS Experts" fontSize="9"/> + <mx:Spacer height="8" width="100%"/> + <mx:Label text="Server-side" styleName="homeProgramHeader"/> + <mx:Label text="Java, PHP Developers" fontSize="9"/> + <mx:Spacer height="8" width="100%"/> + <mx:Label text="Mobile" styleName="homeProgramHeader"/> + <mx:Label text="Android, IOS and more" fontSize="9"/> + <mx:Spacer height="8" width="100%"/> + <mx:Label text="Students" styleName="homeProgramHeader"/> + <mx:Label text="Free Assistance" fontSize="9"/> + <mx:Spacer height="8" width="100%"/> + </mx:VBox> + </mx:Canvas> + + <mx:Canvas left="10" top="366" width="100%" height="174" styleName="homeSection" backgroundColor="#ebebe9"> + <mx:VBox left="10" top="10" width="100%" height="100%" verticalGap="0"> + + <mx:Label text="Manage My Account" styleName="sectionHeader"/> + + <mx:Label text="Phone Number"/> + + <mx:HBox width="100%" height="25" horizontalAlign="left" verticalAlign="middle"> + <mx:TextInput height="20" width="40"/> + <mx:HRule width="8" height="25"/> + <mx:TextInput height="20" width="40"/> + <mx:HRule width="8" height="25"/> + <mx:TextInput height="20" width="40"/> + </mx:HBox> + + <mx:Label text="Password"/> + <mx:TextInput height="20"/> + <mx:Spacer height="8" width="100%"/> + + <mx:CheckBox label="Remember my phone number" selected="true"/> + <mx:Spacer height="8" width="100%"/> + + <mx:Button label="Login" styleName="glass" height="20" width="55" click="Alert.show('This feature is not implemented in this sample', 'Login')"/> + + </mx:VBox> + </mx:Canvas> + + </mx:Canvas> + + </mx:VBox> + + <mx:VBox width="750" height="100%"> + <mx:Canvas width="100%" height="100%"> + + <!-- can't use binding to set the mapImage source because the style isn't available early enough --> + <mx:Canvas id="mapCanvas" width="100%" height="35%" styleName="homeMap" right="10" top="10"> + <mx:Image id="mapImage" width="487" scaleContent="false" height="100%" alpha="1.0" left="10" top="10"/> + <mx:Label y="110" text="US Developers . Flex . FlexJS" width="95%" height="40" horizontalCenter="0" fontWeight="bold" fontSize="22" color="#ffffff" fontFamily="Arial" textAlign="center"/> + <mx:Label text="Learn More >>" width="95" bottom="10" right="10" fontSize="12" fontFamily="Arial"/> + <mx:Label text="$60/hr" fontSize="20" right="10" top="10" color="#ffffff" fontWeight="bold" fontFamily="Arial"/> + <mx:Label text="Rates as low as" x="551" top="16" fontSize="12"/> + </mx:Canvas> + + <mx:Canvas width="100%" height="330" backgroundColor="#ffffff" borderStyle="solid" cornerRadius="4" bottom="10" right="10"> + + <mx:Label left="10" top="10" text="Featured Developers" width="173" height="25" styleName="sectionHeader"/> + + <mx:HBox left="0" top="43" width="100%" height="100%"> + + <mx:VBox width="33%" height="100%"> + + <mx:Canvas width="100%"> + <mx:Image source="@Embed('/assets/akotter.jpg')" horizontalCenter="0" verticalCenter="0"/> + </mx:Canvas> + + <mx:Canvas width="100%"> + <mx:Text text="Annette Kotter" horizontalCenter="0" id="feat_prod_1" fontWeight="bold" fontSize="12"/> + </mx:Canvas> + + </mx:VBox> + + <mx:VBox width="33%" height="100%"> + + <mx:Canvas width="100%"> + <mx:Image horizontalCenter="0" verticalCenter="0" source="@Embed('/assets/bcrater.jpg')"/> + </mx:Canvas> + + <mx:Canvas width="100%"> + <mx:Text text="Ben Crater" horizontalCenter="0" id="feat_prod_2" fontWeight="bold" fontSize="12"/> + </mx:Canvas> + + </mx:VBox> + + <mx:VBox width="33%" height="100%"> + + <mx:Canvas width="100%"> + <mx:Image horizontalCenter="0" verticalCenter="0" source="@Embed('/assets/jproctor.jpg')"/> + </mx:Canvas> + + <mx:Canvas width="100%"> + <mx:Text text="Jane Proctor" horizontalCenter="0" id="feat_prod_3" fontWeight="bold" fontSize="12"/> + </mx:Canvas> + + </mx:VBox> + + </mx:HBox> + + </mx:Canvas> + + </mx:Canvas> + + </mx:VBox> + + </mx:HBox> + +</mx:Canvas> http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/ProductsView.mxml ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/ProductsView.mxml b/FlexStore/mx/src/ProductsView.mxml new file mode 100644 index 0000000..0535732 --- /dev/null +++ b/FlexStore/mx/src/ProductsView.mxml @@ -0,0 +1,117 @@ +<?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 --> +<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" + xmlns:productsView="productsView.*" + width="990" height="550" + currentState="showFilter"> + + <mx:Script> + <![CDATA[ + import mx.collections.ArrayCollection; + import samples.flexstore.Product; + + private var _catalog:ArrayCollection; + + [Bindable] + public function get catalog():ArrayCollection + { + return _catalog; + } + + public function set catalog(c:ArrayCollection):void + { + _catalog = c; + if (filterPanel != null) + { + filterPanel.filter.count = c.length; + } + } + + 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); + } + + + ]]> + </mx:Script> + + <mx:HBox + styleName="colorPanel" + dropShadowEnabled="true" + height="100%" width="100%" + verticalScrollPolicy="off" + horizontalGap="0"> + + <productsView:Grip id="filterGrip" gripIcon="@Embed('/assets/icon_magnifier.png')" + gripTip="Show filter panel" click="currentState = 'showFilter'"/> + + <productsView:ProductFilterPanel id="filterPanel" width="265" height="100%" + filter="catalogPanel.filter(event.filter, event.live)" + compare="catalogPanel.compare(filterPanel.productList.getProducts())" + creationComplete="if (catalog) filterPanel.filter.count = catalog.length"/> + + <mx:Spacer width="100%"/> + + <productsView:ProductCart id="cartPanel" width="265" height="100%"/> + + <productsView:Grip id="cartGrip" gripIcon="@Embed('/assets/icon_cart_empty.png')" + gripTip="Show cart" click="currentState = 'showCart'"/> + + </mx:HBox> + + <productsView:ProductCatalogPanel id="catalogPanel" y="4" width="685" height="540" + catalog="{catalog}" + compare="addToCompare(event.product)" + purchase="addToCart(event.product)" + cartCount="{cartPanel.numProducts}"/> + + <mx:states> + <mx:State name="showFilter"> + <mx:SetStyle target="{catalogPanel}" name="left" value="285"/> + </mx:State> + <mx:State name="showCart"> + <mx:SetStyle target="{catalogPanel}" name="right" value="285"/> + </mx:State> + </mx:states> + + <!-- + make sure to use transitions here instead of applying a Move effect + to the Panel itself which will result in odd behavior + --> + <mx:transitions> + <mx:Transition fromState="*" toState="*"> + <mx:Move target="{catalogPanel}" /> + </mx:Transition> + </mx:transitions> + +</mx:Canvas> http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/SupportView.mxml ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/SupportView.mxml b/FlexStore/mx/src/SupportView.mxml new file mode 100644 index 0000000..1f18454 --- /dev/null +++ b/FlexStore/mx/src/SupportView.mxml @@ -0,0 +1,127 @@ +<?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. +--> +<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" alpha="1.0" + width="990" height="550"> + + <mx:Script> + <![CDATA[ + import mx.controls.Alert; + ]]> + </mx:Script> + + <mx:Model id="locationsModel"> + <root> + <location image="assets/support_mapmarker_a.png" name="601 Townsend St" /> + <location image="assets/support_mapmarker_b.png" name="Location B" /> + <location image="assets/support_mapmarker_c.png" name="Location C" /> + </root> + </mx:Model> + + <mx:ArrayCollection id="locations" source="{locationsModel.root.location}"/> + + <mx:HBox x="0" y="0" width="100%" height="100%" styleName="colorPanel"> + + <mx:VBox width="32%" height="100%"> + <mx:Canvas width="100%" height="60%"> + + <mx:Label y="10" text="Check Location" styleName="sectionHeader" x="20"/> + + <mx:Form width="95%" height="125" y="64" verticalGap="8" paddingBottom="0" paddingRight="0" paddingTop="5" horizontalCenter="0"> + + <mx:FormItem label="Address:" width="100%"> + <mx:TextInput id="address" width="90%"/> + </mx:FormItem> + + <mx:FormItem label="City:" width="100%"> + <mx:TextInput id="city" width="60%"/> + </mx:FormItem> + + <mx:FormItem label="State:" width="100%"> + <mx:ComboBox id="state" width="50%"> + <mx:dataProvider> + <mx:Array> + <mx:String>California</mx:String> + <mx:String>Nevada</mx:String> + <mx:String>Oregon</mx:String> + <mx:String>Washington</mx:String> + </mx:Array> + </mx:dataProvider> + </mx:ComboBox> + </mx:FormItem> + + <mx:FormItem label="ZIP Code:" width="100%"> + <mx:TextInput id="zip" width="30%"/> + </mx:FormItem> + + </mx:Form> + + <mx:Label y="38" text="Option1: Enter Address" horizontalCenter="0" styleName="instructions"/> + + <mx:Button y="197" label="Locate" click="Alert.show('This feature is not implemented in this sample', 'Locate')" horizontalCenter="0"/> + + <mx:HBox y="227" width="80%" height="20" horizontalAlign="center" verticalAlign="middle" horizontalCenter="0"> + <mx:HRule width="60" strokeColor="#000000"/> + <mx:Label text="OR"/> + <mx:HRule width="60" strokeColor="#000000"/> + </mx:HBox> + + <mx:Label y="255" text="Option 2: Drag this marker into the map" horizontalCenter="0" styleName="instructions"/> + + <mx:Image y="280" horizontalCenter="0" source="@Embed('/assets/support_mapmarker_plus.png')"/> + + <mx:HRule y="315" horizontalCenter="0" width="200" alpha="0.6"/> + + </mx:Canvas> + + <mx:Canvas width="100%" height="40%"> + <mx:VBox width="80%" height="90%" horizontalCenter="0" top="0"> + <mx:Label text="Location" styleName="instructions"/> + <mx:VBox width="100%" verticalGap="0"> + <mx:Repeater id="locationRepeater" dataProvider="{locations}"> + <mx:HBox styleName="listItem" width="100%"> + <mx:Image width="21" height="25" source="{locationRepeater.currentItem.image}" /> + <mx:Label width="100%" text="{locationRepeater.currentItem.name}" /> + </mx:HBox> + </mx:Repeater> + </mx:VBox> + </mx:VBox> + </mx:Canvas> + + </mx:VBox> + + <mx:Canvas width="68%" height="100%"> + <mx:Image source="@Embed('/assets/support_map.png')" scaleContent="true" left="2" right="2" top="2" bottom="2"/> + </mx:Canvas> + + </mx:HBox> + +</mx:Canvas> http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/akotter.jpg ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/akotter.jpg b/FlexStore/mx/src/assets/akotter.jpg new file mode 100644 index 0000000..1124b71 Binary files /dev/null and b/FlexStore/mx/src/assets/akotter.jpg differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/bcrater.jpg ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/bcrater.jpg b/FlexStore/mx/src/assets/bcrater.jpg new file mode 100644 index 0000000..fd15d59 Binary files /dev/null and b/FlexStore/mx/src/assets/bcrater.jpg differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/beige_background.jpg ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/beige_background.jpg b/FlexStore/mx/src/assets/beige_background.jpg new file mode 100644 index 0000000..8f034ba Binary files /dev/null and b/FlexStore/mx/src/assets/beige_background.jpg differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/beige_dotted_map.png ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/beige_dotted_map.png b/FlexStore/mx/src/assets/beige_dotted_map.png new file mode 100644 index 0000000..e88d9ef Binary files /dev/null and b/FlexStore/mx/src/assets/beige_dotted_map.png differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/blue_background.jpg ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/blue_background.jpg b/FlexStore/mx/src/assets/blue_background.jpg new file mode 100644 index 0000000..361ce0e Binary files /dev/null and b/FlexStore/mx/src/assets/blue_background.jpg differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/blue_dotted_map.png ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/blue_dotted_map.png b/FlexStore/mx/src/assets/blue_dotted_map.png new file mode 100644 index 0000000..5fa6714 Binary files /dev/null and b/FlexStore/mx/src/assets/blue_dotted_map.png differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/grip.png ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/grip.png b/FlexStore/mx/src/assets/grip.png new file mode 100644 index 0000000..64ee835 Binary files /dev/null and b/FlexStore/mx/src/assets/grip.png differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/icon_cart_empty.png ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/icon_cart_empty.png b/FlexStore/mx/src/assets/icon_cart_empty.png new file mode 100644 index 0000000..562064b Binary files /dev/null and b/FlexStore/mx/src/assets/icon_cart_empty.png differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/icon_cart_full.png ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/icon_cart_full.png b/FlexStore/mx/src/assets/icon_cart_full.png new file mode 100644 index 0000000..007b08c Binary files /dev/null and b/FlexStore/mx/src/assets/icon_cart_full.png differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/icon_compare.png ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/icon_compare.png b/FlexStore/mx/src/assets/icon_compare.png new file mode 100644 index 0000000..efc3ea1 Binary files /dev/null and b/FlexStore/mx/src/assets/icon_compare.png differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/icon_details.png ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/icon_details.png b/FlexStore/mx/src/assets/icon_details.png new file mode 100644 index 0000000..2d2bfb9 Binary files /dev/null and b/FlexStore/mx/src/assets/icon_details.png differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/icon_magnifier.png ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/icon_magnifier.png b/FlexStore/mx/src/assets/icon_magnifier.png new file mode 100644 index 0000000..939f814 Binary files /dev/null and b/FlexStore/mx/src/assets/icon_magnifier.png differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/icon_tiles.png ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/icon_tiles.png b/FlexStore/mx/src/assets/icon_tiles.png new file mode 100644 index 0000000..dbf75b6 Binary files /dev/null and b/FlexStore/mx/src/assets/icon_tiles.png differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/jproctor.jpg ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/jproctor.jpg b/FlexStore/mx/src/assets/jproctor.jpg new file mode 100644 index 0000000..1111787 Binary files /dev/null and b/FlexStore/mx/src/assets/jproctor.jpg differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/logo_blue.png ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/logo_blue.png b/FlexStore/mx/src/assets/logo_blue.png new file mode 100644 index 0000000..132b894 Binary files /dev/null and b/FlexStore/mx/src/assets/logo_blue.png differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/logo_orange.png ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/logo_orange.png b/FlexStore/mx/src/assets/logo_orange.png new file mode 100644 index 0000000..c776c8c Binary files /dev/null and b/FlexStore/mx/src/assets/logo_orange.png differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/pic/abrilliam.jpg ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/pic/abrilliam.jpg b/FlexStore/mx/src/assets/pic/abrilliam.jpg new file mode 100644 index 0000000..6954858 Binary files /dev/null and b/FlexStore/mx/src/assets/pic/abrilliam.jpg differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/pic/akotter.jpg ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/pic/akotter.jpg b/FlexStore/mx/src/assets/pic/akotter.jpg new file mode 100644 index 0000000..1124b71 Binary files /dev/null and b/FlexStore/mx/src/assets/pic/akotter.jpg differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/pic/bcrater.jpg ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/pic/bcrater.jpg b/FlexStore/mx/src/assets/pic/bcrater.jpg new file mode 100644 index 0000000..fd15d59 Binary files /dev/null and b/FlexStore/mx/src/assets/pic/bcrater.jpg differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/pic/bleporte.jpg ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/pic/bleporte.jpg b/FlexStore/mx/src/assets/pic/bleporte.jpg new file mode 100644 index 0000000..c4769e8 Binary files /dev/null and b/FlexStore/mx/src/assets/pic/bleporte.jpg differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/pic/bvanbrocklin.jpg ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/pic/bvanbrocklin.jpg b/FlexStore/mx/src/assets/pic/bvanbrocklin.jpg new file mode 100644 index 0000000..489fa2e Binary files /dev/null and b/FlexStore/mx/src/assets/pic/bvanbrocklin.jpg differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/pic/ccarpenter.jpg ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/pic/ccarpenter.jpg b/FlexStore/mx/src/assets/pic/ccarpenter.jpg new file mode 100644 index 0000000..c1dc3d8 Binary files /dev/null and b/FlexStore/mx/src/assets/pic/ccarpenter.jpg differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/pic/clampberto.jpg ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/pic/clampberto.jpg b/FlexStore/mx/src/assets/pic/clampberto.jpg new file mode 100644 index 0000000..9deacd2 Binary files /dev/null and b/FlexStore/mx/src/assets/pic/clampberto.jpg differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/pic/davenon.jpg ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/pic/davenon.jpg b/FlexStore/mx/src/assets/pic/davenon.jpg new file mode 100644 index 0000000..6a2a142 Binary files /dev/null and b/FlexStore/mx/src/assets/pic/davenon.jpg differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/pic/dmcgoyal.jpg ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/pic/dmcgoyal.jpg b/FlexStore/mx/src/assets/pic/dmcgoyal.jpg new file mode 100644 index 0000000..1124b71 Binary files /dev/null and b/FlexStore/mx/src/assets/pic/dmcgoyal.jpg differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/pic/dwillhelm.jpg ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/pic/dwillhelm.jpg b/FlexStore/mx/src/assets/pic/dwillhelm.jpg new file mode 100644 index 0000000..fd15d59 Binary files /dev/null and b/FlexStore/mx/src/assets/pic/dwillhelm.jpg differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/pic/esunderland.jpg ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/pic/esunderland.jpg b/FlexStore/mx/src/assets/pic/esunderland.jpg new file mode 100644 index 0000000..c4769e8 Binary files /dev/null and b/FlexStore/mx/src/assets/pic/esunderland.jpg differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/pic/jproctor.jpg ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/pic/jproctor.jpg b/FlexStore/mx/src/assets/pic/jproctor.jpg new file mode 100644 index 0000000..1111787 Binary files /dev/null and b/FlexStore/mx/src/assets/pic/jproctor.jpg differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/pic/mfields.jpg ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/pic/mfields.jpg b/FlexStore/mx/src/assets/pic/mfields.jpg new file mode 100644 index 0000000..489fa2e Binary files /dev/null and b/FlexStore/mx/src/assets/pic/mfields.jpg differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/pic/pdempsey.jpg ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/pic/pdempsey.jpg b/FlexStore/mx/src/assets/pic/pdempsey.jpg new file mode 100644 index 0000000..9deacd2 Binary files /dev/null and b/FlexStore/mx/src/assets/pic/pdempsey.jpg differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/pic/ptranep.jpg ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/pic/ptranep.jpg b/FlexStore/mx/src/assets/pic/ptranep.jpg new file mode 100644 index 0000000..4b9a03b Binary files /dev/null and b/FlexStore/mx/src/assets/pic/ptranep.jpg differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/pic/rcrawley.jpg ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/pic/rcrawley.jpg b/FlexStore/mx/src/assets/pic/rcrawley.jpg new file mode 100644 index 0000000..9b60320 Binary files /dev/null and b/FlexStore/mx/src/assets/pic/rcrawley.jpg differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/pic/rdreifus.jpg ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/pic/rdreifus.jpg b/FlexStore/mx/src/assets/pic/rdreifus.jpg new file mode 100644 index 0000000..6a2a142 Binary files /dev/null and b/FlexStore/mx/src/assets/pic/rdreifus.jpg differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/pic/twong.jpg ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/pic/twong.jpg b/FlexStore/mx/src/assets/pic/twong.jpg new file mode 100644 index 0000000..1124b71 Binary files /dev/null and b/FlexStore/mx/src/assets/pic/twong.jpg differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/support_map.png ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/support_map.png b/FlexStore/mx/src/assets/support_map.png new file mode 100644 index 0000000..c2f2394 Binary files /dev/null and b/FlexStore/mx/src/assets/support_map.png differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/support_mapmarker_a.png ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/support_mapmarker_a.png b/FlexStore/mx/src/assets/support_mapmarker_a.png new file mode 100644 index 0000000..20c21e1 Binary files /dev/null and b/FlexStore/mx/src/assets/support_mapmarker_a.png differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/support_mapmarker_b.png ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/support_mapmarker_b.png b/FlexStore/mx/src/assets/support_mapmarker_b.png new file mode 100644 index 0000000..069ccd8 Binary files /dev/null and b/FlexStore/mx/src/assets/support_mapmarker_b.png differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/support_mapmarker_c.png ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/support_mapmarker_c.png b/FlexStore/mx/src/assets/support_mapmarker_c.png new file mode 100644 index 0000000..f6b587e Binary files /dev/null and b/FlexStore/mx/src/assets/support_mapmarker_c.png differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/support_mapmarker_plus.png ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/support_mapmarker_plus.png b/FlexStore/mx/src/assets/support_mapmarker_plus.png new file mode 100644 index 0000000..4192088 Binary files /dev/null and b/FlexStore/mx/src/assets/support_mapmarker_plus.png differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/assets/trashcan.png ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/assets/trashcan.png b/FlexStore/mx/src/assets/trashcan.png new file mode 100644 index 0000000..9df75d7 Binary files /dev/null and b/FlexStore/mx/src/assets/trashcan.png differ http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/beige.css ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/beige.css b/FlexStore/mx/src/beige.css new file mode 100644 index 0000000..e93830d --- /dev/null +++ b/FlexStore/mx/src/beige.css @@ -0,0 +1,166 @@ +/* +//////////////////////////////////////////////////////////////////////////////// +// +// 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: #A65904, #E68701; + themeColor: #75B1CE; + rollOverColor: #D6E6EE; + selectionColor: #B8D5E4; +} + +/* +//---------------------------- +// Type selectors +//---------------------------- +*/ +Application +{ + backgroundColor: #EAE6DD; + backgroundImage: Embed("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: Embed("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: Embed("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"; + 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-examples/blob/c652cfba/FlexStore/mx/src/blue.css ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/blue.css b/FlexStore/mx/src/blue.css new file mode 100644 index 0000000..58e98cd --- /dev/null +++ b/FlexStore/mx/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-examples/blob/c652cfba/FlexStore/mx/src/data/catalog.xml ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/data/catalog.xml b/FlexStore/mx/src/data/catalog.xml new file mode 100644 index 0000000..423e177 --- /dev/null +++ b/FlexStore/mx/src/data/catalog.xml @@ -0,0 +1,256 @@ +<?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> + + <product productId="1"> + <name>Andrew Brilliam</name> + <description>15 years experience. 8 years with Flex. Specializing in Text Layout Framework</description> + <price>60.00</price> + <image>assets/pic/abrilliam.jpg</image> + <experience>15</experience> + <blazeds>false</blazeds> + <mobile>false</mobile> + <video>false</video> + <highlight1>Text Layout Framework</highlight1> + <highlight2>Parsley</highlight2> + </product> + + <product productId="2"> + <name>Annette Kotter</name> + <description>Specializing in custom components. PHP servers.</description> + <price>55</price> + <image>assets/pic/akotter.jpg</image> + <experience>3</experience> + <blazeds>true</blazeds> + <mobile>false</mobile> + <video>false</video> + <highlight1>Custom Components</highlight1> + <highlight2>PHP</highlight2> + </product> + + <product productId="3"> + <name>Ben Crater</name> + <description>Specializing in BlazeDS backends.</description> + <price>55</price> + <image>assets/pic/bcrater.jpg</image> + <experience>4</experience> + <blazeds>true</blazeds> + <mobile>false</mobile> + <video>false</video> + <highlight1>BlazeDS</highlight1> + <highlight2>Remote Object</highlight2> + </product> + + <product productId="4"> + <name>Beth Leporte</name> + <description>BlazeDS or PHP servers. Multimedia messagin.</description> + <price>70.00</price> + <image>assets/pic/bleporte.jpg</image> + <experience>6</experience> + <blazeds>true</blazeds> + <mobile>false</mobile> + <video>false</video> + <highlight1>Multimedia messaging</highlight1> + <highlight2>BlazeDS</highlight2> + </product> + + <product productId="5"> + <name>Brad Van Brocklin</name> + <description>Emphasis on mobile application development</description> + <price>80</price> + <image>assets/pic/bvanbrocklin.jpg</image> + <experience>6</experience> + <blazeds>false</blazeds> + <mobile>true</mobile> + <video>false</video> + <highlight1>Mobile</highlight1> + <highlight2>Android</highlight2> + </product> + + <product productId="6"> + <name>Carlos Carpenter</name> + <description>Built many mobile apps and video apps.</description> + <price>80</price> + <image>assets/pic/ccarpenter.jpg</image> + <experience>4</experience> + <blazeds>false</blazeds> + <mobile>true</mobile> + <video>true</video> + <highlight1>Mobile</highlight1> + <highlight2>Video</highlight2> + </product> + + <product productId="7"> + <name>Christine Lampberto</name> + <description>7 years experience building mobile applications.</description> + <price>90</price> + <image>assets/pic/clampberto.jpg</image> + <experience>7</experience> + <blazeds>true</blazeds> + <mobile>true</mobile> + <video>false</video> + <highlight1>BlazeDS</highlight1> + <highlight2>Mobile</highlight2> + </product> + + <product productId="8"> + <name>Dee Dee Avenon</name> + <description>I've been making video apps for over 5 years and mobile apps for about 3 years.</description> + <price>100</price> + <image>assets/pic/davenon.jpg</image> + <experience>10</experience> + <blazeds>false</blazeds> + <mobile>true</mobile> + <video>true</video> + <highlight1>Video Applications</highlight1> + <highlight2>Mobile Applications</highlight2> + </product> + + <product productId="9"> + <name>Denise McGoyal</name> + <description>Specializing in video sharing applicaions. MObile apps too.</description> + <price>100</price> + <image>assets/pic/dmcgoyal.jpg</image> + <experience>5</experience> + <blazeds>false</blazeds> + <mobile>true</mobile> + <video>true</video> + <highlight1>Video Applications</highlight1> + <highlight2>Mobile Applications</highlight2> + </product> + + <product productId="10"> + <name>Daniel Willhelm</name> + <description>I'm into mobile apps, video apps and social apps.</description> + <price>70</price> + <image>assets/pic/dwillhelm.jpg</image> + <experience>90</experience> + <blazeds>false</blazeds> + <mobile>true</mobile> + <video>true</video> + <highlight1>Video Applications</highlight1> + <highlight2>Mobile Applications</highlight2> + </product> + + <product productId="11"> + <name>Eunice Sunderland</name> + <description>My recent focus is on mobile apps, but I have considerable experience in video apps as well.</description> + <price>150</price> + <image>assets/pic/esunderland.jpg</image> + <experience>30</experience> + <blazeds>false</blazeds> + <mobile>true</mobile> + <video>true</video> + <highlight1>Video Applications</highlight1> + <highlight2>Mobile Applications</highlight2> + </product> + + <product productId="12"> + <name>Jane Proctor</name> + <description>I've been developing mobile companion apps for the past 3 years.</description> + <price>75</price> + <image>assets/pic/jproctor.jpg</image> + <experience>6</experience> + <blazeds>false</blazeds> + <mobile>true</mobile> + <video>true</video> + <highlight1>Video Applications</highlight1> + <highlight2>Mobile Applications</highlight2> + </product> + + <product productId="13"> + <name>Mark Fields</name> + <description>Video is my favorite thing. Mobile is also a favorite.</description> + <price>60</price> + <image>assets/pic/mfields.jpg</image> + <experience>70</experience> + <blazeds>false</blazeds> + <mobile>true</mobile> + <video>true</video> + <highlight1>Video Applications</highlight1> + <highlight2>Mobile Applications</highlight2> + </product> + + <product productId="14"> + <name>Patricia Dempsey</name> + <description>I've been cranking out mobile apps for the past 6 years. A few have involved video as well.</description> + <price>120</price> + <image>assets/pic/pdempsey.jpg</image> + <experience>7</experience> + <blazeds>false</blazeds> + <mobile>true</mobile> + <video>true</video> + <highlight1>Video Applications</highlight1> + <highlight2>Mobile Applications</highlight2> + </product> + + <product productId="15"> + <name>Paul Trandep</name> + <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.'</description> + <price>50</price> + <image>assets/pic/ptranep.jpg</image> + <experience>6</experience> + <blazeds>false</blazeds> + <mobile>true</mobile> + <video>true</video> + <highlight1>Video Applications</highlight1> + <highlight2>Mobile Applications</highlight2> + </product> + + <product productId="16"> + <name>Roscoe Crawley</name> + <description>My main specialty is in BlazeDS connected to Flex.</description> + <price>59</price> + <image>assets/pic/rcrawley.jpg</image> + <experience>9</experience> + <blazeds>true</blazeds> + <mobile>false</mobile> + <video>false</video> + <highlight1>BlazeDS</highlight1> + <highlight2>Remote Object</highlight2> + </product> + + <product productId="17"> + <name>Renee Dreifus</name> + <description>I can do it all: BlazeDS, Mobile, Video.</description> + <price>79</price> + <image>assets/pic/rdreifus.jpg</image> + <experience>90</experience> + <blazeds>true</blazeds> + <mobile>true</mobile> + <video>true</video> + <highlight1>Video Applications</highlight1> + <highlight2>Mobile Applications</highlight2> + </product> + + <product productId="18"> + <name>Tina Wong</name> + <description>I've been developing Flex apps since 1.5. Most of my recent work has been on mobile apps.</description> + <price>109</price> + <image>assets/pic/twong.jpg</image> + <experience>9</experience> + <blazeds>false</blazeds> + <mobile>true</mobile> + <video>true</video> + <highlight1>Video Applications</highlight1> + <highlight2>Mobile Applications</highlight2> + </product> + +</catalog> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/main.css ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/main.css b/FlexStore/mx/src/main.css new file mode 100644 index 0000000..23fd5c2 --- /dev/null +++ b/FlexStore/mx/src/main.css @@ -0,0 +1,83 @@ +/* +//////////////////////////////////////////////////////////////////////////////// +// +// 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. +// +//////////////////////////////////////////////////////////////////////////////// +*/ + +/* +//---------------------------- +// Global styles +//---------------------------- +*/ +.global { + color: #170505; + fillAlphas: 1.00, 1.00; /* last pair are for OVER state */ + fillColors: #FFFFFF, #DDDDDD, #FFFFFF, #EEEEEE; +} + +/* +//---------------------------- +// Type selectors +//---------------------------- +*/ + +HRule +{ + color: #666666; +} + +/* +//---------------------------- +// Named styles +//---------------------------- +*/ +.glass { + borderColor: #767473; + fillAlphas: .60, .60, .60, .60; + fillColors: #888888, #F3F3F3, #9E9E9E, #FCFCFC; + highlightAlphas: .07, .45; +} + +.glassSlider +{ + fillAlphas: .80, .80, .80, .80; + fillColors: #F3F3F3, #BBBBBB, #FCFCFC, #CCCCCC; +} + +.listItem +{ + paddingLeft: 4; + paddingRight: 4; + horizontalGap: 5; + verticalAlign: "middle"; + backgroundColor: #FFFFFF; + backgroundAlpha: .5; + borderStyle: "outset"; +} + +.sectionHeader +{ + fontWeight: "bold"; + fontSize: 11; +} + +.homeSection +{ + cornerRadius: 4; + borderStyle: "solid"; +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/productsView/CatalogTitleButtons.mxml ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/productsView/CatalogTitleButtons.mxml b/FlexStore/mx/src/productsView/CatalogTitleButtons.mxml new file mode 100644 index 0000000..526f1b6 --- /dev/null +++ b/FlexStore/mx/src/productsView/CatalogTitleButtons.mxml @@ -0,0 +1,62 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF licenses this file to You under the Apache License, Version 2.0 +(the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +--> +<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" + verticalAlign="middle" + paddingTop="0" + paddingBottom="0" + horizontalScrollPolicy="off" + currentState="showFilter"> + <mx:Script> + <![CDATA[ + [Bindable] + public var cartCount:int; + + private function rollOverLabel(event:Event):void + { + Label(event.target).setStyle("styleName", "catalogTitleButtonHighlighted"); + } + + private function rollOutLabel(event:Event):void + { + Label(event.target).setStyle("styleName", "catalogTitleButtonDeselected"); + } + ]]> + </mx:Script> + + <mx:Spacer width="100%" /> + <mx:Label id="findPhones" text="Find Developers" click="currentState = 'showFilter'"/> + <mx:VRule height="{findPhones.height * .75}" themeColor="#333333" alpha=".75"/> + <mx:Label id="viewCart" text="View Cart ({cartCount} items)" click="currentState = 'showCart'"/> + + <mx:states> + <mx:State name="showFilter"> + <mx:SetStyle target="{findPhones}" name="styleName" value="catalogTitleButtonSelected" /> + <mx:SetStyle target="{viewCart}" name="styleName" value="catalogTitleButtonDeselected" /> + <mx:SetEventHandler target="{viewCart}" name="rollOver" handlerFunction="rollOverLabel" /> + <mx:SetEventHandler target="{viewCart}" name="rollOut" handlerFunction="rollOutLabel" /> + </mx:State> + <mx:State name="showCart"> + <mx:SetStyle target="{viewCart}" name="styleName" value="catalogTitleButtonSelected" /> + <mx:SetStyle target="{findPhones}" name="styleName" value="catalogTitleButtonDeselected" /> + <mx:SetEventHandler target="{findPhones}" name="rollOver" handlerFunction="rollOverLabel" /> + <mx:SetEventHandler target="{findPhones}" name="rollOut" handlerFunction="rollOutLabel" /> + </mx:State> + </mx:states> +</mx:HBox> http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/productsView/Grip.mxml ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/productsView/Grip.mxml b/FlexStore/mx/src/productsView/Grip.mxml new file mode 100644 index 0000000..97f4b45 --- /dev/null +++ b/FlexStore/mx/src/productsView/Grip.mxml @@ -0,0 +1,35 @@ +<?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. + +--> +<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" width="17" height="100%" + paddingTop="10" horizontalAlign="center"> + <mx:Script> + <![CDATA[ + [Bindable] + public var gripTip:String; + + [Bindable] + public var gripIcon:Class; + ]]> + </mx:Script> + + <mx:Image source="{gripIcon}" /> + <mx:Image source="@Embed('/assets/grip.png')" toolTip="{gripTip}" /> + +</mx:VBox> http://git-wip-us.apache.org/repos/asf/flex-examples/blob/c652cfba/FlexStore/mx/src/productsView/ProductCart.mxml ---------------------------------------------------------------------- diff --git a/FlexStore/mx/src/productsView/ProductCart.mxml b/FlexStore/mx/src/productsView/ProductCart.mxml new file mode 100644 index 0000000..81ddd13 --- /dev/null +++ b/FlexStore/mx/src/productsView/ProductCart.mxml @@ -0,0 +1,115 @@ +<?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. + +--> +<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" + xmlns:productsView="productsView.*" + horizontalAlign="right" + paddingTop="8" + paddingBottom="8" + paddingRight="4" + paddingLeft="4" + horizontalScrollPolicy="off" + verticalScrollPolicy="off"> + + <mx:Script> + <![CDATA[ + + import mx.controls.Alert; + + import samples.flexstore.Product; + import samples.flexstore.ProductListEvent; + + [Bindable] + public var numProducts:int=0; + + [Bindable] + private var total:Number = 0; + + private const SHIPPING:Number = 1.99; + + private function productListEventHandler(event:ProductListEvent):void + { + switch (event.type) + { + case ProductListEvent.ADD_PRODUCT: + event.product.qty = 0; + //fall through into the same logic as dup + case ProductListEvent.DUPLICATE_PRODUCT: + event.product.qty++; + total += event.product.price; + numProducts++; + break; + case ProductListEvent.PRODUCT_QTY_CHANGE: + case ProductListEvent.REMOVE_PRODUCT: + var items:Array = productList.items; + total = 0; + numProducts = 0; + for (var i:int=0; i < items.length; i++) + { + var product:Product = items[i].product; + total += product.qty * product.price; + numProducts += product.qty; + } + break; + default: + break; + } + } + + ]]> + </mx:Script> + + <mx:CurrencyFormatter currencySymbol="$" id="cf" precision="2"/> + + <mx:Label width="100%" text="Your Shopping Cart" styleName="sectionHeader"/> + + <productsView:ProductList id="productList" height="100%" width="100%" + newItemStartX="-100" newItemStartY="-100" + addProduct="productListEventHandler(event)" + duplicateProduct="productListEventHandler(event)" + productQtyChange="productListEventHandler(event)" + removeProduct="productListEventHandler(event)" + showQuantity="true" + /> + + <mx:Form verticalGap="0" paddingRight="0"> + + <mx:FormItem label="Total:"> + + <mx:Label width="70" text="{cf.format(total)}" textAlign="right"/> + + </mx:FormItem> + + <mx:FormItem label="Service Fee:"> + + <mx:Label width="70" text="{cf.format(numProducts * SHIPPING)}" textAlign="right"/> + + </mx:FormItem> + + <mx:FormItem label="Grand Total:" fontWeight="bold"> + + <mx:Label width="70" text="{cf.format(total + (numProducts * SHIPPING))}" textAlign="right"/> + + </mx:FormItem> + + </mx:Form> + + <mx:Button label="Submit Order" click="Alert.show('This feature is not implemented in this sample', 'Submit Order')"/> + +</mx:VBox>