sexta-feira, 7 de setembro de 2018

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

Introdução

Nesse post veremos o último tipo de ação dinâmica do JARCH. Essa ação dinâmica é usada para fazer download e é invocado direto do menu.

@JArchDynamicDownload

Para configurar essa ação é necessário anotar o método da 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
13
14
15
16
17
@JArchViewScoped
public class PapelTrabalhoListAction extends CrudListAction<PapelTrabalhoEntity, PapelTrabalhoFacade> {

 @Override
 public String getPageData() {
  return "papelTrabalhoData.jsf";
 }

 @JArchDynamicDownload(order = 1, id = "baixarPapelTrabalho", labelMenu = "label.download", icon = "ui-icon-document-b")
 public StreamedContent baixa(PapelTrabalhoEntity papelTrabalhoEntity) throws Exception {
  File fileDoc = File.createTempFile(papelTrabalhoEntity.getNomeArquivo(), ".DOCX");
  FileUtils.save(fileDoc, papelTrabalhoEntity.getArquivo());
  JsfUtils.addMessageInfo(BundleUtils.messageBundle("message.downloadPapelTrabalhoComSucesso"));
  FacesContext.getCurrentInstance().responseComplete();
  return new DefaultStreamedContent(new FileInputStream(fileDoc), FileType.DOC.getContentType(), papelTrabalhoEntity.getNomeArquivo());
 }
}

Reparem que foi definidos 1 ação dinâmica de download. Esse método tem que retonar um StreamedContent. 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
icon: Ícone no menu

Segue um print dessas ações no menu.


E selecionando a opção de Baixar:


Existem outros atributos, como elDisabled, elRendered, evaluateRendered, evaluateDisabled.

Conclusão

Esse post complete a série de ações dinâmicas, essas ações dinâmicas são ferramentas poderosas econmizando um grande tempo de desenvolvimento e extraindo a complexidade.

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...