use of com.googlecode.wicket.jquery.ui.calendar.CalendarView in project openmeetings by apache.
the class CalendarPanel method onInitialize.
@Override
protected void onInitialize() {
final Form<Date> form = new Form<>("form");
add(form);
dialog = new AppointmentDialog("appointment", this, new CompoundPropertyModel<>(getDefault()));
add(dialog);
boolean isRtl = isRtl();
Options options = new Options();
options.set("isRTL", isRtl);
options.set("header", isRtl ? "{left: 'agendaDay,agendaWeek,month', center: 'title', right: 'today nextYear,next,prev,prevYear'}" : "{left: 'prevYear,prev,next,nextYear today', center: 'title', right: 'month,agendaWeek,agendaDay'}");
options.set("allDaySlot", false);
options.set("axisFormat", Options.asString("H(:mm)"));
options.set("defaultEventMinutes", 60);
options.set("timeFormat", Options.asString("H(:mm)"));
options.set("buttonText", new JSONObject().put("month", getString("801")).put("week", getString("800")).put("day", getString("799")).put("today", getString("1555")).toString());
JSONArray monthes = new JSONArray();
JSONArray shortMonthes = new JSONArray();
JSONArray days = new JSONArray();
JSONArray shortDays = new JSONArray();
// first week day must be Sunday
days.put(0, getString("466"));
shortDays.put(0, getString("459"));
for (int i = 0; i < 12; i++) {
monthes.put(i, getString(String.valueOf(469 + i)));
shortMonthes.put(i, getString(String.valueOf(1556 + i)));
if (i + 1 < 7) {
days.put(i + 1, getString(String.valueOf(460 + i)));
shortDays.put(i + 1, getString(String.valueOf(453 + i)));
}
}
options.set("monthNames", monthes.toString());
options.set("monthNamesShort", shortMonthes.toString());
options.set("dayNames", days.toString());
options.set("dayNamesShort", shortDays.toString());
options.set("firstDay", cfgDao.getInt(CONFIG_CALENDAR_FIRST_DAY, 0));
calendar = new Calendar("calendar", new AppointmentModel(), options) {
private static final long serialVersionUID = 1L;
@Override
protected void onInitialize() {
super.onInitialize();
add(new CalendarFunctionsBehavior(getMarkupId()));
}
@Override
public boolean isSelectable() {
return true;
}
@Override
public boolean isDayClickEnabled() {
return true;
}
@Override
public boolean isEventClickEnabled() {
return true;
}
@Override
public boolean isEventDropEnabled() {
return true;
}
@Override
public boolean isEventResizeEnabled() {
return true;
}
// no need to override onDayClick
@Override
public void onSelect(AjaxRequestTarget target, CalendarView view, LocalDateTime start, LocalDateTime end, boolean allDay) {
Appointment a = getDefault();
LocalDateTime s = start, e = end;
if (CalendarView.month == view) {
LocalDateTime now = ZonedDateTime.now(getZoneId()).toLocalDateTime();
s = start.withHour(now.getHour()).withMinute(now.getMinute());
e = s.plus(1, ChronoUnit.HOURS);
}
a.setStart(getDate(s));
a.setEnd(getDate(e));
dialog.setModelObjectWithAjaxTarget(a, target);
dialog.open(target);
}
@Override
public void onEventClick(AjaxRequestTarget target, CalendarView view, int eventId) {
Appointment a = apptDao.get((long) eventId);
dialog.setModelObjectWithAjaxTarget(a, target);
dialog.open(target);
}
@Override
public void onEventDrop(AjaxRequestTarget target, int eventId, long delta, boolean allDay) {
Appointment a = apptDao.get((long) eventId);
if (!AppointmentDialog.isOwner(a)) {
return;
}
java.util.Calendar cal = WebSession.getCalendar();
cal.setTime(a.getStart());
cal.add(java.util.Calendar.MILLISECOND, (int) delta);
a.setStart(cal.getTime());
cal.setTime(a.getEnd());
cal.add(java.util.Calendar.MILLISECOND, (int) delta);
a.setEnd(cal.getTime());
apptDao.update(a, getUserId());
if (a.getCalendar() != null) {
updatedeleteAppointment(target, CalendarDialog.DIALOG_TYPE.UPDATE_APPOINTMENT, a);
}
}
@Override
public void onEventResize(AjaxRequestTarget target, int eventId, long delta) {
Appointment a = apptDao.get((long) eventId);
if (!AppointmentDialog.isOwner(a)) {
return;
}
java.util.Calendar cal = WebSession.getCalendar();
cal.setTime(a.getEnd());
cal.add(java.util.Calendar.MILLISECOND, (int) delta);
a.setEnd(cal.getTime());
apptDao.update(a, getUserId());
if (a.getCalendar() != null) {
updatedeleteAppointment(target, CalendarDialog.DIALOG_TYPE.UPDATE_APPOINTMENT, a);
}
}
};
form.add(calendar);
populateGoogleCalendars();
add(refreshTimer);
add(syncTimer);
calendarDialog = new CalendarDialog("calendarDialog", this, new CompoundPropertyModel<>(getDefaultCalendar()));
add(calendarDialog);
calendarListContainer.setOutputMarkupId(true);
calendarListContainer.add(new ListView<OmCalendar>("items", new LoadableDetachableModel<List<OmCalendar>>() {
private static final long serialVersionUID = 1L;
@Override
protected List<OmCalendar> load() {
List<OmCalendar> cals = new ArrayList<>(apptManager.getCalendars(getUserId()));
cals.addAll(apptManager.getGoogleCalendars(getUserId()));
return cals;
}
}) {
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(final ListItem<OmCalendar> item) {
item.setOutputMarkupId(true);
final OmCalendar cal = item.getModelObject();
item.add(new Button("item", new PropertyModel<String>(cal, "title")).add(new AjaxEventBehavior(EVT_CLICK) {
private static final long serialVersionUID = 1L;
@Override
protected void onEvent(AjaxRequestTarget target) {
calendarDialog.open(target, CalendarDialog.DIALOG_TYPE.UPDATE_CALENDAR, cal);
target.add(calendarDialog);
}
}));
}
});
add(new Button("syncCalendarButton").add(new AjaxEventBehavior(EVT_CLICK) {
private static final long serialVersionUID = 1L;
@Override
protected void onEvent(AjaxRequestTarget target) {
syncCalendar(target);
}
}));
add(new Button("submitCalendar").add(new AjaxEventBehavior(EVT_CLICK) {
private static final long serialVersionUID = 1L;
@Override
protected void onEvent(AjaxRequestTarget target) {
calendarDialog.open(target, CalendarDialog.DIALOG_TYPE.UPDATE_CALENDAR, getDefaultCalendar());
target.add(calendarDialog);
}
}));
add(calendarListContainer);
super.onInitialize();
}
Aggregations