/**
  * Subclasses can override this method and perform the finish action. If this method is not
  * overridden the extension-point with the id {@link WizardDelegateRegistry#EXTENSION_POINT_ID} is
  * processed and if a {@link IWizardDelegateFactory} is registered for a subclass it will
  * automatically be used. In this case {@link #addPages())} should also not be overridden.
  */
 @Override
 public boolean performFinish() {
   if (wizardActionHandler != null) {
     return wizardActionHandler.performFinish();
   }
   return false;
 }
 protected void initWizardActionHandler() {
   IWizardDelegateFactory factory =
       WizardDelegateRegistry.sharedInstance().getFactory(this.getClass());
   if (factory != null) {
     wizardActionHandler = factory.createWizardDelegate();
     wizardActionHandler.setWizard(this);
   } else {
     //			throw new IllegalStateException("There is no IWizardDelegateFactory registered for the
     // wizard class "+this.getClass());
     logger.info(
         "There is no IWizardDelegateFactory registered for the wizard class " + this.getClass());
   }
 }
  /**
   * Subclasses can override this method and call internally {@link #addPage(IWizardPage)} for each
   * page they want to add. If this method is not overridden the extension-point with the id {@link
   * WizardDelegateRegistry#EXTENSION_POINT_ID} is processed and if a {@link IWizardDelegateFactory}
   * is registered for a subclass it will automatically be used. In this case {@link
   * #performFinish()} should also not be overridden.
   */
  @Override
  public void addPages() {
    super.addPages(); // empty super method.
    IWizardPage entryPage = getWizardEntryPage();
    if (entryPage != null) addPage(entryPage);

    // check if a wizardActionHandler is registered for this wizard class
    initWizardActionHandler();

    // if a wizardActionHandler is registered add the pages of the corresponding page provider
    if (wizardActionHandler != null) {
      List<? extends IWizardPage> pages = wizardActionHandler.getPageProvider().getPages();
      for (IWizardPage page : pages) {
        addPage(page);
      }
    }
  }