public void setBaseDate(Date baseDate) {
    // TODO: throw away the following 2 lines?
    // if (baseDate == null)
    // baseDate = new Date();
    Date old = this.baseDate;
    this.baseDate = baseDate;
    firePropertyChange(PROPERTY_NAME_BASE_DATE, old, baseDate);

    // update focus date
    Calendar bc = getCalendar(baseDate);
    Calendar fc = getCalendar(focusDate);
    int focDate = fc.get(Calendar.DAY_OF_MONTH);
    int maxDay = bc.getActualMaximum(Calendar.DAY_OF_MONTH);
    if (focDate > maxDay)
      focDate = maxDay;
    bc.set(Calendar.DAY_OF_MONTH, focDate);
    focusDate = bc.getTime();

    reflectData();
  }
public void setBaseDate(Date baseDate)