Package org.projectforge.web.calendar

Examples of org.projectforge.web.calendar.MyEvent


          eventDO = (TeamEventDO) teamEvent;
        } else {
          eventDO = ((TeamRecurrenceEvent) teamEvent).getMaster();
        }
        teamEventMap.put(id.toString(), teamEvent);
        final MyEvent event = new MyEvent();
        event.setClassName(EVENT_CLASS_NAME + " " + EventDroppedCallbackScriptGenerator.NO_CONTEXTMENU_INDICATOR);
        event.setId("" + id);
        event.setColor(activeTemplateEntry.getColorCode(eventDO.getCalendarId()));

        if (eventRight.hasUpdateAccess(PFUserContext.getUser(), eventDO, null)) {
          event.setEditable(true);
        } else {
          event.setEditable(false);
        }

        // id <= 0 is hint for abo events -> not editable
        if(eventDO.getId() != null && eventDO.getId() <= 0) {
          event.setEditable(false);
        }

        if (teamEvent.isAllDay() == true) {
          event.setAllDay(true);
        }

        event.setStart(startDate);
        event.setEnd(endDate);

        String recurrence = null;
        if (eventDO.hasRecurrence() == true) {
          final Recur recur = eventDO.getRecurrenceObject();
          final TeamEventRecurrenceData recurrenceData = new TeamEventRecurrenceData(recur, PFUserContext.getTimeZone());
          final RecurrenceFrequency frequency = recurrenceData.getFrequency();
          if (frequency != null) {
            final String unitI18nKey = frequency.getUnitI18nKey();
            if (unitI18nKey != null) {
              recurrence = recurrenceData.getInterval() + " " + getString(unitI18nKey);
            }
          }
        }
        String reminder = null;
        if (eventDO.getReminderActionType() != null
            && NumberHelper.greaterZero(eventDO.getReminderDuration()) == true
            && eventDO.getReminderDurationUnit() != null) {
          reminder = getString(eventDO.getReminderActionType().getI18nKey())
              + " "
              + eventDO.getReminderDuration()
              + " "
              + getString(eventDO.getReminderDurationUnit().getI18nKey());
        }
        event.setTooltip(eventDO.getCalendar().getTitle(), new String[][] { { eventDO.getSubject()},
          { eventDO.getLocation(), getString("timesheet.location")}, { eventDO.getNote(), getString("plugins.teamcal.event.note")},
          { recurrence, getString("plugins.teamcal.event.recurrence")}, { reminder, getString("plugins.teamcal.event.reminder")}});
        final String title;
        String durationString = "";
        if (longFormat == true) {
          // String day = duration.getDays() + "";
          final Period period = new Period(startDate, endDate);
          int hourInt = period.getHours();
          if (period.getDays() > 0) {
            hourInt += period.getDays() * 24;
          }
          final String hour = hourInt < 10 ? "0" + hourInt : "" + hourInt;

          final int minuteInt = period.getMinutes();
          final String minute = minuteInt < 10 ? "0" + minuteInt : "" + minuteInt;

          if (event.isAllDay() == false) {
            durationString = "\n" + PFUserContext.getLocalizedString("plugins.teamcal.event.duration") + ": " + hour + ":" + minute;
          }
          final StringBuffer buf = new StringBuffer();
          buf.append(teamEvent.getSubject());
          if (StringUtils.isNotBlank(teamEvent.getNote()) == true) {
            buf.append("\n").append(PFUserContext.getLocalizedString("plugins.teamcal.event.note")).append(": ")
            .append(teamEvent.getNote());
          }
          buf.append(durationString);
          title = buf.toString();
        } else {
          title = teamEvent.getSubject();
        }
        if (right.hasMinimalAccess(eventDO.getCalendar(), user.getId()) == true) {
          // for minimal access
          event.setTitle("");
          event.setEditable(false);
        } else {
          event.setTitle(title);
        }
        events.put(id + "", event);
      }
    }
  }
View Full Code Here


            breaksMap.put(breakId, breakTimesheet);
          }
          lastStopTime = stopTime;
        }
        final long duration = timesheet.getDuration();
        final MyEvent event = new MyEvent();
        final String id = "" + timesheet.getId();
        event.setClassName(EVENT_CLASS_NAME);
        event.setId(id);
        event.setStart(startTime);
        event.setEnd(stopTime);
        final String title = getTitle(timesheet);
        if (longFormat == true) {
          // Week or day view:
          event.setTitle(title + "\n" + getToolTip(timesheet) + "\n" + formatDuration(duration, false));
        } else {
          // Month view:
          event.setTitle(title);
        }
        if (month != null && startTime.getMonthOfYear() != month && stopTime.getMonthOfYear() != month) {
          // Display time sheets of other month as grey blue:
          event.setTextColor("#222222").setBackgroundColor("#ACD9E8").setColor("#ACD9E8");
        }
        events.put(id, event);
        if (month == null || startTime.getMonthOfYear() == month) {
          totalDuration += duration;
          addDurationOfDay(startTime.getDayOfMonth(), duration);
        }
        final int dayOfYear = startTime.getDayOfYear();
        addDurationOfDayOfYear(dayOfYear, duration);
        event.setTooltip(
            getString("timesheet"),
            new String[][] {
              { title},
              { timesheet.getLocation(), getString("timesheet.location")},
              { KostFormatter.formatLong(timesheet.getKost2()), getString("fibu.kost2")},
              { TaskFormatter.instance().getTaskPath(timesheet.getTaskId(), true, OutputType.PLAIN),
                getString("task")},
                { timesheet.getDescription(), getString("description")}});
      }
    }
    if (calFilter.isShowStatistics() == true) {
      // Show statistics: duration of every day is shown as all day event.
      DateTime day = start;
      final Calendar cal = DateHelper.getCalendar();
      cal.setTime(start.toDate());
      final int numberOfDaysInYear = cal.getActualMaximum(Calendar.DAY_OF_YEAR);
      int paranoiaCounter = 0;
      do {
        if (++paranoiaCounter > 1000) {
          log.error("Paranoia counter exceeded! Dear developer, please have a look at the implementation of buildEvents.");
          break;
        }
        final int dayOfYear = day.getDayOfYear();
        final long duration = durationsPerDayOfYear[dayOfYear];
        final boolean firstDayOfWeek = day.getDayOfWeek() == PFUserContext.getJodaFirstDayOfWeek();
        if (firstDayOfWeek == false && duration == 0) {
          day = day.plusDays(1);
          continue;
        }
        final Event event = new Event().setAllDay(true);
        final String id = "s-" + (dayOfYear);
        event.setId(id);
        event.setStart(day);
        final String durationString = formatDuration(duration, false);
        if (firstDayOfWeek == true) {
          // Show week of year at top of first day of week.
          long weekDuration = 0;
          for (short i = 0; i < 7; i++) {
            int d = dayOfYear + i;
            if (d > numberOfDaysInYear) {
              d -= numberOfDaysInYear;
            }
            weekDuration += durationsPerDayOfYear[d];
          }
          final StringBuffer buf = new StringBuffer();
          buf.append(getString("calendar.weekOfYearShortLabel")).append(DateHelper.getWeekOfYear(day));
          if (days > 1 && weekDuration > 0) {
            // Show total sum of durations over all time sheets of current week (only in week and month view).
            buf.append(": ").append(formatDuration(weekDuration, false));
          }
          if (duration > 0) {
            buf.append(", ").append(durationString);
          }
          event.setTitle(buf.toString());
        } else {
          event.setTitle(durationString);
        }
        event.setTextColor("#666666").setBackgroundColor("#F9F9F9").setColor("#F9F9F9");
        event.setEditable(false);
        events.put(id, event);
        day = day.plusDays(1);
      } while (day.isAfter(end) == false);
    }
  }
View Full Code Here

TOP

Related Classes of org.projectforge.web.calendar.MyEvent

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.