summaryrefslogtreecommitdiff
path: root/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurable.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurable.java')
-rw-r--r--java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurable.java9
1 files changed, 6 insertions, 3 deletions
diff --git a/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurable.java b/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurable.java
index b72a8883636f..04af179638cd 100644
--- a/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurable.java
+++ b/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurable.java
@@ -16,6 +16,7 @@
package com.intellij.execution.application;
import com.intellij.execution.ExecutionBundle;
+import com.intellij.execution.JavaExecutionUtil;
import com.intellij.execution.configurations.ConfigurationUtil;
import com.intellij.execution.ui.AlternativeJREPanel;
import com.intellij.execution.ui.ClassBrowser;
@@ -71,7 +72,9 @@ public class ApplicationConfigurable extends SettingsEditor<ApplicationConfigura
public void applyEditorTo(final ApplicationConfiguration configuration) throws ConfigurationException {
myCommonProgramParameters.applyTo(configuration);
myModuleSelector.applyTo(configuration);
- configuration.MAIN_CLASS_NAME = getMainClassField().getText();
+ final String className = getMainClassField().getText();
+ final PsiClass aClass = myModuleSelector.findClass(className);
+ configuration.MAIN_CLASS_NAME = aClass != null ? JavaExecutionUtil.getRuntimeQualifiedName(aClass) : className;
configuration.ALTERNATIVE_JRE_PATH = myAlternativeJREPanel.getPath();
configuration.ALTERNATIVE_JRE_PATH_ENABLED = myAlternativeJREPanel.isPathEnabled();
configuration.ENABLE_SWING_INSPECTOR = (myVersionDetector.isJre50Configured(configuration) || myVersionDetector.isModuleJre50Configured(configuration)) && myShowSwingInspectorCheckbox.isSelected();
@@ -82,7 +85,7 @@ public class ApplicationConfigurable extends SettingsEditor<ApplicationConfigura
public void resetEditorFrom(final ApplicationConfiguration configuration) {
myCommonProgramParameters.reset(configuration);
myModuleSelector.reset(configuration);
- getMainClassField().setText(configuration.MAIN_CLASS_NAME);
+ getMainClassField().setText(configuration.MAIN_CLASS_NAME.replaceAll("\\$", "\\."));
myAlternativeJREPanel.init(configuration.ALTERNATIVE_JRE_PATH, configuration.ALTERNATIVE_JRE_PATH_ENABLED);
updateShowSwingInspector(configuration);
@@ -121,7 +124,7 @@ public class ApplicationConfigurable extends SettingsEditor<ApplicationConfigura
public Visibility isDeclarationVisible(PsiElement declaration, PsiElement place) {
if (declaration instanceof PsiClass) {
final PsiClass aClass = (PsiClass)declaration;
- if (ConfigurationUtil.MAIN_CLASS.value(aClass) && PsiMethodUtil.findMainMethod(aClass) != null) {
+ if (ConfigurationUtil.MAIN_CLASS.value(aClass) && PsiMethodUtil.findMainMethod(aClass) != null || place.getParent() != null && myModuleSelector.findClass(((PsiClass)declaration).getQualifiedName()) != null) {
return Visibility.VISIBLE;
}
}