| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/10/2008 08:25:24
|
Grinvon
GUJ Master
![[Avatar]](/images/avatar/aff0a6a4521232970b2c1cf539ad0a19.png)
Membro desde: 18/08/2003 22:10:49
Mensagens: 1899
Localização: Em qualquer lugar
Offline
|
Criei um modal panel (rich:modalPanel) onde o mesmo desejo fazer sincronia com um uma inputText, a idéia é quando abrir um modal panel, o mesmo apresenta uma caixa de texto, onde o que eu digitar nela ao fechar o modal irá fazer a sincronia com o inputText da tela chamadora.
Essa idéia na prática não irá acontecer no sistema, mas preciso saber como faço esse retorno, pois na verdade a minha tela no modal é uma tela de seleção onde há uma lista de valores e quando eu selecionar um registro, a descrição do mesmo deverá voltar para o inputText.
Fazer o modal eu sei, chamá-lo também, preencher uma dataTable nele também, saber qual registro foi selecionado pelo usuário nessa dataTable também, o problema se encontra no retorno, como irá retornar esse valor para a minha tela chamadora.
Uma prévia do código:
Tela que chamará o panel e apresenta um inputText que receberá o valor
código do meu panel que será renderizado na página chamadora, repare que há dados de uma lista (datatable) mas para simplificar e focalizar no problema, preciso saber como devo retornar valor para um input da tela que chamou a modal
Qualquer ajuda é válida, já que meu problema atual é justamente no retorno desse registro selecionado. Obrigado a todos.
|
>> Inocêncio. |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/10/2008 09:31:38
|
Javabuntu
GUJ Master
![[Avatar]](/images/avatar/00053f5e11d1fe4e49a221165b39abc9.jpg)
Membro desde: 08/02/2007 17:15:32
Mensagens: 1315
Localização: Brasília
Offline
|
colega isto é muito simples.
no seu botão de fechar a modal adicione uma action que pega o valor digitado, e deixar o fechar no oncomplete que executa o script após a action:
e ai no seu bean
|
SCJP 6
SCJD
SCWCD 5
Itil V2 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/10/2008 09:46:41
|
Grinvon
GUJ Master
![[Avatar]](/images/avatar/aff0a6a4521232970b2c1cf539ad0a19.png)
Membro desde: 18/08/2003 22:10:49
Mensagens: 1899
Localização: Em qualquer lugar
Offline
|
Valeu jababuntu.
Já descobri um erro que cometi.
no f:setPropertyActionListener o targer DEVE ser para a lista da minha tela chamadora e não a tela que irá ter a modal.
Mesmo assim a questão ainda não está fechada.
Você colocou mudaValor no bean da tela que irá processar o modal, porém o bean dela não pode saber qual o bean da tela que a chamou, isso cria dependência.
|
>> Inocêncio. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/10/2008 09:55:51
|
Javabuntu
GUJ Master
![[Avatar]](/images/avatar/00053f5e11d1fe4e49a221165b39abc9.jpg)
Membro desde: 08/02/2007 17:15:32
Mensagens: 1315
Localização: Brasília
Offline
|
Grinvon wrote:Valeu jababuntu.
Já descobri um erro que cometi.
no f:setPropertyActionListener o targer DEVE ser para a lista da minha tela chamadora e não a tela que irá ter a modal.
Mesmo assim a questão ainda não está fechada.
Você colocou mudaValor no bean da tela que irá processar o modal, porém o bean dela não pode saber qual o bean da tela que a chamou, isso cria dependência.
não precisa ser no bean da tela que chamou pode ser em outro local, num outro bean...
e ai você pode passar esse parâmetro pra uma classe de negócio que tenha acesso ao bean, e ai você faz o set...
não precisa criar a dependência, foi só exemplo...
|
SCJP 6
SCJD
SCWCD 5
Itil V2 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/10/2008 10:02:08
|
Grinvon
GUJ Master
![[Avatar]](/images/avatar/aff0a6a4521232970b2c1cf539ad0a19.png)
Membro desde: 18/08/2003 22:10:49
Mensagens: 1899
Localização: Em qualquer lugar
Offline
|
Agora está retornando valor, mas um problema...
Quando eu clico para chamar o modal e não há nada selecionado, automaticamente o JSF executa o método da minha classe chamadora que irá popular o inputText, e eu não quero que isso ocorra nesse momento, quero que ele execute esse método apenas quando for fechada a modal.
Código do botão na tela chamadora
Métodos:
- chamadora.atualizarSelecaoNatureza
Ele irá popular a minha inputText com um registro da lista.
Tentei colocar o a4j:support para fazer isso, no evento "oncomplete" mas não funcionou, ele acaba sempre chamando o método atualiarSelecaoNatureza em todo momento que o botao for clicado.
|
>> Inocêncio. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/10/2008 10:29:57
|
Javabuntu
GUJ Master
![[Avatar]](/images/avatar/00053f5e11d1fe4e49a221165b39abc9.jpg)
Membro desde: 08/02/2007 17:15:32
Mensagens: 1315
Localização: Brasília
Offline
|
me esclareça uma dúvidas:
por acaso o seu objetivo real seria:
chamar uma popup modal, neste modal irá fazer uma consulta que irá listar numa tabela, e ai um uma determinada coluna serão links, que ao clicar nesta linha selecionada a popup irá fechar e automaticamente mandar o valor de volta pra outra tela.
seria isso?
|
SCJP 6
SCJD
SCWCD 5
Itil V2 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/10/2008 10:39:52
|
Grinvon
GUJ Master
![[Avatar]](/images/avatar/aff0a6a4521232970b2c1cf539ad0a19.png)
Membro desde: 18/08/2003 22:10:49
Mensagens: 1899
Localização: Em qualquer lugar
Offline
|
Tenho dois beans e duas jspx
Telas:
ao clicar em um botão de chamadora, irá abrir o modal, do qual irá apresentar a lista preenchida.
Nessa dataTable existem checkbox onde posso selecionar os registros, ao selecionar esses registros e apertar em confirmar, essa lista deverá ser passada para a tela chamadora que irá processar o que desejar com esses registros, inclusive mostrar um deles em um input por exemplo.
Nesse caso preciso declarar duas listas em cada bean
Em beans de Chamadora e Modal
List<MinhaEntidade> lista = new ArrayList<MinhaEntidade>();
essas duas listas ficam em sincronia usando:
Essa tag é colocada dentro do botão de ação que chamará a tela modal.
|
>> Inocêncio. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/10/2008 11:30:16
|
Grinvon
GUJ Master
![[Avatar]](/images/avatar/aff0a6a4521232970b2c1cf539ad0a19.png)
Membro desde: 18/08/2003 22:10:49
Mensagens: 1899
Localização: Em qualquer lugar
Offline
|
Javabuntu, consegue fazer aqui. E acho que resolverá o problema de muita gente. Não ficou perfeito, mas já é um startup.
Primeiro: Criar o arquivo isolado onde conterá a lógica da tela.
Segundo: Criar um botão na tela que irá chamar a outra, renderizando em forma modal:
Código do botão que irá carregar a modal. Sua única tarefa é chamar a modal, nada mais do que isso.
na tela chamadora, declarar uma área onde será destinada para o rich:modalPanel, a modal está em form modal e nome minhaModal: modal:minhaModal. E terá um ajax support para quando for fechada executar o método da bean chamadora que processará as informações recebidas dela. Essas informações são sincronizadas através de duas listas, uma para cada managed bean.
No bean da tela para a modal, você pode adicionar a lógica de popular uma grid, um campo apenas, uma list, etc, dessa forma a pessoa terá que saber como obter informações desses componentes e popular ele numa ArrayList que no caso é usado para fazer a sincronia entre as telas. No botão da modal é efetuada duas operações: hide na modal e executar o método da classe chamadora que irá processar as informações; Repare que existe um reRender que renderizará nesse meu caso uma h:inputText.
|
>> Inocêncio. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/10/2008 11:51:04
|
Javabuntu
GUJ Master
![[Avatar]](/images/avatar/00053f5e11d1fe4e49a221165b39abc9.jpg)
Membro desde: 08/02/2007 17:15:32
Mensagens: 1315
Localização: Brasília
Offline
|
entendi, se resolveu problema blz.
Agora um comentário:
eu uso JSF, mas não coloco lógica nenhuma no bean que está ligado nos componentes, é como se eu tivesse um bean de request onde coloco todas minhas ações e tenho um bean dependendo do caso como session, onde tenho meus atributos... é como se eu tivesse um ModalAction e um ModalBean, e neste último coloco só get e set, e da action eu acesso e faço minhas lógicas..
|
SCJP 6
SCJD
SCWCD 5
Itil V2 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/10/2008 09:52:41
|
Grinvon
GUJ Master
![[Avatar]](/images/avatar/aff0a6a4521232970b2c1cf539ad0a19.png)
Membro desde: 18/08/2003 22:10:49
Mensagens: 1899
Localização: Em qualquer lugar
Offline
|
Criei uma dependência, agora vou tentar tirar isso.
|
>> Inocêncio. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/09/2011 10:27:36
|
programmerms
Smalltalk
Membro desde: 04/04/2010 20:10:07
Mensagens: 2
Offline
|
Poderia , postar todo o codigo
vlw
|
|
|
 |
|
|