@Override
    public void propertyChange(PropertyChangeEvent evt) {
      if (evt.getSource() == gridPanel
          && evt.getPropertyName().equals(
              CalendarGridPanel.PROPERTY_NAME_DATE)) {
        Date newValue = (Date) evt.getNewValue();
        try {
          peer.setDate(newValue);
        } catch (PropertyVetoException e) {
          // Ignore. Just cannot happen, because CalendarGridPanel
          // already checked the date against current peer's
          // vetoPolicy.
        }
      }
      if (evt.getSource() == gridPanel
          && evt.getPropertyName().equals(
              CalendarGridPanel.PROPERTY_NAME_NOTIFY_SELECTED_DATE_CLICKED)) {
        peer.fireActionEvent();
      }
      if (evt.getSource() == gridPanel
          && evt.getPropertyName().equals(
              CalendarGridPanel.PROPERTY_NAME_BASE_DATE)) {
        Date newValue = (Date) evt.getNewValue();
        modernPanel.setDate(newValue);
        classicPanel.setDate(newValue);
      }
      if (evt.getSource() == modernPanel
          && evt.getPropertyName().equals(
              ModernCalendarPanel.PROPERTY_NAME_DATE)) {
        Date newValue = (Date) evt.getNewValue();

        gridPanel.setBaseDate(newValue);
        classicPanel.setDate(newValue);
        numberOfWeekPanel.setBaseDate(newValue);

      }
      if (evt.getSource() == classicPanel
          && evt.getPropertyName().equals(
              ModernCalendarPanel.PROPERTY_NAME_DATE)) {
        Date newValue = (Date) evt.getNewValue();

        gridPanel.setBaseDate(newValue);
        modernPanel.setDate(newValue);
        numberOfWeekPanel.setBaseDate(newValue);

      }
      if (evt.getSource() == auxPanel
          && evt.getPropertyName()
              .equals(AuxPanel.PROPERTY_NAME_DATE)) {
        Date date = (Date) evt.getNewValue();

        gridPanel.setDate(date);
        peer.commitEdit();
      }

    }
@Override
    public void propertyChange(PropertyChangeEvent evt)