package org.jetbrains.plugins.cucumber.java.run; import com.intellij.execution.application.ApplicationConfigurationType; import com.intellij.execution.configuration.ConfigurationFactoryEx; import com.intellij.execution.configurations.ConfigurationFactory; import com.intellij.execution.configurations.ConfigurationTypeUtil; import com.intellij.execution.configurations.ModuleBasedConfiguration; import com.intellij.execution.configurations.RunConfiguration; import com.intellij.openapi.project.Project; import icons.CucumberJavaIcons; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import javax.swing.*; public class CucumberJavaRunConfigurationType extends ApplicationConfigurationType { @NonNls public static final String ID = "CucumberJavaRunConfigurationType"; private final ConfigurationFactory cucumberJavaRunConfigurationFactory; public CucumberJavaRunConfigurationType() { cucumberJavaRunConfigurationFactory = new ConfigurationFactoryEx(this) { @Override public Icon getIcon() { return CucumberJavaRunConfigurationType.this.getIcon(); } public RunConfiguration createTemplateConfiguration(Project project) { return new CucumberJavaRunConfiguration(getDisplayName(), project, this); } @Override public void onNewConfigurationCreated(@NotNull RunConfiguration configuration) { ((ModuleBasedConfiguration)configuration).onNewConfigurationCreated(); } }; } public static CucumberJavaRunConfigurationType getInstance() { return ConfigurationTypeUtil.findConfigurationType(CucumberJavaRunConfigurationType.class); } @Override public String getDisplayName() { return "Cucumber java"; } @Override public String getConfigurationTypeDescription() { return "Cucumber java"; } @Override public Icon getIcon() { return CucumberJavaIcons.CucumberJavaRunConfiguration; } @NotNull @Override public String getId() { return ID; } @Override public ConfigurationFactory[] getConfigurationFactories() { return new ConfigurationFactory[]{cucumberJavaRunConfigurationFactory}; } }