package com.siberika.idea.pascal.run; import com.intellij.execution.configurations.ConfigurationFactory; import com.intellij.execution.configurations.ConfigurationType; import com.intellij.execution.configurations.RunConfiguration; import com.intellij.execution.configurations.RunConfigurationModule; import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.project.Project; import com.intellij.util.containers.ContainerUtil; import com.siberika.idea.pascal.PascalIcons; import org.jetbrains.annotations.NotNull; import javax.swing.*; /** * Author: George Bakhtadze * Date: 12/5/12 */ public class PascalConfigurationType implements ConfigurationType { private final ConfigurationFactory myFactory; public PascalConfigurationType() { myFactory = new ConfigurationFactory(this) { @NotNull @Override public RunConfiguration createTemplateConfiguration(@NotNull Project project) { return new PascalRunConfiguration("", new RunConfigurationModule(project), this); } }; } public String getDisplayName() { return "Pascal executable"; } public String getConfigurationTypeDescription() { return "Pascal run configuration"; } public Icon getIcon() { return PascalIcons.GENERAL; } @NotNull public String getId() { return "#com.siberika.idea.pascal.run.PascalConfigurationType"; } public static PascalConfigurationType getInstance() { return ContainerUtil.findInstance(Extensions.getExtensions(CONFIGURATION_TYPE_EP), PascalConfigurationType.class); } public ConfigurationFactory[] getConfigurationFactories() { return new ConfigurationFactory[]{myFactory}; } }