http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9c7e00b1/examples/DataBindingTest/src/MyInitialView.mxml ---------------------------------------------------------------------- diff --git a/examples/DataBindingTest/src/MyInitialView.mxml b/examples/DataBindingTest/src/MyInitialView.mxml deleted file mode 100644 index 667254d..0000000 --- a/examples/DataBindingTest/src/MyInitialView.mxml +++ /dev/null @@ -1,144 +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:ViewBase xmlns:fx="http://ns.adobe.com/mxml/2009" - xmlns:js="library://ns.apache.org/flexjs/basic" - initComplete="initControls()"> - <fx:Script> - <![CDATA[ - import models.MyModel; - - import org.apache.flex.events.CustomEvent; - - private var _symbol:String; - - public function get symbol():String - { - return _symbol; - } - - public function get requestedField():String - { - return radio1.selectedValue as String; - } - - [Bindable] - public var fieldText:String; - - private function radioChanged(e:org.apache.flex.events.Event):void - { - dispatchEvent(new CustomEvent("radioClicked")); - fieldText = RadioButton(e.target).text; - } - - private function initControls():void - { - list.selectedItem = MyModel(applicationModel).stockSymbol; - radio1.selectedValue = MyModel(applicationModel).requestedField; - if (radio1.selected) - fieldText = radio1.text; - else if (radio2.selected) - fieldText = radio2.text; - else if (radio3.selected) - fieldText = radio3.text; - else if (radio4.selected) - fieldText = radio4.text; - - } - - private function setState():void - { - currentState = showAllData.selected ? "showAll" : "hideAll"; - } - ]]> - </fx:Script> - <fx:Style> - @namespace basic "library://ns.apache.org/flexjs/basic"; - - .output { - font-size: 20px; - } - - .topContainer { - padding: 10px; - - } - .leftSide { - vertical-align: top; - margin-right: 10px; - } - - .rightSide { - vertical-align: top; - margin-left: 10px; - padding-left: 10px; - } - - .quoteButton { - margin-top: 10px; - margin-bottom: 10px; - } - </fx:Style> - <js:states> - <js:State name="hideAll" /> - <js:State name="showAll" /> - </js:states> - <js:beads> - <js:ViewBaseDataBinding /> - </js:beads> - <js:Container x="0" y="0" className="topContainer" > - <js:beads> - <js:VerticalLayout /> - </js:beads> - <js:Label width="300" text="Enter Stock Symbol or choose from list:" /> - <js:Container> - <js:beads> - <js:HorizontalLayout /> - </js:beads> - <js:Container className="leftSide"> - <js:beads> - <js:VerticalLayout /> - </js:beads> - <js:TextInput id="symbolTI" text="{MyModel(applicationModel).stockSymbol}" /> - <js:TextButton text="Get Quote" className="quoteButton" - click="_symbol = symbolTI.text; dispatchEvent(new CustomEvent('buttonClicked'))" /> - <js:Label id="field" text="{fieldText}"/> - <js:Label className="output" height="24" text="{MyModel(applicationModel).responseText}" /> - </js:Container> - <js:Container className="rightSide"> - <js:beads> - <js:VerticalLayout /> - </js:beads> - <js:DropDownList id="list" width="100" - change="_symbol = list.selectedItem as String; dispatchEvent(new CustomEvent('listChanged'))" - dataProvider="{MyModel(applicationModel).strings}" /> - <js:RadioButton id="radio1" text="Price" value="Ask" groupName="group1" change="radioChanged(event)"/> - <js:RadioButton id="radio2" text="Change" value="Change" groupName="group1" change="radioChanged(event)"/> - <js:RadioButton id="radio3" text="Day's High" value="DaysHigh" groupName="group1" change="radioChanged(event)"/> - <js:RadioButton id="radio4" text="Day's Low" value="DaysLow" groupName="group1" change="radioChanged(event)"/> - <js:CheckBox id="showAllData" text="Show All Data" change="setState()" /> - </js:Container> - </js:Container> - <js:Label id="bindtest" text="{fieldText + ' expression binding'}" /> - <js:Label width="300" text.showAll="110" includeIn="showAll" /> - <js:TextArea id="ta" width="300" height="100" height.showAll="110" - includeIn="showAll" - text="{MyModel(applicationModel).allData}" /> - </js:Container> -</js:ViewBase>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9c7e00b1/examples/DataBindingTest/src/README.txt ---------------------------------------------------------------------- diff --git a/examples/DataBindingTest/src/README.txt b/examples/DataBindingTest/src/README.txt deleted file mode 100644 index afe521b..0000000 --- a/examples/DataBindingTest/src/README.txt +++ /dev/null @@ -1,52 +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. -// -//////////////////////////////////////////////////////////////////////////////// - -DESCRIPTION - -The DataBindingTest example shows a Flex application that can communicate with -a third-party data source (in this case, yahoo.finance) and display the values -returned using data binding. - -This Flex application may be run as a Flash SWF or cross-compiled (using Falcon JX) -into JavaScript and HTML and run without Flash. - -The DataBindingTest example also shows how the model-view-controller (MVC) pattern -can be used to separate the parts of the application. This is facilitated by -the use of FlexJS beads added to the main application that provide the -data connection (via HTTPService) and interacting with the rest of the application -via events. - -COMPONENTS and BEADS - -- Button -- CheckBox -- ComboBox -- Container -- Label -- RadioButton -- TextArea -- TextInput - -- Data binding: the text properties of TextArea and Label are linked with results -from the remote server calls. - -NOTES - -The cross-compilation to JavaScript often results in non-fatal warnings. Some of these warnings -should be addressed in future releases of the Falcon JX compiler. http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9c7e00b1/examples/DataBindingTest/src/StockDataJSONItemConverter.as ---------------------------------------------------------------------- diff --git a/examples/DataBindingTest/src/StockDataJSONItemConverter.as b/examples/DataBindingTest/src/StockDataJSONItemConverter.as deleted file mode 100644 index a39606b..0000000 --- a/examples/DataBindingTest/src/StockDataJSONItemConverter.as +++ /dev/null @@ -1,40 +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 -{ - import org.apache.flex.collections.converters.JSONItemConverter; - - public class StockDataJSONItemConverter extends JSONItemConverter - { - public function StockDataJSONItemConverter() - { - super(); - } - - override public function convertItem(data:String):Object - { - var obj:Object = super.convertItem(data); - if (obj["query"]["count"] == 0) - return "No Data"; - - obj = obj["query"]["results"]["quote"]; - return obj; - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9c7e00b1/examples/DataBindingTest/src/controllers/MyController.as ---------------------------------------------------------------------- diff --git a/examples/DataBindingTest/src/controllers/MyController.as b/examples/DataBindingTest/src/controllers/MyController.as deleted file mode 100644 index 83c2cd5..0000000 --- a/examples/DataBindingTest/src/controllers/MyController.as +++ /dev/null @@ -1,81 +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.events.Event; - - import org.apache.flex.core.Application; - import org.apache.flex.core.IDocument; - - import models.MyModel; - - public class MyController implements IDocument - { - public function MyController(app:Application = null) - { - if (app) - { - this.app = app as DataBindingTest; - app.addEventListener("viewChanged", viewChangeHandler); - } - } - - private var queryBegin:String = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22"; - private var queryEnd:String = "%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json"; - private var app:DataBindingTest; - - private function viewChangeHandler(event:Event):void - { - app.initialView.addEventListener("buttonClicked", buttonClickHandler); - app.initialView.addEventListener("radioClicked", radioClickHandler); - app.initialView.addEventListener("listChanged", listChangedHandler); - } - - private function buttonClickHandler(event:Event):void - { - var sym:String = MyInitialView(app.initialView).symbol; - app.service.url = queryBegin + sym + queryEnd; - app.service.send(); - app.service.addEventListener("complete", completeHandler); - } - - private function radioClickHandler(event:Event):void - { - var field:String = MyInitialView(app.initialView).requestedField; - MyModel(app.model).requestedField = field; - } - - private function completeHandler(event:Event):void - { - MyModel(app.model).responseData = app.collection.getItemAt(0); - } - - private function listChangedHandler(event:Event):void - { - MyModel(app.model).stockSymbol = MyInitialView(app.initialView).symbol; - } - - public function setDocument(document:Object, id:String = null):void - { - this.app = document as DataBindingTest; - app.addEventListener("viewChanged", viewChangeHandler); - } - - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9c7e00b1/examples/DataBindingTest/src/models/MyModel.as ---------------------------------------------------------------------- diff --git a/examples/DataBindingTest/src/models/MyModel.as b/examples/DataBindingTest/src/models/MyModel.as deleted file mode 100644 index 5a16d02..0000000 --- a/examples/DataBindingTest/src/models/MyModel.as +++ /dev/null @@ -1,125 +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 models -{ - import org.apache.flex.events.Event; - import org.apache.flex.events.EventDispatcher; - - public class MyModel extends EventDispatcher - { - public function MyModel() - { - } - - private var _requestedField:String = "Ask"; - - [Bindable("requestedFieldChanged")] - public function get requestedField():String - { - return _requestedField; - } - - public function set requestedField(value:String):void - { - if (value != _requestedField) - { - _requestedField = value; - dispatchEvent(new Event("requestedFieldChanged")); - if (_responseData) - dispatchEvent(new Event("responseTextChanged")); - } - } - - [Bindable("responseTextChanged")] - public function get responseText():String - { - if (_responseData == null) - return ""; - if (_responseData == "No Data") - return _responseData as String; - var s:String = _responseData[_requestedField]; - if (s == null) - { - if (_requestedField == "Ask") - s = _responseData["Bid"]; - } - return s; - } - - private var _responseData:Object; - - [Bindable("responseDataChanged")] - public function get responseData():Object - { - return _responseData; - } - - public function set responseData(value:Object):void - { - if (value != _responseData) - { - _responseData = value; - _allData = ""; - dispatchEvent(new Event("responseDataChanged")); - dispatchEvent(new Event("responseTextChanged")); - } - } - - private var _allData:String = ""; - - [Bindable("responseDataChanged")] - public function get allData():String - { - if (_allData == "" && _responseData != null) - { - for (var p:String in _responseData) - { - _allData += p + ": " + _responseData[p] + "\n"; - } - } - return _allData; - } - - - private var _stockSymbol:String; - - [Bindable("stockSymbolChanged")] - public function get stockSymbol():String - { - return _stockSymbol; - } - - public function set stockSymbol(value:String):void - { - if (value != _stockSymbol) - { - _stockSymbol = value; - dispatchEvent(new Event("stockSymbolChanged")); - } - } - - private var _strings:Array = ["AAPL", "ADBE", "GOOG", "MSFT", "YHOO"]; - [Bindable("__NoChangeEvent__")] - public function get strings():Array - { - return _strings; - } - - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9c7e00b1/examples/DataBindingTest_Flat/build.xml ---------------------------------------------------------------------- diff --git a/examples/DataBindingTest_Flat/build.xml b/examples/DataBindingTest_Flat/build.xml deleted file mode 100644 index ab55f2f..0000000 --- a/examples/DataBindingTest_Flat/build.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - ---> - - -<project name="databindingtest_flat" default="main" basedir="."> - <property name="FLEXJS_HOME" location="../.."/> - <property name="example" value="DataBindingTest" /> - <property name="theme_arg" value="-theme=${FLEXJS_HOME}/frameworks/libs/Flat.swc" /> - - <property file="${FLEXJS_HOME}/env.properties"/> - <property environment="env"/> - <property file="${FLEXJS_HOME}/build.properties"/> - <property name="FLEX_HOME" value="${FLEXJS_HOME}"/> - <property name="FALCON_HOME" value="${env.FALCON_HOME}"/> - <property name="FALCONJX_HOME" value="${env.FALCONJX_HOME}"/> - <property name="GOOG_HOME" value="${env.GOOG_HOME}"/> - - <include file="${basedir}/../build_example.xml" /> - - <target name="main" depends="clean,build_example.compile,build_example.compilejs" description="Clean build of ${example}"> - </target> - - <target name="clean"> - <delete dir="${basedir}/bin" failonerror="false" /> - <delete dir="${basedir}/bin-debug" failonerror="false" /> - <delete dir="${basedir}/bin-release" failonerror="false" /> - </target> - - - -</project> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9c7e00b1/examples/DataBindingTest_Flat/src/DataBindingTest.mxml ---------------------------------------------------------------------- diff --git a/examples/DataBindingTest_Flat/src/DataBindingTest.mxml b/examples/DataBindingTest_Flat/src/DataBindingTest.mxml deleted file mode 100644 index 751e427..0000000 --- a/examples/DataBindingTest_Flat/src/DataBindingTest.mxml +++ /dev/null @@ -1,53 +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:js="library://ns.apache.org/flexjs/basic" - xmlns:models="models.*" - xmlns:controllers="controllers.*" - initialize="MyModel(model).stockSymbol='ADBE'" - > - <js:valuesImpl> - <js:SimpleCSSValuesImpl /> - </js:valuesImpl> - <js:initialView> - <local:MyInitialView /> - </js:initialView> - <js:model> - <models:MyModel /> - </js:model> - <js:controller> - <controllers:MyController /> - </js:controller> - <js:beads> - <js:HTTPService id="service"> - <js:LazyCollection id="collection"> - <js:inputParser> - <js:JSONInputParser /> - </js:inputParser> - <js:itemConverter> - <local:StockDataJSONItemConverter /> - </js:itemConverter> - </js:LazyCollection> - </js:HTTPService> - <js:CSSFontFaceBead /> - <js:ViewSourceContextMenuOption /> - </js:beads> -</js:Application> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9c7e00b1/examples/DataBindingTest_Flat/src/MyInitialView.mxml ---------------------------------------------------------------------- diff --git a/examples/DataBindingTest_Flat/src/MyInitialView.mxml b/examples/DataBindingTest_Flat/src/MyInitialView.mxml deleted file mode 100644 index b153ba5..0000000 --- a/examples/DataBindingTest_Flat/src/MyInitialView.mxml +++ /dev/null @@ -1,144 +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:ViewBase xmlns:fx="http://ns.adobe.com/mxml/2009" - xmlns:js="library://ns.apache.org/flexjs/flat" - initComplete="initControls()"> - <fx:Script> - <![CDATA[ - import models.MyModel; - - import org.apache.flex.events.CustomEvent; - - private var _symbol:String; - - public function get symbol():String - { - return _symbol; - } - - public function get requestedField():String - { - return radio1.selectedValue as String; - } - - [Bindable] - public var fieldText:String; - - private function radioChanged(e:org.apache.flex.events.Event):void - { - dispatchEvent(new CustomEvent("radioClicked")); - fieldText = RadioButton(e.target).text; - } - - private function initControls():void - { - list.selectedItem = MyModel(applicationModel).stockSymbol; - radio1.selectedValue = MyModel(applicationModel).requestedField; - if (radio1.selected) - fieldText = radio1.text; - else if (radio2.selected) - fieldText = radio2.text; - else if (radio3.selected) - fieldText = radio3.text; - else if (radio4.selected) - fieldText = radio4.text; - - } - - private function setState():void - { - currentState = showAllData.selected ? "showAll" : "hideAll"; - } - ]]> - </fx:Script> - <fx:Style> - @namespace basic "library://ns.apache.org/flexjs/basic"; - - .output { - font-size: 20px; - } - - .topContainer { - padding: 10px; - - } - .leftSide { - vertical-align: top; - margin-right: 10px; - } - - .rightSide { - vertical-align: top; - margin-left: 10px; - padding-left: 10px; - } - - .quoteButton { - margin-top: 10px; - margin-bottom: 10px; - } - </fx:Style> - <js:states> - <js:State name="hideAll" /> - <js:State name="showAll" /> - </js:states> - <js:beads> - <js:ViewBaseDataBinding /> - </js:beads> - <js:Container x="0" y="0" className="topContainer" > - <js:beads> - <js:VerticalLayout /> - </js:beads> - <js:Label width="300" text="Enter Stock Symbol or choose from list:" /> - <js:Container> - <js:beads> - <js:HorizontalLayout /> - </js:beads> - <js:Container className="leftSide"> - <js:beads> - <js:VerticalLayout /> - </js:beads> - <js:TextInput id="symbolTI" text="{MyModel(applicationModel).stockSymbol}" /> - <js:TextButton text="Get Quote" className="quoteButton" - click="_symbol = symbolTI.text; dispatchEvent(new CustomEvent('buttonClicked'))" /> - <js:Label id="field" text="{fieldText}"/> - <js:Label className="output" height="24" text="{MyModel(applicationModel).responseText}" /> - </js:Container> - <js:Container className="rightSide"> - <js:beads> - <js:VerticalLayout /> - </js:beads> - <js:DropDownList id="list" width="100" - change="_symbol = list.selectedItem as String; dispatchEvent(new CustomEvent('listChanged'))" - dataProvider="{MyModel(applicationModel).strings}" /> - <js:RadioButton id="radio1" text="Price" value="Ask" groupName="group1" change="radioChanged(event)"/> - <js:RadioButton id="radio2" text="Change" value="Change" groupName="group1" change="radioChanged(event)"/> - <js:RadioButton id="radio3" text="Day's High" value="DaysHigh" groupName="group1" change="radioChanged(event)"/> - <js:RadioButton id="radio4" text="Day's Low" value="DaysLow" groupName="group1" change="radioChanged(event)"/> - <js:CheckBox id="showAllData" text="Show All Data" change="setState()" /> - </js:Container> - </js:Container> - <js:Label id="bindtest" text="{fieldText + ' expression binding'}" /> - <js:Label width="300" text.showAll="110" includeIn="showAll" /> - <js:TextArea id="ta" width="300" height="100" height.showAll="110" - includeIn="showAll" - text="{MyModel(applicationModel).allData}" /> - </js:Container> -</js:ViewBase> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9c7e00b1/examples/DataBindingTest_Flat/src/README.txt ---------------------------------------------------------------------- diff --git a/examples/DataBindingTest_Flat/src/README.txt b/examples/DataBindingTest_Flat/src/README.txt deleted file mode 100644 index afe521b..0000000 --- a/examples/DataBindingTest_Flat/src/README.txt +++ /dev/null @@ -1,52 +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. -// -//////////////////////////////////////////////////////////////////////////////// - -DESCRIPTION - -The DataBindingTest example shows a Flex application that can communicate with -a third-party data source (in this case, yahoo.finance) and display the values -returned using data binding. - -This Flex application may be run as a Flash SWF or cross-compiled (using Falcon JX) -into JavaScript and HTML and run without Flash. - -The DataBindingTest example also shows how the model-view-controller (MVC) pattern -can be used to separate the parts of the application. This is facilitated by -the use of FlexJS beads added to the main application that provide the -data connection (via HTTPService) and interacting with the rest of the application -via events. - -COMPONENTS and BEADS - -- Button -- CheckBox -- ComboBox -- Container -- Label -- RadioButton -- TextArea -- TextInput - -- Data binding: the text properties of TextArea and Label are linked with results -from the remote server calls. - -NOTES - -The cross-compilation to JavaScript often results in non-fatal warnings. Some of these warnings -should be addressed in future releases of the Falcon JX compiler. http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9c7e00b1/examples/DataBindingTest_Flat/src/StockDataJSONItemConverter.as ---------------------------------------------------------------------- diff --git a/examples/DataBindingTest_Flat/src/StockDataJSONItemConverter.as b/examples/DataBindingTest_Flat/src/StockDataJSONItemConverter.as deleted file mode 100644 index a39606b..0000000 --- a/examples/DataBindingTest_Flat/src/StockDataJSONItemConverter.as +++ /dev/null @@ -1,40 +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 -{ - import org.apache.flex.collections.converters.JSONItemConverter; - - public class StockDataJSONItemConverter extends JSONItemConverter - { - public function StockDataJSONItemConverter() - { - super(); - } - - override public function convertItem(data:String):Object - { - var obj:Object = super.convertItem(data); - if (obj["query"]["count"] == 0) - return "No Data"; - - obj = obj["query"]["results"]["quote"]; - return obj; - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9c7e00b1/examples/DataBindingTest_Flat/src/controllers/MyController.as ---------------------------------------------------------------------- diff --git a/examples/DataBindingTest_Flat/src/controllers/MyController.as b/examples/DataBindingTest_Flat/src/controllers/MyController.as deleted file mode 100644 index 83c2cd5..0000000 --- a/examples/DataBindingTest_Flat/src/controllers/MyController.as +++ /dev/null @@ -1,81 +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.events.Event; - - import org.apache.flex.core.Application; - import org.apache.flex.core.IDocument; - - import models.MyModel; - - public class MyController implements IDocument - { - public function MyController(app:Application = null) - { - if (app) - { - this.app = app as DataBindingTest; - app.addEventListener("viewChanged", viewChangeHandler); - } - } - - private var queryBegin:String = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22"; - private var queryEnd:String = "%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json"; - private var app:DataBindingTest; - - private function viewChangeHandler(event:Event):void - { - app.initialView.addEventListener("buttonClicked", buttonClickHandler); - app.initialView.addEventListener("radioClicked", radioClickHandler); - app.initialView.addEventListener("listChanged", listChangedHandler); - } - - private function buttonClickHandler(event:Event):void - { - var sym:String = MyInitialView(app.initialView).symbol; - app.service.url = queryBegin + sym + queryEnd; - app.service.send(); - app.service.addEventListener("complete", completeHandler); - } - - private function radioClickHandler(event:Event):void - { - var field:String = MyInitialView(app.initialView).requestedField; - MyModel(app.model).requestedField = field; - } - - private function completeHandler(event:Event):void - { - MyModel(app.model).responseData = app.collection.getItemAt(0); - } - - private function listChangedHandler(event:Event):void - { - MyModel(app.model).stockSymbol = MyInitialView(app.initialView).symbol; - } - - public function setDocument(document:Object, id:String = null):void - { - this.app = document as DataBindingTest; - app.addEventListener("viewChanged", viewChangeHandler); - } - - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9c7e00b1/examples/DataBindingTest_Flat/src/models/MyModel.as ---------------------------------------------------------------------- diff --git a/examples/DataBindingTest_Flat/src/models/MyModel.as b/examples/DataBindingTest_Flat/src/models/MyModel.as deleted file mode 100644 index 5a16d02..0000000 --- a/examples/DataBindingTest_Flat/src/models/MyModel.as +++ /dev/null @@ -1,125 +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 models -{ - import org.apache.flex.events.Event; - import org.apache.flex.events.EventDispatcher; - - public class MyModel extends EventDispatcher - { - public function MyModel() - { - } - - private var _requestedField:String = "Ask"; - - [Bindable("requestedFieldChanged")] - public function get requestedField():String - { - return _requestedField; - } - - public function set requestedField(value:String):void - { - if (value != _requestedField) - { - _requestedField = value; - dispatchEvent(new Event("requestedFieldChanged")); - if (_responseData) - dispatchEvent(new Event("responseTextChanged")); - } - } - - [Bindable("responseTextChanged")] - public function get responseText():String - { - if (_responseData == null) - return ""; - if (_responseData == "No Data") - return _responseData as String; - var s:String = _responseData[_requestedField]; - if (s == null) - { - if (_requestedField == "Ask") - s = _responseData["Bid"]; - } - return s; - } - - private var _responseData:Object; - - [Bindable("responseDataChanged")] - public function get responseData():Object - { - return _responseData; - } - - public function set responseData(value:Object):void - { - if (value != _responseData) - { - _responseData = value; - _allData = ""; - dispatchEvent(new Event("responseDataChanged")); - dispatchEvent(new Event("responseTextChanged")); - } - } - - private var _allData:String = ""; - - [Bindable("responseDataChanged")] - public function get allData():String - { - if (_allData == "" && _responseData != null) - { - for (var p:String in _responseData) - { - _allData += p + ": " + _responseData[p] + "\n"; - } - } - return _allData; - } - - - private var _stockSymbol:String; - - [Bindable("stockSymbolChanged")] - public function get stockSymbol():String - { - return _stockSymbol; - } - - public function set stockSymbol(value:String):void - { - if (value != _stockSymbol) - { - _stockSymbol = value; - dispatchEvent(new Event("stockSymbolChanged")); - } - } - - private var _strings:Array = ["AAPL", "ADBE", "GOOG", "MSFT", "YHOO"]; - [Bindable("__NoChangeEvent__")] - public function get strings():Array - { - return _strings; - } - - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9c7e00b1/examples/DataBindingTest_as/build.xml ---------------------------------------------------------------------- diff --git a/examples/DataBindingTest_as/build.xml b/examples/DataBindingTest_as/build.xml deleted file mode 100644 index 3a04dfa..0000000 --- a/examples/DataBindingTest_as/build.xml +++ /dev/null @@ -1,47 +0,0 @@ -<?xml version="1.0"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - ---> - - -<project name="databindingtest_as" default="main" basedir="."> - <property name="FLEXJS_HOME" location="../.."/> - <property name="example" value="DataBindingTest" /> - - <property file="${FLEXJS_HOME}/env.properties"/> - <property environment="env"/> - <property file="${FLEXJS_HOME}/build.properties"/> - <property name="FLEX_HOME" value="${FLEXJS_HOME}"/> - <property name="FALCON_HOME" value="${env.FALCON_HOME}"/> - <property name="FALCONJX_HOME" value="${env.FALCONJX_HOME}"/> - <property name="GOOG_HOME" value="${env.GOOG_HOME}"/> - - <include file="${basedir}/../build_example.xml" /> - - <target name="main" depends="clean,build_example.compileas,build_example.compileasjs" description="Clean build of ${example}"> - </target> - - <target name="clean"> - <delete dir="${basedir}/bin" failonerror="false" /> - <delete dir="${basedir}/bin-debug" failonerror="false" /> - <delete dir="${basedir}/bin-release" failonerror="false" /> - </target> - - - -</project> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9c7e00b1/examples/DataBindingTest_as/src/DataBindingTest.as ---------------------------------------------------------------------- diff --git a/examples/DataBindingTest_as/src/DataBindingTest.as b/examples/DataBindingTest_as/src/DataBindingTest.as deleted file mode 100644 index 56d1a0e..0000000 --- a/examples/DataBindingTest_as/src/DataBindingTest.as +++ /dev/null @@ -1,257 +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 -{ - -import org.apache.flex.core.Application; -import org.apache.flex.core.ItemRendererClassFactory; -import org.apache.flex.core.SimpleCSSValuesImpl; -import org.apache.flex.events.Event; -import org.apache.flex.html.beads.CSSButtonView; -import org.apache.flex.html.beads.CSSTextButtonView; -import org.apache.flex.html.beads.CheckBoxView; -import org.apache.flex.html.beads.ContainerView; -import org.apache.flex.html.beads.DataItemRendererFactoryForArrayData; -import org.apache.flex.html.beads.DropDownListView; -import org.apache.flex.html.beads.ListView; -import org.apache.flex.html.beads.RadioButtonView; -import org.apache.flex.html.beads.SingleLineBorderBead; -import org.apache.flex.html.beads.SolidBackgroundBead; -import org.apache.flex.html.beads.TextAreaView; -import org.apache.flex.html.beads.TextButtonMeasurementBead; -import org.apache.flex.html.beads.TextFieldLabelMeasurementBead; -import org.apache.flex.html.beads.TextFieldView; -import org.apache.flex.html.beads.TextInputWithBorderView; -import org.apache.flex.html.beads.TextItemRendererFactoryForArrayData; -import org.apache.flex.html.beads.controllers.DropDownListController; -import org.apache.flex.html.beads.controllers.ItemRendererMouseController; -import org.apache.flex.html.beads.controllers.EditableTextKeyboardController; -import org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController; -import org.apache.flex.html.beads.layouts.VerticalScrollingLayout; -import org.apache.flex.html.beads.models.ArraySelectionModel; -import org.apache.flex.html.beads.models.SingleLineBorderModel; -import org.apache.flex.html.beads.models.TextModel; -import org.apache.flex.html.beads.models.ToggleButtonModel; -import org.apache.flex.html.beads.models.ValueToggleButtonModel; -import org.apache.flex.html.supportClasses.DropDownListList; -import org.apache.flex.html.supportClasses.DataGroup; -import org.apache.flex.html.supportClasses.StringItemRenderer; -import org.apache.flex.net.HTTPService; -import org.apache.flex.collections.parsers.JSONInputParser; -import org.apache.flex.collections.LazyCollection; -import org.apache.flex.utils.ViewSourceContextMenuOption; - -import models.MyModel; -import controllers.MyController; - -public class DataBindingTest extends Application -{ - - public function DataBindingTest() - { - addEventListener("initialize", initializeHandler); - var vi:SimpleCSSValuesImpl = new SimpleCSSValuesImpl(); - setupStyles(vi); - valuesImpl = vi; - initialView = new MyInitialView(); - model = new MyModel(); - controller = new MyController(this); - service = new HTTPService(); - collection = new LazyCollection(); - collection.inputParser = new JSONInputParser(); - collection.itemConverter = new StockDataJSONItemConverter(); - service.addBead(collection); - addBead(service); - addBead(new ViewSourceContextMenuOption()); - } - - public var service:HTTPService; - public var collection:LazyCollection; - - private function initializeHandler(event:Event):void - { - MyModel(model).stockSymbol="ADBE"; - } - - private function setupStyles(vi:SimpleCSSValuesImpl):void - { - var viv:Object = vi.values = {}; - viv["global"] = - { - fontFamily: "Arial", - fontSize: 12 - }; - - var o:Object; - - o = viv[makeDefinitionName("org.apache.flex.html::Container")] = - { - - iBeadView: ContainerView - }; - - CONFIG::as_only { - o.iBackgroundBead = SolidBackgroundBead; - o.iBorderBead = SingleLineBorderBead; - } - - viv[makeDefinitionName("org.apache.flex.html::List")] = - { - iBeadModel: ArraySelectionModel, - iBeadView: ListView, - iBeadController: ListSingleSelectionMouseController, - iBeadLayout: VerticalScrollingLayout, - iDataGroup: DataGroup, - iDataProviderItemRendererMapper: DataItemRendererFactoryForArrayData, - iItemRendererClassFactory: ItemRendererClassFactory, - iItemRenderer: StringItemRenderer - }; - - o = viv[makeDefinitionName("org.apache.flex.html::Button")] = - { - backgroundColor: 0xd8d8d8, - border: [1, "solid", 0x000000], - padding: 4 - }; - CONFIG::as_only { - o.iBeadView = CSSButtonView; - } - - viv[makeDefinitionName("org.apache.flex.html::Button:hover")] = - { - backgroundColor: 0x9fa0a1, - border: [1, "solid", 0x000000], - padding: 4 - }; - - viv[makeDefinitionName("org.apache.flex.html::Button:active")] = - { - backgroundColor: 0x929496, - border: [1, "solid", 0x000000], - padding: 4 - }; - - CONFIG::as_only { - viv["org.apache.flex.html::CheckBox"] = - { - iBeadModel: ToggleButtonModel, - iBeadView: CheckBoxView - }; - - viv["org.apache.flex.html::DropDownList"] = - { - iBeadModel: ArraySelectionModel, - iBeadView: DropDownListView, - iBeadController: DropDownListController, - iPopUp: DropDownListList - }; - - viv["org.apache.flex.html.supportClasses::DropDownListList"] = - { - iBeadModel: ArraySelectionModel, - iDataProviderItemRendererMapper: TextItemRendererFactoryForArrayData, - iItemRendererClassFactory: ItemRendererClassFactory, - iItemRenderer: StringItemRenderer - }; - - viv["org.apache.flex.html::Label"] = - { - iBeadModel: TextModel, - iBeadView: TextFieldView, - iMeasurementBead: TextFieldLabelMeasurementBead - }; - - viv["org.apache.flex.html::List"] = - { - iBorderBead: SingleLineBorderBead, - iBorderModel: SingleLineBorderModel - }; - - viv["org.apache.flex.html::RadioButton"] = - { - iBeadModel: ValueToggleButtonModel, - iBeadView: RadioButtonView - }; - - viv["org.apache.flex.html::TextArea"] = - { - iBeadModel: TextModel, - iBeadView: TextAreaView, - iBeadController: EditableTextKeyboardController, - iBorderBead: SingleLineBorderBead, - iBorderModel: SingleLineBorderModel, - width: 135, - height: 20 - }; - - viv["org.apache.flex.html::TextButton"] = - { - iBeadModel: TextModel, - iBeadView: CSSTextButtonView, - iMeasurementBead: TextButtonMeasurementBead - }; - - viv["org.apache.flex.html::TextInput"] = - { - iBeadModel: TextModel, - iBeadView: TextInputWithBorderView, - iBeadController: EditableTextKeyboardController, - iBorderBead: SingleLineBorderBead, - iBorderModel: SingleLineBorderModel, - width: 135, - height: 20 - }; - - viv["org.apache.flex.html::ToggleTextButton"] = - { - iBeadModel: ToggleButtonModel, - iBeadView: CSSTextButtonView - }; - - viv["org.apache.flex.html::SimpleList"] = - { - iBeadModel: ArraySelectionModel, - iBeadView: ListView, - iBeadController: ListSingleSelectionMouseController, - iBeadLayout: VerticalScrollingLayout, - iDataGroup: DataGroup, - iDataProviderItemRendererMapper: TextItemRendererFactoryForArrayData, - iItemRendererClassFactory: ItemRendererClassFactory, - iItemRenderer: StringItemRenderer - } - - viv["org.apache.flex.html.supportClasses::StringItemRenderer"] = - { - iBeadController: ItemRendererMouseController, - height: 16 - } - } - } - - private function makeDefinitionName(s:String):String - { - CONFIG::js_only { - s = s.replace(/\./g, "_"); - s = s.replace("::", "_"); - } - return s; - } -} - -} http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9c7e00b1/examples/DataBindingTest_as/src/MyInitialView.as ---------------------------------------------------------------------- diff --git a/examples/DataBindingTest_as/src/MyInitialView.as b/examples/DataBindingTest_as/src/MyInitialView.as deleted file mode 100644 index 1c31b58..0000000 --- a/examples/DataBindingTest_as/src/MyInitialView.as +++ /dev/null @@ -1,283 +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 -{ - -//import mx.states.State; - -import models.MyModel; - -import org.apache.flex.binding.ConstantBinding; -import org.apache.flex.binding.SimpleBinding; -import org.apache.flex.core.SimpleCSSValuesImpl; -import org.apache.flex.core.ValuesManager; -import org.apache.flex.core.ViewBase; -import org.apache.flex.events.CustomEvent; -import org.apache.flex.events.Event; -import org.apache.flex.html.CheckBox; -import org.apache.flex.html.Container; -import org.apache.flex.html.DropDownList; -import org.apache.flex.html.Label; -import org.apache.flex.html.RadioButton; -import org.apache.flex.html.TextArea; -import org.apache.flex.html.TextButton; -import org.apache.flex.html.TextInput; -import org.apache.flex.html.beads.layouts.HorizontalLayout; -import org.apache.flex.html.beads.layouts.VerticalLayout; - -public class MyInitialView extends ViewBase -{ - - public function MyInitialView() - { - addEventListener("initComplete", initCompleteHandler); - /* - var statesArray = []; - var state:State = new mx.states.State(); - state.name = "hideAll"; - statesArray.push(state); - state = new mx.states.State(); - state.name = "showAll"; - statesArray.push(state); - states = statesArray; - */ - var vi:SimpleCSSValuesImpl = ValuesManager.valuesImpl as SimpleCSSValuesImpl; - var viv:Object = vi.values; - viv[".output"]= { - fontSize: 20 - }; - - viv[".topContainer"] = { - padding: 10 - }; - - viv[".leftSide"] = { - verticalAlign: "top", - marginRight: 10 - } - - viv[".rightSide"] = { - verticalAlign: "top", - marginLeft: 10, - paddingLeft: 10 - } - - viv[".quoteButton"] = { - marginTop: 10, - marginBottom: 10 - } - - } - - private function initCompleteHandler(event:Event):void - { - initControls(); - } - - private var _symbol:String; - - public function get symbol():String - { - return _symbol; - } - - public function get requestedField():String - { - return radio1.selectedValue as String; - } - - [Bindable] - public var fieldText:String; - - private function radioChanged(e:org.apache.flex.events.Event):void - { - dispatchEvent(new CustomEvent("radioClicked")); - fieldText = RadioButton(e.target).text; - } - - private function initControls():void - { - list.selectedItem = MyModel(applicationModel).stockSymbol; - radio1.selectedValue = MyModel(applicationModel).requestedField; - if (radio1.selected) - fieldText = radio1.text; - else if (radio2.selected) - fieldText = radio2.text; - else if (radio3.selected) - fieldText = radio3.text; - else if (radio4.selected) - fieldText = radio4.text; - - } - - private function setState():void - { - currentState = showAllData.selected ? "showAll" : "hideAll"; - } - - override public function get MXMLDescriptor():Array - { - var c:Container = new Container(); - c.x = 0; - c.y = 0; - c.className = "topContainer"; - c.addBead(new VerticalLayout()); - addElement(c); - var l:Label = new Label(); - l.width = 300; - l.text = "Enter Stock Symbol or choose from list:"; - c.addElement(l); - var c2:Container = new Container(); - c2.addBead(new HorizontalLayout()); - c.addElement(c2); - var c3:Container = new Container(); - c3.className = "leftSide"; - c3.addBead(new VerticalLayout()); - c2.addElement(c3); - symbolTI = new TextInput(); - var sb:SimpleBinding = new SimpleBinding(); - sb.sourceID = "applicationModel"; - sb.sourcePropertyName = "stockSymbol"; - sb.eventName = "stockSymbolChanged"; - sb.destination = symbolTI; - sb.destinationPropertyName = "text"; - sb.setDocument(this); - addBead(sb); - c3.addElement(symbolTI); - var tb:TextButton = new TextButton(); - tb.text = "Get Quote"; - tb.className = "quoteButton"; - tb.addEventListener("click", tb_clickHandler); - c3.addElement(tb); - field = new Label(); - sb = new SimpleBinding(); - sb.sourcePropertyName = "fieldText"; - sb.eventName = "valueChange"; - sb.destination = field; - sb.destinationPropertyName = "text"; - sb.setDocument(this); - addBead(sb); - c3.addElement(field); - output = new Label(); - output.className = "output"; - output.height=24; - sb = new SimpleBinding(); - sb.sourceID = "applicationModel"; - sb.sourcePropertyName = "responseText"; - sb.eventName = "responseTextChanged"; - sb.destination = output; - sb.destinationPropertyName = "text"; - sb.setDocument(this); - addBead(sb); - c3.addElement(output); - c3.childrenAdded(); - - c3 = new Container(); - c3.className="rightSide"; - c3.addBead(new VerticalLayout()); - c2.addElement(c3); - list = new DropDownList(); - list.width=100; - list.height=17; - var cb:ConstantBinding = new ConstantBinding(); - cb.sourceID = "applicationModel"; - cb.sourcePropertyName = "strings"; - cb.destination = list; - cb.destinationPropertyName = "dataProvider"; - cb.setDocument(this); - addBead(cb); - list.addEventListener("change", list_changeHandler); - c3.addElement(list); - radio1 = new RadioButton(); - radio1.text = "Price"; - radio1.value = "Ask"; - radio1.groupName = "group1"; - radio1.addEventListener("change", radioChanged); - c3.addElement(radio1); - radio2 = new RadioButton(); - radio2.text = "Change"; - radio2.value = "Change"; - radio2.groupName = "group1"; - radio2.addEventListener("change", radioChanged); - c3.addElement(radio2); - radio3 = new RadioButton(); - radio3.text = "Day's High"; - radio3.value = "DaysHight"; - radio3.groupName = "group1"; - radio3.addEventListener("change", radioChanged); - c3.addElement(radio3); - radio4 = new RadioButton(); - radio4.text = "Day's Low"; - radio4.value = "DaysLow"; - radio4.groupName = "group1"; - radio4.addEventListener("change", radioChanged); - c3.addElement(radio4); - showAllData = new CheckBox(); - showAllData.text = "Show All Data"; - showAllData.addEventListener("change", showAllData_changeHandler); - c3.addElement(showAllData); - c3.childrenAdded(); - ta = new TextArea(); - ta.width = 300; - ta.height = 100; - sb = new SimpleBinding(); - sb.sourceID = "applicationModel"; - sb.sourcePropertyName = "allData"; - sb.eventName = "responseDataChanged"; - sb.destination = ta; - sb.destinationPropertyName = "text"; - sb.setDocument(this); - addBead(sb); - c.addElement(ta); - c2.childrenAdded(); - c.childrenAdded(); - - return super.MXMLDescriptor; - - } - - public var symbolTI:TextInput; - public var output:Label; - public var field:Label; - public var list:DropDownList; - public var radio1:RadioButton; - public var radio2:RadioButton; - public var radio3:RadioButton; - public var radio4:RadioButton; - public var showAllData:CheckBox; - public var ta:TextArea; - - private function tb_clickHandler(event:Event):void - { - _symbol = symbolTI.text; - dispatchEvent(new CustomEvent('buttonClicked')); - } - - private function list_changeHandler(event:Event):void - { - _symbol = list.selectedItem as String; - dispatchEvent(new CustomEvent('listChanged')); - } - - private function showAllData_changeHandler(event:Event):void - { - setState(); - } -} -} http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9c7e00b1/examples/DataBindingTest_as/src/StockDataJSONItemConverter.as ---------------------------------------------------------------------- diff --git a/examples/DataBindingTest_as/src/StockDataJSONItemConverter.as b/examples/DataBindingTest_as/src/StockDataJSONItemConverter.as deleted file mode 100644 index a39606b..0000000 --- a/examples/DataBindingTest_as/src/StockDataJSONItemConverter.as +++ /dev/null @@ -1,40 +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 -{ - import org.apache.flex.collections.converters.JSONItemConverter; - - public class StockDataJSONItemConverter extends JSONItemConverter - { - public function StockDataJSONItemConverter() - { - super(); - } - - override public function convertItem(data:String):Object - { - var obj:Object = super.convertItem(data); - if (obj["query"]["count"] == 0) - return "No Data"; - - obj = obj["query"]["results"]["quote"]; - return obj; - } - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9c7e00b1/examples/DataBindingTest_as/src/controllers/MyController.as ---------------------------------------------------------------------- diff --git a/examples/DataBindingTest_as/src/controllers/MyController.as b/examples/DataBindingTest_as/src/controllers/MyController.as deleted file mode 100644 index 83c2cd5..0000000 --- a/examples/DataBindingTest_as/src/controllers/MyController.as +++ /dev/null @@ -1,81 +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.events.Event; - - import org.apache.flex.core.Application; - import org.apache.flex.core.IDocument; - - import models.MyModel; - - public class MyController implements IDocument - { - public function MyController(app:Application = null) - { - if (app) - { - this.app = app as DataBindingTest; - app.addEventListener("viewChanged", viewChangeHandler); - } - } - - private var queryBegin:String = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22"; - private var queryEnd:String = "%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json"; - private var app:DataBindingTest; - - private function viewChangeHandler(event:Event):void - { - app.initialView.addEventListener("buttonClicked", buttonClickHandler); - app.initialView.addEventListener("radioClicked", radioClickHandler); - app.initialView.addEventListener("listChanged", listChangedHandler); - } - - private function buttonClickHandler(event:Event):void - { - var sym:String = MyInitialView(app.initialView).symbol; - app.service.url = queryBegin + sym + queryEnd; - app.service.send(); - app.service.addEventListener("complete", completeHandler); - } - - private function radioClickHandler(event:Event):void - { - var field:String = MyInitialView(app.initialView).requestedField; - MyModel(app.model).requestedField = field; - } - - private function completeHandler(event:Event):void - { - MyModel(app.model).responseData = app.collection.getItemAt(0); - } - - private function listChangedHandler(event:Event):void - { - MyModel(app.model).stockSymbol = MyInitialView(app.initialView).symbol; - } - - public function setDocument(document:Object, id:String = null):void - { - this.app = document as DataBindingTest; - app.addEventListener("viewChanged", viewChangeHandler); - } - - } -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9c7e00b1/examples/DataBindingTest_as/src/models/MyModel.as ---------------------------------------------------------------------- diff --git a/examples/DataBindingTest_as/src/models/MyModel.as b/examples/DataBindingTest_as/src/models/MyModel.as deleted file mode 100644 index 4a17f22..0000000 --- a/examples/DataBindingTest_as/src/models/MyModel.as +++ /dev/null @@ -1,127 +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 models -{ - import org.apache.flex.events.Event; - import org.apache.flex.events.EventDispatcher; - - public class MyModel extends EventDispatcher - { - public function MyModel() - { - } - - private var _requestedField:String = "Ask"; - - [Bindable("requestedFieldChanged")] - public function get requestedField():String - { - return _requestedField; - } - - public function set requestedField(value:String):void - { - if (value != _requestedField) - { - _requestedField = value; - dispatchEvent(new Event("requestedFieldChanged")); - if (_responseData) - dispatchEvent(new Event("responseTextChanged")); - } - } - - private var _responseText:String; - - [Bindable("responseTextChanged")] - public function get responseText():String - { - if (_responseData == null) - return ""; - if (_responseData == "No Data") - return _responseData as String; - var s:String = _responseData[_requestedField]; - if (s == null) - { - if (_requestedField == "Ask") - s = _responseData["Bid"]; - } - return s; - } - - private var _responseData:Object; - - [Bindable("responseDataChanged")] - public function get responseData():Object - { - return _responseData; - } - - public function set responseData(value:Object):void - { - if (value != _responseData) - { - _responseData = value; - _allData = ""; - dispatchEvent(new Event("responseDataChanged")); - dispatchEvent(new Event("responseTextChanged")); - } - } - - private var _allData:String = ""; - - [Bindable("responseDataChanged")] - public function get allData():String - { - if (_allData == "" && _responseData != null) - { - for (var p:String in _responseData) - { - _allData += p + ": " + _responseData[p] + "\n"; - } - } - return _allData; - } - - - private var _stockSymbol:String; - - [Bindable("stockSymbolChanged")] - public function get stockSymbol():String - { - return _stockSymbol; - } - - public function set stockSymbol(value:String):void - { - if (value != _stockSymbol) - { - _stockSymbol = value; - dispatchEvent(new Event("stockSymbolChanged")); - } - } - - private var _strings:Array = ["AAPL", "ADBE", "GOOG", "MSFT", "YHOO"]; - [Bindable("__NoChangeEvent__")] - public function get strings():Array - { - return _strings; - } - - } -} \ No newline at end of file
