List of usage examples for org.joda.time DateTimeZone forID
@FromString public static DateTimeZone forID(String id)
From source file:com.serotonin.m2m2.Common.java
License:Open Source License
public static DateTimeZone getUserDateTimeZone(User user) { if (user != null) return user.getDateTimeZoneInstance(); return DateTimeZone.forID(TimeZone.getDefault().getID()); }
From source file:com.serotonin.m2m2.Lifecycle.java
public synchronized void initialize(ClassLoader classLoader) { for (Module module : ModuleRegistry.getModules()) { module.preInitialize();/*from w ww. j a v a 2 s . c o m*/ } String tzId = Common.envProps.getString("timezone"); if (!StringUtils.isEmpty(tzId)) { TimeZone tz = TimeZone.getTimeZone(tzId); if ((tz == null) || (!tz.getID().equals(tzId))) throw new RuntimeException("Time zone id '" + tzId + "' in env properties is not valid"); this.LOG.info("Setting default time zone to " + tz.getID()); TimeZone.setDefault(tz); DateTimeZone.setDefault(DateTimeZone.forID(tzId)); } Common.timer.init(new ThreadPoolExecutor(0, 1000, 30L, TimeUnit.SECONDS, new SynchronousQueue())); Providers.add(TimerProvider.class, new TimerProvider() { public AbstractTimer getTimer() { return Common.timer; } }); Common.JSON_CONTEXT.addResolver(new EventTypeResolver(), new Class[] { EventType.class }); Common.JSON_CONTEXT.addResolver(new BaseChartRenderer.Resolver(), new Class[] { ChartRenderer.class }); Common.JSON_CONTEXT.addResolver(new BaseTextRenderer.Resolver(), new Class[] { TextRenderer.class }); Common.JSON_CONTEXT.addResolver(new EmailRecipientResolver(), new Class[] { EmailRecipient.class }); Providers.add(InputStreamEPollProvider.class, new InputStreamEPollProviderImpl()); Providers.add(ProcessEPollProvider.class, new ProcessEPollProviderImpl()); // lic(); freemarkerInitialize(); databaseInitialize(classLoader); for (Module module : ModuleRegistry.getModules()) { module.postDatabase(); } utilitiesInitialize(); eventManagerInitialize(); runtimeManagerInitialize(); maintenanceInitialize(); imageSetInitialize(); webServerInitialize(classLoader); for (Module module : ModuleRegistry.getModules()) { module.postInitialize(); } SystemEventType.raiseEvent(new SystemEventType("SYSTEM_STARTUP"), System.currentTimeMillis(), false, new TranslatableMessage("event.system.startup")); for (Runnable task : this.STARTUP_TASKS) Common.timer.execute(task); }
From source file:com.sonicle.webtop.calendar.bol.js.JsEvent.java
License:Open Source License
public JsEvent(EventInstance event, String ownerPid) { DateTimeZone eventTz = DateTimeZone.forID(event.getTimezone()); DateTimeFormatter ymdhmsZoneFmt = DateTimeUtils.createYmdHmsFormatter(eventTz); id = event.getKey();//from w ww . ja v a 2 s . c o m eventId = event.getEventId(); calendarId = event.getCalendarId(); startDate = ymdhmsZoneFmt.print(event.getStartDate()); endDate = ymdhmsZoneFmt.print(event.getEndDate()); timezone = event.getTimezone(); allDay = event.getAllDay(); title = event.getTitle(); description = event.getDescription(); location = event.getLocation(); isPrivate = event.getIsPrivate(); busy = event.getBusy(); reminder = EventInstance.Reminder.getMinutes(event.getReminder()); activityId = event.getActivityId(); masterDataId = event.getMasterDataId(); statMasterDataId = event.getStatMasterDataId(); causalId = event.getCausalId(); rrule = event.getRecurrenceRule(); /* Recur recur = ICal4jUtils.parseRRule(rrule); if (ICal4jUtils.recurHasUntilDate(recur)) { DateTime newUntil = ICal4jUtils.fromICal4jDateUTC(recur.getUntil()).withZoneRetainFields(eventTz); ICal4jUtils.setRecurUntilDate(recur, newUntil); rrule = recur.toString(); } */ LocalDate rrs = null; if (event.getRecurrenceStartDate() != null) { rrs = event.getRecurrenceStartDate(); } else { rrs = event.getStartDate().withZone(eventTz).toLocalDate(); } rstart = DateTimeUtils.print(DateTimeUtils.createYmdFormatter(), rrs); attendees = new ArrayList<>(); for (EventAttendee att : event.getAttendees()) { Attendee jsa = new Attendee(); jsa.attendeeId = att.getAttendeeId(); jsa.recipient = att.getRecipient(); jsa.recipientType = EnumUtils.toSerializedName(att.getRecipientType()); jsa.recipientRole = EnumUtils.toSerializedName(att.getRecipientRole()); jsa.responseStatus = EnumUtils.toSerializedName(att.getResponseStatus()); jsa.notify = att.getNotify(); attendees.add(jsa); } attachments = new ArrayList<>(); for (EventAttachment att : event.getAttachments()) { Attachment jsa = new Attachment(); jsa.id = att.getAttachmentId(); //jsatt.lastModified = DateTimeUtils.printYmdHmsWithZone(att.getRevisionTimestamp(), profileTz); jsa.name = att.getFilename(); jsa.size = att.getSize(); attachments.add(jsa); } // Read-only fields _recurringInfo = EnumUtils.toSerializedName(event.getRecurInfo()); _profileId = ownerPid; }
From source file:com.sonicle.webtop.calendar.bol.js.JsEvent.java
License:Open Source License
public static EventInstance buildEventInstance(JsEvent js) { EventInstance event = new EventInstance(); event.setKey(js.id);/*from w w w.j a v a 2 s . com*/ event.setEventId(js.eventId); event.setCalendarId(js.calendarId); // Incoming fields are in a precise timezone, so we need to instantiate // the formatter specifying the right timezone to use. // Then DateTime objects are automatically translated to UTC DateTimeZone eventTz = DateTimeZone.forID(js.timezone); event.setDatesAndTimes(js.allDay, js.timezone, DateTimeUtils.parseYmdHmsWithZone(js.startDate, eventTz), DateTimeUtils.parseYmdHmsWithZone(js.endDate, eventTz)); event.setTitle(js.title); event.setDescription(js.description); event.setLocation(js.location); event.setIsPrivate(js.isPrivate); event.setBusy(js.busy); event.setReminder(EventInstance.Reminder.valueOf(js.reminder)); event.setActivityId(js.activityId); event.setMasterDataId(js.masterDataId); event.setStatMasterDataId(js.statMasterDataId); event.setCausalId(js.causalId); // Fix recur until-date timezone: due to we do not have tz-db in client // we cannot move until-date into the right zone directly in browser, // so we need to change it here if necessary. Recur recur = ICal4jUtils.parseRRule(js.rrule); if (ICal4jUtils.adjustRecurUntilDate(recur, event.getStartDate().withZone(eventTz).toLocalTime(), eventTz)) { js.rrule = recur.toString(); } event.setRecurrence(js.rrule, DateTimeUtils.parseLocalDate(DateTimeUtils.createYmdFormatter(eventTz), js.rstart), null); for (JsEvent.Attendee jsa : js.attendees) { EventAttendee attendee = new EventAttendee(); attendee.setAttendeeId(jsa.attendeeId); attendee.setRecipient(jsa.recipient); attendee.setRecipientType( EnumUtils.forSerializedName(jsa.recipientType, EventAttendee.RecipientType.class)); attendee.setRecipientRole( EnumUtils.forSerializedName(jsa.recipientRole, EventAttendee.RecipientRole.class)); attendee.setResponseStatus( EnumUtils.forSerializedName(jsa.responseStatus, EventAttendee.ResponseStatus.class)); attendee.setNotify(jsa.notify); event.getAttendees().add(attendee); } // Attachment needs to be treated outside this class in order to have complete access to their streams return event; }
From source file:com.sonicle.webtop.calendar.bol.OEvent.java
License:Open Source License
public DateTimeZone getDateTimezone() { return DateTimeZone.forID(getTimezone()); }
From source file:com.sonicle.webtop.calendar.bol.OEventInfo.java
License:Open Source License
public DateTimeZone getDateTimeZone() { return DateTimeZone.forID(getTimezone()); }
From source file:com.sonicle.webtop.calendar.bol.ORecurrence.java
License:Open Source License
@Deprecated public void __fillFrom(boolean setRule, EventRecurrence rec, DateTime eventStartDate, DateTime eventEndDate, String eventTimeZone) {/*from w w w . j av a2 s . c om*/ DateTimeZone etz = DateTimeZone.forID(eventTimeZone); setStartDate(eventStartDate); if (StringUtils.equals(rec.getType(), EventRecurrence.TYPE_DAILY)) { setType(rec.getType()); setDailyFreq(rec.getDailyFreq()); } else if (StringUtils.equals(rec.getType(), EventRecurrence.TYPE_DAILY_FERIALI)) { setType(rec.getType()); } else { // Reset fields... setDailyFreq(null); } if (StringUtils.equals(rec.getType(), EventRecurrence.TYPE_WEEKLY)) { setType(rec.getType()); setWeeklyFreq(rec.getWeeklyFreq()); setWeeklyDay_1(LangUtils.coalesce(rec.getWeeklyDay1(), false)); setWeeklyDay_2(LangUtils.coalesce(rec.getWeeklyDay2(), false)); setWeeklyDay_3(LangUtils.coalesce(rec.getWeeklyDay3(), false)); setWeeklyDay_4(LangUtils.coalesce(rec.getWeeklyDay4(), false)); setWeeklyDay_5(LangUtils.coalesce(rec.getWeeklyDay5(), false)); setWeeklyDay_6(LangUtils.coalesce(rec.getWeeklyDay6(), false)); setWeeklyDay_7(LangUtils.coalesce(rec.getWeeklyDay7(), false)); } else { // Reset fields... setWeeklyFreq(null); setWeeklyDay_1(null); setWeeklyDay_2(null); setWeeklyDay_3(null); setWeeklyDay_4(null); setWeeklyDay_5(null); setWeeklyDay_6(null); setWeeklyDay_7(null); } if (StringUtils.equals(rec.getType(), EventRecurrence.TYPE_MONTHLY)) { setType(rec.getType()); setMonthlyFreq(rec.getMonthlyFreq()); setMonthlyDay(rec.getMonthlyDay()); } else { // Reset fields... setMonthlyFreq(null); setMonthlyDay(null); } if (StringUtils.equals(rec.getType(), EventRecurrence.TYPE_YEARLY)) { setType(rec.getType()); setYearlyFreq(rec.getYearlyFreq()); setYearlyDay(rec.getYearlyDay()); setStartDate(eventStartDate.withMonthOfYear(rec.getYearlyFreq()).withDayOfMonth(rec.getYearlyDay())); } else { // Reset fields... setYearlyFreq(null); setYearlyDay(null); } RRule rr = null; if (StringUtils.equals(rec.getEndsMode(), EventRecurrence.ENDS_MODE_NEVER)) { rr = __applyEndNever(etz, setRule); } else if (StringUtils.equals(rec.getEndsMode(), EventRecurrence.ENDS_MODE_REPEAT)) { rr = __applyEndRepeat(rec.getRepeatTimes(), eventStartDate, eventEndDate, etz, setRule); } else if (StringUtils.equals(rec.getEndsMode(), EventRecurrence.ENDS_MODE_UNTIL)) { rr = __applyEndUntil(rec.getUntilDate(), etz, setRule); } else { throw new RuntimeException("Recurrence end-mode unknown or undefined"); } setRule(rr.getValue()); }
From source file:com.sonicle.webtop.calendar.CalendarManager.java
License:Open Source License
public List<LocalDate> listEventDates(Collection<Integer> calendarIds, DateTime from, DateTime to, DateTimeZone refTimezone) throws WTException { EventDAO evtDao = EventDAO.getInstance(); Connection con = null;/*from w w w . ja v a 2s . c o m*/ try { con = WT.getConnection(SERVICE_ID); List<Integer> okCalendarIds = calendarIds.stream() .filter(calendarId -> quietlyCheckRightsOnCalendarFolder(calendarId, "READ")) .collect(Collectors.toList()); HashSet<LocalDate> dates = new HashSet<>(); for (VVEvent vevt : evtDao.viewByCalendarRangeCondition(con, okCalendarIds, from, to, null)) { dates.addAll(CalendarUtils.getDatesSpan(vevt.getAllDay(), vevt.getStartDate(), vevt.getEndDate(), DateTimeZone.forID(vevt.getTimezone()))); } int noOfRecurringInst = Days.daysBetween(from, to).getDays() + 2; for (VVEvent vevt : evtDao.viewRecurringByCalendarRangeCondition(con, okCalendarIds, from, to, null)) { final List<SchedEventInstance> instances = calculateRecurringInstances(con, new SchedEventInstanceMapper(vevt), from, to, refTimezone, noOfRecurringInst); for (SchedEventInstance instance : instances) { dates.addAll(CalendarUtils.getDatesSpan(instance.getAllDay(), instance.getStartDate(), instance.getEndDate(), instance.getDateTimeZone())); } } return new ArrayList<>(dates); } catch (SQLException | DAOException ex) { throw wrapException(ex); } finally { DbUtils.closeQuietly(con); } }
From source file:com.sonicle.webtop.calendar.PublicService.java
License:Open Source License
private String buildWhenString(Calendar calendar, Event event) { CoreUserSettings cus = new CoreUserSettings(calendar.getProfileId()); String pattern = cus.getShortDateFormat() + " " + cus.getShortTimeFormat(); DateTimeZone etz = DateTimeZone.forID(event.getTimezone()); DateTimeFormatter dtFmt = DateTimeUtils.createFormatter(pattern, etz); return MessageFormat.format("{0} - {1}", dtFmt.print(event.getStartDate()), dtFmt.print(event.getEndDate())); }
From source file:com.sonicle.webtop.calendar.Service.java
License:Open Source License
public void processGetPlanning(HttpServletRequest request, HttpServletResponse response, PrintWriter out) { CoreUserSettings cus = getEnv().getCoreUserSettings(); CoreManager core = WT.getCoreManager(); ArrayList<MapItem> items = new ArrayList<>(); Connection con = null;//from www . j a v a 2 s. co m try { String eventStartDate = ServletUtils.getStringParameter(request, "startDate", true); String eventEndDate = ServletUtils.getStringParameter(request, "endDate", true); String timezone = ServletUtils.getStringParameter(request, "timezone", true); JsEvent.Attendee.List attendees = ServletUtils.getObjectParameter(request, "attendees", new JsEvent.Attendee.List(), JsEvent.Attendee.List.class); //JsAttendeeList attendees = ServletUtils.getObjectParameter(request, "attendees", new JsAttendeeList(), JsAttendeeList.class); // Parses string parameters DateTimeZone eventTz = DateTimeZone.forID(timezone); DateTime eventStartDt = DateTimeUtils.parseYmdHmsWithZone(eventStartDate, eventTz); DateTime eventEndDt = DateTimeUtils.parseYmdHmsWithZone(eventEndDate, eventTz); UserProfile up = getEnv().getProfile(); DateTimeZone profileTz = up.getTimeZone(); LocalTime localStartTime = eventStartDt.toLocalTime(); LocalTime localEndTime = eventEndDt.toLocalTime(); LocalTime fromTime = DateTimeUtils.min(localStartTime, us.getWorkdayStart()); LocalTime toTime = DateTimeUtils.max(localEndTime, us.getWorkdayEnd()); // Defines useful date/time formatters DateTimeFormatter ymdhmFmt = DateTimeUtils.createYmdHmFormatter(); DateTimeFormatter tFmt = DateTimeUtils.createFormatter(cus.getShortTimeFormat()); DateTimeFormatter dFmt = DateTimeUtils.createFormatter(cus.getShortDateFormat()); ArrayList<String> spans = manager.generateTimeSpans(60, eventStartDt.toLocalDate(), eventEndDt.toLocalDate(), us.getWorkdayStart(), us.getWorkdayEnd(), profileTz); // Generates fields and columnsInfo dynamically ArrayList<FieldMeta> fields = new ArrayList<>(); ArrayList<GridColumnMeta> colsInfo = new ArrayList<>(); GridColumnMeta col = null; fields.add(new FieldMeta("recipient")); colsInfo.add(new GridColumnMeta("recipient")); for (String spanKey : spans) { LocalDateTime ldt = ymdhmFmt.parseLocalDateTime(spanKey); fields.add(new FieldMeta(spanKey)); col = new GridColumnMeta(spanKey, tFmt.print(ldt)); col.put("date", dFmt.print(ldt)); col.put("overlaps", (ldt.compareTo(eventStartDt.toLocalDateTime()) >= 0) && (ldt.compareTo(eventEndDt.toLocalDateTime()) < 0)); colsInfo.add(col); } // Collects attendees availability... OUser user = null; UserProfileId profileId = null; LinkedHashSet<String> busyHours = null; MapItem item = null; for (JsEvent.Attendee attendee : attendees) { item = new MapItem(); item.put("recipient", attendee.recipient); user = guessUserByAttendee(core, attendee.recipient); if (user != null) { profileId = new UserProfileId(user.getDomainId(), user.getUserId()); busyHours = manager.calculateAvailabilitySpans(60, profileId, eventStartDt.withTime(fromTime), eventEndDt.withTime(toTime), eventTz, true); for (String hourKey : spans) { item.put(hourKey, busyHours.contains(hourKey) ? "busy" : "free"); } } else { for (String spanKey : spans) { item.put(spanKey, "unknown"); } } items.add(item); } GridMetadata meta = new GridMetadata(true); meta.setFields(fields); meta.setColumnsInfo(colsInfo); new JsonResult(items, meta, items.size()).printTo(out); } catch (Exception ex) { logger.error("Error in GetPlanning", ex); new JsonResult(false, "Error").printTo(out); } finally { DbUtils.closeQuietly(con); } }