Customizando Menus

segunda-feira, 4 de junho de 2012

O Entities disponibiliza a tag <e:menuItems/> para a exibição simples e automática de todas as views definidas nas entidades para um fácil inicio de desenvolvimento. Em aplicações grandes uma customização sempre é necessária. Nestes estes casos, para disponibilizar um link para uma view em específica é necessário o seguinte código:

   <h:outputLink value="main.jsf">
      <h:outputText value="Título do Link" />
      <f:param name="view" value="pacote.Entidade@NomeDaView" />
   </h:outputLink>

Este código pode ser utilizado em conjunto com as tag's do RichFaces.

Por exemplo, para criar um menu tipo barra de ferramentas :

01 <h:form>
02   <rich:toolBar>
03      <rich:dropDownMenu value="Cadastros" 
04                         rendered='#{context.currentUser().hasRoles("Administrador")}'>
05         <rich:menuItem>
06            <h:outputLink value="main.jsf">
07               <h:outputText value="Cidades" />
08               <f:param name="view" value="model.Cidade@TABLE_CRUD" />
09            </h:outputLink>
10         </rich:menuItem>
11 
12         <rich:menuItem>
13           <h:outputLink value="main.jsf">
14              <h:outputText value="Estados" />
15              <f:param name="view" value="model.Estado@FORM_CRUD" />
16           </h:outputLink>
17         </rich:menuItem>
18      </rich:dropDownMenu>
19
20      <rich:menuItem rendered="#{not empty context.currentUser()}">
21         <h:outputText value="Usuário: #{context.currentUser().userName()}" />
22      </rich:menuItem>
23 
24      <rich:toolBarGroup location="left"  
25                         rendered="#{not empty context.currentUser()}">
26          <div align="right">
27              <h:commandLink action="#{context.currentUser().logout()}">
28                <h:graphicImage id="sair_img" value="/imagens/sair.png" />
29              </h:commandLink>
30          </div>
31      </rich:toolBarGroup>
32   </rich:toolBar>
33 </h:form>

O código acima cria uma barra de menu com um submenu suspenso chamado "Cadastros" com duas opções : "Cidades" e "Estados" (linhas 03 a 18). O menu só será exibido se o usuário logado for um "Administrador" (linha 04).

Ao lado desse submenu será exibido o nome do usuário, se estiver logado (linhas 20 a 22)e um "botão" de "Sair" (linhas 24 a 31).

1 comentários:

Dalker Pinheiro disse...

Para customizar o menu Login e Logout com a nova funcionalidade "NOLOGGED" e "LOGGED" consegui assim,
no Login rendered="#{empty context.currentUser()}
no Logout rendered="#{not empty context.currentUser()}

Postar um comentário