summaryrefslogtreecommitdiff
path: root/demos/address-book/protected/pages/flex/flex_address_book.mxml
diff options
context:
space:
mode:
authorwei <>2007-01-17 11:55:40 +0000
committerwei <>2007-01-17 11:55:40 +0000
commit912dc30b43330a3e99a3e1f947ff14de108a3701 (patch)
tree064a66120c95b043de9f9d56fb52d3e66bfe3e81 /demos/address-book/protected/pages/flex/flex_address_book.mxml
parent3dc598bc7c2604e24b9e0be1189d9d78b43737ea (diff)
Add address-book flex demo
Diffstat (limited to 'demos/address-book/protected/pages/flex/flex_address_book.mxml')
-rw-r--r--demos/address-book/protected/pages/flex/flex_address_book.mxml106
1 files changed, 106 insertions, 0 deletions
diff --git a/demos/address-book/protected/pages/flex/flex_address_book.mxml b/demos/address-book/protected/pages/flex/flex_address_book.mxml
new file mode 100644
index 00000000..d6db809a
--- /dev/null
+++ b/demos/address-book/protected/pages/flex/flex_address_book.mxml
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * @author Wei Zhuo <weizho[at]gmail[dot]com>
+ * @version $Id$
+ * @since 3.1
+-->
+<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
+ backgroundColor="white"
+ backgroundGradientAlphas="0"
+ backgroundGradientColors="0"
+ layout="vertical" creationComplete="initApp()">
+ <mx:states>
+ <mx:State name="details">
+ <mx:AddChild relativeTo="{hbox1}" position="lastChild">
+ <mx:Form>
+ <mx:FormItem label="Username:">
+ <mx:TextInput id="_username" text="{list1.selectedItem.username}"/>
+ </mx:FormItem>
+ <mx:FormItem label="Phone:">
+ <mx:TextInput id="_phone" text="{list1.selectedItem.phone}" />
+ <mx:Button id="saveButton" label="Save" click="doSave()" />
+ </mx:FormItem>
+ </mx:Form>
+ </mx:AddChild>
+ </mx:State>
+ </mx:states>
+
+ <mx:PhoneNumberValidator id="val1" source="{_phone}" property="text" />
+ <mx:StringValidator id="val2" source="{_username}" property="text"
+ minLength="3" maxLength="20" />
+
+ <mx:WebService id="addrSrv" fault="dataError(event)">
+ <mx:operation name="saveAddress" result="addrSrv.getAllAddress()" />
+ <mx:operation name="deleteAddress" result="addrSrv.getAllAddress()" />
+ </mx:WebService>
+
+ <mx:Script>
+ <![CDATA[
+ import mx.validators.Validator;
+ import mx.utils.ArrayUtil;
+ import mx.collections.ArrayCollection;
+ import mx.controls.Alert;
+ import mx.rpc.events.ResultEvent;
+ import mx.rpc.events.FaultEvent;
+
+ [Bindable]
+ private var addressList:ArrayCollection;
+
+ private function initApp():void
+ {
+ addrSrv.loadWSDL(getAddressBookWsdl());
+ addrSrv.getAllAddress();
+ }
+
+ private function getAddressBookWsdl():String
+ {
+ var appUrl:Object=application.parameters.wsdl;
+ if(appUrl!=null) // running in PRADO page
+ return appUrl.toString();
+ else // running in static html for debugging.
+ return "http://127.0.0.1/prado-trunk/demos/address-book/index.php?soap=address-book.wsdl";
+ }
+
+ private function dataError(event:FaultEvent):void
+ {
+ Alert.show(event.fault.faultString,"Data Communication Error");
+ }
+
+ private function doSave():void
+ {
+ if(Validator.validateAll([val1, val2]).length == 0)
+ {
+ var data:Object = new Object;
+ data.id = list1.selectedItem != null ? list1.selectedItem.id : -1;
+ data.username = _username.text;
+ data.phone = _phone.text;
+ addrSrv.saveAddress(data);
+ currentState='';
+ }
+ }
+
+ private function doDelete():void
+ {
+ addrSrv.deleteAddress(list1.selectedItem.id);
+ currentState='';
+ }
+ ]]>
+ </mx:Script>
+
+
+ <mx:Panel layout="vertical" title="Prado Address Book" id="panel1" resizeEffect="Resize">
+ <mx:HBox id="hbox1">
+ <mx:DataGrid id="list1" dataProvider="{addrSrv.getAllAddress.lastResult}" width="350" click="currentState='details'">
+ <mx:columns>
+ <mx:DataGridColumn headerText="Name" width="150" dataField="username"/>
+ <mx:DataGridColumn headerText="Phone" dataField="phone"/>
+ </mx:columns>
+ </mx:DataGrid>
+ </mx:HBox>
+ <mx:ControlBar id="controlbar1">
+ <mx:Button label="New" click="list1.selectedIndex=-1; currentState='details'"/>
+ <mx:Button label="Delete" enabled="{list1.selectedIndex >= 0}" click="doDelete()"/>
+ </mx:ControlBar>
+ </mx:Panel>
+
+</mx:Application>