package com.intellij.lang.javascript.flex.flexunit;
import com.intellij.execution.configurations.ConfigurationFactory;
import com.intellij.execution.configurations.ConfigurationType;
import com.intellij.execution.configurations.ConfigurationTypeUtil;
import com.intellij.execution.configurations.RunConfiguration;
import com.intellij.lang.javascript.flex.FlexModuleType;
import com.intellij.openapi.module.ModuleUtil;
import com.intellij.openapi.project.Project;
import icons.FlexIcons;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
public class FlexUnitRunConfigurationType implements ConfigurationType {
private final ConfigurationFactory myFactory;
public FlexUnitRunConfigurationType() {
myFactory = new ConfigurationFactory(this) {
public RunConfiguration createTemplateConfiguration(Project project) {
return new FlexUnitRunConfiguration(project, this, "");
}
@Override
public boolean isApplicable(@NotNull Project project) {
return ModuleUtil.hasModulesOfType(project, FlexModuleType.getInstance());
}
};
}
public String getDisplayName() {
return "FlexUnit";
}
public String getConfigurationTypeDescription() {
return "FlexUnit run configuration";
}
public Icon getIcon() {
return FlexIcons.Flex.Flexunit;
}
public ConfigurationFactory[] getConfigurationFactories() {
return new ConfigurationFactory[]{myFactory};
}
@NotNull
public String getId() {
return "FlexUnitRunConfigurationType";
}
public static FlexUnitRunConfigurationType getInstance() {
return ConfigurationTypeUtil.findConfigurationType(FlexUnitRunConfigurationType.class);
}
public static ConfigurationFactory getFactory() {
return getInstance().getConfigurationFactories()[0];
}
}