You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ca...@apache.org on 2016/11/10 09:23:13 UTC
[06/53] git commit: [flex-asjs] [refs/heads/feature/mdl] - -
Refactored the directory structure of the example projects to be maven-style
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductCatalogThumbnail.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductCatalogThumbnail.mxml b/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductCatalogThumbnail.mxml
deleted file mode 100755
index 7b415da..0000000
--- a/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductCatalogThumbnail.mxml
+++ /dev/null
@@ -1,220 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements. See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License. You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-<js:Container xmlns:fx="http://ns.adobe.com/mxml/2009"
- xmlns:js="library://ns.apache.org/flexjs/basic"
- width="{COL_WIDTH_4}" height="{COL_HEIGHT_4}" height.compare="502"
- width.x4cols="{COL_WIDTH_4}" height.x4cols="{COL_HEIGHT_4}"
- width.x3cols="{COL_WIDTH_3}" height.x3cols="{COL_HEIGHT_3}"
- width.x2cols="{COL_WIDTH_2}" height.x2cols="{COL_HEIGHT_2}"
- rollOver="rollOverHandler(event)"
- rollOut="rollOutHandler(event)"
- mouseDown="mouseDownHandler(event)"
- mouseMove="mouseMoveHandler(event)"
- mouseUp="mouseUpHandler(event)"
- click="clickHandler(event)"
- currentState="x4cols"
- >
- <!-- automationName="{product.name}" -->
- <js:beads>
- <js:ContainerDataBinding />
- <js:LayoutChangeNotifier watchedProperty="{borderStyles.borderColor}" initialValue="#FFFFFF" />
- </js:beads>
- <js:style>
- <js:BindableCSSStyles id="borderStyles" borderStyle="solid" borderWidth="1"
- borderColor="#FFFFFF" backgroundColor="#FFFFFF"/>
- </js:style>
- <fx:Metadata>
- [Event(name="purchase", type="samples.flexstore.ProductThumbEvent")]
- [Event(name="compare", type="samples.flexstore.ProductThumbEvent")]
- [Event(name="details", type="samples.flexstore.ProductThumbEvent")]
- </fx:Metadata>
-
- <fx:Script>
- <![CDATA[
-
- import org.apache.flex.events.*;
- import org.apache.flex.utils.PointUtils;
-
- import samples.flexstore.Product;
- import samples.flexstore.ProductThumbEvent;
-
- public static const COL_WIDTH_4:int = 162;
- public static const COL_HEIGHT_4:int = 122;
- public static const COL_WIDTH_3:int = 217;
- public static const COL_HEIGHT_3:int = 165;
- public static const COL_WIDTH_2:int = 327;
- public static const COL_HEIGHT_2:int = 250;
- public static const COMPARE_WIDTH:int = 162;
- public static const HORIZONTAL_GAP:int = 2;
- public static const VERTICAL_GAP:int = 3;
-
- [Bindable]
- public var product:Product;
-
- private function rollOverHandler(event:MouseEvent):void
- {
- borderStyles.borderColor = "#CCCCCC";
- //style["dropShadowEnabled"] = true;
- buttons.visible = true;
- }
-
- private function rollOutHandler(event:MouseEvent):void
- {
- borderStyles.borderColor = "#FFFFFF";
- //style["dropShadowEnabled"] = false;
- buttons.visible = false;
- }
-
- private var dragStartPoint:Point;
-
- public function mouseDownHandler(event:MouseEvent):void
- {
- if (event.target != purchase &&
- event.target != compare &&
- event.target != details)
- {
- dragStartPoint = new Point(event.clientX, event.clientY);
- }
- }
-
- public function mouseMoveHandler(event:MouseEvent):void
- {
- if (dragStartPoint != null)
- {
- var dragEvent:DragEvent = new DragEvent(DragEvent.DRAG_START, true);
- dragEvent.clientX = dragStartPoint.x;
- dragEvent.clientY = dragStartPoint.y;
- dragEvent.buttonDown = true;
- dispatchEvent(dragEvent);
-
- rollOutHandler(event);
-
- dragStartPoint = null;
- }
- }
-
- public function mouseUpHandler(event:MouseEvent):void
- {
- if (dragStartPoint != null)
- {
- dragStartPoint = null;
- }
- }
-
- public function clickHandler(event:org.apache.flex.events.MouseEvent):void
- {
- if (event.target != purchase &&
- event.target != compare &&
- event.target != details)
- {
- dispatchEvent(new ProductThumbEvent(ProductThumbEvent.DETAILS, product));
- }
- }
-
- ]]>
- </fx:Script>
- <fx:Declarations>
- <js:CurrencyFormatter currencySymbol="$" id="cf" fractionalDigits="2"/>
- </fx:Declarations>
-
- <js:VContainer id="vb" width="100%" height="100%">
- <js:style>
- <js:SimpleCSSStyles paddingLeft="6" paddingTop="4" paddingRight="8" paddingBottom="4" />
- <!-- gap="0"> -->
- </js:style>
-
-
- <js:Label text="{product.name}" style="fontWeight:bold"/>
-
- <js:HContainer width="100%" >
- <js:style>
- <js:SimpleCSSStyles paddingTop="0" /> <!-- gap="4 -->"
- </js:style>
-
- <js:Image id="img" height="45" width="45"
- width.x3cols="60" height.x3cols="60"
- width.x2cols="60" height.x2cols="60"
- source="{product.image}" />
-
- <js:VContainer id="descr" height="100%" >
- <js:style>
- <js:SimpleCSSStyles paddingTop="0" right="0" /> <!-- gap="0" -->
- </js:style>
- <js:Label text="{product.featureString}" width="60" height="48" />
- <js:Label text="{cf.format(product.price)}" style="fontWeight:bold"/>
- <js:Spacer height="4"/>
- <js:Label text="{product.highlight1}" style="color:#EE8D0C" includeIn="x3cols, x2cols"/>
- <js:Label text="{product.highlight2}" style="color:#EE8D0C" includeIn="x3cols, x2cols"/>
- </js:VContainer>
-
- </js:HContainer>
-
- <js:Spacer height="8"/>
-
- <js:Label id="compYears" text="Years: {product.experience}" includeIn="compare"/>
- <js:Label id="compBlaze" text="BlazeDS: {product.blazeds}" includeIn="compare"/>
- <js:Label id="compMobile" text="Mobile: {product.mobile}" includeIn="compare"/>
- <js:Label id="compVideo" text="Video: {product.video}" includeIn="compare"/>
- <js:Label id="compHigh1" text="Highlight: {product.highlight1}" includeIn="compare"/>
- <js:Label id="compHigh2" text="Highlight: {product.highlight2}" includeIn="compare"/>
- <js:Label text="Description:" includeIn="compare"/>
- <js:MultilineLabel id="compDesc" text="{product.description}" width="100%" includeIn="compare"/>
- </js:VContainer>
-
-
- <js:VContainer id="buttons" visible="false" width="30">
- <js:style>
- <js:SimpleCSSStyles paddingRight="8" right="8" top="12" /> <!-- gap="4" -->
- </js:style>
- <js:ImageButton id="purchase" source="assets/button_cart_empty.png" className="hoverButton"
- click="dispatchEvent(new ProductThumbEvent(ProductThumbEvent.PURCHASE, product))"
- width="30">
- <js:beads>
- <js:ToolTipBead toolTip="Add to cart"/>
- </js:beads>
- </js:ImageButton>
- <js:ImageButton id="compare" source="assets/button_compare.png" className="hoverButton"
- click="dispatchEvent(new ProductThumbEvent(ProductThumbEvent.COMPARE, product))"
- width="30">
- <js:beads>
- <js:ToolTipBead toolTip="Add to compare list"/>
- </js:beads>
- </js:ImageButton>
- <js:ImageButton id="details" source="assets/button_details.png" className="hoverButton"
- click="dispatchEvent(new ProductThumbEvent(ProductThumbEvent.DETAILS, product))"
- width="30">
- <js:beads>
- <js:ToolTipBead toolTip="Show details"/>
- </js:beads>
- </js:ImageButton>
- </js:VContainer>
-
- <js:states>
-
- <js:State name="compare" />
-
- <js:State name="x4cols" />
-
- <js:State name="x3cols" />
-
- <js:State name="x2cols"/>
- </js:states>
-
-</js:Container>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductDetails.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductDetails.mxml b/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductDetails.mxml
deleted file mode 100755
index fa32497..0000000
--- a/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductDetails.mxml
+++ /dev/null
@@ -1,145 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements. See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License. You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-<js:Container xmlns:fx="http://ns.adobe.com/mxml/2009"
- xmlns:js="library://ns.apache.org/flexjs/basic"
- xmlns:productsView="productsView.*"
- >
- <js:beads>
- <js:ContainerDataBinding />
- </js:beads>
-
- <fx:Metadata>
- [Event(name="purchase", type="samples.flexstore.ProductThumbEvent")]
- [Event(name="compare", type="samples.flexstore.ProductThumbEvent")]
- [Event(name="browse", type="samples.flexstore.ProductThumbEvent")]
- </fx:Metadata>
-
- <fx:Script>
- <![CDATA[
-
- import samples.flexstore.Product;
- import samples.flexstore.ProductThumbEvent;
-
- private var _product:Product;
-
- [Bindable]
- public function get product():Product
- {
- return _product;
- }
-
- public function set product(p:Product):void
- {
- _product = p;
- tn.selectedIndex = 0;
- }
-
- ]]>
- </fx:Script>
-
- <fx:Declarations>
- <js:CurrencyFormatter currencySymbol="$" id="cf" fractionalDigits="2"/>
- </fx:Declarations>
-
- <js:states>
- <js:State name="Features" />
- <js:State name="Support" />
- </js:states>
-
- <js:transitions>
- <js:Transition>
- <js:Fade />
- </js:Transition>
- </js:transitions>
-
- <js:ButtonBar id="tn" width="100%" change="currentState = tn.selectedItem as String">
- <js:dataProvider>
- <fx:Array>
- <fx:String>Features</fx:String>
- <fx:String>Support</fx:String>
- </fx:Array>
- </js:dataProvider>
- </js:ButtonBar>
- <js:Container >
- <js:style>
- <js:SimpleCSSStyles left="4" right="8" top="34" bottom="4" />
- </js:style>
-
-
- <js:VContainer includeIn="Features" >
- <js:style>
- <!--<js:SimpleCSSStyles gap="8"-->
- <js:SimpleCSSStyles
- left="8" top="8" right="8" bottom="8"/>
- </js:style>
- <js:Container style="left:0px;right:0px">
-
- <js:Image id="img" width="101" height="101" source="{product.image}"/>
-
- <js:VContainer id="descr" >
- <js:style>
- <js:SimpleCSSStyles top="0" left="105" right="0" bottom="20" />
- <!--<js:SimpleCSSStyles paddingTop="0" gap="4" />-->
- </js:style>
-
- <js:Label text="{product.name}" style="fontSize:11;fontWeight:'bold'"/>
-
- <js:Label text="{product.featureString}" width="80" height="48" />
-
- <js:Label text="{product.highlight1}" style="color:#EE8D0C"/>
-
- <js:Label text="{product.highlight2}" style="color:#EE8D0C"/>
-
- <js:Label text="{cf.format(product.price)}" style="fontWeight:'bold'"/>
-
- </js:VContainer>
- </js:Container>
-
- <js:Label id="descriptionText" style="left:0px;right:0px;bottom:0px" text="{product.description}"/>
-
- </js:VContainer>
-
- <productsView:ProductSupport width="100%" height="100%" includeIn="Support" />
-
- </js:Container>
-
- <js:VContainer>
- <js:style>
- <js:SimpleCSSStyles marginTop="4" right="16" top="36" />
- </js:style>
- <js:Spacer width="100%"/>
- <js:ImageButton id="purchase" source="assets/button_cart_empty.png" click="dispatchEvent(new ProductThumbEvent(ProductThumbEvent.PURCHASE, product))" width="30">
- <js:beads>
- <js:ToolTipBead toolTip="Add to cart"/>
- </js:beads>
- </js:ImageButton>
- <js:ImageButton id="compare" source="assets/button_compare.png" click="dispatchEvent(new ProductThumbEvent(ProductThumbEvent.COMPARE, product))" width="30">
- <js:beads>
- <js:ToolTipBead toolTip="Add to compare list"/>
- </js:beads>
- </js:ImageButton>
- <js:ImageButton id="tiles" source="assets/button_tiles.png" click="dispatchEvent(new ProductThumbEvent(ProductThumbEvent.BROWSE, product));" width="30">
- <js:beads>
- <js:ToolTipBead toolTip="Back to thumbnail view"/>
- </js:beads>
- </js:ImageButton>
- </js:VContainer>
-
-</js:Container>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductFilterPanel.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductFilterPanel.mxml b/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductFilterPanel.mxml
deleted file mode 100755
index 26deaa9..0000000
--- a/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductFilterPanel.mxml
+++ /dev/null
@@ -1,215 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements. See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License. You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-<js:VContainer xmlns:fx="http://ns.adobe.com/mxml/2009"
- xmlns:js="library://ns.apache.org/flexjs/basic"
- xmlns:productsView="productsView.*"
- xmlns:flexstore="samples.flexstore.*"
- height="100%"
- currentState="showingThumbnails"
- initComplete="series.selectedIndex = 0">
- <js:style>
- <js:SimpleCSSStyles paddingLeft="4"
- paddingRight="12"
- paddingTop="12"
- paddingBottom="8"
- />
-
- </js:style>
-
- <fx:Metadata>
- [Event(name="filter", type="samples.flexstore.ProductFilterEvent")]
- [Event("compare")]
- </fx:Metadata>
-
- <fx:Script>
- <![CDATA[
- import org.apache.flex.html.Slider;
- import org.apache.flex.html.SimpleAlert;
- import samples.flexstore.ProductFilterEvent;
-
- private var thumbBeingPressed:Boolean;
-
- private function dispatchFilter():void
- {
- var event:ProductFilterEvent =
- new ProductFilterEvent(filter, thumbBeingPressed);
- dispatchEvent(event);
- currentState = "showingThumbnails";
- }
-
- private function sliderValue(values:Array, index:int):Number
- {
- return values[index];
- }
-
- private function productRemoved():void
- {
- if (currentState == "showingComparison")
- {
- if (productList.items.length == 0)
- {
- dispatchFilter();
- }
- else
- {
- attemptCompare();
- }
- }
- }
-
- private function attemptCompare():void
- {
- if (productList.items.length > 0)
- {
- dispatchEvent(new Event("compare"));
- currentState = "showingComparison";
- }
- else
- {
- SimpleAlert.show("There are no items to compare.", "Compare");
- }
- }
-
- ]]>
- </fx:Script>
- <fx:Declarations>
- <flexstore:ProductFilter id="filter">
- <flexstore:experience>{series.selectedItem}</flexstore:experience>
- <flexstore:minPrice>{loPrice.value}</flexstore:minPrice>
- <flexstore:maxPrice>{hiPrice.value}</flexstore:maxPrice>
- <flexstore:blazeds>{cbBlazeDS.selected}</flexstore:blazeds>
- <flexstore:mobile>{cbMobile.selected}</flexstore:mobile>
- <flexstore:video>{cbVideo.selected}</flexstore:video>
- </flexstore:ProductFilter>
-
- <js:CurrencyFormatter currencySymbol="$" id="cf"/>
-
- </fx:Declarations>
- <js:beads>
- <js:ContainerDataBinding />
- </js:beads>
-
- <js:Label text="Find" className="sectionHeader"/>
-
- <js:Container width="100%">
- <js:beads>
- <js:FlexibleFirstChildHorizontalLayout />
- </js:beads>
- <js:TextInput className="glass" width="100%"/>
- <js:TextButton className="glass" text="Go" click="SimpleAlert.show('This feature is not implemented in this sample', 'Find')"/>
- </js:Container>
-
- <js:Spacer height="18"/>
-
- <js:HRule width="100%"/>
-
- <js:Spacer height="8"/>
-
- <js:HContainer>
- <js:style>
- <js:SimpleCSSStyles paddingTop="0" paddingLeft="0" verticalAlign="bottom" />
- </js:style>
- <js:Label text="Filter" className="sectionHeader"/>
- <js:Label text="({filter.count} items selected)" >
- <js:style>
- <js:SimpleCSSStyles fontWeight="bold" />
- <!--<js:SimpleCSSStyles color="{getStyle('themeColor')}" fontWeight="bold" />-->
- </js:style>
- </js:Label>
- </js:HContainer>
-
- <js:Spacer height="8"/>
-
- <js:Label text="Years of Experience"/>
-
- <js:DropDownList id="series" className="glass" width="140" change="dispatchFilter();">
- <js:dataProvider>
- <fx:Array>
- <fx:String>All</fx:String>
- <fx:String>3</fx:String>
- <fx:String>5</fx:String>
- <fx:String>7</fx:String>
- <fx:String>9</fx:String>
- </fx:Array>
- </js:dataProvider>
- </js:DropDownList>
-
- <js:Spacer height="18"/>
-
- <js:Label text="Price"/>
-
- <!--<s:HSlider id="priceSlider" className="glassSlider" minimum="0" maximum="200" tickInterval="10" snapInterval="10"
- width="100%" thumbCount="2" values="[0,200]" labels="[$0,$200]" liveDragging="true" dataTipFormatFunction="{cf.format}"
- change="dispatchFilter()"
- thumbPress="thumbBeingPressed=true"
- thumbRelease="thumbBeingPressed=false;dispatchFilter()"
- />-->
- <js:HContainer id="nsholder" width="100%">
- <js:NumericStepper width="48%" id="loPrice" minimum="0" maximum="{hiPrice.value}" value="0" valueChange="dispatchFilter()" />
- <js:NumericStepper width="48%" id="hiPrice" minimum="{loPrice.value}" maximum="200" value="200" valueChange="dispatchFilter()" />
- </js:HContainer>
-
- <js:Spacer height="18"/>
-
- <js:Label text="Required Features"/>
-
- <js:Spacer height="4"/>
-
- <js:CheckBox id="cbBlazeDS" className="glass" text="BlazeDS" click="dispatchFilter();"/>
- <js:Spacer height="4"/>
- <js:CheckBox id="cbMobile" className="glass" text="Mobile" click="dispatchFilter()"/>
- <js:Spacer height="4"/>
- <js:CheckBox id="cbVideo" className="glass" text="Video" click="dispatchFilter();"/>
-
- <js:Spacer height="18"/>
-
- <js:HRule width="100%"/>
-
- <js:Spacer height="8"/>
-
- <js:HContainer>
- <js:Label text="Compare" className="sectionHeader"/>
- <js:Label text="(Drag items here to compare)" className="instructions"/>
- </js:HContainer>
-
-
- <js:Spacer height="4"/>
-
- <!-- height is maxItems * ProductListItem.HEIGHT + 2px border -->
- <productsView:ProductList id="productList" height="{productList.maxItems * ProductListItem.HEIGHT + 2}" width="100%"
- newItemStartX="300" newItemStartY="-100" maxItems="4"
- removeProduct="productRemoved()"/>
-
- <js:Spacer height="8"/>
-
- <js:ImageAndTextButton id="compareButton" className="glass"
- click.showingThumbnails="attemptCompare()"
- click.showingComparison="dispatchFilter()"
- text.showingComparison="Back to thumbnail view"
- text.showingThumbnails="Compare Items"
- image.showingThumbnails="assets/icon_compare.png"
- image.showingComparison="assets/icon_tiles.png" />
-
- <js:states>
- <js:State name="showingThumbnails" />
- <js:State name="showingComparison" />
- </js:states>
-
-</js:VContainer>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductList.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductList.mxml b/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductList.mxml
deleted file mode 100755
index 951b1fa..0000000
--- a/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductList.mxml
+++ /dev/null
@@ -1,219 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements. See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License. You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-<js:Container xmlns:fx="http://ns.adobe.com/mxml/2009"
- xmlns:js="library://ns.apache.org/flexjs/basic"
- >
- <js:style>
- <js:SimpleCSSStyles borderStyle="solid" borderWidth="1" backgroundColor="#BCB29F" />
- </js:style>
- <!-- need a background color for drag and drop but can set alpha to 0 -->
-
- <fx:Metadata>
- [Event(name="addProduct", type="samples.flexstore.ProductListEvent")]
- [Event(name="duplicateProduct", type="samples.flexstore.ProductListEvent")]
- [Event(name="productQtyChange", type="samples.flexstore.ProductListEvent")]
- [Event(name="removeProduct", type="samples.flexstore.ProductListEvent")]
- </fx:Metadata>
-
- <fx:Script>
- <![CDATA[
- import org.apache.flex.effects.Effect;
- import org.apache.flex.effects.Move;
- import org.apache.flex.effects.Sequence;
- import org.apache.flex.core.DropType;
- import org.apache.flex.core.IUIBase;
- import org.apache.flex.events.DragEvent;
-
- import samples.flexstore.Product;
- import samples.flexstore.ProductListEvent;
-
- public var items:Array;
-
- public var newItemStartX:int;
- public var newItemStartY:int;
- [Bindable]
- public var maxItems:int = 0;
- public var showQuantity:Boolean;
-
- private var playingEffects:Object = new Object();
-
- public function addProduct(product:Product):void
- {
- if (items == null)
- items = [];
-
- var index:int = indexOf(product.productId);
- var event:ProductListEvent;
- var item:ProductListItem;
-
- if (index != -1)
- {
- item = items[index] as ProductListItem;
- //if we don't keep track of what's playing a double-click can
- //cause the list item to keep rising
- if (playingEffects[item.uid] == null)
- {
- var jump:Sequence = new Sequence();
- var m1:Move = new Move(item)
- m1.yBy = -5;
- var m2:Move = new Move(item)
- m2.yBy = 5;
- jump.addChild(m1);
- jump.addChild(m2);
- jump.duration = 150;
- playingEffects[item.uid] = jump;
- jump.addEventListener(Effect.EFFECT_END, function(event:Event):void
- {
- delete playingEffects[item.uid];
- });
- jump.play();
- }
- event = new ProductListEvent(ProductListEvent.DUPLICATE_PRODUCT);
- event.product = item.product;
- dispatchEvent(event);
- }
- else
- {
- index = items.length;
- if (maxItems <= 0 || index < maxItems)
- {
- item = new ProductListItem();
- if (showQuantity)
- {
- item.currentState = 'showQuantity';
- }
- item.product = product;
- item.percentWidth = 100;
- item.addEventListener(ProductListEvent.REMOVE_PRODUCT, removeItemHandler);
- items[index] = item;
- viewport.addElement(item);
- layoutItems(index, true);
- event = new ProductListEvent(ProductListEvent.ADD_PRODUCT);
- event.product = product;
- dispatchEvent(event);
- }
- }
- }
-
- public function getProducts():Array
- {
- var ret:Array = [];
- for (var i:int = 0; i < items.length; i++)
- {
- ret[i] = ProductListItem(items[i]).product;
- }
- return ret;
- }
-
- private function removeItemHandler(event:Event):void
- {
- var item:ProductListItem = event.target as ProductListItem;
- var index:int = indexOf(item.product.productId);
- items.splice(index, 1);
- viewport.removeElement(item);
- layoutItems(index);
- }
-
- private function layoutItems(startIndex:int, scrollToBottom:Boolean=false):void
- {
- var n:int = items.length;
- var e:Move;
- for (var i:int = startIndex; i < n ; i++)
- {
- var item:ProductListItem = items[i];
- var yTo:Number = i * (item.height);
- //still need to prevent items that are already in motion from getting
- //jumpy
- if (playingEffects[item.uid] == null)
- {
- e = new Move(item);
- if (item.x == 0 && item.y == 0)
- {
- e.xFrom = newItemStartX;
- e.yFrom = newItemStartY;
- }
-
- e.xTo = 0;
- e.yTo = yTo;
- playingEffects[item.uid] = e;
- e.addEventListener(Effect.EFFECT_END, function(event:Event):void
- {
- delete playingEffects[item.uid];
- });
- e.play();
- }
- else
- {
- playingEffects[item.uid].pause();
- playingEffects[item.uid].yTo = yTo;
- playingEffects[item.uid].play();
- }
- }
- //get the last event and if we should scroll make sure we can validate
- //and scroll to maxVPosition
- if (scrollToBottom)
- {
- e.addEventListener(Effect.EFFECT_END, function(event:Event):void
- {
- //TODO scrollingView.model.verticalScrollPosition = scrollingView.maxVerticalScrollPosition;
- });
- }
- }
-
- private function indexOf(productId:int):int
- {
- var index:int = -1;
-
- var n:int = items.length;
- for (var i:int = 0; i < items.length; i++)
- {
- if (ProductListItem(items[i]).product.productId == productId)
- {
- index = i;
- break;
- }
- }
-
- return index;
- }
-
- private function doDragEnter(event:DragEvent):void
- {
- trace("doDragEnter");
- dmc.acceptDragDrop(event.target as IUIBase, DropType.COPY);
- }
-
- private function doDragDrop(event:DragEvent):void
- {
- trace("doDragDrop");
- var product:Product = DragEvent.dragSource as Product;
- addProduct(product);
- }
-
- ]]>
- </fx:Script>
- <js:beads>
- <js:DropMouseController id="dmc" dragEnter="doDragEnter(event)" dragDrop="doDragDrop(event)" />
- <js:VerticalLayout />
- <js:ScrollingViewport id="scrollingView" />
- </js:beads>
- <js:Container id="viewport" width="100%" height="100%" >
- </js:Container>
-</js:Container>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductListItem.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductListItem.mxml b/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductListItem.mxml
deleted file mode 100755
index 8e98c3b..0000000
--- a/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductListItem.mxml
+++ /dev/null
@@ -1,140 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements. See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License. You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-<js:Container xmlns:fx="http://ns.adobe.com/mxml/2009"
- xmlns:js="library://ns.apache.org/flexjs/basic"
- className="listItem"
- height="{HEIGHT}" implements="org.apache.flex.core.IItemRenderer">
- <!--automationName="{product.name}">-->
-
- <fx:Metadata>
- [Event(name="productQtyChange", type="samples.flexstore.ProductListEvent")]
- [Event(name="removeProduct", type="samples.flexstore.ProductListEvent")]
- </fx:Metadata>
-
- <fx:Script>
- <![CDATA[
-
- import samples.flexstore.Product;
- import samples.flexstore.ProductListEvent;
-
- private static var idCounter:int = 0;
- public var uid:String = (idCounter++).toString();
-
- public static const HEIGHT:int = 30;
-
- [Bindable("__NoChangeEvent__")]
- public function get product():Product
- {
- return _data as Product;
- }
- public function set product(value:Product):void
- {
- _data = value;
- }
-
- private var _data:Object;
-
- public function get data():Object
- {
- return _data;
- }
-
- public function set data(value:Object):void
- {
- _data = value;
- }
-
- public function get listData():Object
- {
- return null;
- }
-
- public function set listData(value:Object):void
- {
- // not used
- }
-
- private var _itemRendererParent:Object;
-
- public function get itemRendererParent():Object
- {
- return _itemRendererParent;
- }
-
- public function set itemRendererParent(value:Object):void
- {
- _itemRendererParent = value;
- }
-
- private function qtyChange():void
- {
- product.qty = int(qty.text);
- var event:ProductListEvent = new ProductListEvent(ProductListEvent.PRODUCT_QTY_CHANGE);
- event.product = product;
- dispatchEvent(event);
- }
-
- private function removeItem():void
- {
- var event:ProductListEvent = new ProductListEvent(ProductListEvent.REMOVE_PRODUCT);
- event.product = product;
- dispatchEvent(event);
- }
-
- ]]>
- </fx:Script>
-
- <fx:Declarations>
- <js:CurrencyFormatter currencySymbol="$" id="cf" fractionalDigits="2"/>
- </fx:Declarations>
-
- <js:beads>
- <js:ContainerDataBinding />
- </js:beads>
-
- <js:ImageButton id="removeButton" source="assets/trashcan.png"
- width="14" height="14" y="5"
- click="removeItem()">
- <js:beads>
- <js:ToolTipBead toolTip="Remove from cart" />
- </js:beads>
- </js:ImageButton>
-
- <js:Image id="productImage" x="16" y="6" width="12" height="12" source="{product.image}"/>
-
- <js:Label id="productName" x="30" width="100" y="4" text="{product.name}"/>
-
- <js:Label id="productPrice" width="60" y="4"
- text="{cf.format(product.price)}" style="textAlign:right;right:0"
- style.showQuantity="textAlign:right;right:25"/>
-
- <js:TextInput id="qty" width="25" y="3" text="{product.qty}" includeIn="showQuantity"
- style="textAlign:right;right:0;marginTop:0" change="qtyChange()" >
- <js:beads>
- <js:NumericOnlyTextInputBead maxChars="3" />
- </js:beads>
- </js:TextInput>
-
- <js:states>
- <js:State name="compare" />
- <js:State name="showQuantity" />
- </js:states>
-
-</js:Container>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductSupport.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductSupport.mxml b/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductSupport.mxml
deleted file mode 100755
index b3c8429..0000000
--- a/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductSupport.mxml
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements. See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License. You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-<js:HContainer xmlns:fx="http://ns.adobe.com/mxml/2009"
- xmlns:js="library://ns.apache.org/flexjs/basic"
- >
- <js:style>
- <js:SimpleCSSStyles paddingLeft="4" paddingRight="8" paddingBottom="4" />
- </js:style>
- <js:beads>
- <js:ContainerDataBinding />
- </js:beads>
-
- <fx:Script>
- <![CDATA[
-
- private function toggle():void
- {
- /*
- if (vd.playing)
- {
- vd.stop();
- list.visible = true;
- }
- else
- {
- list.visible = false;
- vd.play();
- }
- */
- }
-
- ]]>
- </fx:Script>
-
- <fx:Declarations>
- <js:Parallel id="hideList">
- <js:children>
- <fx:Array>
- <js:Resize target="{list}" widthTo="0"/>
- <!--<mx:Resize target="{vd}" widthTo="400" heightTo="314"/>-->
- </fx:Array>
- </js:children>
- </js:Parallel>
-
- <js:Parallel id="showList">
- <js:children>
- <fx:Array>
- <js:Resize target="{list}" widthTo="130"/>
- <!--<mx:Resize target="{vd}" widthTo="270" heightTo="217"/>-->
- </fx:Array>
- </js:children>
- </js:Parallel>
- </fx:Declarations>
- <js:List id="list" width="130" height="100%" selectedIndex="0">
- <js:dataProvider>
- <fx:Array>
- <fx:Object label="Install SIM Card"/>
- </fx:Array>
- </js:dataProvider>
- </js:List>
-
- <js:Container width="100%">
-
- <!--<mx:VideoDisplay id="vd" width="270" height="217" source="assets/phone.flv"
- autoPlay="false" complete="list.visible=true"/>
-
- <mx:Button label="{vd.playing ? 'Stop' : 'Play'}" click="toggle()" left="8" bottom="8" includeInLayout="false">
- </mx:Button>
- -->
- </js:Container>
-
-
-</js:HContainer>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/FlexJSStore_jquery/src/samples/flexstore/ButtonBarButtonSkin.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexJSStore_jquery/src/samples/flexstore/ButtonBarButtonSkin.as b/examples/flexjs/FlexJSStore_jquery/src/samples/flexstore/ButtonBarButtonSkin.as
deleted file mode 100755
index 5e94b58..0000000
--- a/examples/flexjs/FlexJSStore_jquery/src/samples/flexstore/ButtonBarButtonSkin.as
+++ /dev/null
@@ -1,298 +0,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.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-package samples.flexstore
-{
-
-import flash.display.GradientType;
-import mx.containers.BoxDirection;
-import mx.controls.Button;
-import mx.controls.ButtonBar;
-import mx.skins.Border;
-import mx.skins.halo.*;
-import mx.styles.StyleManager;
-import mx.utils.ColorUtil;
-
-/**
- * Adapted from mx.skins.halo.ButtonBarButtonSkin.
- * This version of the ButtonBarButtonSkin is applied for the
- * selectedOver, selectedUp, and over states to use the 2nd two
- * values of the fillColors for the selected state of the
- * button. The over state then uses a computed value from
- * the themeColor to show emphasis. The border of the selected
- * button also uses a computed value from the themeColor, but
- * is partially transparent.
- */
-public class ButtonBarButtonSkin extends Border
-{
- //--------------------------------------------------------------------------
- //
- // Class variables
- //
- //--------------------------------------------------------------------------
-
- /**
- * @private
- */
- private static var cache:Object = {};
-
- //--------------------------------------------------------------------------
- //
- // Class methods
- //
- //--------------------------------------------------------------------------
-
- /**
- * @private
- * Several colors used for drawing are calculated from the base colors
- * of the component (themeColor, borderColor and fillColors).
- * Since these calculations can be a bit expensive,
- * we calculate once per color set and cache the results.
- */
- private static function calcDerivedStyles(themeColor:uint,
- fillColor0:uint,
- fillColor1:uint):Object
- {
- var key:String = HaloColors.getCacheKey(themeColor,
- fillColor0, fillColor1);
-
- if (!cache[key])
- {
- var o:Object = cache[key] = {};
-
- // Cross-component styles.
- HaloColors.addHaloColors(o, themeColor, fillColor0, fillColor1);
-
- // Button-specific styles.
- o.innerEdgeColor1 = ColorUtil.adjustBrightness2(fillColor0, -10);
- o.innerEdgeColor2 = ColorUtil.adjustBrightness2(fillColor1, -25);
- }
-
- return cache[key];
- }
-
- //--------------------------------------------------------------------------
- //
- // Constructor
- //
- //--------------------------------------------------------------------------
-
- /**
- * @private
- * Constructor.
- */
- public function ButtonBarButtonSkin()
- {
- super();
- }
-
- //--------------------------------------------------------------------------
- //
- // Overridden properties
- //
- //--------------------------------------------------------------------------
-
- //----------------------------------
- // measuredWidth
- //----------------------------------
-
- /**
- * @private
- */
- override public function get measuredWidth():Number
- {
- return 50;
- }
-
- //----------------------------------
- // measuredHeight
- //----------------------------------
-
- /**
- * @private
- */
- override public function get measuredHeight():Number
- {
- return 22;
- }
-
- //--------------------------------------------------------------------------
- //
- // Overridden methods
- //
- //--------------------------------------------------------------------------
-
- /**
- * @private
- */
- override protected function updateDisplayList(w:Number, h:Number):void
- {
- super.updateDisplayList(w, h);
-
- // User-defined styles.
- var borderColor:uint = getStyle("borderColor");
- var cornerRadius:Number = getStyle("cornerRadius");
- var fillAlphas:Array = getStyle("fillAlphas");
- var fillColors:Array = getStyle("fillColors");
- styleManager.getColorNames(fillColors);
- var highlightAlphas:Array = getStyle("highlightAlphas");
- var themeColor:uint = getStyle("themeColor");
-
- // Derivative styles.
- var derStyles:Object = calcDerivedStyles(themeColor, fillColors[0],
- fillColors[1]);
-
- var borderColorDrk1:Number =
- ColorUtil.adjustBrightness2(borderColor, -50);
-
- var themeColorDrk1:Number =
- ColorUtil.adjustBrightness2(themeColor, -25);
-
- var emph:Boolean = false;
-
- if (parent is Button)
- emph = (parent as Button).emphasized;
-
- var tmp:Number;
-
- var bar:ButtonBar = parent ? ButtonBar(parent.parent) : null;
- var horizontal:Boolean = true;
- var pos:int = 0;
-
- if (bar)
- {
- if (bar.direction == BoxDirection.VERTICAL)
- horizontal = false;
-
- // first: -1, middle: 0, last: 1
- var index:int = bar.getChildIndex(parent);
- pos = (index == 0 ? -1 : (index == bar.numChildren - 1 ? 1 : 0));
- }
-
- var radius:Object = getCornerRadius(pos, horizontal, cornerRadius);
- var cr:Object = getCornerRadius(pos, horizontal, cornerRadius);
- var cr1:Object = getCornerRadius(pos, horizontal, cornerRadius - 1);
- var cr2:Object = getCornerRadius(pos, horizontal, cornerRadius - 2);
- var cr3:Object = getCornerRadius(pos, horizontal, cornerRadius - 3);
-
- graphics.clear();
-
- switch (name)
- {
- case "selectedUpSkin":
- case "selectedOverSkin":
- {
- var overFillColors:Array;
- if (fillColors.length > 2)
- overFillColors = [ fillColors[2], fillColors[3] ];
- else
- overFillColors = [ fillColors[0], fillColors[1] ];
-
- var overFillAlphas:Array;
- if (fillAlphas.length > 2)
- overFillAlphas = [ fillAlphas[2], fillAlphas[3] ];
- else
- overFillAlphas = [ fillAlphas[0], fillAlphas[1] ];
-
- // button border/edge
- drawRoundRect(
- 0, 0, w, h, cr,
- [ themeColor, derStyles.themeColDrk1 ], 0.5,
- verticalGradientMatrix(0, 0, w , h),
- GradientType.LINEAR, null,
- { x: 1, y: 1, w: w - 2, h: h - 2, r: cr1 });
-
- // button fill
- drawRoundRect(
- 1, 1, w - 2, h - 2, cr1,
- overFillColors, overFillAlphas,
- verticalGradientMatrix(0, 0, w - 2, h - 2));
-
- // top highlight
- if (!(radius is Number))
- { radius.bl = radius.br = 0;}
- drawRoundRect(
- 1, 1, w - 2, (h - 2) / 2, radius,
- [ 0xFFFFFF, 0xFFFFFF ], highlightAlphas,
- verticalGradientMatrix(1, 1, w - 2, (h - 2) / 2));
- break;
- }
-
- case "overSkin":
- {
- // button border/edge
- drawRoundRect(
- 0, 0, w, h, cr,
- [ themeColor, derStyles.themeColDrk1 ], 0.5,
- verticalGradientMatrix(0, 0, w, h));
-
- // button fill
- drawRoundRect(
- 1, 1, w - 2, h - 2, cr1,
- [ derStyles.fillColorPress1, derStyles.fillColorPress2 ], 1,
- verticalGradientMatrix(0, 0, w - 2, h - 2));
-
- // top highlight
- if (!(radius is Number))
- { radius.bl = radius.br = 0;}
- drawRoundRect(
- 1, 1, w - 2, (h - 2) / 2, radius,
- [ 0xFFFFFF, 0xFFFFFF ], highlightAlphas,
- verticalGradientMatrix(1, 1, w - 2, (h - 2) / 2));
-
- break;
- }
- }
- }
-
- //--------------------------------------------------------------------------
- //
- // Methods
- //
- //--------------------------------------------------------------------------
-
- /**
- * @private
- */
- private function getCornerRadius(pos:int, horizontal:Boolean,
- radius:Number):Object
- {
- if (pos == 0)
- return 0;
-
- radius = Math.max(0, radius);
-
- if (horizontal)
- {
- if (pos == -1)
- return { tl: radius, tr: 0, bl: radius, br: 0 };
- else // pos == 1
- return { tl: 0, tr: radius, bl: 0, br: radius };
- }
- else
- {
- if (pos == -1)
- return { tl: radius, tr: radius, bl: 0, br: 0 };
- else // pos == 1
- return { tl: 0, tr: 0, bl: radius, br: radius };
- }
- }
-}
-
-}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/FlexJSStore_jquery/src/samples/flexstore/Product.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexJSStore_jquery/src/samples/flexstore/Product.as b/examples/flexjs/FlexJSStore_jquery/src/samples/flexstore/Product.as
deleted file mode 100755
index 040fb8f..0000000
--- a/examples/flexjs/FlexJSStore_jquery/src/samples/flexstore/Product.as
+++ /dev/null
@@ -1,78 +0,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.
-//
-////////////////////////////////////////////////////////////////////////////////
-package samples.flexstore
-{
-
-[Bindable]
-public class Product
-{
-
- public var productId:int;
- public var name:String;
- public var description:String;
- public var price:Number;
- public var image:String;
- public var experience:String;
- public var blazeds:Boolean;
- public var mobile:Boolean;
- public var video:Boolean;
- public var highlight1:String;
- public var highlight2:String;
- public var qty:int;
-
- public function Product()
- {
-
- }
-
- public function fill(obj:Object):void
- {
- for (var i:String in obj)
- {
- this[i] = obj[i];
- }
- }
-
- [Bindable(event="propertyChange")]
- public function get featureString():String
- {
- var str:String = "";
- if (blazeds)
- str += "BlazeDS";
-
- if (mobile)
- {
- if (str.length > 0)
- str += "\n";
- str += "Mobile";
- }
-
- if (video)
- {
- if (str.length > 0)
- str += "\n";
- str += "Video";
- }
-
- return str;
- }
-
-}
-
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/FlexJSStore_jquery/src/samples/flexstore/ProductFilter.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexJSStore_jquery/src/samples/flexstore/ProductFilter.as b/examples/flexjs/FlexJSStore_jquery/src/samples/flexstore/ProductFilter.as
deleted file mode 100755
index d182371..0000000
--- a/examples/flexjs/FlexJSStore_jquery/src/samples/flexstore/ProductFilter.as
+++ /dev/null
@@ -1,56 +0,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.
-//
-////////////////////////////////////////////////////////////////////////////////
-package samples.flexstore
-{
-
-[Bindable]
-public class ProductFilter
-{
- public var count:int;
- public var experience:String;
- public var minPrice:Number;
- public var maxPrice:Number;
- public var blazeds:Boolean;
- public var mobile:Boolean;
- public var video:Boolean;
-
- public function ProductFilter()
- {
- super();
- }
-
- public function accept(product:Product):Boolean
- {
- //price is often the first test so let's fail fast if possible
- if (minPrice > product.price || maxPrice < product.price)
- return false;
- if (experience != "All" && experience > product.experience)
- return false;
- if (blazeds && !product.blazeds)
- return false;
- if (mobile && !product.mobile)
- return false;
- if (video && !product.video)
- return false;
-
- return true;
- }
-}
-
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/FlexJSStore_jquery/src/samples/flexstore/ProductFilterEvent.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexJSStore_jquery/src/samples/flexstore/ProductFilterEvent.as b/examples/flexjs/FlexJSStore_jquery/src/samples/flexstore/ProductFilterEvent.as
deleted file mode 100755
index 28129e7..0000000
--- a/examples/flexjs/FlexJSStore_jquery/src/samples/flexstore/ProductFilterEvent.as
+++ /dev/null
@@ -1,39 +0,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.
-//
-////////////////////////////////////////////////////////////////////////////////
-package samples.flexstore
-{
-
-import org.apache.flex.events.Event;
-
-public class ProductFilterEvent extends Event
-{
- public static const FILTER:String = "filter";
-
- public var live:Boolean;
- public var filter:ProductFilter;
-
- public function ProductFilterEvent(filter:ProductFilter, live:Boolean)
- {
- super(FILTER);
- this.filter = filter;
- this.live = live;
- }
-}
-
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/FlexJSStore_jquery/src/samples/flexstore/ProductListEvent.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexJSStore_jquery/src/samples/flexstore/ProductListEvent.as b/examples/flexjs/FlexJSStore_jquery/src/samples/flexstore/ProductListEvent.as
deleted file mode 100755
index b6b9371..0000000
--- a/examples/flexjs/FlexJSStore_jquery/src/samples/flexstore/ProductListEvent.as
+++ /dev/null
@@ -1,42 +0,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.
-//
-////////////////////////////////////////////////////////////////////////////////
-package samples.flexstore
-{
-
-import org.apache.flex.events.Event;
-
-public class ProductListEvent extends Event
-{
- public static const ADD_PRODUCT:String = "addProduct";
- public static const DUPLICATE_PRODUCT:String = "duplicateProduct";
- public static const REMOVE_PRODUCT:String = "removeProduct";
- public static const PRODUCT_QTY_CHANGE:String = "productQtyChange";
-
- public var product:Product;
-
- //making the default bubbles behavior of the event to true since we want
- //it to bubble out of the ProductListItem and beyond
- public function ProductListEvent(type:String, bubbles:Boolean=true, cancelable:Boolean=false)
- {
- super(type, bubbles, cancelable);
- }
-
-}
-
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/FlexJSStore_jquery/src/samples/flexstore/ProductThumbEvent.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexJSStore_jquery/src/samples/flexstore/ProductThumbEvent.as b/examples/flexjs/FlexJSStore_jquery/src/samples/flexstore/ProductThumbEvent.as
deleted file mode 100755
index f92dc7f..0000000
--- a/examples/flexjs/FlexJSStore_jquery/src/samples/flexstore/ProductThumbEvent.as
+++ /dev/null
@@ -1,45 +0,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.
-//
-////////////////////////////////////////////////////////////////////////////////
-package samples.flexstore
-{
-
-import org.apache.flex.events.Event;
-
-public class ProductThumbEvent extends Event
-{
- public static const PURCHASE:String = "purchase";
- public static const COMPARE:String = "compare";
- public static const DETAILS:String = "details";
- public static const BROWSE:String = "browse";
-
- public var product:Product;
-
- public function ProductThumbEvent(type:String, product:Product)
- {
- super(type);
- this.product = product;
- }
-
- override public function cloneEvent():Event
- {
- return new ProductThumbEvent(type, product);
- }
-}
-
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/FlexWebsiteStatsViewer/src/FlexWebsiteStatsViewer.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexWebsiteStatsViewer/src/FlexWebsiteStatsViewer.mxml b/examples/flexjs/FlexWebsiteStatsViewer/src/FlexWebsiteStatsViewer.mxml
deleted file mode 100644
index 9aafac9..0000000
--- a/examples/flexjs/FlexWebsiteStatsViewer/src/FlexWebsiteStatsViewer.mxml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!---
-//
-// Licensed to the Apache Software Foundation (ASF) under one or more
-// contributor license agreements. See the NOTICE file distributed with
-// this work for additional information regarding copyright ownership.
-// The ASF licenses this file to You under the Apache License, Version 2.0
-// (the "License"); you may not use this file except in compliance with
-// the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
--->
-<js:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
- xmlns:local="*"
- xmlns:models="models.*"
- xmlns:controllers="controllers.*"
- xmlns:js="library://ns.apache.org/flexjs/basic"
- initialize="trace('app initialized')"
- >
- <js:valuesImpl>
- <js:SimpleCSSValuesImpl />
- </js:valuesImpl>
- <js:initialView>
- <local:StatsView />
- </js:initialView>
- <js:model>
- <models:StatsModel />
- </js:model>
- <js:controller>
- <controllers:StatsController />
- </js:controller>
- <js:beads>
- <js:BrowserScroller />
- <js:HTTPService id="service">
- <js:LazyCollection id="collection">
- <js:inputParser>
- <controllers:GAJSONInputParser />
- </js:inputParser>
- <js:itemConverter>
- <controllers:GAStatsDataJSONItemConverter />
- </js:itemConverter>
- </js:LazyCollection>
- </js:HTTPService>
- <js:CSSFontFaceBead />
- </js:beads>
-</js:Application>
-
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/FlexWebsiteStatsViewer/src/StatsView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexWebsiteStatsViewer/src/StatsView.mxml b/examples/flexjs/FlexWebsiteStatsViewer/src/StatsView.mxml
deleted file mode 100644
index 0636dda..0000000
--- a/examples/flexjs/FlexWebsiteStatsViewer/src/StatsView.mxml
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements. See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License. You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-<js:View xmlns:fx="http://ns.adobe.com/mxml/2009"
- xmlns:js="library://ns.apache.org/flexjs/basic"
- initComplete="testit()"
- >
- <fx:Script>
- <![CDATA[
- import org.apache.flex.events.MouseEvent;
-
- private function testit():void {
- trace();
- }
-
- private function onRefreshBtnClick(event:MouseEvent):void {
- var e:Event = new Event("refresh", true);
- dispatchEvent(e);
- }
- ]]>
- </fx:Script>
-
- <fx:Style>
- @namespace js "library://ns.apache.org/flexjs/basic";
- .AllCharts {
- border-width: 0px;
- padding-left: 2px;
- padding-top: 10px;
- padding-bottom: 2px;
- padding-right: 10px;
- }
- </fx:Style>
-
-
- <js:Label text="Number of users on flex.apache.org for last 30 days" x="10" y="10" />
- <js:TextButton id="refreshButton" text="Refresh" x="300" y="10" click="onRefreshBtnClick(event)"/>
-
- <js:ColumnChart id="columnChart" x="40" y="40" width="2000" height="768" className="AllCharts">
- <js:beads>
- <js:SimpleBinding
- sourceID="applicationModel"
- sourcePropertyName="lastThirtyDaysUsers"
- destinationPropertyName="dataProvider"
- eventName="lastThirtyDaysDataChanged"
- />
- <js:HorizontalCategoryAxisBead categoryField="date" />
- <js:VerticalLinearAxisBead valueField="users" />
- </js:beads>
- <js:series>
- <js:ColumnSeries yField="users">
- <js:itemRenderer>
- <fx:Component>
- <js:BoxItemRenderer>
- <js:fill>
- <js:SolidColor color="#7CB5EC" alpha="1.0" />
- </js:fill>
- <!--<js:fill>
- <js:LinearGradient rotation="90">
- <js:entries>
- <js:GradientEntry color="#7CB5EC" ratio="0" />
- <js:GradientEntry color="#EFF7FF" ratio="0.5" />
- </js:entries>
- </js:LinearGradient>
- </js:fill>-->
- </js:BoxItemRenderer>
- </fx:Component>
- </js:itemRenderer>
- </js:ColumnSeries>
- </js:series>
- </js:ColumnChart>
-</js:View>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/FlexWebsiteStatsViewer/src/controllers/GAJSONInputParser.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexWebsiteStatsViewer/src/controllers/GAJSONInputParser.as b/examples/flexjs/FlexWebsiteStatsViewer/src/controllers/GAJSONInputParser.as
deleted file mode 100644
index c443de5..0000000
--- a/examples/flexjs/FlexWebsiteStatsViewer/src/controllers/GAJSONInputParser.as
+++ /dev/null
@@ -1,38 +0,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.
-//
-////////////////////////////////////////////////////////////////////////////////
-package controllers
-{
- import org.apache.flex.collections.parsers.JSONInputParser;
-
- public class GAJSONInputParser extends JSONInputParser
- {
- public function GAJSONInputParser()
- {
- }
-
- override public function parseItems(s:String):Array
- {
- var rowsArrayStartIndex:int = s.indexOf('"rows": [', 0);
- var rowsArrayEndIndex:int = s.indexOf("]]", rowsArrayStartIndex);
- var rowsArrayString:String = s.slice(rowsArrayStartIndex + 9,rowsArrayEndIndex);
- var rowsArray:Array = rowsArrayString.split("],");
- return rowsArray;
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/FlexWebsiteStatsViewer/src/controllers/GAStatsDataJSONItemConverter.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexWebsiteStatsViewer/src/controllers/GAStatsDataJSONItemConverter.as b/examples/flexjs/FlexWebsiteStatsViewer/src/controllers/GAStatsDataJSONItemConverter.as
deleted file mode 100644
index 608db8f..0000000
--- a/examples/flexjs/FlexWebsiteStatsViewer/src/controllers/GAStatsDataJSONItemConverter.as
+++ /dev/null
@@ -1,41 +0,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.
-//
-////////////////////////////////////////////////////////////////////////////////
-package controllers
-{
- import org.apache.flex.collections.converters.JSONItemConverter;
-
- public class GAStatsDataJSONItemConverter extends JSONItemConverter
- {
- public function GAStatsDataJSONItemConverter()
- {
- super();
- }
-
- override public function convertItem(data:String):Object
- {
- var obj:Object = {};
- var a:Array = data.split(",");
- var dateStr:String = a[0];
- var usersStr:String = a[1];
- obj.date = dateStr.substring(dateStr.indexOf("[") + 2 , dateStr.lastIndexOf('"'));
- obj.users = parseInt(usersStr.substring(usersStr.indexOf(' "') + 2, usersStr.lastIndexOf('"')));
- return obj;
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/FlexWebsiteStatsViewer/src/controllers/StatsController.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexWebsiteStatsViewer/src/controllers/StatsController.as b/examples/flexjs/FlexWebsiteStatsViewer/src/controllers/StatsController.as
deleted file mode 100644
index b4a054c..0000000
--- a/examples/flexjs/FlexWebsiteStatsViewer/src/controllers/StatsController.as
+++ /dev/null
@@ -1,77 +0,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.
-//
-////////////////////////////////////////////////////////////////////////////////
-package controllers
-{
-
- import models.StatsModel;
-
- import org.apache.flex.core.Application;
- import org.apache.flex.core.IDocument;
- import org.apache.flex.events.Event;
-
- public class StatsController implements IDocument
- {
- public function StatsController(a:Application = null)
- {
- if (a)
- {
- this.app = a as FlexWebsiteStatsViewer;
- this.app.addEventListener("viewChanged", viewChangeHandler);
- }
- }
-
- private var lastThirtyDaysUsers:String = 'https://apache-flex-dashboard.appspot.com/query?id=ahdzfmFwYWNoZS1mbGV4LWRhc2hib2FyZHIVCxIIQXBpUXVlcnkYgICAgICAgAoM&format=json'
-
- private var app:FlexWebsiteStatsViewer;
-
- private function viewChangeHandler(event:Event):void
- {
- app.initialView.addEventListener("refresh", buttonClickHandler);
- }
-
- private function buttonClickHandler(event:Event):void
- {
- app.service.url = lastThirtyDaysUsers;
- app.service.send();
- app.service.addEventListener("complete", completeHandler);
- }
-
- private function completeHandler(event:Event):void
- {
- var lastThirtyDaysUsers:Array = [];
- if(app.collection)
- {
- for (var i:int = 0; i < app.collection.length; i++)
- {
- lastThirtyDaysUsers.push(app.collection.getItemAt(i))
- }
-
- }
-
- StatsModel(app.model).lastThirtyDaysUsers = lastThirtyDaysUsers;
- }
-
- public function setDocument(document:Object, id:String = null):void
- {
- this.app = document as FlexWebsiteStatsViewer;
- app.addEventListener("viewChanged", viewChangeHandler);
- }
-
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/FlexWebsiteStatsViewer/src/main/flex/FlexWebsiteStatsViewer.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexWebsiteStatsViewer/src/main/flex/FlexWebsiteStatsViewer.mxml b/examples/flexjs/FlexWebsiteStatsViewer/src/main/flex/FlexWebsiteStatsViewer.mxml
new file mode 100644
index 0000000..9aafac9
--- /dev/null
+++ b/examples/flexjs/FlexWebsiteStatsViewer/src/main/flex/FlexWebsiteStatsViewer.mxml
@@ -0,0 +1,55 @@
+<?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.
+//
+////////////////////////////////////////////////////////////////////////////////
+-->
+<js:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
+ xmlns:local="*"
+ xmlns:models="models.*"
+ xmlns:controllers="controllers.*"
+ xmlns:js="library://ns.apache.org/flexjs/basic"
+ initialize="trace('app initialized')"
+ >
+ <js:valuesImpl>
+ <js:SimpleCSSValuesImpl />
+ </js:valuesImpl>
+ <js:initialView>
+ <local:StatsView />
+ </js:initialView>
+ <js:model>
+ <models:StatsModel />
+ </js:model>
+ <js:controller>
+ <controllers:StatsController />
+ </js:controller>
+ <js:beads>
+ <js:BrowserScroller />
+ <js:HTTPService id="service">
+ <js:LazyCollection id="collection">
+ <js:inputParser>
+ <controllers:GAJSONInputParser />
+ </js:inputParser>
+ <js:itemConverter>
+ <controllers:GAStatsDataJSONItemConverter />
+ </js:itemConverter>
+ </js:LazyCollection>
+ </js:HTTPService>
+ <js:CSSFontFaceBead />
+ </js:beads>
+</js:Application>
+
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/FlexWebsiteStatsViewer/src/main/flex/StatsView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexWebsiteStatsViewer/src/main/flex/StatsView.mxml b/examples/flexjs/FlexWebsiteStatsViewer/src/main/flex/StatsView.mxml
new file mode 100644
index 0000000..0636dda
--- /dev/null
+++ b/examples/flexjs/FlexWebsiteStatsViewer/src/main/flex/StatsView.mxml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<js:View xmlns:fx="http://ns.adobe.com/mxml/2009"
+ xmlns:js="library://ns.apache.org/flexjs/basic"
+ initComplete="testit()"
+ >
+ <fx:Script>
+ <![CDATA[
+ import org.apache.flex.events.MouseEvent;
+
+ private function testit():void {
+ trace();
+ }
+
+ private function onRefreshBtnClick(event:MouseEvent):void {
+ var e:Event = new Event("refresh", true);
+ dispatchEvent(e);
+ }
+ ]]>
+ </fx:Script>
+
+ <fx:Style>
+ @namespace js "library://ns.apache.org/flexjs/basic";
+ .AllCharts {
+ border-width: 0px;
+ padding-left: 2px;
+ padding-top: 10px;
+ padding-bottom: 2px;
+ padding-right: 10px;
+ }
+ </fx:Style>
+
+
+ <js:Label text="Number of users on flex.apache.org for last 30 days" x="10" y="10" />
+ <js:TextButton id="refreshButton" text="Refresh" x="300" y="10" click="onRefreshBtnClick(event)"/>
+
+ <js:ColumnChart id="columnChart" x="40" y="40" width="2000" height="768" className="AllCharts">
+ <js:beads>
+ <js:SimpleBinding
+ sourceID="applicationModel"
+ sourcePropertyName="lastThirtyDaysUsers"
+ destinationPropertyName="dataProvider"
+ eventName="lastThirtyDaysDataChanged"
+ />
+ <js:HorizontalCategoryAxisBead categoryField="date" />
+ <js:VerticalLinearAxisBead valueField="users" />
+ </js:beads>
+ <js:series>
+ <js:ColumnSeries yField="users">
+ <js:itemRenderer>
+ <fx:Component>
+ <js:BoxItemRenderer>
+ <js:fill>
+ <js:SolidColor color="#7CB5EC" alpha="1.0" />
+ </js:fill>
+ <!--<js:fill>
+ <js:LinearGradient rotation="90">
+ <js:entries>
+ <js:GradientEntry color="#7CB5EC" ratio="0" />
+ <js:GradientEntry color="#EFF7FF" ratio="0.5" />
+ </js:entries>
+ </js:LinearGradient>
+ </js:fill>-->
+ </js:BoxItemRenderer>
+ </fx:Component>
+ </js:itemRenderer>
+ </js:ColumnSeries>
+ </js:series>
+ </js:ColumnChart>
+</js:View>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/FlexWebsiteStatsViewer/src/main/flex/controllers/GAJSONInputParser.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexWebsiteStatsViewer/src/main/flex/controllers/GAJSONInputParser.as b/examples/flexjs/FlexWebsiteStatsViewer/src/main/flex/controllers/GAJSONInputParser.as
new file mode 100644
index 0000000..c443de5
--- /dev/null
+++ b/examples/flexjs/FlexWebsiteStatsViewer/src/main/flex/controllers/GAJSONInputParser.as
@@ -0,0 +1,38 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 controllers
+{
+ import org.apache.flex.collections.parsers.JSONInputParser;
+
+ public class GAJSONInputParser extends JSONInputParser
+ {
+ public function GAJSONInputParser()
+ {
+ }
+
+ override public function parseItems(s:String):Array
+ {
+ var rowsArrayStartIndex:int = s.indexOf('"rows": [', 0);
+ var rowsArrayEndIndex:int = s.indexOf("]]", rowsArrayStartIndex);
+ var rowsArrayString:String = s.slice(rowsArrayStartIndex + 9,rowsArrayEndIndex);
+ var rowsArray:Array = rowsArrayString.split("],");
+ return rowsArray;
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/FlexWebsiteStatsViewer/src/main/flex/controllers/GAStatsDataJSONItemConverter.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexWebsiteStatsViewer/src/main/flex/controllers/GAStatsDataJSONItemConverter.as b/examples/flexjs/FlexWebsiteStatsViewer/src/main/flex/controllers/GAStatsDataJSONItemConverter.as
new file mode 100644
index 0000000..608db8f
--- /dev/null
+++ b/examples/flexjs/FlexWebsiteStatsViewer/src/main/flex/controllers/GAStatsDataJSONItemConverter.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 controllers
+{
+ import org.apache.flex.collections.converters.JSONItemConverter;
+
+ public class GAStatsDataJSONItemConverter extends JSONItemConverter
+ {
+ public function GAStatsDataJSONItemConverter()
+ {
+ super();
+ }
+
+ override public function convertItem(data:String):Object
+ {
+ var obj:Object = {};
+ var a:Array = data.split(",");
+ var dateStr:String = a[0];
+ var usersStr:String = a[1];
+ obj.date = dateStr.substring(dateStr.indexOf("[") + 2 , dateStr.lastIndexOf('"'));
+ obj.users = parseInt(usersStr.substring(usersStr.indexOf(' "') + 2, usersStr.lastIndexOf('"')));
+ return obj;
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/FlexWebsiteStatsViewer/src/main/flex/controllers/StatsController.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexWebsiteStatsViewer/src/main/flex/controllers/StatsController.as b/examples/flexjs/FlexWebsiteStatsViewer/src/main/flex/controllers/StatsController.as
new file mode 100644
index 0000000..b4a054c
--- /dev/null
+++ b/examples/flexjs/FlexWebsiteStatsViewer/src/main/flex/controllers/StatsController.as
@@ -0,0 +1,77 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 controllers
+{
+
+ import models.StatsModel;
+
+ import org.apache.flex.core.Application;
+ import org.apache.flex.core.IDocument;
+ import org.apache.flex.events.Event;
+
+ public class StatsController implements IDocument
+ {
+ public function StatsController(a:Application = null)
+ {
+ if (a)
+ {
+ this.app = a as FlexWebsiteStatsViewer;
+ this.app.addEventListener("viewChanged", viewChangeHandler);
+ }
+ }
+
+ private var lastThirtyDaysUsers:String = 'https://apache-flex-dashboard.appspot.com/query?id=ahdzfmFwYWNoZS1mbGV4LWRhc2hib2FyZHIVCxIIQXBpUXVlcnkYgICAgICAgAoM&format=json'
+
+ private var app:FlexWebsiteStatsViewer;
+
+ private function viewChangeHandler(event:Event):void
+ {
+ app.initialView.addEventListener("refresh", buttonClickHandler);
+ }
+
+ private function buttonClickHandler(event:Event):void
+ {
+ app.service.url = lastThirtyDaysUsers;
+ app.service.send();
+ app.service.addEventListener("complete", completeHandler);
+ }
+
+ private function completeHandler(event:Event):void
+ {
+ var lastThirtyDaysUsers:Array = [];
+ if(app.collection)
+ {
+ for (var i:int = 0; i < app.collection.length; i++)
+ {
+ lastThirtyDaysUsers.push(app.collection.getItemAt(i))
+ }
+
+ }
+
+ StatsModel(app.model).lastThirtyDaysUsers = lastThirtyDaysUsers;
+ }
+
+ public function setDocument(document:Object, id:String = null):void
+ {
+ this.app = document as FlexWebsiteStatsViewer;
+ app.addEventListener("viewChanged", viewChangeHandler);
+ }
+
+ }
+}
\ No newline at end of file