sexta-feira, 2 de setembro de 2011

PrimeFaces 2.2.1 e JSF 2.0

Fala galera!!!
Hoje vamos falar de algo mais interessante para quem é desenvolvedor java web,
Falaremos de um facelets da vida chamado de primefaces. Ele, melhora consideravelmente a interface gráfica de sua aplicação, além de, otimizar seu processo de desenvolvimento.

Vamos lá
 
Estrutura do projeto
 
Para começar precisamos de um projeto web que já contenha o .jar do PrimeFaces (ver o link acima). Depois disso, dentro de pacotes de código-fonte crie um pacote com o nome de controle e dentro dele uma classe com o nome de TesteBean.java, essa classe não terá nada de mais, será apenas para auxiliar os componentes e testar outros, o código da mesma é:
 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@Named
@RequestScoped
public class TesteBean {
 
    private String nome;
    private String descricao;
    private String telefone;
    private String cpf;
    private String observacao;
    private Date dataCadastro;
    private String senha;
 
    public void testar(){
        FacesContext context = FacesContext.getCurrentInstance();
        context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Aviso", "Testado com sucesso!"));
    }
     
    //Gerar os getters e setters
}

Como podemos ver, o método testar não faz praticamente nada além de mandar uma mensagem para o JSF. O projeto fica assim:


Tudo o que vamos fazer a partir de agora é dentro do index.xhtml. Os componentes que serão apresentados nessa postagens são mais simples, mais utilizados para telas de cadastro.

Começando...
Nossa tela ficará assim:


Aparentemente não tem nada de mais, todos os campos parecem ser apenas inputText normais... mas não são!
Vou começar falando sobre os componente e mostrando os mesmo tempo, ao final eu posto o código inteiro, para mais informações e exemplos aconselho acessar os links disponíveis nos componentes, é do próprio site do PrimeFaces.
Dentro do h:body do index eu vou criar um p:fieldset, o mesmo que usamos na postagem anterior para testar se o prime estava funcionando:


Código-fonte do componente:



1
2
<p:fieldset legend="Meu Cadastro" toggleable="true">
</p:fieldset>

Agora dentro desse fieldset eu preciso de um h:form para poder usar p:commandButton, esse meu botão vai chamar o método feito no TesteBean:


Código-fonte do componente:

1
<p:commandButton value="Testar" actionListener="#{testeBean.testar}" />
 
Se clicar no botão nesse ponto, ele vai chamar o método do bean normalmente mas não vai aparecer nada, primeiramente porque não temos um componente para receber a mensagem enviada pelo método e além de ter esse componente precisamos mandar atualizar ele...

Para mostrar essa mensagem, o PrimeFaces tem duas opções: p:growl e p:messages, lembrando que você não precisa usar os dois juntos, apenas estou fazendo isso para exemplo, primeiro o growl:
 
Código-fonte do componente:

1
<p:growl id="avisos" showDetail="true" life="3000" />
 
Lembre-se de adicionar a propriedade update no p:commnadButton, e mandar atualizar o growl pelo id, ficando assim: update="avisos"

Agora vamos ver o messages:
 
Código-fonte do componente:

1
<p:messages id="mensagens" showDetail="true" />
 
Quanto ao update do commandButton, isso funciona da mesma forma para o messages, ficando assim update="mensagens"

Agora chega de frescuras e vamos começar os componentes de texto e datas... entre outros!
 
Para começar vamos usar o p:inputText, este componente serve mais para acompanhar o tema do PrimeFaces, mas pra quem gosta de tudo estilizado, ele ajuda muito!
 

Código-fonte do componente:

1
2
<h:outputText value="Nome:" />
<p:inputText id="nome" value="#{testeBean.nome}" />

O próximo componente acredito que seja bem útil, é o p:focus, ele é responsável por setar o foco em um campo ao abrir a página, nesse exemplo eu estou setando ele no campo anterior que tem o id nome. 
 
Obs: este componente deve ficar dentro do mesmo form que o componente que se deseja que tenha o foco, ao abrir a página ele fica assim:
 

Código-fonte do componente:

1
<p:focus for="nome" />

O p:inputTextarea, tem um efeito bem legal quando é clicado, e ele se expande de acordo com a quantidade de texto, e assim como o p:inputText serve mais pra manter o padrão do tema:
 
Código-fonte do componente:

1
2
<h:outputText value="Observações:" />
<p:inputTextarea value="#{testeBean.observacao}" />

O componente de agora é um dos que eu mais gosto, o p:calendar, este dispensa até comentários, vamos vê-lo:
Ao clicar na caixinha de texto, o calendário se abre, claro... tem outras opções de usar ele também, ver o link do p:calendar.
Código-fonte do componente:

1
2
<h:outputText value="Data cadastro:" />
<p:calendar value="#{testeBean.dataCadastro}" />

Outro que é bem útil é o p:inputMask, por não haver necessidade de ficar formatando na mão, por exemplo o número de CPF/CNPJ/telefone, entre outras opções, como a máscara é você quem define, serve para o que quiser:
 
Obs: a máscara só aparece quando o campo estiver em foco.
Código-fonte do componente:

1
2
3
4
<h:outputText value="Telefone:" />
<p:inputMask mask="(999)9999-9999" value="#{testeBean.telefone}" />
<h:outputText value="CPF:" />
<p:inputMask mask="999.999.999-99" value="#{testeBean.cpf}" />
 
Veja no link do p:inputMask as possibilidades de usar a propriedade mask, por exemplo, pode-se definir que um determinado campo tenha apenas letras, ou apenas números, ou que o caractere possa ser número ou letra... muito interessante este componente!

Que tal aparecer um teclado virtual ao clicar em um campo? Pois é, este é um componente que eu achei um máximo, mas não consegui aplicar ele em nenhum lugar (por enquanto), estou falando do p:keyboard, é um teclado virutal que tem várias possibilidades de uso (o padrão é um teclado completo com letras e números), aqui vou mostrar duas formas de uso que eu gostei, a primeira, apenas um teclado de letras:
 
Código-fonte do componente:

1
2
<h:outputText value="Descrição:" />
<p:keyboard layout="qwertyBasic" value="#{testeBean.descricao}" />

A outra forma de utilização, é uma configuração das propriedades para transformá-lo em um teclado virtual para senhas:
 
Código-fonte do componente:

1
2
<h:outputText value="Senha:" />
<p:keyboard password="true" keypadOnly="true" value="#{testeBean.descricao}" />
Lembrando que o componente é o mesmo, apenas muda as propriedades.

Agora para finalizar, vamos voltar as frescuras... quer usar um separador? O PrimeFaces, tem também, é o p:separator!!!

Este componente você define a comprimento e largura por css, com o width e height...
Código-fonte do componente:

1
<p:separator style="width: 80%; height: 5px" />

Para finalizar, o código-fonte completo da página index.xhtml:

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
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.prime.com.tr/ui" >
    <h:head>
        <title>PrimeFaces 2.2.1</title>
    </h:head>
    <h:body>
        <p:growl id="avisos" showDetail="true" life="3000" />
        <p:fieldset legend="Meu Cadastro" toggleable="true">
            <h:form>
                <p:focus for="nome" />
 
                <h:panelGrid columns="2">
                    <h:outputText value="Nome:" />
                    <p:inputText id="nome" value="#{testeBean.nome}" />
 
                    <h:outputText value="Observações:" />
                    <p:inputTextarea value="#{testeBean.observacao}" />
 
                    <h:outputText value="Data cadastro:" />
                    <p:calendar value="#{testeBean.dataCadastro}" />
 
                    <h:outputText value="Telefone:" />
                    <p:inputMask mask="(999)9999-9999" value="#{testeBean.telefone}" />
                    <h:outputText value="CPF:" />
                    <p:inputMask mask="999.999.999-99" value="#{testeBean.cpf}" />
 
                    <h:outputText value="Descrição:" />
                    <p:keyboard layout="qwertyBasic" value="#{testeBean.descricao}" />
                    <h:outputText value="Senha:" />
                    <p:keyboard password="true" keypadOnly="true" value="#{testeBean.descricao}" />
                </h:panelGrid>
                <p:separator style="width: 80%; height: 5px" />
 
                <p:commandButton value="Testar" actionListener="#{testeBean.testar}" update="avisos,mensagens" />
            </h:form>
        </p:fieldset>
        <p:messages id="mensagens" showDetail="true" />
    </h:body>
</html>
 
 
 
Como vimos, primefaces para quem programa para j2EE é uma mão na roda, principalmente para quem utiliza u JSF. Simples e completo.
 
Abraços e até a próxima! 
 

Certificação Java



Certificação Java

O programa de certificação da Sun em tecnologia Java é um programa mundial reconhecido no setor que se concentra em funções fundamentais da arquitetura corporativa e do desenvolvimento de softwares aplicativos. Como essas certificações se concentram na tecnologia, as habilidades e os conhecimentos adquiridos durante a preparação para as certificações da Sun podem ser transferidos de uma empresa para outra.
A filosofia da Sun é de que a certificação é fundamental para o processo de aprendizado, já que valida os conjuntos de habilidades necessários para funções específicas. A certificação da Sun também oferece uma progressão natural que contribui para seus objetivos profissionais.
  • Primeiro, quando você se torna um Associado Certificado Sun, a Sun verifica se você possui um conjunto básico de conhecimentos que possibilite o seu ingresso na carreira de desenvolvedor de aplicativos ou de gerente de projetos de software com a tecnologia Java.
  • Segundo, treinamos os desenvolvedores em um conjunto básico de habilidades que, depois, poderão ser validadas quando eles se tornarem Programadores Certificados Sun.
  • Depois disso, você poderá buscar certificações e treinamentos especializados ou avançados que contribuam para o seu progresso profissional em funções mais específicas, o que o tornará mais valioso para uma organização.
A Sun oferece as seguintes certificações profissionais em tecnologia Java:
Associado Certificado Sun para a Plataforma Java (SCJA)
Programador Certificado Sun para a Plataforma Java (SCJP)
Desenvolvedor Certificado Sun para a Plataforma Java (SCJD)
Desenvolvedor de Componentes Web Certificado Sun (SCWCD)
Desenvolvedor de Componentes de Negócios Certificado Sun (SCBCD)
Desenvolvedor Certificado Sun para Web Services em Java (SCDJWS)
Desenvolvedor de Aplicativos de Telefonia Móvel Certificado Sun (SCMAD)
Arquiteto Corporativo Certificado Sun (SCEA)

A meta da certificação Sun é testar o candidato em uma função específica. Assim, para se preparar para um exame de certificação, recomendamos o treinamento Sun e um conhecimento prático da tecnologia, antes de submeter-se ao exame. A Sun não afirma que os cursos são uma garantia de aprovação nos exames de certificação; no entanto, afirmamos que o treinamento Sun é um componente importante da preparação para a certificação. Consulte os métodos de preparação para o treinamento correspondentes a cada certificação listada acima.

By Rafael Ghezzi Nakamoto – fonte:  http://www.sun.com/training/certification/java/index.xml

terça-feira, 30 de agosto de 2011

Bolsa de Pesquisa EMBRAPA

From: Larissa Sato <larisato@gmail.com>
Date: 2011/8/29
Subject: Possibilidade de Bolsa


Caríssimos,
 
Está aberta uma vaga para bolsista na área de computação na EMBRAPA. Para ser bolsista o requisito é que a pessoa já tenha uma graduação, mas esteja ligado a alguma instituição de ensino ou em segunda graduação ou em programa de pós-graduação. Além disso, o candidato dever ter domínio em Desenvolvimento para Web e Banco de Dados. O valor da bolsa é de R$ 1100,00 e a princípio o trabalho é de 8 h por dia (a coordenação do projeto ainda está estudando melhor essa questão da carga horária). A bolsa é por 6 meses renováveis por mais 6.
Os interessados podem me enviar e-mail ou ligar o mais rápido possível, pois há urgência no preenchimento desta vaga.
 
Um abraço,
 
Larissa
8858-0417
--
Aline Marques

segunda-feira, 29 de agosto de 2011

Vagas

GTCON - Desenvolvedor Java - 2 posições - Campinas/SP

Enviado por: "Grupo Técnico de Consultores gtcon" rs22gtcon@yahoo.com.br   rs22gtcon

Seg, 29 de Ago de 2011 9:15 am



Bom dia!!!

A GTCON, consultoria provedora de soluções inovadoras em tecnologia da informação, seleciona profissionais para atuar em projeto de cliente multinacional:


DESENVOLVEDOR DE SISTEMAS PLENO - JAVA



Objetivo:

Desenvolver Sistemas, sendo responsável pelo desenvolvimento e implantação de sistemas informatizados, codificando aplicativos, prestando suporte técnico ao cliente e elaborando a documentação técnica.


 
Perfil de Competências Técnicas:

·          Formação Superior ou Técnica (Completa ou Cursando) na área de Tecnologia e Afins

·         Experiência em Programação na Plataforma JSE

·         Experiência na Linguagem SQL

·         Conhecimento no uso de ferramenta Eclipse

·         Conhecimento em Java Swing

·         Conhecimento em Engenharia de Software e UML

·         Conhecimento em tecnologias de teste automatizado (Junit, testing, etc)

·         Conhecimento em servidores de aplicação (Jboss, TomCat, etc)

·          Conhecimentos em ferramentas de analises de desempenho (Jprofiler, Jconsole, etc)

·         Conhecimento em Plataforma JEE

·         Conhecimento em Aplicativos de tomada de decisão

·         Conhecimento em Simulação

·         Conhecimento em Programação Matemática e Otimização Heurística

·         Conhecimento em Estatística




INGLÊS: AVANÇADO/ FLUENTE (Imprescindível)

ESPANHOL:  AVANÇADO / FLUENTE (Desejável)



Atividades serão realizadas em CAMPINAS
 Contratação por Regime: PESSOA JURÍDICA  (PJ)

Interessados que atendam o perfil da oportunidade descrita, devem enviar currículo informando a PRETENSÃO SALARIAL (PJ_ sob a sigla JAVA-CPS para flaviarosa@gtcon. com.br  Cadastre seu cv em nosso site: www.gtcon.com. br  

Admin: Bruno

Olá Galera! muito grato por estarem acessando nosso blog. Espero que seja possível transmitir de forma compreensível um pouco de meus conhecimentos em programação, para esta comunidade de desenvolvedores que cresce cada vez mais! Espero que Gostem! Abraço! E meu enorme obrigado à Renato Simões, Átila Soares,Wanderson Quinto, Emerson e a toda galera que sempre ajudou meu sincero obrigado....
Especialmente a Natalia Failache e Rita de Cassia que sempre apoiaram este sonho....

De seu amigo Bruno Rafael.