WizardDialog and its validator

When using a wizard/druid/assistant (whichever name you prefer), you might want to ensure some values are sane before allowing the next page to be opened. Provided for this task are ValidatorBase<C, T>, or IValidator<T> if you want to live on the edge. The difference between the two is that the first gives an enum derived from the second generic parameter, the second one just gives an int corresponding to the category index.

validator.cs

First page, invalid

First page, valid

Second page, invalid

Second page, valid

When no validator is provided, validatable dialogs will assume all input is valid. In case of the WizardDialog, this means you can jump straight to the last page without filling anything in.

For the moment, there is no way to provide the user with feedback telling exactly which field is wrong and why. It's on the wishlist though, developers are welcome.

Qyoto

The Qt/Qyoto frontend also has this functionality, although the window is a bit bigger: