protected Control createContents(Composite parent) {
    Composite result = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    layout.verticalSpacing = 0;
    layout.horizontalSpacing = 0;
    result.setLayout(layout);
    result.setLayoutData(new GridData(GridData.FILL_BOTH));

    // initialize the dialog units
    initializeDialogUnits(result);

    fPageContainer = new PageBook(result, SWT.NONE);
    GridData gd = new GridData(GridData.FILL_BOTH);
    fPageContainer.setLayoutData(gd);
    fCurrentPage = fWizard.getStartingPage();
    dialogArea = fPageContainer;
    if (fCurrentPage instanceof PreviewWizardPage) {
      gd.widthHint = fPreviewWidth;
      gd.heightHint = fPreviewHeight;
    }

    fStatusContainer = new PageBook(result, SWT.NONE);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.widthHint = convertWidthInCharsToPixels(fWizard.getMessageLineWidthInChars());
    fStatusContainer.setLayoutData(gd);
    if (fWizard.needsProgressMonitor()) createProgressMonitorPart();
    createMessageBox();
    fStatusContainer.showPage(fMessageBox);

    buttonBar = createButtonBar(result);

    if (fCurrentPage != null) {
      fCurrentPage.createControl(fPageContainer);
      makeVisible(fCurrentPage);
      updateMessage();
      updateButtons();
    }

    applyDialogFont(result);
    return result;
  }