@Override
  public final void update(@NotNull final AnActionEvent e) {
    final Project project = e.getProject();
    final CommittedChangesBrowserUseCase useCase = e.getData(CommittedChangesBrowserUseCase.DATA_KEY);
    final Presentation presentation = e.getPresentation();

    if ((project == null) || (myCheckUseCase) && ((useCase == null) || (! CommittedChangesBrowserUseCase.COMMITTED.equals(useCase)))) {
      presentation.setEnabledAndVisible(false);
      return;
    }

    presentation.setText(SvnBundle.messagePointer("action.Subversion.integrate.changes.actionname"));
    presentation.setDescription(SvnBundle.messagePointer("action.Subversion.integrate.changes.description"));

    final T checker = createChecker();
    checker.execute(e);

    presentation.setVisible(true);
    presentation.setEnabled(checker.isValid());

    if (presentation.isVisible() && presentation.isEnabled() &&
        ProjectLevelVcsManager.getInstance(project).isBackgroundVcsOperationRunning()) {
      presentation.setEnabled(false);
    }

    updateWithChecker(e, checker);
  }
@Override
  public final void update(@NotNull final AnActionEvent e)