Exemplo n.º 1
0
  private boolean setFocusToSelection() {
    if (dayPanel != null) {
      if (cdt.hasSelection()) {
        Calendar first = cdt.getCalendarInstance((Date) dayButtons[0].getData(CDT.Key.Date));
        first.set(Calendar.MILLISECOND, 0);
        first.set(Calendar.SECOND, 0);
        first.set(Calendar.MINUTE, 0);
        first.set(Calendar.HOUR_OF_DAY, 0);

        Calendar last =
            cdt.getCalendarInstance((Date) dayButtons[dayButtons.length - 1].getData(CDT.Key.Date));
        last.set(Calendar.MILLISECOND, 0);
        last.set(Calendar.SECOND, 0);
        last.set(Calendar.MINUTE, 0);
        last.set(Calendar.HOUR_OF_DAY, 0);
        last.add(Calendar.DATE, 1);
        last.add(Calendar.MILLISECOND, -1);

        Date selection = cdt.getSelection();
        Calendar scal = cdt.getCalendarInstance(selection);
        for (int j = 0; j < dayButtons.length; j++) {
          Calendar tmpcal = cdt.getCalendarInstance((Date) dayButtons[j].getData(CDT.Key.Date));
          if ((scal.get(Calendar.DATE) == tmpcal.get(Calendar.DATE))
              && (scal.get(Calendar.MONTH) == tmpcal.get(Calendar.MONTH))
              && (scal.get(Calendar.YEAR) == tmpcal.get(Calendar.YEAR))) {
            return dayButtons[j].setFocus();
          }
        }
      } else {
        dayButtons[0].setFocus();
      }
    }
    return true;
  }
Exemplo n.º 2
0
  /** set / update the text and font color of the <code>dayButton</code>s. */
  private void updateDays() {
    if (dayPanel != null) {
      Calendar date = cdt.getCalendarInstance();
      Calendar active = cdt.getCalendarInstance();
      Calendar today = cdt.getCalendarInstance(System.currentTimeMillis());
      for (int day = 0; day < dayButtons.length; day++) {
        if ((dayButtons[day] != null)) {
          date.setTime((Date) dayButtons[day].getData(CDT.Key.Date));

          boolean isToday =
              (date.get(Calendar.YEAR) == today.get(Calendar.YEAR))
                  && (date.get(Calendar.DAY_OF_YEAR) == today.get(Calendar.DAY_OF_YEAR));
          boolean isActive =
              (date.get(Calendar.YEAR) == active.get(Calendar.YEAR))
                  && (date.get(Calendar.MONTH) == active.get(Calendar.MONTH));

          dayButtons[day].setText(getFormattedDate("d", date.getTime())); // $NON-NLS-1$
          dayButtons[day].setData(CDT.Key.Today, isToday);
          dayButtons[day].setData(CDT.Key.Active, isActive);

          cdt.getPainter().update(dayButtons[day]);
        }
      }

      int focusButton = -1;

      for (int i = 0; i < dayButtons.length; i++) {
        dayButtons[i].setSelection(false);
      }

      if (cdt.hasSelection()) {
        Calendar first = cdt.getCalendarInstance((Date) dayButtons[0].getData(CDT.Key.Date));
        first.set(Calendar.MILLISECOND, 0);
        first.set(Calendar.SECOND, 0);
        first.set(Calendar.MINUTE, 0);
        first.set(Calendar.HOUR_OF_DAY, 0);

        Calendar last =
            cdt.getCalendarInstance((Date) dayButtons[dayButtons.length - 1].getData(CDT.Key.Date));
        last.set(Calendar.MILLISECOND, 0);
        last.set(Calendar.SECOND, 0);
        last.set(Calendar.MINUTE, 0);
        last.set(Calendar.HOUR_OF_DAY, 0);
        last.add(Calendar.DATE, 1);
        last.add(Calendar.MILLISECOND, -1);

        Date selection = cdt.getSelection();
        Calendar scal = cdt.getCalendarInstance(selection);
        for (int j = 0; j < dayButtons.length; j++) {
          Calendar tmpcal = cdt.getCalendarInstance((Date) dayButtons[j].getData(CDT.Key.Date));
          if ((scal.get(Calendar.DATE) == tmpcal.get(Calendar.DATE))
              && (scal.get(Calendar.MONTH) == tmpcal.get(Calendar.MONTH))
              && (scal.get(Calendar.YEAR) == tmpcal.get(Calendar.YEAR))) {
            dayButtons[j].setSelection(true);
            focusButton = j;
            break;
          }
        }
        if (focusButton >= 0) {
          dayButtons[focusButton].setFocus();
        }
      }

      dayPanel.redraw();
    }
  }