schedule bug when creating event

UI Components for JSF
Post Reply
henry49
Posts: 1
Joined: 19 May 2015, 10:47

19 May 2015, 10:55

Hi,

I have big issues with Primefaces component schedule. When I want to create events, the dialog window opens up, and I can enter information about a new event. But when I submit, the schedule doesn't display the event which has been just created. I can't find any solution.

Please Help :cry:

Code: Select all

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://xmlns.jcp.org/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui">
<h:head>
	<link type="text/css" rel="stylesheet" href="DATA/CSS/canevas.css" />
	
</h:head>


<h:body>
	
	<h:form>	
		<p:growl id="messages" showDetail="true" /> 
		 
		<p:schedule id="schedule" value="#{scheduleBean.model}" widgetVar="myschedule" editable="true" view="agendaWeek" 
				showWeekends="false" allDaySlot="false" slotMinutes="60" firstHour="7" timeZone="GMT+2">
			 
			<p:ajax event="dateSelect" listener="#{scheduleBean.onDateSelect}" update="eventDetails" oncomplete="PF('eventDialog').show();" />
            <p:ajax event="eventSelect" listener="#{scheduleBean.onEventSelect}" update="eventDetails" oncomplete="PF('eventDialog').show();" />
            <p:ajax event="eventMove" listener="#{scheduleBean.onEventMove}" update="messages" />
            <p:ajax event="eventResize" listener="#{scheduleBean.onEventResize}" update="messages" />	 
		
		</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="#{scheduleBean.event.title}" required="true" />
 
            <h:outputLabel for="from" value="From:" />
            <p:inputMask id="from" value="#{scheduleBean.event.startDate}" mask="99/99/9999">
                <f:convertDateTime pattern="dd/MM/yyyy" timeZone="GMT+2"/>
            </p:inputMask>
 
            <h:outputLabel for="to" value="To:" />
            <p:inputMask id="to" value="#{scheduleBean.event.endDate}" mask="99/99/9999">
                <f:convertDateTime pattern="dd/MM/yyyy" timeZone="GMT+2"/>
            </p:inputMask>
 
            <p:commandButton type="reset" value="Reset" />
            <p:commandButton id="addButton" value="Save" actionlistener="#{scheduleBean.addEvent}" oncomplete="PF('myschedule').update();PF('eventDialog').hide();" />
        </h:panelGrid>
    </p:dialog>    
</h:form>
</h:body>
</html>

Code: Select all

package bean.session;
import java.io.Serializable;
import java.util.Calendar;
import java.util.Date;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;

import model.SeanceModel;
import model.SessionModel;

import org.primefaces.event.ScheduleEntryMoveEvent;
import org.primefaces.event.ScheduleEntryResizeEvent;
import org.primefaces.event.SelectEvent;
import org.primefaces.model.DefaultScheduleEvent;
import org.primefaces.model.DefaultScheduleModel;
import org.primefaces.model.ScheduleEvent;
import org.primefaces.model.ScheduleModel;

import dao.DAOFactory;

@ManagedBean(name="scheduleBean")
@ViewScoped
public class ScheduleBean implements Serializable{
		/** 
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private ScheduleModel model;
	private ScheduleEvent event = new DefaultScheduleEvent();
	
	private SessionModel sessionModel = DAOFactory.getSessionDAO().find(1); 
	private SeanceModel seanceModel = new SeanceModel();
		
	
	public ScheduleModel getModel() { 
		return model; 
	}
	
	public void setModel(ScheduleModel model) { 
		this.model = model; 
	}
	
	public ScheduleEvent getEvent() { 
		return event; 
	}
	
	public void setEvent(ScheduleEvent event) { 
		this.event = event; 
	}
	
	
	public void addEvent(ActionEvent actionEvent) {
        if(event.getId() == null){
            model.addEvent(event);
        }else{
            model.updateEvent(event);
        }
        event = new DefaultScheduleEvent();
    }
		     
    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 doPlanifierSession() {								
		this.sessionModel = DAOFactory.getSessionDAO().create(this.sessionModel);
		return "agendaSession";
	}
	
	public void onEventSelect(SelectEvent e) {
		event = (ScheduleEvent) e.getObject();
	}
	
	public void onDateSelect(SelectEvent e) {
		event = new DefaultScheduleEvent("", (Date) e.getObject(), (Date) e.getObject());
	}

	public SessionModel getSessionModel() {
		return sessionModel;
	}

	public void setSessionModel(SessionModel sessionModel) {
		this.sessionModel = sessionModel;
	}

	public SeanceModel getSeanceModel() {
		return seanceModel;
	}

	public void setSeanceModel(SeanceModel seanceModel) {
		this.seanceModel = seanceModel;
	}
}

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 59 guests