package org.fandev.runner; import com.intellij.execution.junit.RuntimeConfigurationProducer; import com.intellij.execution.impl.RunnerAndConfigurationSettingsImpl; import com.intellij.execution.Location; import com.intellij.execution.actions.ConfigurationContext; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import org.fandev.lang.fan.psi.FanFile; /** * Date: Sep 5, 2009 * Time: 12:06:57 AM * * @author Dror Bereznitsky */ public class FanPodRunConfigurationProducer extends RuntimeConfigurationProducer implements Cloneable { private PsiElement mySourceElement; public FanPodRunConfigurationProducer() { super(FanPodRunConfigurationType.getInstance()); } public PsiElement getSourceElement() { return mySourceElement; } protected RunnerAndConfigurationSettingsImpl createConfigurationByElement(final Location location, final ConfigurationContext context) { final PsiElement element = location.getPsiElement(); final PsiFile file = element.getContainingFile(); if (file instanceof FanFile) { mySourceElement = element; return (RunnerAndConfigurationSettingsImpl) FanPodRunConfigurationType.getInstance().createConfigurationByLocation(location); } return null; } public int compareTo(final Object o) { return PREFERED; } }