avoid runtime class names in run configurations (IDEA-140615)

This commit is contained in:
Anna Kozlova
2015-05-22 19:17:42 +02:00
parent 43762d8fbc
commit 50feff7ed3
4 changed files with 8 additions and 7 deletions
@@ -60,7 +60,7 @@ public abstract class ClassBrowser extends BrowseModuleValueActionListener {
final PsiClass psiClass = dialog.getSelected();
if (psiClass == null) return null;
onClassChoosen(psiClass);
return JavaExecutionUtil.getRuntimeQualifiedName(psiClass);
return psiClass.getQualifiedName();
}
protected TreeClassChooser createClassChooser(ClassFilter.ClassFilterWithScope classFilter) {
@@ -44,10 +44,7 @@ import com.intellij.openapi.options.SettingsEditor;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.*;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.JavaCodeFragment;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiMethod;
import com.intellij.psi.*;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.ui.*;
import com.intellij.ui.components.JBList;
@@ -403,6 +400,9 @@ public class TestNGConfigurationEditor extends SettingsEditor<TestNGConfiguratio
classField.setComponent(new EditorTextFieldWithBrowseButton(project, true, new JavaCodeFragment.VisibilityChecker() {
@Override
public Visibility isDeclarationVisible(PsiElement declaration, PsiElement place) {
if (declaration instanceof PsiClass && place.getParent() instanceof PsiJavaCodeReferenceElement) {
return Visibility.VISIBLE;
}
try {
if (declaration instanceof PsiClass &&
new TestClassBrowser(project, TestNGConfigurationEditor.this).getFilter().isAccepted((PsiClass)declaration)) {
@@ -62,7 +62,7 @@ public class TestClassBrowser extends BrowseModuleValueActionListener
return null;
} else {
onClassChoosen(psiclass);
return JavaExecutionUtil.getRuntimeQualifiedName(psiclass);
return psiclass.getQualifiedName();
}
}
@@ -80,7 +80,8 @@ public class TestNGTestClass extends TestNGTestObject {
if (scope == null) {
throw new RuntimeConfigurationException("Invalid scope specified");
}
PsiClass psiClass = JavaPsiFacade.getInstance(myConfig.getProject()).findClass(data.getMainClassName(), scope.getGlobalSearchScope());
final PsiManager manager = PsiManager.getInstance(myConfig.getProject());
final PsiClass psiClass = ClassUtil.findPsiClass(manager, data.getMainClassName(), null, true, scope.getGlobalSearchScope());
if (psiClass == null) throw new RuntimeConfigurationException("Class '" + data.getMainClassName() + "' not found");
}