sexta-feira, 7 de setembro de 2018

Ação Dinâmica - Parte 2/3

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:

1
 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:
order: Para definir a ordem das ações no menu
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âmica
elDisabled: 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

Versão 23.3.0-Final

      Introdução Nesse post vou mostrar as principais novidades da versão 23.3.0, algumas correções e pequenas alterações. Alterações Além d...