如何自定义DefaultScheduleEvent并在PrimeFaces日程安排中创建我们自己的事件

时间:2018-09-29 05:16:43

标签: primefaces

默认情况下,PrimeFaces DefaultScheduleEvent具有以下属性 标题,说明,开始日期,结束日期等 我的问题是如何在计划事件中包含一个或多个自定义属性。

1 个答案:

答案 0 :(得分:0)

我用来生成自定义详细信息对话框的一种不太技术性的解决方法是通过styleClasses确定对象类型,例如:

    public ScheduleModel getEventModel() {
    if (eventModel == null) {
        eventModel = new DefaultScheduleModel();
        /* 
        *  Just fill your model with a couple things, setting a  specific styleClass
        *  for each type. Btw, you can also use this to give a specific appearance
        *  to each data type
        */

        for(Activity act: myActivities){
            event = new DefaultScheduleEvent(act.getActName(), act.getStartDate(), act.getEndDate(),"activity");
            eventModel.addEvent(event);
        }

        for(Meeting meet : myMeetings){
            event = new DefaultScheduleEvent(meet.getMeetPurpose(), meet.getStartDate(), meet.getEndDate(),"meeting");
            eventModel.addEvent(event);
        }
    }
    return eventModel
}

public void onEventSelect(SelectEvent selectEvent) {
    if(selectEvent.getStyleClass().contains("activity")){
        /*
        *   Search for object on DB and do stuff.
        */
    }
}

在我的onEventSelect中,您可以在会话Bean上使用searchForActivity(event.getTitle(), event.getStartDate(), event.getEndDate())来获取与此特定对象有关的所有信息。然后,您可以使用检索到的对象构建常规视图。

我知道这可能不是实现“ 自定义事件”的最佳方法,但是它将允许您创建所需的任何类并根据内容构建视图您想要显示给用户。

希望对您有所帮助:)