package ee.edio.garmin.runconfig; import com.intellij.execution.Location; import com.intellij.execution.actions.ConfigurationContext; import com.intellij.execution.actions.RunConfigurationProducer; import com.intellij.openapi.module.Module; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.Ref; import com.intellij.psi.PsiElement; public class MonkeyModuleConfigurationProducer extends RunConfigurationProducer<MonkeyModuleBasedConfiguration> { public MonkeyModuleConfigurationProducer() { super(MonkeyConfigurationType.getInstance()); } @Override protected boolean setupConfigurationFromContext(MonkeyModuleBasedConfiguration configuration, ConfigurationContext context, Ref<PsiElement> sourceElement) { final Location location = context.getLocation(); if (location == null) { return false; } final Module contextModule = context.getModule(); if (contextModule != null) { configuration.setModule(contextModule); configuration.setName(contextModule.getName()); } configuration.setTargetDeviceId(TargetDevice.SQUARE_WATCH.getId()); return true; } @Override public boolean isConfigurationFromContext(MonkeyModuleBasedConfiguration configuration, ConfigurationContext context) { final Module contextModule = context.getModule(); if (contextModule == null) { return false; } final Module confModule = configuration.getConfigurationModule().getModule(); return Comparing.equal(contextModule, confModule); } }