At times, we would like to validate certain user inputs on a particular
wizard page when next, finish etc., are clicked. JFace WizardDialog seems
to capture those events in backPressed, nextPressed etc., But one needs to
handle the events locally in a page instead of the wizard dialog. So the
existing WizardDialog and WizardPage have been extended to facilitate
this. So in every subclass of WizardPage, one could implement the
necessary validations in nextPressed, finishPressed, cancelPressed etc.,

/**
* This class specializes WizardDialog for some common requirements like
...
* 1. When NEXT, BACK, FINISH buttons are pressed, current active page
should
* be notified before showing the next page. Though those buttons can be
disabled/
* enabled in the modification listeners of the page controls but that is
expensive
* to do incase of repository centric ui.
* So the backPressed, nextPressed, finishPressed events are propagated to
* the current active page as well so that page can validate its input.
*
* Clients needs not subclass this dialog-class. It may be rarely required.
*/
public class ExWizardDialog extends WizardDialog implements
IPageChangedListener
{
public ExWizardDialog(Shell parentShell, IWizard newWizard)
{
super(parentShell, newWizard);
addPageChangedListener(this);
}

/**
* This class specializes WizardPage for some common requirements like ...
* 1. When NEXT, BACK, FINISH buttons are pressed, current active page
should
* be notified before showing the next page. Though those buttons can be
disabled/
* enabled in the modification listeners of the page controls but that is
expensive
* to do incase of repository centric ui.
* So the backPressed, nextPressed, finishPressed events in WizardDialog
are propagated
* to the current active page as well so that page can validate its input.
*
* 2. Automates creating page control. A composite with standard dialog
margin/space settings
* and GridLayout is created.
*/
public abstract class ExWizardPage extends WizardPage
{
/**
* Font metrics to use for determining pixel sizes.
*/
private FontMetrics m_fontMetrics = null;

Hi venkataramana m,
thanks for this solution. This looks good although like a lot to do. .
Just in case anyone (like me for example) stumbles upon this page searching for a way to be notified about a page change within a wizard, there is sth. less extensive available:

In most cases a WizardDialog is used as a container for any kind of Wizard. This WizardDialog implements IWizardContainer2 and IPageChangeProvider. The latter provides methods to hook listeners. The WizardContainer can always be retrieved from any WizardPage via getContainer().
Thus, a simpler solution might be this: