quinta-feira, 17 de março de 2011

Plugin jQuery Date Mask

Olá, pessoal!

Hoje resolvi estudar um pouco sobre um componente que já precisei e não encontrei.
O componente precisaria formatar uma data em um input e, no decorrer da digitação ele corrigir datas inválidas como 30/02.
Como não encontrei, eu criei. =)

Veja como ficou:

Sem informar parâmetros:

Data:

jQuery(function($){
   $(seletor).dateMask();
});

Informando todos parâmetros:

Data:

jQuery(function($){
   $(seletor).dateMask({separator:'-', format:'dmy', minYear:1900, maxYear:2011});
});

Formato de mês e ano:

Data:

jQuery(function($){
   $(seletor).dateMask({separator:' ', format:'my', minYear:1900, maxYear:2011});
});


Veja a documentação completa no jQuery Plugin

Download

Abraços!

quarta-feira, 16 de março de 2011

Mensagem desaparecendo

Olá!

Uma coisa que me quebrou muito a cabeiça foi fazer a mensagem do richfaces desaparecer após um determinado tempo.
Tanto estudei que descobri uma forma de fazer isso.

Primeiro é preciso criar uma funçao do jquery:
jQuery.fn.extend({
 hideMsg: function(time) { //PARÂMETRO EM MILISSEGUNDOS
  $el = $(this);  
  setTimeout(function() {
   if ($el && $el.attr('id') && $el.attr('id').indexOf('msg') > -1){
    $el.hide();
   }
  }, time );
 }
});

Em seguida é preciso fazer a chamada da função criada dentro da tag messages no jsp.
<rich:messages id="msg">
 <rich:jQuery query="hideMsg(8000)" selector="#msg"></rich:jQuery>
</rich:messages>

Já está pronto.
Nesse exemplo, após 8 segundos da exibição da mensagem, ela desaparece.

Não sei se existe uma maneira melhor de fazer isso, mas essa foi a que consegui.
As variações ficam por conta da criatividade de cada um. E não se esqueça de compartilhar conosco.


Espero ter ajudado!
Abraços!

Enviando e-mail de uma conta externa

Olá!

Nesse post vou mostrar como enviar e-mail utilizando a biblioteca JavaMail através de uma conta externa (nesse caso utilizei o gmail).

Segue o código:

import java.util.Date;
import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class EnviarEMail {

 public static void main(String[] args) {
  
  Properties p = new Properties();  
  p.put("mail.host", "smtp.gmail.com"); //CONFIGURAÇÃO DO GMAIL
  p.put("mail.smtp.starttls.enable","true");
  p.put("mail.smtp.port", "587");
  p.put("mail.smtp.auth", "true");

  Authenticator auth = new Authenticator() {
   
    public PasswordAuthentication getPasswordAuthentication() {
     return new PasswordAuthentication("meu_email@gmail.com", "minha_senha");
    }};

   try{
    Session session = Session.getInstance(p, auth);  
    MimeMessage msg = new MimeMessage(session);
 
    //DEFINE O ENDEREÇO DO REMETENTE
    InternetAddress[] de = {new InternetAddress("remetente@mail.com")};
 
    msg.setFrom(de[0]);
    msg.setReplyTo(de); //INFORMA O ENDEREÇO DE RESPOSTA
  
    msg.setRecipient(Message.RecipientType.TO, new InternetAddress("destinatario_1@mail.com"));
 
    //DEFINE A DATA DO ENVIO
    msg.setSentDate(new Date());
    msg.setSubject("Assunto da mensagem");
    
    String mensagem = "Aqui vem o conteúdo do e-mail";
    
    msg.setText(mensagem);

    //DEFINE A CODIFICAÇÃO DO TEXTO DA MENSAGEM. NESSE CASO HTML.
    msg.setContent(mensagem, "text/html");
 
    Transport.send(msg);
    
    System.out.println("Mensagem enviada com sucesso!");
    
  }catch (Exception e) {
   e.printStackTrace();
  }
 }
}

Para enviar o e-mail para mais de uma pessoa, basta adicionar um destinatário conforme segue:
//ENVIA COMO UMA CÓPIA
msg.addRecipient(Message.RecipientType.CC, new InternetAddress("destinatario_2@mail.com"));
//ENVIA COMO UMA CÓPIA OCULTA
msg.addRecipient(Message.RecipientType.BCC, new InternetAddress("destinatario_3@mail.com"));

Também é possível enviar um e-mail para várias pessoas de uma só vez:
msg.setRecipients(Message.RecipientType.BCC, new InternetAddress[]{new InternetAddress("destinatario_1@mail.com"), 
 new InternetAddress("destinatario_2@mail.com"), new InternetAddress("destinatario_3@mail.com")});

Isso fará com que os destinatários 1, 2 e 3 recebam o mesmo e-mail.
Notem que o RecipientType está definido como BCC (Cópia oculta). Isso significa que nenhum destinatário poderá visualizar a lista de destinatário.

Essa dica me ajudou muito. Espero que ajude mais pessoas.

Abraços!!!

terça-feira, 15 de março de 2011

Criar um array tipado de um ArrayList

Continuando na sequência dos estudos com arrays, também descobri como criar um array[] tipado por meio de um ArrayList.

Segue o código:

List<String> lista = Arrays.asList("Primeiro", "Segundo", "Terceiro");
String[] array = lista.toArray(new String[lista.size()]);
Isso é muito útil quando é necessário passar um array[] como parâmetro e se tem um ArrayList.

Criar um List já preenchido

Recentemente eu tive a necessidade de criar um List já preenchido para passá-lo como parâmetro.
Como não foi muito fácil de encontrar, decidi postar para que possa ajudar quem precise.

Segue o código:

List<string> lista = Arrays.asList("Primeiro", "Segundo", "Terceiro");
Esse código faz com que se tenha um List com as strings "Primeiro", "Segundo" e "Terceiro".