ICEfaces : Calendrier

stoi la face de glaçon

Sur cette magnifique citation, je me suis remis à ICEfaces. Au programme aujourd'hui : le calendrier.

Calendrier


J'ai choisi le calendrier pensant m'attaquer à un composant un peu plus difficile que l'auto-complétion. C'était mal connaître ICEfaces. Une fois de plus, la facilité à été au rendez-vous.

Première étape : la création d'un JavaBean. Rien de bien compliqué, juste deux champs, et les getters / setters associés. Et c'est tout.
package com.aperigeek.icefaces.calendar;

import java.util.Date;
import java.util.TimeZone;

public class CalendarBean {

    private Date date = new Date();
    
    private TimeZone timeZone = TimeZone.getDefault();

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    public TimeZone getTimeZone() {
        return timeZone;
    }

    public void setTimeZone(TimeZone timeZone) {
        this.timeZone = timeZone;
    }

}

Une petite déclaration dans faces-config.xml :
<managed-bean>
    <managed-bean-name>calendarBean</managed-bean-name>
    <managed-bean-class>com.aperigeek.icefaces.calendar.CalendarBean</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
</managed-bean>

Et il n'y a plus qu'à l'utiliser :
<ice:selectInputDate id="calendar" value="#{calendarBean.date}">
    <f:convertDateTime timeZone="#{calendarBean.timeZone}" />
</ice:selectInputDate>

La seule difficulté dans ce code réside dans la balise <f:convertDateTime />. Il est très important de spécifier un attribut timeZone, sans lequel votre composant <ice:selectInputDate /> lèvera une NullPointerException !

Après investigation, il semblerais que l'attribut timeZone soit obligatoire si et seulement si vous insérez une balise f:convertDateTime dans votre calendrier. Le code suivant est conc suffisant :
<ice:selectInputDate id="calendar" value="#{calendarBean.date}" />

Permalink  |  Commentaires (2)


Comments:

A quand un calendrier dans Swing ? Ma gueule :D...

Posted by mf on avril 23, 2008 at 12:21 AM CEST #

Apparamment si tu mets l'attribut type de convertDateTime à date tu n'as pas besoin de timeZone...

Posted by mf on mai 09, 2008 at 06:27 PM CEST #

Post a Comment:
  • HTML Syntax: Allowed