Introdução
Nesse post veremos o segundo tipo de ação dinâmica do JARCH. Essa ação dinâmica invoca a tela de dados e nessa tela que se confirma a ação, diferente da ação dinâmica direta que era executado direto do menu.
@JArchDynamicShowDataAction
Para configurar essa ação é necessário anotar a classe da Action de Lista. Segue um exemplo abaixo dessa definição abaixo:
Reparem que foram definidos 4 ações dinâmicas, 1 baixa vencimento, 1 baixa hoje, 1 baixa parcial e 1 cancelamento de baixa. Segue uma breve descrição dos atributos utilizados na anotação:
order: Para definir a ordem das ações no menu1 2 3 4 5 6 7 8 9 10 11 12 | @JArchViewScoped @JArchDynamicShowDataAction(order = 1, id = BAIXAR_VENCIMENTO, labelMenu = "label.baixarVencimento", labelButtom = "label.baixarVencimento", icon = "fa fa-credit-card-alt", headerConfirmation = "message.confirmacao", messageConfirmation = "message.confirmaBaixaTotalVencimento", elDisabled = "#{(l -> l.isLancamentoPago())(lancamento)}", nameMethodDataAction = "baixaVencimento") @JArchDynamicShowDataAction(order = 2, id = BAIXAR_HOJE, labelMenu = "label.baixarHoje" , labelButtom = "label.baixarHoje", icon = "fa fa-credit-card-alt", headerConfirmation = "message.confirmacao", messageConfirmation = "message.confirmaBaixaTotalHoje", elDisabled = "#{(l -> l.isLancamentoPago())(lancamento)}", nameMethodDataAction = "baixaHoje") @JArchDynamicShowDataAction(order = 3, id = BAIXAR_PARCIAL, labelMenu = "label.baixarParcial", labelButtom = "label.baixarParcial", icon = "fa fa-credit-card-alt", headerConfirmation = "message.confirmacao", messageConfirmation = "message.confirmaBaixaParcial", elDisabled = "#{(l -> l.isLancamentoPago())(lancamento)}", nameMethodDataAction = "baixaParcial") @JArchDynamicShowDataAction(order = 4, id = CANCELAR_BAIXAR, labelMenu = "label.cancelarBaixa", labelButtom = "label.cancelarBaixa", icon = "fa fa-credit-card", headerConfirmation = "message.confirmacao", messageConfirmation = "message.confirmaCancelamentoBaixa", elDisabled = "#{(l -> not l.isLancamentoPago())(lancamento)}", nameMethodDataAction = "cancelaBaixa", styleClass = StyleClassMasterType.DANGER) public class ListaLancamentoAction extends CrudListAction<LancamentoEntity, LancamentoFacade> implements Serializable { private LancamentoType tipo; private String queryString; private boolean excetoPessoa; |
Reparem que foram definidos 4 ações dinâmicas, 1 baixa vencimento, 1 baixa hoje, 1 baixa parcial e 1 cancelamento de baixa. Segue uma breve descrição dos atributos utilizados na anotação:
id: Para controle de acesso
labelMenu: Chave no bundle da descrição do menu
labelButtom: Chave no bundle da descrição do menu
icon: Ícone no menu
headerConfirmation: Título no popup para confirmação da ação dinâmica
messageConfirmation: Mensagem no popup para confirmação da ação dinâmicaelDisabled: Expressão lambda para definição do atributo disabled do menu. Nesse exemplo acima para as ações de baixa o disabled será true caso a conta esteja paga. Para a ação cancelamento o menu só ficará habilitado caso a conta esteja baixada
nameMethodDataAction: Nome do método a ser executado dentro da Action de Dados
styleClass: Tipo da estilização do botão de confirmação da ação dinâmica dentro da tela de dados
Segue um print dessas ações no menu.
Agora selecionando o primeira de ação (Baixar Vencimento):
E clicando no botão Baixar Vencimento será solicitado a confirmação conforme definido pelo atributo confirmation da anotação:
Existem outros atributos, como elRendered, evaluateRendered, evaluateDisabled.
Conclusão
As ações dinâmicas facilitam bastante o desenvolvimento de telas com ações específicas, no próximo post veremos o último tipo de ação dinâmica.
Até mais,
Nenhum comentário:
Postar um comentário