use of org.olat.commons.calendar.model.KalendarRecurEvent in project OpenOLAT by OpenOLAT.
the class WeeklyCalendarController method doMove.
private void doMove(UserRequest ureq, KalendarEvent calEvent, Long dayDelta, Long minuteDelta, Boolean allDay) {
if (calEvent instanceof KalendarRecurEvent && !StringHelper.containsNonWhitespace(calEvent.getRecurrenceID())) {
updateCtr = new ConfirmUpdateController(ureq, getWindowControl(), (KalendarRecurEvent) calEvent, dayDelta, minuteDelta, allDay, true);
listenTo(updateCtr);
String title = translate("cal.edit.update");
cmc = new CloseableModalController(getWindowControl(), translate("close"), updateCtr.getInitialComponent(), true, title);
listenTo(cmc);
cmc.activate();
} else {
Kalendar cal = calEvent.getCalendar();
calEvent.setBegin(doMove(calEvent.getBegin(), dayDelta, minuteDelta));
calEvent.setEnd(doMove(calEvent.getEnd(), dayDelta, minuteDelta));
if (allDay != null && calEvent.isAllDayEvent() != allDay.booleanValue()) {
calEvent.setAllDayEvent(allDay.booleanValue());
}
calendarManager.updateEventFrom(cal, calEvent);
calendarEl.getComponent().setDirty(true);
}
}
use of org.olat.commons.calendar.model.KalendarRecurEvent in project OpenOLAT by OpenOLAT.
the class WeeklyCalendarController method doResize.
private void doResize(UserRequest ureq, KalendarEvent calEvent, Long minuteDelta, Boolean allDay) {
if (calEvent instanceof KalendarRecurEvent && !StringHelper.containsNonWhitespace(calEvent.getRecurrenceID())) {
updateCtr = new ConfirmUpdateController(ureq, getWindowControl(), (KalendarRecurEvent) calEvent, 0L, minuteDelta, allDay, false);
listenTo(updateCtr);
String title = translate("cal.edit.update");
cmc = new CloseableModalController(getWindowControl(), translate("close"), updateCtr.getInitialComponent(), true, title);
listenTo(cmc);
cmc.activate();
} else {
Kalendar cal = calEvent.getCalendar();
calEvent.setEnd(doMove(calEvent.getEnd(), 0L, minuteDelta));
if (allDay != null && calEvent.isAllDayEvent() != allDay.booleanValue()) {
calEvent.setAllDayEvent(allDay.booleanValue());
}
calendarManager.updateEventFrom(cal, calEvent);
calendarEl.getComponent().setDirty(true);
}
}
use of org.olat.commons.calendar.model.KalendarRecurEvent in project OpenOLAT by OpenOLAT.
the class FullCalendarElement method doSelect.
private void doSelect(UserRequest ureq, String eventId, String targetDomId) {
KalendarEvent event = component.getCalendarEvent(eventId);
if (component.isOccurenceOfCalendarEvent(eventId)) {
String uid = component.getCalendarEventUid(eventId);
KalendarRenderWrapper cal = component.getCalendarById(uid);
KalendarRecurEvent recurEvent = getCurrenceKalendarEvent(cal, eventId);
getRootForm().fireFormEvent(ureq, new CalendarGUISelectEvent(this, recurEvent, cal, targetDomId));
} else if (component.isReccurenceOfCalendarEvent(eventId)) {
String uid = component.getCalendarEventUid(eventId);
KalendarRenderWrapper cal = component.getCalendarById(uid);
KalendarRecurEvent recurEvent = getCurrenceKalendarEvent(cal, eventId);
getRootForm().fireFormEvent(ureq, new CalendarGUISelectEvent(this, recurEvent, cal, targetDomId));
} else {
KalendarRenderWrapper calWrapper = component.getCalendarByNormalizedId(eventId);
getRootForm().fireFormEvent(ureq, new CalendarGUISelectEvent(this, event, calWrapper, targetDomId));
}
}
use of org.olat.commons.calendar.model.KalendarRecurEvent in project OpenOLAT by OpenOLAT.
the class FullCalendarElement method getCurrenceKalendarEvent.
private KalendarRecurEvent getCurrenceKalendarEvent(KalendarRenderWrapper cal, String eventId) {
boolean privateEventsVisible = cal.isPrivateEventsVisible();
CalendarManager calendarManager = CoreSpringFactory.getImpl(CalendarManager.class);
Date currentDate = component.getCurrentDate();
Calendar calendar = Calendar.getInstance();
calendar.setTime(currentDate);
calendar.add(Calendar.MONTH, -2);
Date from = calendar.getTime();
calendar.add(Calendar.MONTH, +4);
Date to = calendar.getTime();
List<KalendarEvent> events = calendarManager.getEvents(cal.getKalendar(), from, to, privateEventsVisible);
for (KalendarEvent event : events) {
if (event instanceof KalendarRecurEvent) {
KalendarRecurEvent kEvent = (KalendarRecurEvent) event;
if (eventId.equals(FullCalendarComponent.normalizeId(event))) {
return kEvent;
}
}
}
return null;
}
use of org.olat.commons.calendar.model.KalendarRecurEvent in project OpenOLAT by OpenOLAT.
the class ICalFileCalendarManager method getEvents.
@Override
public List<KalendarEvent> getEvents(Kalendar calendar, Date from, Date to, boolean privateEventsVisible) {
List<KalendarEvent> allEvents = calendar.getEvents();
List<KalendarEvent> events = new ArrayList<>(128);
Map<String, List<KalendarRecurEvent>> idToRecurringEvents = new HashMap<>();
// first pass, ignore events with recurrenceId
for (KalendarEvent event : allEvents) {
if (!privateEventsVisible && event.getClassification() == KalendarEvent.CLASS_PRIVATE) {
continue;
}
if (StringHelper.containsNonWhitespace(event.getRecurrenceID())) {
continue;
}
if (StringHelper.containsNonWhitespace(event.getRecurrenceRule())) {
List<KalendarRecurEvent> recurringEvents = getRecurringEventsInPeriod(event, from, to, tz);
if (recurringEvents.size() > 0) {
idToRecurringEvents.put(event.getID(), recurringEvents);
for (KalendarRecurEvent recurEvent : recurringEvents) {
events.add(recurEvent);
}
}
} else if (isInRange(from, to, event)) {
events.add(event);
}
}
// process events with recurrenceId
for (KalendarEvent event : allEvents) {
if (!StringHelper.containsNonWhitespace(event.getRecurrenceID())) {
continue;
}
String id = event.getID();
if (idToRecurringEvents.containsKey(id)) {
VEvent vEvent = getVEvent(event);
RecurrenceId recurrenceId = vEvent.getRecurrenceId();
net.fortuna.ical4j.model.Date startDate = recurrenceId.getDate();
if (startDate instanceof net.fortuna.ical4j.model.DateTime) {
List<KalendarRecurEvent> recurringEvents = idToRecurringEvents.get(id);
for (KalendarRecurEvent recurEvent : recurringEvents) {
Date beginDate = recurEvent.getBegin();
if (beginDate.equals(startDate)) {
recurEvent.setRecurrenceEvent(event);
}
}
} else {
List<KalendarRecurEvent> recurringEvents = idToRecurringEvents.get(id);
for (KalendarRecurEvent recurEvent : recurringEvents) {
Date beginDate = recurEvent.getBegin();
net.fortuna.ical4j.model.Date occDate = CalendarUtils.createDate(beginDate);
if (occDate.equals(startDate)) {
recurEvent.setRecurrenceEvent(event);
}
}
}
}
}
return events;
}
Aggregations