@Override
        public void actionPerformed(@NotNull AnActionEvent e) {
          BeforeRunTask<?> task = provider.createTask(myRunConfiguration);
          if (task == null) {
            return;
          }

          provider.configureTask(button.getDataContext(), myRunConfiguration, task)
            .onSuccess(changed -> {
              if (!provider.canExecuteTask(myRunConfiguration, task)) {
                return;
              }
              task.setEnabled(true);

              Set<RunConfiguration> configurationSet = CollectionFactory.createSmallMemoryFootprintSet();
              getAllRunBeforeRuns(task, configurationSet);
              if (configurationSet.contains(myRunConfiguration)) {
                JOptionPane.showMessageDialog(BeforeRunStepsPanel.this,
                                              ExecutionBundle.message("before.launch.panel.cyclic_dependency_warning",
                                                                      myRunConfiguration.getName(),
                                                                      provider.getDescription(task)),
                                              ExecutionBundle.message("warning.common.title"), JOptionPane.WARNING_MESSAGE);
                return;
              }
              RunConfigurationOptionUsagesCollector.logAddBeforeRunTask(
                myRunConfiguration.getProject(), myRunConfiguration.getType().getId(), provider.getClass());
              addTask(task);
              myListener.fireStepsBeforeRunChanged();
            });
        }
@Override
        public void actionPerformed(@NotNull AnActionEvent e)