I'm building a theme right now with Theme Designer v 10.0.0 and adding some new components which is working great so far. But now I'm struggeling with the schedule component. I tried to implement like they did here https://www.primefaces.org/showcase/ui/ ... fwid=4ad1b and I tried a lot of different and older versions from the documentary as well but it didn't work. Is there something missing?
Stack Trace:
Code: Select all
java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Properties.java:434)
at java.util.Properties.load0(Properties.java:353)
at java.util.Properties.load(Properties.java:341)
at org.primefaces.designer.service.ExtenderService.createExtenderExamples(ExtenderService.java:21)
at org.primefaces.designer.service.ExtenderService$$OwbNormalScopeProxy0.createExtenderExamples(org/primefaces/designer/service/ExtenderService.java)
at org.primefaces.designer.view.ScheduleJava8View.init(ScheduleJava8View.java:167)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.webbeans.intercept.LifecycleInterceptorInvocationContext.proceed(LifecycleInterceptorInvocationContext.java:103)
at org.apache.webbeans.portable.InjectionTargetImpl.postConstruct(InjectionTargetImpl.java:324)
at org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:129)
at org.apache.webbeans.component.ManagedBean.create(ManagedBean.java:66)
at org.apache.webbeans.container.SerializableBean.create(SerializableBean.java:129)
at com.sun.faces.application.view.ViewScopeContextManager.createBean(ViewScopeContextManager.java:123)
at com.sun.faces.application.view.ViewScopeContext.get(ViewScopeContext.java:114)
at org.apache.webbeans.context.CustomPassivatingContextImpl.get(CustomPassivatingContextImpl.java:46)
at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:101)
at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.get(NormalScopedBeanInterceptorHandler.java:71)
at org.primefaces.designer.view.ScheduleJava8View$$OwbNormalScopeProxy0.getEventModel(org/primefaces/designer/view/ScheduleJava8View.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:94)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:156)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:184)
at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:190)
at org.apache.webbeans.el22.WrappedValueExpression.getValue(WrappedValueExpression.java:68)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:73)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:170)
at org.primefaces.component.schedule.ScheduleBase.getValue(ScheduleBase.java:100)
at org.primefaces.component.schedule.ScheduleRenderer.encodeScript(ScheduleRenderer.java:192)
at org.primefaces.component.schedule.ScheduleRenderer.encodeEnd(ScheduleRenderer.java:74)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:595)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1654)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:152)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:566)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1647)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1650)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:152)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:566)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1647)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1650)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1650)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:468)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:170)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:132)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:102)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:76)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:199)
at javax.faces.webapp.FacesServlet.executeLifecyle(FacesServlet.java:708)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:451)
at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1452)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:791)
at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1626)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:620)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1435)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:219)
at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:78)
at org.eclipse.jetty.server.ResourceService.sendWelcome(ResourceService.java:436)
at org.eclipse.jetty.server.ResourceService.doGet(ResourceService.java:251)
at org.eclipse.jetty.servlet.DefaultServlet.doGet(DefaultServlet.java:449)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1443)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:791)
at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1626)
at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:228)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1435)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:191)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.Server.handle(Server.java:516)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
at java.lang.Thread.run(Thread.java:748)
Code: Select all
package org.primefaces.designer.service;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Named;
@Named
@ApplicationScoped
public class ExtenderService {
public Map<String, ExtenderExample> createExtenderExamples() {
Properties properties = new Properties();
try (InputStream inStream = ExtenderService.class.getResourceAsStream("/schedule-extender-examples.properties")) {
properties.load(inStream);
}
catch (IOException e) {
e.printStackTrace();
}
Map<String, ExtenderExample> extenderExamples = new HashMap<>();
for (String key : properties.stringPropertyNames()) {
if (key != null && key.endsWith(".name")) {
String baseKey = key.substring(0, key.length() - 5);
ExtenderExample example = new ExtenderExample(baseKey, properties);
if (example.getName() != null && example.getValue() != null && !example.getName().trim().isEmpty()
&& !example.getValue().trim().isEmpty()) {
extenderExamples.put(baseKey, example);
}
}
}
return extenderExamples;
}
public static class ExtenderExample {
private String details;
private String html;
private String key;
private String link;
private String name;
private String value;
public ExtenderExample(String key, Properties properties) {
this.key = key;
this.details = properties.getProperty(key + ".details");
this.html = properties.getProperty(key + ".html");
this.link = properties.getProperty(key + ".link");
this.name = properties.getProperty(key + ".name");
this.value = properties.getProperty(key + ".value");
}
public String getDetails() {
return details;
}
public String getHtml() {
return html;
}
public String getKey() {
return key;
}
public String getLink() {
return link;
}
public String getName() {
return name;
}
public String getValue() {
return value;
}
}
}
Code: Select all
package org.primefaces.designer.view;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.event.AjaxBehaviorEvent;
import javax.faces.model.SelectItem;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
import org.primefaces.designer.service.ExtenderService;
import org.primefaces.designer.service.ExtenderService.ExtenderExample;
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.LazyScheduleModel;
import org.primefaces.model.ScheduleDisplayMode;
import org.primefaces.model.ScheduleEvent;
import org.primefaces.model.ScheduleModel;
@Named
@ViewScoped
public class ScheduleJava8View implements Serializable {
@Inject
private ExtenderService extenderService;
private ScheduleModel eventModel;
private ScheduleModel lazyEventModel;
private ScheduleEvent<?> event = new DefaultScheduleEvent<>();
private boolean slotEventOverlap = true;
private boolean showWeekNumbers = false;
private boolean showHeader = true;
private boolean draggable = true;
private boolean resizable = true;
private boolean showWeekends = true;
private boolean tooltip = true;
private boolean allDaySlot = true;
private boolean rtl = false;
private double aspectRatio = Double.MIN_VALUE;
private String leftHeaderTemplate = "prev,next today";
private String centerHeaderTemplate = "title";
private String rightHeaderTemplate = "dayGridMonth,timeGridWeek,timeGridDay,listYear";
private String nextDayThreshold = "09:00:00";
private String weekNumberCalculation = "local";
private String weekNumberCalculator = "date.getTime()";
private String displayEventEnd;
private String timeFormat;
private String slotDuration = "00:30:00";
private String slotLabelInterval;
private String slotLabelFormat;
private String scrollTime = "06:00:00";
private String minTime = "04:00:00";
private String maxTime = "20:00:00";
private String locale = "en";
private String timeZone = "";
private String clientTimeZone = "local";
private String columnHeaderFormat = "";
private String view = "timeGridWeek";
private String height = "auto";
private String extenderCode = "// Write your code here or select an example from above";
private String selectedExtenderExample = "";
private Map<String, ExtenderExample> extenderExamples;
@PostConstruct
public void init() {
eventModel = new DefaultScheduleModel();
DefaultScheduleEvent<?> event = DefaultScheduleEvent.builder()
.title("Champions League Match")
.startDate(previousDay8Pm())
.endDate(previousDay11Pm())
.description("Team A vs. Team B")
.url("https://www.uefa.com/uefachampionsleague/")
.borderColor("orange")
.build();
eventModel.addEvent(event);
event = DefaultScheduleEvent.builder()
.startDate(LocalDateTime.now().minusDays(6))
.endDate(LocalDateTime.now().minusDays(3))
.overlapAllowed(true)
.editable(false)
.resizable(false)
.display(ScheduleDisplayMode.BACKGROUND)
.backgroundColor("lightgreen")
.build();
eventModel.addEvent(event);
event = DefaultScheduleEvent.builder()
.title("Birthday Party")
.startDate(today1Pm())
.endDate(today6Pm())
.description("Aragon")
.overlapAllowed(true)
.borderColor("#CB4335")
.build();
eventModel.addEvent(event);
event = DefaultScheduleEvent.builder()
.title("Breakfast at Tiffanys (always resizable)")
.startDate(nextDay9Am())
.endDate(nextDay11Am())
.description("all you can eat")
.overlapAllowed(true)
.resizable(true)
.borderColor("#27AE60")
.build();
eventModel.addEvent(event);
event = DefaultScheduleEvent.builder()
.title("Plant the new garden stuff (always draggable)")
.startDate(theDayAfter3Pm())
.endDate(fourDaysLater3pm())
.description("Trees, flowers, ...")
.draggable(true)
.borderColor("#27AE60")
.build();
eventModel.addEvent(event);
DefaultScheduleEvent<?> scheduleEventAllDay = DefaultScheduleEvent.builder()
.title("Holidays (AllDay)")
.startDate(sevenDaysLater0am())
.endDate(eightDaysLater0am())
.description("sleep as long as you want")
.borderColor("#27AE60")
.allDay(true)
.build();
eventModel.addEvent(scheduleEventAllDay);
lazyEventModel = new LazyScheduleModel() {
@Override
public void loadEvents(LocalDateTime start, LocalDateTime end) {
for (int i = 1; i <= 5; i++) {
LocalDateTime random = getRandomDateTime(start);
addEvent(DefaultScheduleEvent.builder()
.title("Lazy Event " + i)
.startDate(random)
.endDate(random.plusHours(3))
.build());
}
}
};
extenderExamples = extenderService.createExtenderExamples();
}
public ExtenderService getScheduleExtenderService() {
return extenderService;
}
public void setScheduleExtenderService(ExtenderService extenderService) {
this.extenderService = extenderService;
}
public LocalDateTime getRandomDateTime(LocalDateTime base) {
LocalDateTime dateTime = base.withMinute(0).withSecond(0).withNano(0);
return dateTime.plusDays(((int) (Math.random() * 30)));
}
public ScheduleModel getEventModel() {
return eventModel;
}
public ScheduleModel getLazyEventModel() {
return lazyEventModel;
}
private LocalDateTime previousDay8Pm() {
return LocalDateTime.now().minusDays(1).withHour(20).withMinute(0).withSecond(0).withNano(0);
}
private LocalDateTime previousDay11Pm() {
return LocalDateTime.now().minusDays(1).withHour(23).withMinute(0).withSecond(0).withNano(0);
}
private LocalDateTime today1Pm() {
return LocalDateTime.now().withHour(13).withMinute(0).withSecond(0).withNano(0);
}
private LocalDateTime theDayAfter3Pm() {
return LocalDateTime.now().plusDays(1).withHour(15).withMinute(0).withSecond(0).withNano(0);
}
private LocalDateTime today6Pm() {
return LocalDateTime.now().withHour(18).withMinute(0).withSecond(0).withNano(0);
}
private LocalDateTime nextDay9Am() {
return LocalDateTime.now().plusDays(1).withHour(9).withMinute(0).withSecond(0).withNano(0);
}
private LocalDateTime nextDay11Am() {
return LocalDateTime.now().plusDays(1).withHour(11).withMinute(0).withSecond(0).withNano(0);
}
private LocalDateTime fourDaysLater3pm() {
return LocalDateTime.now().plusDays(4).withHour(15).withMinute(0).withSecond(0).withNano(0);
}
private LocalDateTime sevenDaysLater0am() {
return LocalDateTime.now().plusDays(7).withHour(0).withMinute(0).withSecond(0).withNano(0);
}
private LocalDateTime eightDaysLater0am() {
return LocalDateTime.now().plusDays(7).withHour(0).withMinute(0).withSecond(0).withNano(0);
}
public LocalDate getInitialDate() {
return LocalDate.now().plusDays(1);
}
public ScheduleEvent<?> getEvent() {
return event;
}
public void setEvent(ScheduleEvent<?> event) {
this.event = event;
}
public void addEvent() {
if (event.isAllDay()) {
// see https://github.com/primefaces/primefaces/issues/1164
if (event.getStartDate().toLocalDate().equals(event.getEndDate().toLocalDate())) {
event.setEndDate(event.getEndDate().plusDays(1));
}
}
if (event.getId() == null) {
eventModel.addEvent(event);
}
else {
eventModel.updateEvent(event);
}
event = new DefaultScheduleEvent<>();
}
public void onEventSelect(SelectEvent<ScheduleEvent<?>> selectEvent) {
event = selectEvent.getObject();
}
public void onViewChange(SelectEvent<String> selectEvent) {
view = selectEvent.getObject();
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "View Changed", "View:" + view);
addMessage(message);
}
public void onDateSelect(SelectEvent<LocalDateTime> selectEvent) {
event = DefaultScheduleEvent.builder()
.startDate(selectEvent.getObject())
.endDate(selectEvent.getObject().plusHours(1))
.build();
}
public void onEventMove(ScheduleEntryMoveEvent event) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Event moved",
"Delta:" + event.getDeltaAsDuration());
addMessage(message);
}
public void onEventResize(ScheduleEntryResizeEvent event) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Event resized",
"Start-Delta:" + event.getDeltaStartAsDuration() + ", End-Delta: " + event.getDeltaEndAsDuration());
addMessage(message);
}
public void onEventDelete() {
String eventId = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("eventId");
if (event != null) {
ScheduleEvent<?> event = eventModel.getEvent(eventId);
eventModel.deleteEvent(event);
}
}
public void onExtenderExampleSelect(AjaxBehaviorEvent event) {
ExtenderExample example = getExtenderExample();
if (!"custom".equals(selectedExtenderExample) && example != null) {
if (example.getDetails() != null && !example.getDetails().isEmpty()) {
FacesMessage message = new FacesMessage(example.getName(), example.getDetails());
FacesContext.getCurrentInstance().addMessage(event.getComponent().getClientId(), message);
}
this.extenderCode = example.getValue();
}
}
private void addMessage(FacesMessage message) {
FacesContext.getCurrentInstance().addMessage(null, message);
}
public boolean isShowWeekends() {
return showWeekends;
}
public void setShowWeekends(boolean showWeekends) {
this.showWeekends = showWeekends;
}
public boolean isSlotEventOverlap() {
return slotEventOverlap;
}
public void setSlotEventOverlap(boolean slotEventOverlap) {
this.slotEventOverlap = slotEventOverlap;
}
public boolean isShowWeekNumbers() {
return showWeekNumbers;
}
public void setShowWeekNumbers(boolean showWeekNumbers) {
this.showWeekNumbers = showWeekNumbers;
}
public boolean isShowHeader() {
return showHeader;
}
public void setShowHeader(boolean showHeader) {
this.showHeader = showHeader;
}
public boolean isDraggable() {
return draggable;
}
public void setDraggable(boolean draggable) {
this.draggable = draggable;
}
public boolean isResizable() {
return resizable;
}
public void setResizable(boolean resizable) {
this.resizable = resizable;
}
public boolean isTooltip() {
return tooltip;
}
public void setTooltip(boolean tooltip) {
this.tooltip = tooltip;
}
public boolean isRtl() {
return rtl;
}
public void setRtl(boolean rtl) {
this.rtl = rtl;
}
public boolean isAllDaySlot() {
return allDaySlot;
}
public void setAllDaySlot(boolean allDaySlot) {
this.allDaySlot = allDaySlot;
}
public double getAspectRatio() {
return aspectRatio == 0 ? Double.MIN_VALUE : aspectRatio;
}
public void setAspectRatio(double aspectRatio) {
this.aspectRatio = aspectRatio;
}
public String getLeftHeaderTemplate() {
return leftHeaderTemplate;
}
public void setLeftHeaderTemplate(String leftHeaderTemplate) {
this.leftHeaderTemplate = leftHeaderTemplate;
}
public String getCenterHeaderTemplate() {
return centerHeaderTemplate;
}
public void setCenterHeaderTemplate(String centerHeaderTemplate) {
this.centerHeaderTemplate = centerHeaderTemplate;
}
public String getRightHeaderTemplate() {
return rightHeaderTemplate;
}
public void setRightHeaderTemplate(String rightHeaderTemplate) {
this.rightHeaderTemplate = rightHeaderTemplate;
}
public String getView() {
return view;
}
public void setView(String view) {
this.view = view;
}
public String getNextDayThreshold() {
return nextDayThreshold;
}
public void setNextDayThreshold(String nextDayThreshold) {
this.nextDayThreshold = nextDayThreshold;
}
public String getWeekNumberCalculation() {
return weekNumberCalculation;
}
public void setWeekNumberCalculation(String weekNumberCalculation) {
this.weekNumberCalculation = weekNumberCalculation;
}
public String getWeekNumberCalculator() {
return weekNumberCalculator;
}
public void setWeekNumberCalculator(String weekNumberCalculator) {
this.weekNumberCalculator = weekNumberCalculator;
}
public String getTimeFormat() {
return timeFormat;
}
public void setTimeFormat(String timeFormat) {
this.timeFormat = timeFormat;
}
public String getSlotDuration() {
return slotDuration;
}
public void setSlotDuration(String slotDuration) {
this.slotDuration = slotDuration;
}
public String getSlotLabelInterval() {
return slotLabelInterval;
}
public void setSlotLabelInterval(String slotLabelInterval) {
this.slotLabelInterval = slotLabelInterval;
}
public String getSlotLabelFormat() {
return slotLabelFormat;
}
public void setSlotLabelFormat(String slotLabelFormat) {
this.slotLabelFormat = slotLabelFormat;
}
public String getDisplayEventEnd() {
return displayEventEnd;
}
public void setDisplayEventEnd(String displayEventEnd) {
this.displayEventEnd = displayEventEnd;
}
public String getScrollTime() {
return scrollTime;
}
public void setScrollTime(String scrollTime) {
this.scrollTime = scrollTime;
}
public String getMinTime() {
return minTime;
}
public void setMinTime(String minTime) {
this.minTime = minTime;
}
public String getMaxTime() {
return maxTime;
}
public void setMaxTime(String maxTime) {
this.maxTime = maxTime;
}
public String getLocale() {
return locale;
}
public void setLocale(String locale) {
this.locale = locale;
}
public String getTimeZone() {
return timeZone;
}
public void setTimeZone(String timeZone) {
this.timeZone = timeZone;
}
public String getClientTimeZone() {
return clientTimeZone;
}
public void setClientTimeZone(String clientTimeZone) {
this.clientTimeZone = clientTimeZone;
}
public String getColumnHeaderFormat() {
return columnHeaderFormat;
}
public void setColumnHeaderFormat(String columnHeaderFormat) {
this.columnHeaderFormat = columnHeaderFormat;
}
public ExtenderExample getExtenderExample() {
return extenderExamples.get(selectedExtenderExample);
}
public String getSelectedExtenderExample() {
return selectedExtenderExample;
}
public void setSelectedExtenderExample(String selectedExtenderExample) {
this.selectedExtenderExample = selectedExtenderExample;
}
public String getExtenderCode() {
return extenderCode;
}
public void setExtenderCode(String extenderCode) {
this.extenderCode = extenderCode;
}
public String getHeight() {
return height;
}
public void setHeight(String height) {
this.height = height;
}
public List<SelectItem> getExtenderExamples() {
return extenderExamples.values().stream() //
.sorted(Comparator.comparing(ExtenderExample::getName)) //
.map(example -> new SelectItem(example.getKey(), example.getName())) //
.collect(Collectors.toList());
}
}
Code: Select all
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"
template="/WEB-INF/template.xhtml">
<ui:define name="content">
<div class="home p-grid">
<div class="p-col-12">
<div class="card">
<h:form>
<p:growl id="messages" showDetail="true"/>
<p:schedule id="schedule" value="#{scheduleJava8View.eventModel}" widgetVar="myschedule">
<p:ajax event="dateSelect" listener="#{scheduleJava8View.onDateSelect}" update="eventDetails"
oncomplete="PF('eventDialog').show();"/>
<p:ajax event="eventSelect" listener="#{scheduleJava8View.onEventSelect}" update="eventDetails"
oncomplete="PF('eventDialog').show();"/>
<p:ajax event="eventMove" listener="#{scheduleJava8View.onEventMove}" update="messages"/>
<p:ajax event="eventResize" listener="#{scheduleJava8View.onEventResize}" update="messages"/>
</p:schedule>
<p:dialog widgetVar="eventDialog" header="Event Details" showEffect="fade" hideEffect="fade">
<h:panelGrid id="eventDetails" columns="2" cellpadding="7">
<p:outputLabel for="title" value="Titles" styleClass="p-text-bold"/>
<p:inputText id="title" value="#{scheduleJava8View.event.title}" required="true"/>
<p:outputLabel for="from" value="From" styleClass="p-text-bold"/>
<p:datePicker id="from" value="#{scheduleJava8View.event.startDate}" pattern="dd/MM/yyyy"
showTime="true" appendTo="@(body)"/>
<p:outputLabel for="to" value="To" styleClass="p-text-bold"/>
<p:datePicker id="to" value="#{scheduleJava8View.event.endDate}" pattern="dd/MM/yyyy"
showTime="true" appendTo="@(body)"/>
<p:outputLabel for="allDay" value="All Day" styleClass="p-text-bold"/>
<h:selectBooleanCheckbox id="allDay" value="#{scheduleJava8View.event.allDay}"/>
</h:panelGrid>
<div class="p-d-flex p-jc-between p-mt-3">
<p:commandButton type="reset" value="Reset" styleClass="p-text-bold ui-button-outlined"/>
<p:commandButton id="addButton" value="Save" action="#{scheduleJava8View.addEvent}"
oncomplete="PF('myschedule').update();PF('eventDialog').hide();"/>
</div>
</p:dialog>
</h:form>
</div>
</div>
</div>
</ui:define>
</ui:composition>