Esempio n. 1
0
  /**
   * Retrieves the event object from storage
   *
   * @param mapping
   * @param form
   * @param config
   * @param req
   * @param res
   * @param user
   * @throws DotSecurityException
   * @throws DotDataException
   * @throws NumberFormatException
   */
  private void editEvent(
      ActionMapping mapping,
      ActionForm form,
      PortletConfig config,
      ActionRequest req,
      ActionResponse res,
      User user) {
    EventForm eventForm = (EventForm) form;
    Event event = (Event) req.getAttribute(WebKeys.EVENT_EDIT);
    if (!UtilMethods.isSet(event.getInode())) return;
    if (event.getRecurs()) {
      eventForm.setRecurrenceStartsDate(event.getRecurrenceStart());
      eventForm.setRecurrenceDayOfMonth(String.valueOf(event.getRecurrenceDayOfMonth()));
      eventForm.setRecurrenceDayOfWeek(event.getRecurrenceDayOfWeek());

      if (UtilMethods.isSet(event.getRecurrenceEnd())) {
        eventForm.setRecurrenceEndsDate(event.getRecurrenceEnd());
        eventForm.setNoEndDate(false);
      } else {
        eventForm.setNoEndDate(true);
      }
      String daysOfWeek = event.getRecurrenceDaysOfWeek();
      if (daysOfWeek == null) daysOfWeek = "";
      List<String> daysList = new ArrayList<String>();
      for (String day : daysOfWeek.split(",")) {
        if (UtilMethods.isSet(day)) {
          daysList.add(day);
        }
      }
      String[] daysListArr = new String[daysList.size()];
      for (int i = 0; i < daysList.size(); i++) daysListArr[i] = daysList.get(i);
      eventForm.setRecurrenceDaysOfWeek(daysListArr);
      eventForm.setRecurrenceInterval((int) event.getRecurrenceInterval());
      if (event.getOccursEnum() == Event.Occurrency.DAILY) {
        eventForm.setRecurrenceOccurs("daily");
      } else if (event.getOccursEnum() == Event.Occurrency.WEEKLY) {
        eventForm.setRecurrenceOccurs("weekly");
      } else if (event.getOccursEnum() == Event.Occurrency.MONTHLY) {
        eventForm.setRecurrenceOccurs("monthly");
        if (UtilMethods.isSet(event.getRecurrenceDayOfMonth())
            && event.getRecurrenceDayOfMonth() > 0) {
          eventForm.setRecurrenceDayOfMonth(String.valueOf(event.getRecurrenceDayOfMonth()));
          eventForm.setSpecificDate(true);
        } else {
          eventForm.setSpecificDate(false);
          eventForm.setRecurrenceMonthOfYear(event.getRecurrenceMonthOfYear());
          eventForm.setRecurrenceWeekOfMonth(event.getRecurrenceWeekOfMonth());
          eventForm.setRecurrenceDayOfMonth("");
        }
      } else if (event.getOccursEnum() == Event.Occurrency.ANNUALLY) {
        if (UtilMethods.isSet(event.getRecurrenceDayOfMonth())
            && event.getRecurrenceDayOfMonth() > 0) {
          eventForm.setSpecificDayOfMonthRecY(String.valueOf(event.getRecurrenceDayOfMonth()));
          eventForm.setSpecificMonthOfYearRecY(String.valueOf(event.getRecurrenceMonthOfYear()));
          eventForm.setSpecificDate(true);
        } else {
          eventForm.setSpecificDate(false);
          eventForm.setSpecificDayOfMonthRecY("");
          eventForm.setSpecificMonthOfYearRecY("");
          eventForm.setRecurrenceMonthOfYear(event.getRecurrenceMonthOfYear());
          eventForm.setRecurrenceWeekOfMonth(event.getRecurrenceWeekOfMonth());
        }
        eventForm.setRecurrenceOccurs("annually");
      }

    } else {
      eventForm.setRecurrenceStartsDate(new Date());
      eventForm.setRecurrenceEndsDate(new Date());
      eventForm.setNoEndDate(false);
      eventForm.setRecurrenceDayOfMonth("");
      GregorianCalendar cal = new GregorianCalendar();
      cal.setTime(new Date());
      eventForm.setRecurrenceWeekOfMonth(cal.get(Calendar.WEEK_OF_MONTH));
      eventForm.setRecurrenceDayOfWeek(cal.get(Calendar.DAY_OF_WEEK));
      eventForm.setRecurrenceMonthOfYear(cal.get(Calendar.MONTH) + 1);

      String[] daysOfWeekRecurrence = {
        String.valueOf(Calendar.MONDAY),
        String.valueOf(Calendar.TUESDAY),
        String.valueOf(Calendar.WEDNESDAY),
        String.valueOf(Calendar.THURSDAY),
        String.valueOf(Calendar.FRIDAY),
        String.valueOf(Calendar.SATURDAY),
        String.valueOf(Calendar.SUNDAY)
      };

      eventForm.setRecurrenceDaysOfWeek(daysOfWeekRecurrence);
      eventForm.setRecurrenceInterval(1);
      eventForm.setRecurrenceOccurs("never");
    }
  }