/** @see org.eclipse.emf.transaction.RecordingCommand#doExecute() */
  @Override
  protected void doExecute() {
    MergeClassDialog dialog =
        new MergeClassDialog(
            parentShell, new ProjectItemLabelProvider(), new ProjectItemTreeContentProvider(2));

    if (dialog.open() != Window.OK) {
      return;
    }

    if (dialog.getFirstResult() != null && dialog.getClassName() != null) {
      semanticModelHandler.initializeClassesMerger(
          dialog.getFirstResult(), dialog.getClassName(), dialog.isClear());
    }

    semanticModelHandler.mergeClassToClass();
  }