Pessoal,

Estou começando com o Swiz + Flex4 e estou tendo uma dificuldade em relação
a quando e como fechar uma janela, no caso específico, a janela de Login.

Segue abaixo:

*main.mxml*


<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009";
   xmlns:s="library://ns.adobe.com/flex/spark"
   xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
   xmlns:view="r2.view.*"
   xmlns:config="r2.config.*"
   creationComplete="{init()}">
<fx:Style source="main.css"/>
<fx:Declarations>
<config:SwizConfig/>
<s:BasicLayout/>
</fx:Declarations>
 <fx:Script>
<![CDATA[
import mx.managers.PopUpManager;
 import r2.view.LoginForm;
 private function init():void {
var form:LoginForm = new LoginForm();
PopUpManager.addPopUp(form, this, true);
PopUpManager.centerPopUp(form);
}
]]>
</fx:Script>
</s:Application>



*LoginForm.mxml*

<?xml version="1.0" encoding="utf-8"?>
<s:Panel xmlns:fx="http://ns.adobe.com/mxml/2009";
 xmlns:s="library://ns.adobe.com/flex/spark"
 xmlns:mx="library://ns.adobe.com/flex/mx" width="286" height="142"
title="R2 - Login" skinClass="spark.skins.spark.PanelSkin">
<s:layout>
<s:VerticalLayout/>
</s:layout>
<fx:Declarations>

</fx:Declarations>
 <fx:Script>
<![CDATA[
import mx.rpc.remoting.RemoteObject;
 import r2.model.presentation.LoginPM;
 [Inject(source="loginPM")]
[Bindable]
public var loginPM:LoginPM;

]]>
</fx:Script>
 <mx:Form width="100%" height="114" >
<mx:FormItem label="Usuário" width="250" required="true">
<s:TextInput width="100%" id="tfUsuario"/>
</mx:FormItem>
<mx:FormItem label="Senha" width="250" required="true">
<s:TextInput width="100%" displayAsPassword="true" id="tfSenha"/>
</mx:FormItem>
<mx:FormItem width="250" horizontalAlign="right">
<s:Button label="Entrar" id="btnLogin"
click="{loginPM.btnLogin(tfUsuario.text, tfSenha.text)}"/>
</mx:FormItem>
</mx:Form>
</s:Panel>


*LoginPM.as*
*
*
*
[Bindable]
public class LoginPM {

[Dispatcher]
public var dispatcher:IEventDispatcher;

public var usuario:Usuario;

public function LoginPM() {
this.usuario = new Usuario;
}

public function btnLogin(login:String, senha:String):void {
var usuarioEvent:UsuarioEvent = new UsuarioEvent(UsuarioEvent.LOGIN);
usuario.login = login;
usuario.senha = senha;
usuarioEvent.usuario = usuario;
this.dispatcher.dispatchEvent(usuarioEvent);
}
}
*


*LoginController.as*

package r2.controller
{
import flash.events.IEventDispatcher;
 import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.remoting.RemoteObject;
 import org.swizframework.utils.services.ServiceHelper;
 import r2.event.UsuarioEvent;
import r2.model.entities.Usuario;
 import spark.components.Application;
 public class LoginController {
 [Dispatcher]
public var dispatcher:IEventDispatcher;
 [Inject(source="serviceHelper")]
public var serviceHelper:ServiceHelper;
 [Inject(source="usuarioService")]
public var usuarioService:mx.rpc.remoting.RemoteObject;

//----------------------------------------------------------------------
 public function LoginController() {}

//----------------------------------------------------------------------
 [Mediate(event="UsuarioEvent.LOGIN", properties="usuario")]
public function login(usuario:Usuario):void {
this.serviceHelper.executeServiceCall(
usuarioService.login(usuario.login, usuario.senha),
usuarioService_login_resultHandler,
usuarioService_faultHandler
);
}
 //----------------------------------------------------------------------
// handlers
private function usuarioService_faultHandler(event:FaultEvent):void {
Alert.show(event.fault.message, "Erro comunicação BlazeDS");
}
 private function usuarioService_login_resultHandler(event:ResultEvent):void
{
                        *//Aqui tenho o retorno do login OK...precisaria
setar o usuario logado do sistema e fechar o Panel de login*
var usuarioEvent:UsuarioEvent = new UsuarioEvent(
UsuarioEvent.USUARIO_LOGADO );
usuarioEvent.usuarioLogado = event.result as Usuario;
this.dispatcher.dispatchEvent(usuarioEvent);
}
}
}



-- 
[]'s
Leonardo

Linux User #488650
Ubuntu User #27045
Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a