void (@NotNull AnActionEvent e) { Project project = e.getProject(); RunDashboardRunConfigurationNode node = project == null ? null : RunDashboardActionUtils.getTarget(e); if (node == null) return; RunManager runManager = RunManager.getInstance(project); RunnerAndConfigurationSettings settings = node.getConfigurationSettings(); RunnerAndConfigurationSettings copiedSettings = ((RunnerAndConfigurationSettingsImpl)settings).clone(); runManager.setUniqueNameIfNeeded(copiedSettings); copiedSettings.setFolderName(settings.getFolderName()); copiedSettings.getConfiguration().setBeforeRunTasks(settings.getConfiguration().getBeforeRunTasks()); final ConfigurationFactory factory = settings.getFactory(); RunConfiguration configuration = settings.getConfiguration(); //noinspection deprecation if (factory instanceof ConfigurationFactoryEx) { //noinspection deprecation,unchecked ((ConfigurationFactoryEx)factory).onConfigurationCopied(configuration); } if (configuration instanceof RunConfigurationBase) { ((RunConfigurationBase<?>)configuration).onConfigurationCopied(); } if (RunDialog.editConfiguration(project, copiedSettings, ExecutionBundle.message("run.dashboard.edit.configuration.dialog.title"))) { runManager.addConfiguration(copiedSettings); } }