protected void createNestedComponents() {
    Date baseDate = peer.getDate() == null ? new Date() : peer.getDate();

    classicPanel = new ClassicCalendarPanel(baseDate, peer.getLocale(),
        peer.getZone());
    modernPanel = new ModernCalendarPanel(baseDate, peer.getLocale(), peer
        .getZone());
    headerPanel = new CalendarHeader(peer, baseDate, peer.getLocale(), peer
        .getZone(), peer.getHolidayPolicy());

    auxPanel = new AuxPanel(peer.getLocale(), peer.getZone(), peer
        .getVetoPolicy(), peer.isShowTodayButton(), peer
        .isShowNoneButton(), peer.getResources());

    gridPanel = new CalendarGridPanel(peer, peer.getDate(), peer
        .getLocale(), peer.getZone(), peer.getVetoPolicy(), peer
        .getHolidayPolicy());

    numberOfWeekPanel = new CalendarNumberOfWeekPanel(peer.getDate(), peer
        .getLocale(), peer.getZone());

    focusableComponents.addAll(classicPanel.getFocusableComponents());
    focusableComponents.addAll(modernPanel.getFocusableComponents());
    focusableComponents.addAll(auxPanel.getFocusableComponents());
    focusableComponents.addAll(gridPanel.getFocusableComponents());
    focusableComponents.addAll(auxPanel.getFocusableComponents());

    componentListener = new ComponentListener();
    for (int i = 0; i < focusableComponents.size(); i++)
      ((JComponent) focusableComponents.toArray()[i])
          .addFocusListener(componentListener);

    gridPanel.addPropertyChangeListener(componentListener);
    modernPanel.addPropertyChangeListener(componentListener);
    classicPanel.addPropertyChangeListener(componentListener);
    auxPanel.addPropertyChangeListener(componentListener);
    
    classicPanel.setEnabled(peer.isEnabled());
    modernPanel.setEnabled(peer.isEnabled());
    headerPanel.setEnabled(peer.isEnabled());
    auxPanel.setEnabled(peer.isEnabled());
    numberOfWeekPanel.setEnabled(peer.isEnabled());
    gridPanel.setEnabled(peer.isEnabled());

  }
protected void createNestedComponents()