/* (non-Javadoc)
   * Method declared on IWizardContainer.
   */
  public void updateButtons() {
    boolean previewPage = isPreviewPageActive();
    boolean ok = fWizard.canFinish();
    boolean canFlip = fCurrentPage.canFlipToNextPage();

    Button defaultButton = null;

    Button previewButton = getButton(PREVIEW_ID);
    if (previewButton != null && !previewButton.isDisposed()) {
      String previewLabel =
          previewPage
              ? IDialogConstants.BACK_LABEL
              : RefactoringUIMessages.RefactoringWizardDialog2_buttons_preview_label;
      previewButton.setText(previewLabel);
      setButtonLayoutData(previewButton);
      getShell().layout(new Control[] {previewButton});

      boolean enable = true;
      if (!previewPage) enable = canFlip;
      previewButton.setEnabled(enable);
      if (enable) defaultButton = previewButton;
    }

    Button nextButton = getButton(IDialogConstants.NEXT_ID);
    if (nextButton != null && !nextButton.isDisposed()) {
      nextButton.setEnabled(!previewPage);
      if (!previewPage) nextButton.setEnabled(canFlip);
      if (nextButton.isEnabled()) defaultButton = nextButton;
    }

    Button backButton = getButton(IDialogConstants.BACK_ID);
    if (backButton != null && !backButton.isDisposed()) backButton.setEnabled(!isFirstPage());

    Button okButton = getButton(IDialogConstants.OK_ID);
    if (okButton != null && !okButton.isDisposed()) {
      okButton.setEnabled(ok);
      if (ok) defaultButton = okButton;
    }

    if (defaultButton != null) {
      defaultButton.getShell().setDefaultButton(defaultButton);
    }
  }