Introdução
A criação de menus sempre foi um pouco complicado mesmo utilizando framework's como JSF e Primefaces ou até mesmo utilizando HTML5, mas seria muito melhor se houvesse uma API JAVA para isso. O JARCH possui uma API para criação de menus de forma fluente, tornando muito fácil sua utilização.
Exemplos
Nesse post vou mostrar como configurar o menu da aplicação usando JARCH.
Segue abaixo um print do menu do template JARCH:
Segue abaixo um exemplo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | package br.com.arch.arquitetura.menu; import br.com.jarch.annotation.ArchViewScoped; import br.com.jarch.menu.BaseMenuAction; import br.com.jarch.menu.IMenu; import br.com.jarch.menu.MenuBuilder; import java.util.ArrayList; import java.util.List; @ArchViewScoped public class MenuAction extends BaseMenuAction { @Override public List<IMenu> createMenu() { List<IMenu> menu = new ArrayList<>(); menu.add(MenuBuilder .newInstance() .id("liCadastro") .name("Cadastro") .addSubMenu(MenuBuilder .newInstance() .id("liCadastroAplicacao") .name("Aplicação") .action("../aplicacao/aplicacaoList.jsf") .build()) .addSubMenu(MenuBuilder .newInstance() .id("liCadastroBanco") .name("Banco") .action("../banco/bancoList.jsf") .build()) .addSubMenu(MenuBuilder .newInstance() .name("Condominio") .action("../condominio/condominioList.jsf") .build()) .addSubMenu(MenuBuilder .newInstance() .name("Cliente") .action("../cliente/clienteList.jsf") .build()) .addSubMenu(MenuBuilder .newInstance() .name("Marca") .action("../marca/marcaList.jsf") .build()) .addSubMenu(MenuBuilder .newInstance() .name("Produto") .action("../produto/produtoList.jsf") .build()) .addSubMenu(MenuBuilder .newInstance() .name("Pessoa") .action("../pessoa/pessoaList.jsf") .build()) .build()); menu.add(MenuBuilder .newInstance() .name("Lançamento") .addSubMenu(MenuBuilder .newInstance() .name("Contas Pagar") .action("../contapagar/contaPagarList.jsf") .build()) .addSubMenu(MenuBuilder .newInstance() .name("Pedido") .action("../pedido/pedidoList.jsf") .build()) .build()); menu.add(MenuBuilder .newInstance() .name("BPM") .addSubMenu(MenuBuilder .newInstance() .name("Lista Tarefa") .action("../bpmn/tarefaList.jsf") .build()) .addSubMenu(MenuBuilder .newInstance() .name("Lista Cockpit") .action("../bpmn/listCockpit.jsf") .build()) .addSubMenu(MenuBuilder .newInstance() .name("Lista Incidente") .action("../bpmn/listIncident.jsf") .build()) .addSubMenu(MenuBuilder .newInstance() .name("Reprocessamento") .action("../bpmn/reprocessamento.jsf") .build()) .addSubMenu(MenuBuilder .newInstance() .name("Deploy") .action("../bpmn/deploy.jsf") .build()) .build()); menu.add(MenuBuilder .newInstance() .name("Parâmetro") .action("../relatorio/relatorioProduto.jsf") .build()); return menu; } } |
Acima estou criando uma classe com o nome de MenuAction com escopo de view e acessível via EL (@ArchViewScoped). A classe que está sendo estendida de MenuBaseAction, essa classe obriga a implementação do método createMenu, que é uma List<IMenu>. Essa List<IMenu> será os itens que aparecerão no menu, para preencher essa lista eu usei a biblioteca MenuBuilder, e de forma fluente vou preenchendo o menu principal com os itens de menus.
Conclusão
Nunca foi tão fácil a criação de menu e mesmo se o menu for de forma dinâmica a utilização dessa biblioteca é muito fácil.
Até mais,
Nenhum comentário:
Postar um comentário