package com.github.masahirosuzuka.PhoneGapIntelliJPlugin.runner;
import com.github.masahirosuzuka.PhoneGapIntelliJPlugin.PhoneGapBundle;
import com.intellij.execution.configurations.ConfigurationFactory;
import com.intellij.execution.configurations.ConfigurationType;
import com.intellij.execution.configurations.RunConfiguration;
import com.intellij.openapi.project.Project;
import icons.PhoneGapIcons;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
/**
* PhoneGapConfigurationType.java
* <p/>
* Created by Masahiro Suzuka on 2014/04/04.
*/
public class PhoneGapConfigurationType implements ConfigurationType {
public static final String RUN_CONFIGURATION_ID = "PhoneGap";
public PhoneGapConfigurationFactory myConfigurationFactory;
public PhoneGapConfigurationType() {
myConfigurationFactory = new PhoneGapConfigurationFactory(this);
}
@Override
public String getDisplayName() {
return PhoneGapBundle.message("phonegap.run.configuration.title");
}
@Override
public String getConfigurationTypeDescription() {
return PhoneGapBundle.message("phonegap.run.configuration.description");
}
@Override
public Icon getIcon() {
return PhoneGapIcons.PhonegapIntegration;
}
@NotNull
@Override
public String getId() {
return RUN_CONFIGURATION_ID;
}
@Override
public ConfigurationFactory[] getConfigurationFactories() {
return new PhoneGapConfigurationFactory[]{myConfigurationFactory};
}
public class PhoneGapConfigurationFactory extends ConfigurationFactory {
public PhoneGapConfigurationFactory(ConfigurationType type) {
super(type);
}
@Override
public RunConfiguration createTemplateConfiguration(Project project) {
return new PhoneGapRunConfiguration(project, myConfigurationFactory, RUN_CONFIGURATION_ID);
}
@Override
public boolean isConfigurationSingletonByDefault() {
return true;
}
}
}