mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
run configurations: fill name on class selected (IDEA-56817)
This commit is contained in:
+4
@@ -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();
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user