Ajuda: rich:modalPanel

1 resposta
Marques

Colegas, preciso de ajuda para resolver esse problema:

O cenário:
Em uma rich:dataTable seleciono uma row que quero excluir.
Porém antes de excluir, o sistema abre um rich:modalPanel onde o usuário confirma se realmente quer excluir essa row.
Para isso abro o rich:modalPanel da seguinte forma:

<a4j:commandLink ajaxSingle="true" id="deletelink" oncomplete="#{rich:component('deletePanel')}.show()">

E no rich:modalPanel chamo o método responsável pela exclusão do registro. Tudo isso funciona ok. Acontece que agora preciso desenvolver o seguinte requisito:
Na impossibilidade de excluir o registro selecionado, exibir um novo rich:modalPanel informando: “Não foi possível excluir esse registro”.

A minha dúvida é em como exibir um rich:modalPanel a partir de uma exeption gerada no método do action (a partir de um a4j:commandLink eu sei como fazer, conforme a linha de comando acima). Vc pode me ajudar?

Muito obrigado,
Marques

1 Resposta

Rodrigo_Sasaki

O que você pode fazer é o seguinte:

No catch dessa sua exceção, você seta uma variável de controle (flag), para true, e usa ela para controlar qual modal deve ser aberto na sua view, fazendo algo assim no seu oncomplete:oncomplete="if(#{meuMB.excecaoLancada}){#{rich:component('erroDeletePanel')}.show()}else{#{rich:component('deletePanel')}.show()}">

EDIT: ou é claro, você pode colocar o valor da modal que quer abrir em uma variável contolada pelo ManagedBean. Nunca fiz isso, mas não vejo por que não funcionaria.

Criado 4 de junho de 2012
Ultima resposta 4 de jun. de 2012
Respostas 1
Participantes 2