Example usage for org.joda.time DateTimeZone forID

List of usage examples for org.joda.time DateTimeZone forID

Introduction

In this page you can find the example usage for org.joda.time DateTimeZone forID.

Prototype

@FromString
public static DateTimeZone forID(String id) 

Source Link

Document

Gets a time zone instance for the specified time zone id.

Usage

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);
    }
}