Displaying Calendar Items"
From Documentation
Line 30: | Line 30: | ||
= Assign the Model to Calendars= | = Assign the Model to Calendars= | ||
+ | |||
+ | <source lang='java' high='11'> | ||
+ | public class DisplayComposer extends SelectorComposer { | ||
+ | |||
+ | @Wire("calendars") | ||
+ | private Calendars calendars; | ||
+ | private SimpleCalendarModel model; | ||
+ | |||
+ | @Override | ||
+ | public void doAfterCompose(Component comp) throws Exception { | ||
+ | super.doAfterCompose(comp); | ||
+ | initModel(); | ||
+ | calendars.setModel(model); | ||
+ | } | ||
+ | </source> | ||
+ | |||
{{ZKCalendarEssentialsPageFooter}} | {{ZKCalendarEssentialsPageFooter}} |
Revision as of 06:45, 20 January 2021
Component in MVC Pattern
In the component perspective, Calendars is designed in MVC pattern:
- Calendars (Controller): receive UI events, calling event listeners
- CalendarModel (Model): stores CalendarItem
- ContentRenderer (View): renders a calender-related data to the client-side upon CalendarModel
Create a CalendarModel
Base on this architecture, if you want to show some items on a Calendar, you need to create some CalendarItem in a CalendarModel and assign it to Calendars. The default implementation, DefaultCalendarItem and SimpleCalendarModel, are sufficient for most requirements.
You can instantiate a SimpleCalendarModel with a collection of DefaultCalendarItem or add a DefaultCalendarItem after instantiation.
private SimpleCalendarModel model;
...
model = new SimpleCalendarModel(CalendarItemGenerator.generateList());
DefaultCalendarItem calendarItem = new DefaultCalendarItem("my title",
"my content",
null,
null,
false,
LocalDateTime.now().truncatedTo(ChronoUnit.HOURS),
LocalDateTime.now().truncatedTo(ChronoUnit.HOURS).plusHours(2)
model.add(calendarItem);
Assign the Model to Calendars
public class DisplayComposer extends SelectorComposer {
@Wire("calendars")
private Calendars calendars;
private SimpleCalendarModel model;
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
initModel();
calendars.setModel(model);
}
The example project is at Github