在事件移动时检查有效的计划区域

时间:2014-10-25 14:25:36

标签: java primefaces

我有活动安排。每个人都有一个授权的日期范围,我想防止事件被移动到其范围之外。例如,事件可能能够在01-01-2014到01-30-2014的范围内移动。我可以在控制器中找到这些参数。

planning.xhtml:

<h:form id="agenda">
    <p:panel id="panelSchedule" header="Agenda" styleClass="panelSchedule">
        <p:growl id="messages"/>
        <h:panelGrid columnClasses="scheduleColumn">

            <!-- Binding schedule and event -->
            <p:schedule id="schedule" 
                        locale="fr" 
                        value="#{planningController.eventModel}" 
                        widgetVar="myschedule" 
                        resizable="false" 
                        timeZone="CET" 
                        timeFormat="H:mm" 
                        columnFormat="week:'ddd dd/MM', day:'dddd dd/MM'" axisFormat="H:mm">
                <p:ajax event="dateSelect" 
                        listener="#{planningController.onDateSelect}" 
                        update="eventDetails" 
                        oncomplete="PF('eventDialog').show();" 
                        disabled="#{planningController.disabledCalendar}"/>
                <p:ajax event="eventSelect" 
                        listener="#{planningController.onEventSelect}" 
                        update="eventDetails" oncomplete="PF('eventDialog').show();" />
                <p:ajax event="eventMove" 
                        listener="#{planningController.onEventMove}" 
                        update="messages" />
            </p:schedule>
        </h:panelGrid>
    </p:panel>
</h:form>

planningController.java:

public void onEventMove(ScheduleEntryMoveEvent event) {
    if (event move on wrong range) {
        // don't move the event
    } else {
        // it's ok, you can move event
    }
}

我不需要详细的代码,只是一个好的起点。我尝试过搜索,但我不知道使用的正确术语。

1 个答案:

答案 0 :(得分:0)

在有关ScheduleEntryMoveEvent的PrimeFaces API中,您可以使用getDayDelta()方法以及getScheduleEvent().getStartDate()getScheduleEvent().getEndDate()进行计算,以验证修改后的事件是否为日期在允许的范围内。

相关问题