Como exibir alerta após a inserção de dados no Java utilizando Flex?

4 respostas
lessandronp

Olá pessoal, boa noite.
Estou iniciando meus estudos com Java + Flex + BlazeDS + Hibernate e surgiu um problema ao exibir uma alerta quando um contato for inserido com sucesso, somente após a
a conclusão da transação.

Minha classe java responsável por entrar em contato com o DAO e realizar o evento de inserção após a chamada pelo FLEX está assim:
ContatoService.java

public class ContatoService {
	
	public boolean insereContato(Contato contato) {
		try {
			ContatoDAO daoContato = new ContatoDAO();
			daoContato.salvar(contato);
			return true;
		}
		catch (Exception e) {
			return false;
		}
	}
}

No Flex:
ContatoAction.as

public function insereContato():void {
        var contato:Contato = new Contato();
        contato.nome = txtNome.text;
        contato.email = txtEmail.text;
        if (remoteObject.insereContato(contato)==true) {
           txtNome.text = "";
           txtEmail.text = "";
           txtNome.setFocus();
           txtNome.focusManager.showFocus();
           Alert.show("Contato inserido com sucesso.");
         }
         else {
            Alert.show("Erro durante a inserção.");
         }

    }

Está acontecendo dele mostrar o Alert antes mesmo de realizar a transação pelo java. Já coloquei um break lá no java
e chequei isso. Ao entrar no método a mensagem já havia sido exibida. Como resolver essa questão?
Agradeço desde já pela atenção,
Att,
Lessandro Notaroberto Pyrâmides

4 Respostas

felipedamiani

Olá, vc está usando remoteObject?
Se sim, no método de retorno que foi configurado no “result”, você pode mostrar essa mensagem.

ex:

<mx:RemoteObject id="controller showBusyCursor="true" destination="Controller" fault="onFault(event)">
	<mx:method name="methodName" result="mostraResultado(event);"/>
</mx:RemoteObject>
lessandronp

Fala Felipe, blz?
Entendi. E se eu quisesse criar um método genérico para de acordo com o evento chamado ele exibisse a mensagem? como eu faria? Senão terei que criar um method para cada um apenas para dar um Alert.
Abs,
Obrigado,
Lessandro

rafaelk

Isso ocorre porque estas chamadas são ASSÍNCRONAS, vc precisa fazer um callback.

lessandronp

Teria como me dar um exemplo de como utilizá-lo?
Abs,
Obrigado,
Lessandro

Criado 29 de outubro de 2009
Ultima resposta 30 de out. de 2009
Respostas 4
Participantes 3