private List<WizardDescriptor.Panel<WizardDescriptor>> getPanels() {
    if (panels == null) {
      panels = new ArrayList<WizardDescriptor.Panel<WizardDescriptor>>();
      panels.add(icc);
      panels.add(ncc);
      panels.add(bpc);
      panels.add(delic);
      panels.add(confoc);

      // Become a ChangeListener for IdentifyCustomerController and
      // BuildPizzaController
      icc.addPropertyChangeListener(this);
      bpc.addPropertyChangeListener(this);
      updateSteps();
    }
    return panels;
  }
 @Override
 public void propertyChange(PropertyChangeEvent pce) {
   if (pce.getPropertyName().equals(IdentifyCustomerController.PROP_IS_NEW_CUSTOMER)) {
     if (icc.isIsNewCustomer()) {
       panels.add(1, ncc);
     } else {
       panels.remove(ncc);
     }
     updateSteps();
     fireChangeEvent(this, 0, 1);
   } else if (pce.getPropertyName().equals(BuildPizzaController.PROP_IS_PICKUP)) {
     if (bpc.isIsPickup()) {
       panels.remove(delic);
     } else {
       panels.add(panels.size() - 1, delic);
     }
     updateSteps();
     fireChangeEvent(this, 0, 1);
   }
 }