From 2b6ca14d7ef0aa8de426f4f91d8b673243526bdc Mon Sep 17 00:00:00 2001 From: Sergey Evdokimov Date: Fri, 3 Feb 2012 20:41:47 +0400 Subject: [PATCH] Maven: Show unexisting JDK in Maven Runner configuration dialog. --- .../execution/MavenRunnerConfigurable.java | 19 ++++++++++--------- .../maven/execution/MavenRunnerSettings.java | 10 +++++----- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunnerConfigurable.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunnerConfigurable.java index 7f97fe601051..085fc93e248c 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunnerConfigurable.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunnerConfigurable.java @@ -187,20 +187,21 @@ public abstract class MavenRunnerConfigurable implements SearchableConfigurable, } - private void fillComboboxJdk(MavenRunnerSettings data) { - myJdkComboModel.removeAllElements(); - for (Pair jdk : data.collectJdkNamesAndDescriptions()) { - ComboBoxUtil.addToModel(myJdkComboModel, jdk.getFirst(), jdk.getSecond()); - } - myJdkCombo.setModel(myJdkComboModel); - } - void getData(MavenRunnerSettings data) { myRunInBackgroundCheckbox.setSelected(data.isRunMavenInBackground()); myVMParametersEditor.setText(data.getVmOptions()); mySkipTestsCheckBox.setSelected(data.isSkipTests()); - fillComboboxJdk(data); + Map jdkMap = data.collectJdkNamesAndDescriptions(); + if (!jdkMap.containsKey(data.getJreName())) { + jdkMap.put(data.getJreName(), data.getJreName()); + } + + myJdkComboModel.removeAllElements(); + for (Map.Entry entry : jdkMap.entrySet()) { + ComboBoxUtil.addToModel(myJdkComboModel, entry.getKey(), entry.getValue()); + } + myJdkCombo.setModel(myJdkComboModel); ComboBoxUtil.select(myJdkComboModel, data.getJreName()); myPropertiesPanel.setDataFromMap(data.getMavenProperties()); diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunnerSettings.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunnerSettings.java index 87046b1b1e23..4cf38fec00e4 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunnerSettings.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/execution/MavenRunnerSettings.java @@ -98,16 +98,16 @@ public class MavenRunnerSettings implements Cloneable { this.mavenProperties = mavenProperties; } - public List> collectJdkNamesAndDescriptions() { - List> result = new ArrayList>(); + public Map collectJdkNamesAndDescriptions() { + Map result = new LinkedHashMap(); for (Sdk projectJdk : ProjectJdkTable.getInstance().getSdksOfType(getSdkType())) { String name = projectJdk.getName(); - result.add(new Pair(name, name)); + result.put(name, name); } - result.add(new Pair(USE_INTERNAL_JAVA, RunnerBundle.message("maven.java.internal"))); - result.add(new Pair(USE_JAVA_HOME, RunnerBundle.message("maven.java.home.env"))); + result.put(USE_INTERNAL_JAVA, RunnerBundle.message("maven.java.internal")); + result.put(USE_JAVA_HOME, RunnerBundle.message("maven.java.home.env")); return result; }