Entities no WTISC 2012

segunda-feira, 4 de junho de 2012

Entities Framework foi apresentado dia 20 de Maio no WTISC 2012 (Workshop de Tecnologia da Informação do Sertão Central) realizado no Campus da UFC (Universidade Federal do Ceará) em Quixadá. O tema da apresentação foi : "Entities - Um framework java baseado em Naked Objects para o desenvolvimento ágil de aplicações".

Por conta da visita, também foi realizado à tarde, extra WTISC, uma oficina "tira dúvidas" com os alunos do Núcleo de Práticas que estão utilizando o Entities em 3 projetos.


O Núcleo de práticas tem por função oferecer aos alunos a experiência prática requisitada pelo mercado de Tecnologia da Informação e Comunicação, estes são incentivados a desenvolverem atividades diversas nos laboratórios de ensino de informática, de forma a contemplarem situações fictícias e reais e aprenderem a trabalhar nas mesmas. Os professores do curso são incentivados, dessa forma, a ofertar oportunidades de trabalho em equipe a serem desenvolvidos nos laboratórios do campus e participação dos alunos nos projetos do Núcleo de Práticas. As atividades complementares serão realizadas de acordo com a Resolução Nº07/CEPE, de 17 de Junho de 2005 que dispõe sobre estas atividades nos Cursos de Graduação da UFC.

Customizando Menus

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

Entities 3.8 Release Candidate Liberada

sexta-feira, 1 de junho de 2012

Download Entities-3.8.0-RC.rar

News
  • Reconhecimento de propriedades do tipo Enum com toString() implementado;
  • Propriedade roles de @View agora reconhece as roles reservadas: LOGGED (A view só será acessivel se o usuário estiver pelo menos logado, ex: views para logout) e NOLOGGED (para views que serão visíveis apenas se não houver usuário logado, ex: views de login).
  • Refactory e testes de cobertura


Fix
  • Filtro de propriedades do tipo Enum nas views
  • Novas funcionalidades para o controle Ctrl.DAO : savePageAndRefresh e saveRowAndRefresh
  • displayWidth/maxLegth
  • Substituição da biblioteca Cloner pela Dozer para o clone de objetos (fix e performance)