run configurations: fill name on class selected (IDEA-56817)

This commit is contained in:
anna
2010-11-19 12:07:05 +03:00
parent d263773ed7
commit 1325ea8cc0
3 changed files with 24 additions and 0 deletions
@@ -89,6 +89,7 @@ public class ApplicationConfiguration extends ModuleBasedConfiguration<JavaRunCo
return group;
}
@Override
@Nullable
public String getGeneratedName() {
if (MAIN_CLASS_NAME == null) {
@@ -119,6 +120,9 @@ public class ApplicationConfiguration extends ModuleBasedConfiguration<JavaRunCo
}
public String suggestedName() {
if (MAIN_CLASS_NAME == null || MAIN_CLASS_NAME.length() == 0) {
return getName();
}
return ProgramRunnerUtil.shortenName(JavaExecutionUtil.getShortClassName(MAIN_CLASS_NAME), 6) + ".main()";
}
@@ -24,6 +24,7 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.JDOMExternalizable;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public abstract class RuntimeConfiguration extends RunConfigurationBase implements LocatableConfiguration, Cloneable, ModuleRunConfiguration {
public static final DataKey<RuntimeConfiguration> DATA_KEY = DataKey.create("runtimeConfiguration");
@@ -60,4 +61,9 @@ public abstract class RuntimeConfiguration extends RunConfigurationBase implemen
@NonNls public String suggestedName() {
return null;
}
@Nullable
public String getGeneratedName() {
return suggestedName();
}
}
@@ -289,6 +289,20 @@ class RunConfigurable extends BaseConfigurable {
info.getEditor().addSettingsEditorListener(new SettingsEditorListener<RunnerAndConfigurationSettings>() {
public void stateChanged(final SettingsEditor<RunnerAndConfigurationSettings> editor) {
update();
final RunConfiguration configuration = info.getConfiguration();
if (configuration instanceof RuntimeConfiguration) {
final RuntimeConfiguration runtimeConfiguration = (RuntimeConfiguration)configuration;
if (runtimeConfiguration.isGeneratedName()) {
try {
final String generatedName = ((RuntimeConfiguration)editor.getSnapshot().getConfiguration()).getGeneratedName();
if (generatedName != null && generatedName.length() > 0) {
info.setNameText(generatedName);
}
}
catch (ConfigurationException ignore) {
}
}
}
setupDialogBounds();
}
});