/** * 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); } } }