List of usage examples for com.liferay.portal.kernel.util CalendarFactoryUtil getCalendar
public static Calendar getCalendar(TimeZone timeZone, Locale locale)
From source file:com.liferay.calendar.web.internal.portlet.CalendarPortlet.java
License:Open Source License
protected CalendarBooking getFirstCalendarBookingInstance(CalendarBooking calendarBooking, Recurrence recurrenceObj, TimeZone timeZone) { if (recurrenceObj == null) { return calendarBooking; }/*from w ww . ja v a2s.c om*/ List<Integer> daysOfWeek = getDaysOfWeek(recurrenceObj); java.util.Calendar startTimeJCalendar = CalendarFactoryUtil.getCalendar(calendarBooking.getStartTime(), timeZone); int startTimeDayOfWeek = startTimeJCalendar.get(java.util.Calendar.DAY_OF_WEEK); if ((recurrenceObj.getFrequency() == Frequency.WEEKLY) && !daysOfWeek.contains(startTimeDayOfWeek)) { java.util.Calendar firstDayJCalendar = JCalendarUtil.getJCalendar(calendarBooking.getStartTime(), timeZone); long startTime = firstDayJCalendar.getTimeInMillis(); long endTime = startTime + calendarBooking.getDuration(); calendarBooking.setStartTime(startTime); calendarBooking.setEndTime(endTime); calendarBooking.setRecurrence(RecurrenceSerializer.serialize(recurrenceObj)); calendarBooking = RecurrenceUtil.getCalendarBookingInstance(calendarBooking, 1); } return calendarBooking; }
From source file:com.liferay.calendar.web.internal.portlet.CalendarPortlet.java
License:Open Source License
protected long getOffset(CalendarBooking editedCalendarBookingInstance, long newStartTime, Recurrence recurrence) throws PortalException { Frequency frequency = null;// w ww . ja v a 2 s. c o m if (recurrence != null) { frequency = recurrence.getFrequency(); } long oldStartTime = editedCalendarBookingInstance.getStartTime(); TimeZone timeZone = editedCalendarBookingInstance.getTimeZone(); if (frequency == Frequency.WEEKLY) { CalendarBooking firstInstance = _calendarBookingService .getCalendarBookingInstance(editedCalendarBookingInstance.getCalendarBookingId(), 0); java.util.Calendar oldStartTimeJCalendar = CalendarFactoryUtil.getCalendar(oldStartTime, timeZone); java.util.Calendar firstInstanceJCalendar = CalendarFactoryUtil .getCalendar(firstInstance.getStartTime(), timeZone); if (!JCalendarUtil.isSameDayOfWeek(oldStartTimeJCalendar, firstInstanceJCalendar)) { java.util.Calendar newStartTimeJCalendar = CalendarFactoryUtil.getCalendar(newStartTime, timeZone); newStartTimeJCalendar = JCalendarUtil.mergeJCalendar(oldStartTimeJCalendar, newStartTimeJCalendar, timeZone); newStartTime = newStartTimeJCalendar.getTimeInMillis(); } } return newStartTime - oldStartTime; }
From source file:com.liferay.content.targeting.portlet.ContentTargetingPortlet.java
License:Open Source License
private Date _getDate(PortletRequest portletRequest, String paramPrefix) { int dateMonth = ParamUtil.getInteger(portletRequest, paramPrefix + "Month"); int dateDay = ParamUtil.getInteger(portletRequest, paramPrefix + "Day"); int dateYear = ParamUtil.getInteger(portletRequest, paramPrefix + "Year"); int dateHour = ParamUtil.getInteger(portletRequest, paramPrefix + "Hour"); int dateMinute = ParamUtil.getInteger(portletRequest, paramPrefix + "Minute"); int dateAmPm = ParamUtil.getInteger(portletRequest, paramPrefix + "AmPm"); if (dateAmPm == Calendar.PM) { dateHour += 12;// w w w . j a v a2s. c o m } ThemeDisplay themeDisplay = (ThemeDisplay) portletRequest.getAttribute(WebKeys.THEME_DISPLAY); Calendar calendar = CalendarFactoryUtil.getCalendar(themeDisplay.getTimeZone(), themeDisplay.getLocale()); calendar.set(Calendar.MONTH, dateMonth); calendar.set(Calendar.DATE, dateDay); calendar.set(Calendar.YEAR, dateYear); calendar.set(Calendar.HOUR_OF_DAY, dateHour); calendar.set(Calendar.MINUTE, dateMinute); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); return calendar.getTime(); }
From source file:com.liferay.knowledgebase.admin.search.KBArticleDisplayTerms.java
License:Open Source License
public KBArticleDisplayTerms(PortletRequest portletRequest) { super(portletRequest); ThemeDisplay themeDisplay = (ThemeDisplay) portletRequest.getAttribute(WebKeys.THEME_DISPLAY); Calendar today = CalendarFactoryUtil.getCalendar(themeDisplay.getTimeZone(), themeDisplay.getLocale()); Calendar calendar = CalendarFactoryUtil.getCalendar(themeDisplay.getTimeZone(), themeDisplay.getLocale()); calendar.add(Calendar.MONTH, -1); anytime = ParamUtil.getBoolean(portletRequest, ANYTIME, true); content = ParamUtil.getString(portletRequest, CONTENT); endDateDay = ParamUtil.getInteger(portletRequest, END_DATE_DAY, today.get(Calendar.DATE)); endDateMonth = ParamUtil.getInteger(portletRequest, END_DATE_MONTH, today.get(Calendar.MONTH)); endDateYear = ParamUtil.getInteger(portletRequest, END_DATE_YEAR, today.get(Calendar.YEAR)); startDateDay = ParamUtil.getInteger(portletRequest, START_DATE_DAY, calendar.get(Calendar.DATE)); startDateMonth = ParamUtil.getInteger(portletRequest, START_DATE_MONTH, calendar.get(Calendar.MONTH)); startDateYear = ParamUtil.getInteger(portletRequest, START_DATE_YEAR, calendar.get(Calendar.YEAR)); status = ParamUtil.getInteger(portletRequest, STATUS, WorkflowConstants.STATUS_ANY); title = ParamUtil.getString(portletRequest, TITLE); firstDayOfWeek = today.getFirstDayOfWeek() - 1; yearRangeEnd = today.get(Calendar.YEAR); yearRangeStart = today.get(Calendar.YEAR) - 100; }
From source file:com.liferay.knowledgebase.admin.search.KBStructureDisplayTerms.java
License:Open Source License
public KBStructureDisplayTerms(PortletRequest portletRequest) { super(portletRequest); ThemeDisplay themeDisplay = (ThemeDisplay) portletRequest.getAttribute(WebKeys.THEME_DISPLAY); Calendar today = CalendarFactoryUtil.getCalendar(themeDisplay.getTimeZone(), themeDisplay.getLocale()); Calendar calendar = CalendarFactoryUtil.getCalendar(themeDisplay.getTimeZone(), themeDisplay.getLocale()); calendar.add(Calendar.MONTH, -1); anytime = ParamUtil.getBoolean(portletRequest, ANYTIME, true); content = ParamUtil.getString(portletRequest, CONTENT); endDateDay = ParamUtil.getInteger(portletRequest, END_DATE_DAY, today.get(Calendar.DATE)); endDateMonth = ParamUtil.getInteger(portletRequest, END_DATE_MONTH, today.get(Calendar.MONTH)); endDateYear = ParamUtil.getInteger(portletRequest, END_DATE_YEAR, today.get(Calendar.YEAR)); startDateDay = ParamUtil.getInteger(portletRequest, START_DATE_DAY, calendar.get(Calendar.DATE)); startDateMonth = ParamUtil.getInteger(portletRequest, START_DATE_MONTH, calendar.get(Calendar.MONTH)); startDateYear = ParamUtil.getInteger(portletRequest, START_DATE_YEAR, calendar.get(Calendar.YEAR)); title = ParamUtil.getString(portletRequest, TITLE); firstDayOfWeek = today.getFirstDayOfWeek() - 1; yearRangeEnd = today.get(Calendar.YEAR); yearRangeStart = today.get(Calendar.YEAR) - 100; }
From source file:com.liferay.knowledgebase.admin.search.KBTemplateDisplayTerms.java
License:Open Source License
public KBTemplateDisplayTerms(PortletRequest portletRequest) { super(portletRequest); ThemeDisplay themeDisplay = (ThemeDisplay) portletRequest.getAttribute(WebKeys.THEME_DISPLAY); Calendar today = CalendarFactoryUtil.getCalendar(themeDisplay.getTimeZone(), themeDisplay.getLocale()); Calendar calendar = CalendarFactoryUtil.getCalendar(themeDisplay.getTimeZone(), themeDisplay.getLocale()); calendar.add(Calendar.MONTH, -1); anytime = ParamUtil.getBoolean(portletRequest, ANYTIME, true); content = ParamUtil.getString(portletRequest, CONTENT); endDateDay = ParamUtil.getInteger(portletRequest, END_DATE_DAY, today.get(Calendar.DATE)); endDateMonth = ParamUtil.getInteger(portletRequest, END_DATE_MONTH, today.get(Calendar.MONTH)); endDateYear = ParamUtil.getInteger(portletRequest, END_DATE_YEAR, today.get(Calendar.YEAR)); startDateDay = ParamUtil.getInteger(portletRequest, START_DATE_DAY, calendar.get(Calendar.DATE)); startDateMonth = ParamUtil.getInteger(portletRequest, START_DATE_MONTH, calendar.get(Calendar.MONTH)); startDateYear = ParamUtil.getInteger(portletRequest, START_DATE_YEAR, calendar.get(Calendar.YEAR)); title = ParamUtil.getString(portletRequest, TITLE); firstDayOfWeek = today.getFirstDayOfWeek() - 1; yearRangeEnd = today.get(Calendar.YEAR); yearRangeStart = today.get(Calendar.YEAR) - 100; }
From source file:com.liferay.meeting.portlet.action.AddMeetingMVCActionCommand.java
License:Open Source License
protected Calendar getStartCalendar(ActionRequest actionRequest) { ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); Calendar startCalendar = CalendarFactoryUtil.getCalendar(TimeZoneUtil.getTimeZone("GMT"), themeDisplay.getLocale());/* www.jav a 2s. c o m*/ int startDateMonth = ParamUtil.getInteger(actionRequest, "startDateMonth"); startCalendar.set(Calendar.MONTH, startDateMonth); int startDateDay = ParamUtil.getInteger(actionRequest, "startDateDay"); startCalendar.set(Calendar.DATE, startDateDay); int startDateYear = ParamUtil.getInteger(actionRequest, "startDateYear"); startCalendar.set(Calendar.YEAR, startDateYear); int startDateHour = ParamUtil.getInteger(actionRequest, "startDateHour"); int startDateAmPm = ParamUtil.getInteger(actionRequest, "startDateAmPm"); if (startDateAmPm == Calendar.PM) { startDateHour += 12; } startCalendar.set(Calendar.HOUR_OF_DAY, startDateHour); int startDateMinute = ParamUtil.getInteger(actionRequest, "startDateMinute"); startCalendar.set(Calendar.MINUTE, startDateMinute); startCalendar.set(Calendar.SECOND, 0); startCalendar.set(Calendar.MILLISECOND, 0); return startCalendar; }
From source file:com.liferay.portlet.calendar.action.EditEventAction.java
License:Open Source License
protected void updateEvent(ActionRequest actionRequest) throws Exception { long eventId = ParamUtil.getLong(actionRequest, "eventId"); String title = ParamUtil.getString(actionRequest, "title"); String description = ParamUtil.getString(actionRequest, "description"); String location = ParamUtil.getString(actionRequest, "location"); int startDateMonth = ParamUtil.getInteger(actionRequest, "startDateMonth"); int startDateDay = ParamUtil.getInteger(actionRequest, "startDateDay"); int startDateYear = ParamUtil.getInteger(actionRequest, "startDateYear"); int startDateHour = ParamUtil.getInteger(actionRequest, "startDateHour"); int startDateMinute = ParamUtil.getInteger(actionRequest, "startDateMinute"); int startDateAmPm = ParamUtil.getInteger(actionRequest, "startDateAmPm"); if (startDateAmPm == Calendar.PM) { startDateHour += 12;/*w w w . j a va2 s .c om*/ } int durationHour = ParamUtil.getInteger(actionRequest, "durationHour"); int durationMinute = ParamUtil.getInteger(actionRequest, "durationMinute"); boolean allDay = ParamUtil.getBoolean(actionRequest, "allDay"); boolean timeZoneSensitive = ParamUtil.getBoolean(actionRequest, "timeZoneSensitive"); String type = ParamUtil.getString(actionRequest, "type"); int endDateMonth = ParamUtil.getInteger(actionRequest, "endDateMonth"); int endDateDay = ParamUtil.getInteger(actionRequest, "endDateDay"); int endDateYear = ParamUtil.getInteger(actionRequest, "endDateYear"); boolean repeating = false; int recurrenceType = ParamUtil.getInteger(actionRequest, "recurrenceType"); if (recurrenceType != Recurrence.NO_RECURRENCE) { repeating = true; } Locale locale = null; TimeZone timeZone = null; if (timeZoneSensitive) { User user = PortalUtil.getUser(actionRequest); locale = user.getLocale(); timeZone = user.getTimeZone(); } else { locale = LocaleUtil.getDefault(); timeZone = TimeZoneUtil.getDefault(); } Calendar startDate = CalendarFactoryUtil.getCalendar(timeZone, locale); startDate.set(Calendar.MONTH, startDateMonth); startDate.set(Calendar.DATE, startDateDay); startDate.set(Calendar.YEAR, startDateYear); startDate.set(Calendar.HOUR_OF_DAY, startDateHour); startDate.set(Calendar.MINUTE, startDateMinute); startDate.set(Calendar.SECOND, 0); startDate.set(Calendar.MILLISECOND, 0); if (allDay) { startDate.set(Calendar.HOUR_OF_DAY, 0); startDate.set(Calendar.MINUTE, 0); startDate.set(Calendar.SECOND, 0); startDate.set(Calendar.MILLISECOND, 0); durationHour = 24; durationMinute = 0; } TZSRecurrence recurrence = null; if (repeating) { Calendar recStartCal = null; if (timeZoneSensitive) { recStartCal = CalendarFactoryUtil.getCalendar(TimeZoneUtil.getTimeZone(StringPool.UTC)); recStartCal.setTime(startDate.getTime()); } else { recStartCal = (Calendar) startDate.clone(); } recurrence = new TZSRecurrence(recStartCal, new Duration(1, 0, 0, 0), recurrenceType); recurrence.setTimeZone(timeZone); recurrence.setWeekStart(Calendar.SUNDAY); if (recurrenceType == Recurrence.DAILY) { int dailyType = ParamUtil.getInteger(actionRequest, "dailyType"); if (dailyType == 0) { int dailyInterval = ParamUtil.getInteger(actionRequest, "dailyInterval", 1); recurrence.setInterval(dailyInterval); } else { DayAndPosition[] dayPos = { new DayAndPosition(Calendar.MONDAY, 0), new DayAndPosition(Calendar.TUESDAY, 0), new DayAndPosition(Calendar.WEDNESDAY, 0), new DayAndPosition(Calendar.THURSDAY, 0), new DayAndPosition(Calendar.FRIDAY, 0) }; recurrence.setByDay(dayPos); } } else if (recurrenceType == Recurrence.WEEKLY) { int weeklyInterval = ParamUtil.getInteger(actionRequest, "weeklyInterval", 1); recurrence.setInterval(weeklyInterval); List<DayAndPosition> dayPos = new ArrayList<DayAndPosition>(); addWeeklyDayPos(actionRequest, dayPos, Calendar.SUNDAY); addWeeklyDayPos(actionRequest, dayPos, Calendar.MONDAY); addWeeklyDayPos(actionRequest, dayPos, Calendar.TUESDAY); addWeeklyDayPos(actionRequest, dayPos, Calendar.WEDNESDAY); addWeeklyDayPos(actionRequest, dayPos, Calendar.THURSDAY); addWeeklyDayPos(actionRequest, dayPos, Calendar.FRIDAY); addWeeklyDayPos(actionRequest, dayPos, Calendar.SATURDAY); if (dayPos.size() == 0) { dayPos.add(new DayAndPosition(Calendar.MONDAY, 0)); } recurrence.setByDay(dayPos.toArray(new DayAndPosition[0])); } else if (recurrenceType == Recurrence.MONTHLY) { int monthlyType = ParamUtil.getInteger(actionRequest, "monthlyType"); if (monthlyType == 0) { int monthlyDay = ParamUtil.getInteger(actionRequest, "monthlyDay0"); recurrence.setByMonthDay(new int[] { monthlyDay }); int monthlyInterval = ParamUtil.getInteger(actionRequest, "monthlyInterval0", 1); recurrence.setInterval(monthlyInterval); } else { int monthlyPos = ParamUtil.getInteger(actionRequest, "monthlyPos"); int monthlyDay = ParamUtil.getInteger(actionRequest, "monthlyDay1"); DayAndPosition[] dayPos = { new DayAndPosition(monthlyDay, monthlyPos) }; recurrence.setByDay(dayPos); int monthlyInterval = ParamUtil.getInteger(actionRequest, "monthlyInterval1", 1); recurrence.setInterval(monthlyInterval); } } else if (recurrenceType == Recurrence.YEARLY) { int yearlyType = ParamUtil.getInteger(actionRequest, "yearlyType"); if (yearlyType == 0) { int yearlyMonth = ParamUtil.getInteger(actionRequest, "yearlyMonth0"); int yearlyDay = ParamUtil.getInteger(actionRequest, "yearlyDay0"); recurrence.setByMonth(new int[] { yearlyMonth }); recurrence.setByMonthDay(new int[] { yearlyDay }); int yearlyInterval = ParamUtil.getInteger(actionRequest, "yearlyInterval0", 1); recurrence.setInterval(yearlyInterval); } else { int yearlyPos = ParamUtil.getInteger(actionRequest, "yearlyPos"); int yearlyDay = ParamUtil.getInteger(actionRequest, "yearlyDay1"); int yearlyMonth = ParamUtil.getInteger(actionRequest, "yearlyMonth1"); DayAndPosition[] dayPos = { new DayAndPosition(yearlyDay, yearlyPos) }; recurrence.setByDay(dayPos); recurrence.setByMonth(new int[] { yearlyMonth }); int yearlyInterval = ParamUtil.getInteger(actionRequest, "yearlyInterval1", 1); recurrence.setInterval(yearlyInterval); } } int endDateType = ParamUtil.getInteger(actionRequest, "endDateType"); if (endDateType == 1) { int endDateOccurrence = ParamUtil.getInteger(actionRequest, "endDateOccurrence"); recurrence.setOccurrence(endDateOccurrence); } else if (endDateType == 2) { Calendar endDate = CalendarFactoryUtil.getCalendar(timeZone); endDate.set(Calendar.MONTH, endDateMonth); endDate.set(Calendar.DATE, endDateDay); endDate.set(Calendar.YEAR, endDateYear); endDate.set(Calendar.HOUR_OF_DAY, startDateHour); endDate.set(Calendar.MINUTE, startDateMinute); endDate.set(Calendar.SECOND, 0); endDate.set(Calendar.MILLISECOND, 0); Calendar recEndCal = null; if (timeZoneSensitive) { recEndCal = CalendarFactoryUtil.getCalendar(TimeZoneUtil.getTimeZone(StringPool.UTC)); recEndCal.setTime(endDate.getTime()); } else { recEndCal = (Calendar) endDate.clone(); } recurrence.setUntil(recEndCal); } } int remindBy = ParamUtil.getInteger(actionRequest, "remindBy"); int firstReminder = ParamUtil.getInteger(actionRequest, "firstReminder"); int secondReminder = ParamUtil.getInteger(actionRequest, "secondReminder"); ServiceContext serviceContext = ServiceContextFactory.getInstance(CalEvent.class.getName(), actionRequest); if (eventId <= 0) { // Add event CalEvent event = CalEventServiceUtil.addEvent(title, description, location, startDateMonth, startDateDay, startDateYear, startDateHour, startDateMinute, endDateMonth, endDateDay, endDateYear, durationHour, durationMinute, allDay, timeZoneSensitive, type, repeating, recurrence, remindBy, firstReminder, secondReminder, serviceContext); AssetPublisherUtil.addAndStoreSelection(actionRequest, CalEvent.class.getName(), event.getEventId(), -1); } else { // Update event CalEventServiceUtil.updateEvent(eventId, title, description, location, startDateMonth, startDateDay, startDateYear, startDateHour, startDateMinute, endDateMonth, endDateDay, endDateYear, durationHour, durationMinute, allDay, timeZoneSensitive, type, repeating, recurrence, remindBy, firstReminder, secondReminder, serviceContext); } }
From source file:com.liferay.portlet.calendar.service.impl.CalEventLocalServiceImpl.java
License:Open Source License
public CalEvent addEvent(long userId, String title, String description, String location, int startDateMonth, int startDateDay, int startDateYear, int startDateHour, int startDateMinute, int endDateMonth, int endDateDay, int endDateYear, int durationHour, int durationMinute, boolean allDay, boolean timeZoneSensitive, String type, boolean repeating, TZSRecurrence recurrence, int remindBy, int firstReminder, int secondReminder, ServiceContext serviceContext) throws PortalException, SystemException { // Event/* w w w . j a v a2 s . c o m*/ User user = userPersistence.findByPrimaryKey(userId); long groupId = serviceContext.getScopeGroupId(); Date now = new Date(); Locale locale = null; TimeZone timeZone = null; if (timeZoneSensitive) { locale = user.getLocale(); timeZone = user.getTimeZone(); } else { locale = LocaleUtil.getDefault(); timeZone = TimeZoneUtil.getDefault(); } Calendar startDate = CalendarFactoryUtil.getCalendar(timeZone, locale); startDate.set(Calendar.MONTH, startDateMonth); startDate.set(Calendar.DATE, startDateDay); startDate.set(Calendar.YEAR, startDateYear); startDate.set(Calendar.HOUR_OF_DAY, startDateHour); startDate.set(Calendar.MINUTE, startDateMinute); startDate.set(Calendar.SECOND, 0); startDate.set(Calendar.MILLISECOND, 0); Calendar endDate = CalendarFactoryUtil.getCalendar(timeZone, locale); endDate.set(Calendar.MONTH, endDateMonth); endDate.set(Calendar.DATE, endDateDay); endDate.set(Calendar.YEAR, endDateYear); endDate.set(Calendar.HOUR_OF_DAY, 23); endDate.set(Calendar.MINUTE, 59); endDate.set(Calendar.SECOND, 59); endDate.set(Calendar.MILLISECOND, 990); if (allDay) { startDate.set(Calendar.HOUR_OF_DAY, 0); startDate.set(Calendar.MINUTE, 0); durationHour = 24; durationMinute = 0; } validate(title, startDateMonth, startDateDay, startDateYear, endDateMonth, endDateDay, endDateYear, durationHour, durationMinute, allDay, repeating, recurrence); long eventId = counterLocalService.increment(); CalEvent event = calEventPersistence.create(eventId); event.setUuid(serviceContext.getUuid()); event.setGroupId(groupId); event.setCompanyId(user.getCompanyId()); event.setUserId(user.getUserId()); event.setUserName(user.getFullName()); event.setCreateDate(serviceContext.getCreateDate(now)); event.setModifiedDate(serviceContext.getModifiedDate(now)); event.setTitle(title); event.setDescription(description); event.setLocation(location); event.setStartDate(startDate.getTime()); event.setEndDate(endDate.getTime()); event.setDurationHour(durationHour); event.setDurationMinute(durationMinute); event.setAllDay(allDay); event.setTimeZoneSensitive(timeZoneSensitive); event.setType(type); event.setRepeating(repeating); event.setRecurrenceObj(recurrence); event.setRemindBy(remindBy); event.setFirstReminder(firstReminder); event.setSecondReminder(secondReminder); event.setExpandoBridgeAttributes(serviceContext); calEventPersistence.update(event, false); // Resources if (serviceContext.isAddGroupPermissions() || serviceContext.isAddGuestPermissions()) { addEventResources(event, serviceContext.isAddGroupPermissions(), serviceContext.isAddGuestPermissions()); } else { addEventResources(event, serviceContext.getGroupPermissions(), serviceContext.getGuestPermissions()); } // Asset updateAsset(userId, event, serviceContext.getAssetCategoryIds(), serviceContext.getAssetTagNames(), serviceContext.getAssetLinkEntryIds()); // Social socialActivityLocalService.addActivity(userId, groupId, CalEvent.class.getName(), eventId, CalendarActivityKeys.ADD_EVENT, StringPool.BLANK, 0); // Indexer Indexer indexer = IndexerRegistryUtil.getIndexer(CalEvent.class); indexer.reindex(event); // Pool CalEventLocalUtil.clearEventsPool(event.getGroupId()); return event; }
From source file:com.liferay.portlet.calendar.service.impl.CalEventLocalServiceImpl.java
License:Open Source License
public void checkEvents() throws PortalException, SystemException { List<CalEvent> events = calEventFinder.findByFutureReminders(); for (CalEvent event : events) { User user = userPersistence.fetchByPrimaryKey(event.getUserId()); if (user == null) { deleteEvent(event);/*from w w w . j av a2 s .co m*/ continue; } Calendar now = CalendarFactoryUtil.getCalendar(user.getTimeZone(), user.getLocale()); if (!event.isTimeZoneSensitive()) { Calendar temp = CalendarFactoryUtil.getCalendar(); temp.setTime(Time.getDate(now)); now = temp; } Calendar startDate = null; if (event.isTimeZoneSensitive()) { startDate = CalendarFactoryUtil.getCalendar(user.getTimeZone(), user.getLocale()); } else { startDate = CalendarFactoryUtil.getCalendar(); } if (event.isRepeating()) { double daysToCheck = Math .ceil(CalEventConstants.REMINDERS[CalEventConstants.REMINDERS.length - 1] / Time.DAY); Calendar cal = (Calendar) now.clone(); for (int i = 0; i <= daysToCheck; i++) { Recurrence recurrence = event.getRecurrenceObj(); Calendar tzICal = CalendarFactoryUtil.getCalendar(TimeZoneUtil.getTimeZone(StringPool.UTC)); tzICal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DATE)); Calendar recurrenceCal = getRecurrenceCal(cal, tzICal, event); if (recurrence.isInRecurrence(recurrenceCal)) { remindUser(event, user, recurrenceCal, now); } cal.add(Calendar.DAY_OF_YEAR, 1); } } else { startDate.setTime(event.getStartDate()); remindUser(event, user, startDate, now); } } }