package com.intellij.lang.javascript.flex.run; 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 RemoteFlashRunConfigurationType implements ConfigurationType { public static final String TYPE = "RemoteFlashRunConfigurationType"; public static final String DISPLAY_NAME = "Flash Remote Debug"; private final ConfigurationFactory myFactory; public RemoteFlashRunConfigurationType() { myFactory = new ConfigurationFactory(this) { public RunConfiguration createTemplateConfiguration(Project project) { return new RemoteFlashRunConfiguration(project, this, ""); } @Override public boolean isApplicable(@NotNull Project project) { return ModuleUtil.hasModulesOfType(project, FlexModuleType.getInstance()); } }; } public String getDisplayName() { return DISPLAY_NAME; } public String getConfigurationTypeDescription() { return "Remote Flash debug configuration"; } public Icon getIcon() { return FlexIcons.Flash_remote_debug; } public ConfigurationFactory[] getConfigurationFactories() { return new ConfigurationFactory[]{myFactory}; } @NotNull public String getId() { return TYPE; } public static RemoteFlashRunConfigurationType getInstance() { return ConfigurationTypeUtil.findConfigurationType(RemoteFlashRunConfigurationType.class); } public static ConfigurationFactory getFactory() { return getInstance().getConfigurationFactories()[0]; } }