run configuration editor: unify catch clauses

preparing for IDEA-194201
This commit is contained in:
peter
2018-07-04 17:05:27 +02:00
parent 75d6a265fe
commit 55a1985da0
@@ -192,23 +192,8 @@ public final class SingleConfigurationConfigurable<Config extends RunConfigurati
}
}
}
catch (RuntimeConfigurationException exception) {
final Runnable quickFix = exception.getQuickFix();
Runnable resultQuickFix;
if (quickFix != null && snapshot != null) {
final RunnerAndConfigurationSettings fixedSettings = snapshot;
resultQuickFix = () -> {
quickFix.run();
getEditor().resetFrom(fixedSettings);
};
}
else {
resultQuickFix = quickFix;
}
myLastValidationResult = new ValidationResult(exception.getLocalizedMessage(), exception.getTitle(), resultQuickFix);
}
catch (ConfigurationException e) {
myLastValidationResult = new ValidationResult(e.getLocalizedMessage(), ExecutionBundle.message("invalid.data.dialog.title"), null);
myLastValidationResult = createValidationResult(snapshot, e);
}
myValidationResultValid = true;
@@ -216,6 +201,25 @@ public final class SingleConfigurationConfigurable<Config extends RunConfigurati
return myLastValidationResult;
}
private ValidationResult createValidationResult(RunnerAndConfigurationSettings snapshot, ConfigurationException e) {
return new ValidationResult(
e.getLocalizedMessage(),
e instanceof RuntimeConfigurationException ? e.getTitle() : ExecutionBundle.message("invalid.data.dialog.title"),
getQuickFix(snapshot, e));
}
@Nullable
private Runnable getQuickFix(RunnerAndConfigurationSettings snapshot, ConfigurationException exception) {
Runnable quickFix = exception.getQuickFix();
if (quickFix != null && snapshot != null) {
return () -> {
quickFix.run();
getEditor().resetFrom(snapshot);
};
}
return quickFix;
}
private static void checkConfiguration(final ProgramRunner runner, final RunnerAndConfigurationSettings snapshot)
throws RuntimeConfigurationException {
final RunnerSettings runnerSettings = snapshot.getRunnerSettings(runner);