topical media & game development

talk show tell print

server-amf-login-index.mx

server-amf-login-index.mx (swf ) [ flash ] flex


  <?xml version="1.0" encoding="utf-8"?>
  <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="fillDG()"
          xmlns:lg="comps.*" currentState="loginScreen">
          <mx:states>
                  <mx:State name="loginScreen">
                          <mx:SetProperty target="{loginPanel}" name="x"/>
                          <mx:SetProperty target="{loginPanel}" name="y"/>
                          <mx:RemoveChild target="{form1}"/>
                          <mx:RemoveChild target="{button1}"/>
                          <mx:RemoveChild target="{button2}"/>
                          <mx:RemoveChild target="{userDB}"/>
                          <mx:SetStyle target="{loginPanel}" name="horizontalCenter" value="0"/>
                          <mx:SetStyle target="{loginPanel}" name="verticalCenter" value="0"/>
                  </mx:State>
                  <mx:State name="loggedIn">
                          <mx:RemoveChild target="{loginPanel}"/>
                  </mx:State>
          </mx:states>
          <mx:Script>
                  <![CDATA[
                          import mx.events.ListEvent;
                          import mx.controls.Alert;
                          
                          [Bindable]
                          private var users:Array;
                          private var gateway:NetConnection;
                          private var gatewayURL:String = "http://localhost.nl/amfphp/gateway.php"
                  
                          private function setConnection() : void {
                                  gateway = new NetConnection;
                                  gateway.connect(gatewayURL);
                          }
                          private function retrieveContent(event:Event) :  void {
                                  setConnection();
                                  var responder:Responder = new Responder(returnSucces, returnFault);
                                  gateway.call("TestDB.retrieveAll", responder);
                          }
                          private function returnSucces(obj:Object) : void {
                                  for each (var i:int in obj) {
                                          trace(obj);
                                          userField.text = obj.serverInfo.initialData[0][1];
                                          passwordField.text = obj.serverInfo.initialData[0][2];
                                  }
                          }
                          private function returnFault(obj:Object) : void {
                                  Alert.show("Error has accured");
                          }
                          private function addNew() : void {
                                  setConnection();
                                  var responder:Responder = new Responder(returnNew, returnFault);
                                  gateway.call("TestDB.addNew", responder, userField.text, passwordField.text, fnameField.text, lnameField.text);
                          }
                          private function returnNew(obj:Object) : void {
                                  Alert.show("New item added to database");
                                  fillDG();
                          }
                          private function fillDG() : void {
                                  setConnection();
                                  var responder:Responder = new Responder(returnDGData, returnFault);
                                  gateway.call("TestDB.retrieveArray", responder);
                          }
                          private function returnDGData(result:Array) : void {
                                  userDB.dataProvider = result;
                          }
                          private function alterUser(event:ListEvent) : void {
                                  userField.text = event.itemRenderer.data.username;
                                  passwordField.text = event.itemRenderer.data.password;
                                  fnameField.text = event.itemRenderer.data.fname;
                                  lnameField.text = event.itemRenderer.data.lname;
                          }
                          private function removeContent() : void {
                                  setConnection();
                                  var responder:Responder = new Responder(refreshList, returnFault);
                                  gateway.call("TestDB.removeUser", responder, userField.text);
                          }
                          private function refreshList(obj:Object) : void {
                                  Alert.show("Data is removed");
                                  fillDG();
                          }
                          private function handleLogin(event:Event) : void {
                                  loginPanel.doLogin(event);
                                  if(loginPanel.valid) {
                                          currentState="loggedIn";
                                  } 
                          }
                          
                  ]]>
          </mx:Script>
          <lg:Login id="loginPanel" x="171" y="308" click="handleLogin(event)"/>
          <mx:Form x="199.5" y="86" width="283" backgroundColor="#000000" cornerRadius="20" borderStyle="solid" id="form1">
                  <mx:FormItem label="login:" width="100%" color="#FFFFFF" fontSize="12">
                          <mx:TextInput id="userField" width="100%" color="#000000"/>
                  </mx:FormItem>
                  <mx:FormItem label="password:" width="100%" color="#FFFFFF" fontSize="12" borderStyle="none">
                          <mx:TextInput id="passwordField" width="100%" color="#000000"/>
                  </mx:FormItem>
                  <mx:FormItem label="first name:" width="100%" color="#FFFFFF" fontSize="12">
                          <mx:TextInput id="fnameField" width="100%" color="#000000"/>
                  </mx:FormItem>
                  <mx:FormItem label="last name:" width="100%" color="#FFFFFF" fontSize="12">
                          <mx:TextInput id="lnameField" width="100%" color="#000000"/>
                  </mx:FormItem>        
          </mx:Form>
          <mx:Button x="350" y="246" label="delete" click="removeContent()" id="button2"/>
          <mx:Button x="257" y="246" label="add new" click="addNew()" id="button1"/>
          
          <mx:DataGrid x="502" y="86" id="userDB" change="alterUser(event)">
                  <mx:columns>
                          <mx:DataGridColumn headerText="Username" dataField="username"/>
                          <mx:DataGridColumn headerText="Password" dataField="password"/>
                          <mx:DataGridColumn headerText="First Name" dataField="fname"/>
                          <mx:DataGridColumn headerText="Last Name" dataField="lname"/>
                  </mx:columns>
          </mx:DataGrid>
  </mx:Application>
  
  


(C) Æliens 20/2/2008

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.