package com.jetbrains.lang.dart.ide.runner.test; import com.intellij.execution.configurations.ConfigurationFactory; import com.intellij.execution.configurations.ConfigurationTypeBase; import com.intellij.execution.configurations.RunConfiguration; import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.project.Project; import com.intellij.psi.search.FileTypeIndex; import com.intellij.psi.search.GlobalSearchScope; import com.jetbrains.lang.dart.DartBundle; import com.jetbrains.lang.dart.DartFileType; import icons.DartIcons; import org.jetbrains.annotations.NotNull; public class DartTestRunConfigurationType extends ConfigurationTypeBase { protected DartTestRunConfigurationType() { super("DartTestRunConfigurationType", DartBundle.message("runner.test.configuration.name"), DartBundle.message("runner.test.configuration.description"), DartIcons.Dart_test); addFactory(new DartTestConfigurationFactory(this)); } public static DartTestRunConfigurationType getInstance() { return Extensions.findExtension(CONFIGURATION_TYPE_EP, DartTestRunConfigurationType.class); } public static class DartTestConfigurationFactory extends ConfigurationFactory { protected DartTestConfigurationFactory(DartTestRunConfigurationType type) { super(type); } @Override @NotNull public RunConfiguration createTemplateConfiguration(@NotNull Project project) { return new DartTestRunConfiguration(project, this, "Dart"); } @Override public boolean isApplicable(@NotNull Project project) { return FileTypeIndex.containsFileOfType(DartFileType.INSTANCE, GlobalSearchScope.projectScope(project)); } } }