Flex - comunicação entre dois componentes num ViewStack [RESOLVIDO]  XML
Índice dos Fóruns » RIA - Flex, JavaFX e outros
Autor Mensagem
pgnt
Debugger
[Avatar]

Membro desde: 18/01/2007 04:27:33
Mensagens: 57
Offline

Olás

Tenho um ViewStack e carrego um componente cada NavigatorContent.

Há um componente de listar cliente (aparece primeiro) e outro de inserir cliente.

Preciso que a lista do primeiro componente seja atualizada assim que eu inserir um cliente (quando por ex, eu inserir e voltar pra outra view pra ver a lista, constar o cliente lá).

Já tentei apontar direto da segunda view para o datagrid da primeira (forma não recomendada) e também despachar evento de cliente inserido pra pegar na view da lista mas não funcionou, parece que ele perde a referência dos objetos entre as views.

Alguém tem alguma sugestão?
Obrigado!

This message was edited 1 time. Last update was at 11/02/2011 02:47:16

vitoryudi
JavaTeenager

Membro desde: 04/05/2010 22:24:29
Mensagens: 193
Offline

criar um metodo que atualiza a viewstack,
quando inserir os dados.
ou caso vc esteja usando remote object
no result vc faz o refresh

não sei se entendi bem sua duvida...

mas pelo que entendi
essa é uma sugestão.

vitorhansen.blogspot.com - Blog sobre programação, religião e de tudo um pouco...



[WWW]
pgnt
Debugger
[Avatar]

Membro desde: 18/01/2007 04:27:33
Mensagens: 57
Offline

O problema é que não consigo acessar o objeto de outra view pra isso ou, quando despacho um evento de uma view, a outra não consegue pegar também (acho que as views perdem suas instâncias quando mudamos de uma pra outra).

Uma forma que encontrei pra meu problema foi recarregar o DataGrid da primeira view no evento "show" do NavigatorContent, mas não consegui fazer a comunicação dos componentes entre as views.

Valeu!

Fabricio Batista
Thread.start()

Membro desde: 10/02/2011 20:14:12
Mensagens: 44
Localização: Avaré, SP
Offline

Usa o container das duas views como um Mediator.


Writing code that computers understand is easy.
Writing code your grandma does understand is hard.
[Email] [WWW] [MSN]
pgnt
Debugger
[Avatar]

Membro desde: 18/01/2007 04:27:33
Mensagens: 57
Offline

O container dos componentes é o ViewStack.
Imagino que esteja falando de tentar algo como "views.cpBuscaCliente.dataGridCliente..." (de acordo com o cod abaixo) , mas o flex não cria árvore de objetos, os IDs (objetos) são acessados diretos, mas mesmo assim, tentando acessar direto o "cpBuscaCliente" no componente de inserir cliente não deu certo, ele não reconhece o obj/componente de busca.

Obrigado!


This message was edited 3 times. Last update was at 11/02/2011 00:03:05

Fabricio Batista
Thread.start()

Membro desde: 10/02/2011 20:14:12
Mensagens: 44
Localização: Avaré, SP
Offline

Nao nao oque voce esta tentando fazer é tight coupling um componente dependente do outro. Mudou um id, fo**u a aplicacao.
Digo para disparar um custom event de um stack para ser capturado no container e o container executar a operacao no outro ou transferir informacoes para o outro stack.
Se nao entendeu, me adiciona no skype e eu te explico melhor. skype:fa.batista

This message was edited 1 time. Last update was at 11/02/2011 00:05:15


Writing code that computers understand is easy.
Writing code your grandma does understand is hard.
[Email] [WWW] [MSN]
pgnt
Debugger
[Avatar]

Membro desde: 18/01/2007 04:27:33
Mensagens: 57
Offline

Pela hora complicou usar skype, mas tentei algo bem básico pra ver se a aplicação pega um custom event (bem simples), por enquanto não rolou mas ainda não vi onde errei.

1 - coloquei o listener onde ficam os componentes



2 - no componente de inserir cliente o disparo o evento no método que trata o sucesso de cadastro


Qq coisa nos falamos amanhã, mas acho que estou quente segundo sua idéia.
Valeu!


Fabricio Batista
Thread.start()

Membro desde: 10/02/2011 20:14:12
Mensagens: 44
Localização: Avaré, SP
Offline

Isso ae. Essa é a idéia do Design Pattern Mediator.

Writing code that computers understand is easy.
Writing code your grandma does understand is hard.
[Email] [WWW] [MSN]
pgnt
Debugger
[Avatar]

Membro desde: 18/01/2007 04:27:33
Mensagens: 57
Offline

Legal! Para funcionar só faltou adicionar o parâmetro "true" para despachar o evento como bubble (achei que era default o bubble)


Brigadão pela força
abs

This message was edited 4 times. Last update was at 11/02/2011 02:46:34

Fabricio Batista
Thread.start()

Membro desde: 10/02/2011 20:14:12
Mensagens: 44
Localização: Avaré, SP
Offline

nesse caso é necessario bubble? acredito que não pois o evento vem do root da aplicacao até o parent, ja tentou fazer sem o bubble?

Writing code that computers understand is easy.
Writing code your grandma does understand is hard.
[Email] [WWW] [MSN]
pgnt
Debugger
[Avatar]

Membro desde: 18/01/2007 04:27:33
Mensagens: 57
Offline

Sim, era como estava antes e, sem o bubble, não tava rolando.
Mas isso deve ser pq estou usando um módulo. Carrego na aplicação principal um módulo de cliente que por sua vez carrega os componentes (um de busca/edição/exclusão e outro de inserção).
abs

Fabricio Batista
Thread.start()

Membro desde: 10/02/2011 20:14:12
Mensagens: 44
Localização: Avaré, SP
Offline

Entendi.

Writing code that computers understand is easy.
Writing code your grandma does understand is hard.
[Email] [WWW] [MSN]
 
Índice dos Fóruns » RIA - Flex, JavaFX e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team