private void reflectBaseDate() {
    Calendar calendar = getCalendar(baseDate);
    calendar.set(Calendar.DAY_OF_MONTH, 1);

    int skipBefore = calendar.get(Calendar.DAY_OF_WEEK)
        - calendar.getFirstDayOfWeek();
    if (skipBefore < 0)
      skipBefore = 7 + skipBefore;

    int activeDays = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

    int day = 1;
    calendar.setTime(baseDate);
    calendar.set(Calendar.DAY_OF_MONTH, 1);

    for (int i = 0; i < 42; i++) {
      DateLabel l = labels[i];
      l.setBackground(isEnabled() ? selBgEn : selBgDis);
      l.setSelected(false);
      l.setFocused(false);
      l.setEnabled(isEnabled());

      if (i < skipBefore) {
        l.setText("");
        l.setVisible(false);
      }
      if (i >= skipBefore && i < skipBefore + activeDays) {
        l.setVisible(true);
        l.setText(String.valueOf(day));
        if (vetoPolicy != null)
          l.setBanned(vetoPolicy.isRestricted(this.peer, calendar));
        else
          l.setBanned(false);

        if (holidayPolicy != null) {
          l.setDate(calendar.getTime());
          l
              .setHolliday(holidayPolicy.isHolliday(this.peer,
                  calendar));
          l.setWeekend(holidayPolicy.isWeekend(this.peer, calendar));
        } else {
          l.setHolliday(false);
          l.setWeekend(false);
        }
        day++;
        calendar.add(Calendar.DAY_OF_MONTH, 1);
      }
      if (i >= skipBefore + activeDays) {
        l.setText("");
        l.setVisible(false);
      }

    }
  }
private void reflectBaseDate()