ICEfaces : Calendrier
stoi la face de glaçon
Sur cette magnifique citation, je me suis remis à ICEfaces. Au programme aujourd'hui : le 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}" />
A quand un calendrier dans Swing ?Ma gueule :D...Posted by mf on avril 23, 2008 at 12:21 AM CEST #
Posted by mf on mai 09, 2008 at 06:27 PM CEST #