/** {@inheritDoc} */
  @Override
  public UnsavedChangesDialog.Result checkUnsavedChanges() {
    UnsavedChangesDialog.Result result;
    UnsavedChangesDialog unsavedChangesDlg =
        new UnsavedChangesDialog(Utilities.getParentDialog(this), getInfo());
    unsavedChangesDlg.setMessage(
        INFO_CTRL_PANEL_UNSAVED_CHANGES_SUMMARY.get(),
        INFO_CTRL_PANEL_UNSAVED_OBJECTCLASS_CHANGES_DETAILS.get(objectClass.getNameOrOID()));
    Utilities.centerGoldenMean(unsavedChangesDlg, Utilities.getParentDialog(this));
    unsavedChangesDlg.setVisible(true);
    result = unsavedChangesDlg.getResult();
    if (result == UnsavedChangesDialog.Result.SAVE) {
      ArrayList<LocalizableMessage> errors = new ArrayList<>();
      saveChanges(true, errors);
      if (!errors.isEmpty()) {
        result = UnsavedChangesDialog.Result.CANCEL;
      }
    }

    return result;
  }