Subversion-Projekte lars-tiefland.prado

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?xml version="1.0" encoding="utf-8"?>
2
<!--
3
 * @author Wei Zhuo <weizho[at]gmail[dot]com>
4
 * @version $Id$
5
 * @since 3.1
6
-->
7
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
8
	backgroundColor="white"
9
	backgroundGradientAlphas="0"
10
	backgroundGradientColors="0"
11
	layout="vertical" creationComplete="initApp()">
12
	<mx:states>
13
		<mx:State name="details">
14
			<mx:AddChild relativeTo="{hbox1}" position="lastChild">
15
				<mx:Form>
16
					<mx:FormItem label="Name:">
17
						<mx:TextInput id="_username" text="{list1.selectedItem.username}"/>
18
					</mx:FormItem>
19
					<mx:FormItem label="Phone:">
20
						<mx:TextInput id="_phone" text="{list1.selectedItem.phone}" />
21
						<mx:Button id="saveButton" label="Save" click="doSave()" />
22
					</mx:FormItem>
23
				</mx:Form>
24
			</mx:AddChild>
25
		</mx:State>
26
	</mx:states>
27
 
28
	<mx:PhoneNumberValidator id="val1" source="{_phone}" property="text" />
29
	<mx:StringValidator id="val2" source="{_username}" property="text"
30
		minLength="3" maxLength="20" />
31
 
32
	<mx:WebService id="addrSrv" fault="dataError(event)">
33
		<mx:operation name="saveAddress" result="addrSrv.getAllAddress()" />
34
		<mx:operation name="deleteAddress" result="addrSrv.getAllAddress()" />
35
	</mx:WebService>
36
 
37
	<mx:Script>
38
		<![CDATA[
39
			import mx.validators.Validator;
40
			import mx.utils.ArrayUtil;
41
			import mx.collections.ArrayCollection;
42
			import mx.controls.Alert;
43
			import mx.rpc.events.ResultEvent;
44
			import mx.rpc.events.FaultEvent;
45
 
46
			[Bindable]
47
			private var addressList:ArrayCollection;
48
 
49
			private function initApp():void
50
			{
51
				addrSrv.loadWSDL(getAddressBookWsdl());
52
				addrSrv.getAllAddress();
53
			}
54
 
55
			private function getAddressBookWsdl():String
56
			{
57
				var appUrl:Object=application.parameters.wsdl;
58
				if(appUrl!=null)  // running in PRADO page
59
					return appUrl.toString();
60
				else  // running in static html for debugging.
61
					return "http://127.0.0.1/prado-trunk/demos/address-book/index.php?soap=address-book.wsdl";
62
			}
63
 
64
			private function dataError(event:FaultEvent):void
65
			{
66
				Alert.show(event.fault.faultString,"Data Communication Error");
67
			}
68
 
69
			private function doSave():void
70
			{
71
				if(Validator.validateAll([val1, val2]).length == 0)
72
				{
73
					var data:Object = new Object;
74
					data.id = list1.selectedItem != null ? list1.selectedItem.id : -1;
75
					data.username = _username.text;
76
					data.phone = _phone.text;
77
					addrSrv.saveAddress(data);
78
					currentState='';
79
				}
80
			}
81
 
82
			private function doDelete():void
83
			{
84
				addrSrv.deleteAddress(list1.selectedItem.id);
85
				currentState='';
86
			}
87
		]]>
88
	</mx:Script>
89
 
90
	<mx:Panel layout="vertical" title="Prado Address Book" id="panel1" resizeEffect="Resize">
91
		<mx:HBox id="hbox1">
92
			<mx:DataGrid id="list1" dataProvider="{addrSrv.getAllAddress.lastResult}"
93
				width="350" click="if(list1.selectedIndex >= 0) currentState='details'">
94
				<mx:columns>
95
					<mx:DataGridColumn headerText="Name" width="175" dataField="username"/>
96
					<mx:DataGridColumn headerText="Phone" dataField="phone"/>
97
				</mx:columns>
98
			</mx:DataGrid>
99
		</mx:HBox>
100
		<mx:ControlBar id="controlbar1">
101
			<mx:Button label="New" click="list1.selectedIndex=-1; currentState='details'" id="button2"/>
102
			<mx:Button label="Delete" enabled="{list1.selectedIndex >= 0}" click="doDelete()" id="button3"/>
103
		</mx:ControlBar>
104
	</mx:Panel>
105
 
106
</mx:Application>