Archive for the ‘Tutorial’ Category
Adicionando Ajuda (Tooltip) em seu formulário
Aplicações Web apresentam em algum momento algum tipo de formulário que precisa ser preenchido pelos usuários. Aplicações de uma intranet são cheios desse recurso. E com isso, o uso de qualquer tipo de ajuda em preenchimento pode ser necessário.
Com isso, programadores podem usar recursos do tipo Tooltip (aquele quadro flutuante que aparece em algum momento quando o mouse está acima de algum objeto). A implementação HTML possui o atributo title que faz com que o navegador apresente um recurso de tooltip simples.
Neste tutorial, vou mostrar como fazer algo um pouco mais interessante / livre com o uso do framework ICEFaces. Mas não vou apenas demonstrar o uso nu e cru do compomente que este framework dispõe.
Os formulários que uma aplicação implementa, normalmente, segue padrões de design da instituição. E com essa visão, podemos construir componentes Facelets customizados.
Para criar um componente customizado, precisaremos fazer 3 coisas;
1) Criar o componente Tooltip
2) Criar a taglib
3) Declarar a taglib no web.xml
4) Importar a taglib usando namespace
Criar o Componente Tooltip
Para criar um componente customizado, crie um arquivo com o nome “input-component.jspx” (neste caso, os arquivos jspx serão mapeados para renderizar o framework ICEFaces).
Este primeiro trecho define os namespaces das bibliotecas que podem ser utilizadas no componente.
<html xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:c="http://java.sun.com/jstl/core" xmlns:ice="http://www.icesoft.com/icefaces/component">
Este trecho define que o componente será uma composição, que não apresenta conteúdos fora da tag .
<ui:composition>
Este trecho define o comportamento do nosso componente.
<tr>
<td class="label"><ice:outputLabel for="#{label}">#{labelValue}</ice:outputLabel> <c:if test="${required == true}">(*)</c:if> : </td>
<td>
<ice:inputText id="#{field}" value="#{fieldValue}" required="#{required}" maxlength="#{maxlength}" size="#{size}" styleClass="cssInputStyle" readonly="#{readonly}" tabindex="#{tabindex}">
<f:validateLength minimum="#{minimum}"/>
<f:converter converterId="CustomInputTextConverter"/>
</ice:inputText>
<ice:panelGroup panelTooltip="#{label}Tooltip"><ice:graphicImage id="#{label}Image" url="/images/ajuda.gif"/></ice:panelGroup>
<ice:panelTooltip id="#{label}Tooltip" displayOn="hover" hideOn="mouseout" hoverDelay="300" styleClass="cssTooltipStyle">
<f:facet name="body"><ice:outputText value="#{ajuda}"/></f:facet>
</ice:panelTooltip>
<h:message for="#{label}" errorClass="cssErrorStyle"/>
</td>
</tr>
Este componente define uma entrada TR com 2 colunas (aqui estamos supondo que a definição da TABLE será feita no arquivo JSPX que usará o componente).
A primeira coluna conterá a definição do LABEL e a segunda coluna conterá a definição do objeto de INPUT e de uma imagem para o Tooltip.
Como pode ver, este componente constrói a representação de apenas 1 interação do usuário no formulário com 1 LABEL, 1 INPUT e 1 Tooltip. Isso tudo com mais de 10 linhas de instruções HTML e componentes ICEFaces.
Neste último trecho finalizamos o componente.
</ui:composition> </html>
Criar a Taglib
Depois de criar o arquivo do nosso componente, precisamos criar o arquivo que será a definição da taglib. Crie o arquivo “tutorial.taglib.xml” e adicione o código abaixo.
<facelet-taglib>
<namespace>http://www.faque.com.br/jsf</namespace>
<tag>
<tag-name>inputField</tag-name>
<source>../inc-components/input-component.jspx.jspx</source>
</tag>
</facelet-taglib>
O namespace será utilizado para você utilizar em suas outras implementações JSP. A tag define como o componente será identificado.
Declarar a Taglib no web.xml
Uma vez que a taglib está criada, esta precisa estar definida no arquivo web.xml
<context-param>
<param-name>facelets.LIBRARIES</param-name>
<param-value>/WEB-INF/facelets/tags/tutorial.taglib.xml<param-value>
</context-param>
Exemplo da chamada
Primeiramente, você precisa definir o namespace em algum trecho do seu arquivo JSP para que possa utilizar da taglib. Há algumas maneiras possíveis. A apresentada abaixo, define o namespace em uma DIV.
<div xmlns:fw="http://www.faque.com.br/jsf>
<fw:inputField label="nome" labelValue="#{lbl['label.nome']}"
field="nome" fieldValue="#{tutorialBBean.entity.nome}"
required="true" maxlength="50" size="50" tabindex="1" readonlyOnUpdate="false"
ajuda="Nome para o Tutorial que será aplicado aos funcionários"/>
Muito simples não?
Espero que este tutorial seja útil.
Branch criado no Eclipse não aparece para equipe
Hoje relatarei um “problema” relacionado ao Eclipse + CVS.
Problema
Ao criar um branch pelo browser da visão “CVS Repositories” do Eclipse (3.4, Ganymede), o branch criado não fica visível para os demais que acessam o repositório.
Solução
Criar o branch pela visão “Java”, a partir de um DateTag
IBM WebSphere Portal 6.1: fácil e rápido para instalar
Esta semana necessitei fazer a instalação do Portal Enable 6.1.0.1 para validar implementações feitas para o Portal 6.0.x e garantir a compatibilidade das aplicações, para REUSO.
As primeiras melhorias nesta versão são perceptíveis logo no processo de instalação:
- Os pacotes estão separados pelo tipo da licença (Portal, Express, Enable e Extend), o que facilita o entendimento do que pode ou não ser usado;
- Instala-se MUITO rapidamente o produto (menos de 1h30), pois requer basicamente os pacotes W-Setup, W-1, W-3, W-4 e W-5 (feita numa VM com Windows 2003 SP2 e 2 GB RAM).
Instalação
O processo de instalação consiste nos passos:
1 – Passar pela tela de boas vindas;

2 – Aceitar os Termos da Licença;

3 – Definir o tipo de instalação “Completo” ou “Administração”;

4 – Definir o diretório de instalação;

5 – Definir as propriedades da instância do servidor (nome do nó e host);

Defina o nome do nó com no máximo 5 caracteres e defina o nome do host com o nome completo (FQHN).
6 – Definir ID do usuário e senha para administração;

Verifique as regras para o sistema operacional e as regras específicas do produto.
7 – Para Windows, definir se será executado como serviço;

8 – Passar pela tela de resumo;

9 – Aguardar o término da instalação.

Quase não há ações a serem tomadas já que vários parâmetros são apresentados preenchidos. Como costumo dizer nos treinamentos de administração do Portal:
Instalar é SIMPLES, quase “next next finish”. O que pega são as configurações.
Após a instalação, já no primeiro acesso nota-se as alterações realizadas. Além das alterações/adições técnicas (maior foco na Web 2.0, JSR 286, configuração com o WAS 7, etc etc etc), o usuário final ganha muito em usabilidade. Os autores de conteúdo ganham em melhorias nas ferramentas do WCM.
Uma coisa é certa: a IBM continuará por um bom tempo como líder do mercado de Portais.
Apache Maven: customizar o relatório Checkstyle
Neste artigo mostrarei como customizar o relatório Checkstyle.
Porém, antes de proceguir, recomendo que veja os artigos anteriores.
Pois bem.
O relatório Checkstyle, por padrão, processa e apresenta TODAS as entradas como erro. Entretanto, alguns dos itens não necessariamente são erros: os itens relacionados a formatação, por exemplo. É claro que isso pode variar para cada empresa, cada profissional.
Diante desse meu argumento, apresentarei uma forma de customizar o relatório gerado pelo Checkstyle.
Em nosso projeto POM, adicionaremos uma entrada na configuração do plugin “maven-checkstyle-plugin”. Editem o arquivo pom.xml do projeto POM e façam com que a configuração fique como abaixo.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<configuration>
<configLocation>${basedir}/src/site/checkstyle/checkstyle-custom.xml</configLocation>
</configuration>
</plugin>
Nesse exemplo, adicionamos a entraca “configuration” direcionando para um arquivo específico chamado “checkstyle-costom.xml”.
Salve o arquivo, incremente a versão (deve ser a 1.5, imagino) do POM e faça o deploy.
mvn install
Após esse procedimento, copie o arquivo “checkstyle-custom.xml” no projeto BASE (esse arquivo contém algumas alterações que movem o restuldado “error” para “info”, por exemplo).

Edite o arquivo pom.xml do projeto BASE e atualize a referência para o projeto POM. Gere o site.
mvn site
Veja o resultado gerado para o relatório do Checkstle.
Comparem com a primeira versão de relatório gerado pelo Checksyle e notem as diferenças. Nesta nova versão, muitos erros foram desconsiderados e entradas do tipo “info” foram apresentadas.
Arquivos POM
Até este momento, temos as seguintes versões dos arquivos POM:


