Firsly i want to felicity the PrimeFaces' Developement Team for their work.
I post this message because I need your help.
I have try to integrate the schedule component to my application but there ares some problem. Firstly the component doesn't works for chrome browser.
Secondly with other navigator i can just see the schedule but i can't see the event that i have create in my code or add new event. The dialog module don't appear.
This is my html page:
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE form PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:ui="http://java.sun.com/jsf/facelets">
<!-- h:head>
<style type="text/css" media="screen">@import "css/style.css";</style>
<style type="text/css" media="screen">@import "css/table.css";</style>
</h:head -->
<h:body>
<ui:composition template="layout.xhtml">
<ui:define name="titre">Gestion des cours</ui:define>
<ui:define name="centre">
<h1>Cours</h1>
<h:form>
<p:ajaxStatus style="height:24px;display:block;">
<f:facet name="start">
<h:graphicImage value="ee" />
</f:facet>
<f:facet name="complete">
<h:outputText value="ee" />
</f:facet>
</p:ajaxStatus>
<p:growl id="messages" showDetail="true" />
<p:schedule value="#{scheduleController.eventModel}"
editable="true" widgetVar="myschedule"
eventSelectListener="#{scheduleController.onEventSelect}"
dateSelectListener="#{scheduleController.onDateSelect}"
eventMoveListener="#{scheduleController.onEventMove}"
eventResizeListener="#{scheduleController.onEventResize}"
onEventMoveUpdate="messages" onEventResizeUpdate="messages"
onDateSelectUpdate="eventDetails" onDateSelectComplete="eventDialog.show()"
onEventSelectUpdate="eventDetails" onEventSelectComplete="eventDialog.show()">
</p:schedule>
<p:dialog widgetVar="eventDialog" header="Event Details" showEffect="clip" hideEffect="clip">
<h:panelGrid id="eventDetails" columns="2">
<h:outputLabel for="title" value="Title:" />
<p:inputText id="title" value="#{scheduleController.event.title}" />
<h:outputLabel for="from" value="From:" />
<p:inputMask id="from" mask="99/99/9999"
value="#{scheduleController.event.startDate}" >
<f:convertDateTime pattern="dd/MM/yyyy" />
</p:inputMask>
<h:outputLabel for="to" value="To:" />
<p:inputMask id="to" mask="99/99/9999"
value="#{scheduleController.event.endDate}" >
<f:convertDateTime pattern="dd/MM/yyyy" />
</p:inputMask>
<h:outputLabel for="allDay" value="All Day:" />
<h:selectBooleanCheckbox id="allDay"
value="#{scheduleController.event.allDay}" />
<p:commandButton type="reset" value="Reset" />
<p:commandButton value="Save"
oncomplete="myschedule.update();eventDialog.hide();"
actionListener="#{scheduleController.addEvent}" />
</h:panelGrid>
</p:dialog>
</h:form>
<table id="box-table-a" summary="Employee Pay Sheet">
<thead>
<tr>
<th scope="col">/</th>
<th scope="col">Lundi 14/02</th>
<th scope="col">Mardi 15/02</th>
<th scope="col">Mercredi 16/02</th>
<th scope="col">Jeudi 17/02</th>
<th scope="col">Vendredi 18/02</th>
<th scope="col">Samedi 19/02</th>
</tr>
</thead>
<tbody>
<tr>
<td>8h-9h</td>
<td></td>
<td></td>
<td>Mathématiques <small>B01</small></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>9h-10h</td>
<td>Mathématiques <small>B01</small></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>10h-11h</td>
<td>Mathématiques <small>B01</small></td>
<td></td>
<td></td>
<td>Français <small>B12</small></td>
<td>Anglais <small>B33</small></td>
<td>Français <small>B12</small></td>
</tr>
<tr>
<td>11h-12h</td>
<td>Mathématiques <small>B01</small></td>
<td>Français <small>B12</small></td>
<td>Français <small>B12</small></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>12h-14h</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>14h-15h</td>
<td>Francais<small>B01</small></td>
<td>Anglais <small>B33</small></td>
<td>Anglais <small>B33</small></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<div id="previous_next">
<div id="previous"><a href=""> Semaine précédente</a> </div>
<div id="next"><a href="">Semaine suivante </a></div>
</div>
</ui:define>
</ui:composition>
</h:body>
</html>
Code: Select all
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.ecole.controleur;
/**
*
* @author Romain
*/
import java.io.Serializable;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import javax.annotation.ManagedBean;
import javax.faces.application.FacesMessage;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import org.primefaces.event.DateSelectEvent;
import org.primefaces.event.ScheduleEntryMoveEvent;
import org.primefaces.event.ScheduleEntryResizeEvent;
import org.primefaces.event.ScheduleEntrySelectEvent;
import org.primefaces.model.DefaultScheduleEvent;
import org.primefaces.model.DefaultScheduleModel;
import org.primefaces.model.LazyScheduleModel;
import org.primefaces.model.ScheduleEvent;
import org.primefaces.model.ScheduleModel;
@ManagedBean
@SessionScoped
public class ScheduleController implements Serializable{
private ScheduleModel eventModel;
private ScheduleModel lazyEventModel;
private ScheduleEvent event = new DefaultScheduleEvent();
private String theme;
public ScheduleController() {
eventModel = new DefaultScheduleModel();
// eventModel.addEvent(new DefaultScheduleEvent("Champions League Match", previousDay8Pm(), previousDay11Pm()));
// eventModel.addEvent(new DefaultScheduleEvent("Birthday Party", today1Pm(), today6Pm()));
// eventModel.addEvent(new DefaultScheduleEvent("Breakfast at Tiffanys", nextDay9Am(), nextDay11Am()));
// eventModel.addEvent(new DefaultScheduleEvent("Plant the new garden stuff", theDayAfter3Pm(), fourDaysLater3pm()));
lazyEventModel = new LazyScheduleModel() {
@Override
public void loadEvents(Date start, Date end) {
clear();
Date random = getRandomDate(start);
addEvent(new DefaultScheduleEvent("Lazy Event 1", random, random));
random = getRandomDate(start);
addEvent(new DefaultScheduleEvent("Lazy Event 2", random, random));
}
};
}
public Date getRandomDate(Date base) {
Calendar date = Calendar.getInstance();
date.setTime(base);
date.add(Calendar.DATE, ((int) (Math.random()*30)) + 1); //set random day of month
return date.getTime();
}
public Date getInitialDate() {
Calendar calendar = Calendar.getInstance();
calendar.set(calendar.get(Calendar.YEAR), Calendar.FEBRUARY, calendar.get(Calendar.DATE), 0, 0, 0);
return calendar.getTime();
}
public ScheduleModel getEventModel() {
return eventModel;
}
public ScheduleModel getLazyEventModel() {
return lazyEventModel;
}
private Calendar today() {
Calendar calendar = Calendar.getInstance();
calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DATE), 0, 0, 0);
return calendar;
}
private Date previousDay8Pm() {
Calendar t = (Calendar) today().clone();
t.set(Calendar.AM_PM, Calendar.PM);
t.set(Calendar.DATE, t.get(Calendar.DATE) - 1);
t.set(Calendar.HOUR, 8);
return t.getTime();
}
private Date previousDay11Pm() {
Calendar t = (Calendar) today().clone();
t.set(Calendar.AM_PM, Calendar.PM);
t.set(Calendar.DATE, t.get(Calendar.DATE) - 1);
t.set(Calendar.HOUR, 11);
return t.getTime();
}
private Date today1Pm() {
Calendar t = (Calendar) today().clone();
t.set(Calendar.AM_PM, Calendar.PM);
t.set(Calendar.HOUR, 1);
return t.getTime();
}
private Date theDayAfter3Pm() {
Calendar t = (Calendar) today().clone();
t.set(Calendar.DATE, t.get(Calendar.DATE) + 2);
t.set(Calendar.AM_PM, Calendar.PM);
t.set(Calendar.HOUR, 3);
return t.getTime();
}
private Date today6Pm() {
Calendar t = (Calendar) today().clone();
t.set(Calendar.AM_PM, Calendar.PM);
t.set(Calendar.HOUR, 6);
return t.getTime();
}
private Date nextDay9Am() {
Calendar t = (Calendar) today().clone();
t.set(Calendar.AM_PM, Calendar.AM);
t.set(Calendar.DATE, t.get(Calendar.DATE) + 1);
t.set(Calendar.HOUR, 9);
return t.getTime();
}
private Date nextDay11Am() {
Calendar t = (Calendar) today().clone();
t.set(Calendar.AM_PM, Calendar.AM);
t.set(Calendar.DATE, t.get(Calendar.DATE) + 1);
t.set(Calendar.HOUR, 11);
return t.getTime();
}
private Date fourDaysLater3pm() {
Calendar t = (Calendar) today().clone();
t.set(Calendar.AM_PM, Calendar.PM);
t.set(Calendar.DATE, t.get(Calendar.DATE) + 4);
t.set(Calendar.HOUR, 3);
return t.getTime();
}
public ScheduleEvent getEvent() {
return event;
}
public void setEvent(ScheduleEvent event) {
this.event = event;
}
public void addEvent(ActionEvent actionEvent) {
if(event.getId() == null)
eventModel.addEvent(event);
else
eventModel.updateEvent(event);
event = new DefaultScheduleEvent();
}
public void onEventSelect(ScheduleEntrySelectEvent selectEvent) {
event = selectEvent.getScheduleEvent();
}
public void onDateSelect(DateSelectEvent selectEvent) {
event = new DefaultScheduleEvent(Math.random() + "", selectEvent.getDate(), selectEvent.getDate());
}
public void onEventMove(ScheduleEntryMoveEvent event) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Event moved", "Day delta:" + event.getDayDelta() + ", Minute delta:" + event.getMinuteDelta());
addMessage(message);
}
public void onEventResize(ScheduleEntryResizeEvent event) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Event resized", "Day delta:" + event.getDayDelta() + ", Minute delta:" + event.getMinuteDelta());
addMessage(message);
}
private void addMessage(FacesMessage message) {
FacesContext.getCurrentInstance().addMessage(null, message);
}
public String getTheme() {
return theme;
}
public void setTheme(String theme) {
this.theme = theme;
}
}
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>ecole</display-name>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>redmond</param-value>
</context-param>
<welcome-file-list>
<welcome-file>utilisateurs.jsf</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
</web-app>
thanks for your help and sorry for my bad english