how I can set the schedule component ?????

UI Components for JSF
Post Reply
fancho
Posts: 5
Joined: 03 Feb 2010, 23:49

02 Jun 2010, 18:49

Hi, I would like to know how to configure the schedule component, because in my project I get errors, my code is as follows:
In faces-config.xml:

Code: Select all

<managed-bean>
        <managed-bean-name>scheduleController</managed-bean-name>
        <managed-bean-class>Persistencia.ScheduleController</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
and the body of my page is:

Code: Select all

 <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>
My class ScheduleController.java is:

Code: Select all

import java.util.Calendar;
import java.util.Date;
import javax.faces.application.FacesMessage;
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.ScheduleEvent;
import org.primefaces.model.ScheduleModel;

public class ScheduleController {

        private ScheduleModel eventModel;
        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()));
        }

        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;
        }

        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) {
            System.out.println("aca");
                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;
        }
}
I would like to know if I have to configure another file, the calendar shows it well but to select a date to enter a new event I get the following error:

Code: Select all

ADVERTENCIA: executePhase(APPLY_REQUEST_VALUES 2,com.sun.faces.context.FacesContextImpl@13c6654) threw exception
javax.faces.FacesException: /AbAdministracionRecordatorios.jsp(35,104) '#{scheduleController.onDateSelect}' Method not found: Persistencia.ScheduleController@9e7d46.onDateSelect(org.primefaces.event.ScheduleDateSelectEvent)
        at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:109)
        at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
        at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
        at com.sun.faces.extensions.avatar.lifecycle.PartialTraversalLifecycle.execute(PartialTraversalLifecycle.java:94)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at com.sun.webui.jsf.util.UploadFilter.doFilter(UploadFilter.java:267)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:619)
Caused by: org.apache.jasper.el.JspMethodNotFoundException: /AbAdministracionRecordatorios.jsp(35,104) '#{scheduleController.onDateSelect}' Method not found: Persistencia.ScheduleController@9e7d46.onDateSelect(org.primefaces.event.ScheduleDateSelectEvent)
        at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:71)
        at org.primefaces.component.schedule.Schedule.broadcast(Schedule.java:452)
        at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:416)
        at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:494)
        at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:101)
        ... 22 more
I dont know why this error because the method onDateSelect is in the ScheduleController bean.. I´m using the libraries primefaces-1.0.2.jar and primefaces-1.0.2-sources.jar
thanks for your help and sorry for the long question and my english :) .

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

02 Jun 2010, 19:58

Maybe you need to fix your package name, not sure uppercase packages in java are valid. Maybe that's the reason, other than that it looks ok actually.

Code: Select all

<managed-bean>
        <managed-bean-name>scheduleController</managed-bean-name>
        <managed-bean-class>persistencia.ScheduleController</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>

fancho
Posts: 5
Joined: 03 Feb 2010, 23:49

02 Jun 2010, 22:48

thanks for the quick response, I change the package name to persistencia but it didnt work, I think the problem is in the parameter of the method onDateSelect because in the error it shows: Method not found: Persistencia.ScheduleController@9e7d46.onDateSelect(org.primefaces.event.ScheduleDateSelectEvent) but in the ScheduleController bean the method receive DateSelectEvent selectEvent. When I change the parameter to a ScheduleDateSelectEvent selectEvent in the ScheduleController bean it shows this error:

Code: Select all

ADVERTENCIA: executePhase(APPLY_REQUEST_VALUES 2,com.sun.faces.context.FacesContextImpl@14a1ab7) threw exception
javax.faces.FacesException: argument type mismatch
        at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:109)
        at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
        at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
        at com.sun.faces.extensions.avatar.lifecycle.PartialTraversalLifecycle.execute(PartialTraversalLifecycle.java:94)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at com.sun.webui.jsf.util.UploadFilter.doFilter(UploadFilter.java:267)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.IllegalArgumentException: argument type mismatch
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.el.parser.AstValue.invoke(AstValue.java:172)
        at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
        at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
        at org.primefaces.component.schedule.Schedule.broadcast(Schedule.java:452)
        at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:416)
        at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:494)
        at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:101)
        ... 22 more
Any ideas??? thank you again for your time...

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

04 Jun 2010, 11:10

Not sure what's wrong as there are no PrimeFaces classes in stack trace, can you make other PrimeFaces components work or schedule is the first one you are trying, maybe you have an environment issue.

fancho
Posts: 5
Joined: 03 Feb 2010, 23:49

08 Jun 2010, 19:38

I have worked with other components such as autocomplete and dialog in the same project, I dont know why this doesn´t work, thanks for the answer...

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

09 Jun 2010, 11:04

ScheduleDateSelectEvent is deprecated by DateSelectEvent.

marciodemendonca
Posts: 3
Joined: 22 Jul 2010, 02:54

22 Jul 2010, 03:00

I also have this problem. Apparently the method in the dateSelectListener does not receive an argument of type DateSelectEvent that why the org.apache.jasper.el.JspMethodNotFoundException. I already tried the new 1.1RC, but I still get this error. Do you have any idea of what could be happening?

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

22 Jul 2010, 11:41

Hi Marcio,

This might be a bug to investigate, can you please create a new post and provide more information.

http://primefaces.prime.com.tr/forum/vi ... f=3&t=1194

Thanks.

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 19 guests