p:schedule not showing Events

UI Components for JSF
Post Reply
ccamr
Posts: 3
Joined: 03 Jun 2010, 17:49

03 Jun 2010, 18:00

Hi

i'm trying to integrate the p:schedule in my project and started by copying from the showcase ( where everything works fine).
But in my application I cant see any Events. If i create one it is not shown in the schedule ( btw. if i try to create a new event after i already "created" one i always see the details of the first in the popup window which doesnt happen in the showcase either).


This is my xhtml-Page

Code: Select all

<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:sf="http://www.springframework.org/tags/faces"
	xmlns:p="http://primefaces.prime.com.tr/ui"
	template="/WEB-INF/layouts/layout.xhtml">

	<ui:define name="content">
          .......
			<h:form>
				<p:ajaxStatus style="height:24px;display:block;">
					<f:facet name="start">
						<h:graphicImage value="../design/ajaxloading.gif" />
					</f:facet>
				
					<f:facet name="complete">
						<h:outputText value="" />
					</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">
				
					<p:scheduleEventDialog header="Event Details">
						<h:panelGrid columns="2">
							<h:outputLabel for="title" value="Title:" />
							<h:inputText id="title" value="#{scheduleController.event.title}" required="true"/>
							
							<h:outputLabel for="from" value="From:" />
							<p:inputMask id="from" value="#{scheduleController.event.startDate}" mask="99/99/9999">
								<f:convertDateTime pattern="dd/MM/yyyy" />
							</p:inputMask>
							
							<h:outputLabel for="to" value="To:" />
							<p:inputMask id="to" value="#{scheduleController.event.endDate}" mask="99/99/9999">
								<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" actionListener="#{scheduleController.addEvent}" oncomplete="myschedule.update();"/>
						</h:panelGrid>
					</p:scheduleEventDialog>
				</p:schedule>
				
			</h:form>
     	</div>
	</ui:define>
</ui:composition>
And my Controller which is basically copied from the showcase too

Code: Select all


public class ScheduleController implements Serializable{

	private ScheduleModel eventModel;
	
	private ScheduleEvent event = new DefaultScheduleEvent();
	
	private String theme;

	public ScheduleController() {
		System.out.println("!!ScheduleController created!!");
		setEventModel(new DefaultScheduleModel());
		loadEvents();
	}
	
	private void loadEvents() {
		getEventModel().addEvent(new DefaultScheduleEvent("Champions League Match", previousDay8Pm(), previousDay11Pm()));
	}
	
	public void addEvent(ActionEvent actionEvent) {
		System.out.println("ADD Event");
		if(getEvent().getId() == null)
			getEventModel().addEvent(getEvent());
		else
			getEventModel().updateEvent(getEvent());
		
		setEvent(new DefaultScheduleEvent());
	}
	
	public void onEventSelect(ScheduleEntrySelectEvent selectEvent) {
		System.out.println("onEventSelect");
		setEvent(selectEvent.getScheduleEvent());
	}
	
	public void onDateSelect(DateSelectEvent selectEvent) {
		System.out.println("onDateSelect");
		setEvent(new DefaultScheduleEvent(Math.random() + "", selectEvent.getDate(), selectEvent.getDate()));
	}
	
	public void onEventMove(ScheduleEntryMoveEvent event) {
		System.out.println("onEventMove");
		FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Event moved", "Day delta:" + event.getDayDelta() + ", Minute delta:" + event.getMinuteDelta());
		
		addMessage(message);
	}
	
	public void onEventResize(ScheduleEntryResizeEvent event) {
		System.out.println("onEventResize");
		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);
	}

}
I'm using
TC Server 6.0.20
Primefaces 1.0.1
JSF 1.2
Spring Webflow 2.0.9.RELEASE
Facelets 1.1.14


Any Ideas why i dont see any Events? ( Even the one created in the c'tor )

Thanks in advance

Greetz ccamr

Bexx
Posts: 18
Joined: 10 May 2010, 15:48
Location: Saarbrücken

04 Jun 2010, 10:01

Hi,

I have exactly (!) the same problem...
Already posted here, but couldn't get it to work properly.

(http://primefaces.prime.com.tr/forum/vi ... 405#p12405)

If you find an answer, let me know!

In my case I first had the suspicion, that it might not work in combination
with the tabview- component, but I couldn't find a relation.
Are you embedding the component somewhere into another page by f.e. an include?
Maybe we can find a context there...
Thanks in advance :)

__________________
Achieving results often isn't a matter of will
it's a matter of strength...
__________________
JSF 2.0/ Glassfish v3
NetBeans 6.9

cagatay.civici
Prime
Posts: 18616
Joined: 05 Jan 2009, 00:21
Location: Cybertron
Contact:

07 Jun 2010, 10:51

ccamr, can you check the firebug response for the 2nd post of your page with schedule. Schedule does a second post when page is opened to retrieve the events dynamically. Maybe spring webflow is causing the issue.

sloan1919
Posts: 2
Joined: 14 Jun 2010, 00:36

14 Jun 2010, 07:54

I can verify this is the case. I am running JSF 2.0, Glassfish v3, JDK 1.6, primefaces 2.0 and can not get the example to run successfully. Here is the code

.xhtml

Code: Select all

<?xml version='1.0' encoding='UTF-8' ?>
<!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://java.sun.com/jsf/html"
      xmlns:o="http://openfaces.org/"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.prime.com.tr/ui">
    <h:head>
        <title>AMS test</title>
        
    </h:head>
    <h:body>
      <h:form>
          <p:schedule allDaySlot="false"  view="agendaDay" value="#{ScheduleController.eventModel}" editable="false" />
        </h:form>
    </h:body>
</html>
Here is the backing bean

Code: Select all

package scheduler;

import java.io.Serializable;
import java.util.Date;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.primefaces.model.*;


/**
 *
 * @author sloan1919
 */
@ManagedBean(name="ScheduleController")
@SessionScoped

public class ScheduleController implements Serializable {

	private ScheduleModel eventModel;

    public ScheduleModel getEventModel() {
        System.out.println("It retrived the Event Model! The Model has " + eventModel.getEventCount());
        for (ScheduleEvent event : eventModel.getEvents())
              System.out.println("Event Date: " + event.getStartDate() + " Ends on " + event.getEndDate() + " Title: " + event.getTitle());
        
        return eventModel;
    }



	public ScheduleController() {
            Date start = new Date();
            Date end = new Date();
            end.setHours(10);
            start.setHours(10);
            start.setMinutes(30);
            end.setMinutes(45);
            DefaultScheduleEvent event2 = new DefaultScheduleEvent("Champions League Match", start, end);
		
            eventModel = new DefaultScheduleModel();
            eventModel.addEvent(event2);
            eventModel.addEvent(new DefaultScheduleEvent("Champions League Match 2", start, end));
            System.out.println(eventModel.getEventCount() + " Events were added!");


	}

}

And finally the output....
INFO: 2 Events were added!
INFO: It retrived the Event Model! The Model has 2
INFO: Event Date: Mon Jun 14 10:30:16 CDT 2010 Ends on Mon Jun 14 10:45:16 CDT 2010 Title: Champions League Match
INFO: Event Date: Mon Jun 14 10:30:16 CDT 2010 Ends on Mon Jun 14 10:45:16 CDT 2010 Title: Champions League Match 2
INFO: It retrived the Event Model! The Model has 2
INFO: Event Date: Mon Jun 14 10:30:16 CDT 2010 Ends on Mon Jun 14 10:45:16 CDT 2010 Title: Champions League Match
INFO: Event Date: Mon Jun 14 10:30:16 CDT 2010 Ends on Mon Jun 14 10:45:16 CDT 2010 Title: Champions League Match 2
Ok so the schedule displays just fine but there are no events. The events are in the model and the component is querying the backing bean for the model housing the events but not displaying them. Even upon refresh nothing. BTW the events are always requested twice, back to back. (The two passes I am assuming) Other primface components seem to work just not this one. Any ideas?

sloan1919
Posts: 2
Joined: 14 Jun 2010, 00:36

18 Jun 2010, 07:24

ideas?

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 39 guests