diff --git a/plugins/android/src/org/jetbrains/android/sdk/AndroidNewSdkDialog.java b/plugins/android/src/org/jetbrains/android/sdk/AndroidNewSdkDialog.java new file mode 100644 index 000000000000..2cc06c662407 --- /dev/null +++ b/plugins/android/src/org/jetbrains/android/sdk/AndroidNewSdkDialog.java @@ -0,0 +1,46 @@ +package org.jetbrains.android.sdk; + +import com.intellij.openapi.project.Project; +import com.intellij.openapi.ui.DialogWrapper; +import com.intellij.ui.CollectionComboBoxModel; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import javax.swing.*; +import java.util.List; + +/** + * @author Eugene.Kudelevsky + */ +public class AndroidNewSdkDialog extends DialogWrapper { + private JPanel myContentPanel; + private JComboBox myInternalJdkComboBox; + private JComboBox myBuildTargetComboBox; + + protected AndroidNewSdkDialog(@Nullable Project project, + @NotNull List javaSdkNames, + @NotNull String selectedJavaSdkName, + @NotNull List targetNames, + @NotNull String selectedTargetName) { + super(project); + setTitle("Create New Android SDK"); + myInternalJdkComboBox.setModel(new CollectionComboBoxModel(javaSdkNames, selectedJavaSdkName)); + myBuildTargetComboBox.setModel(new CollectionComboBoxModel(targetNames, selectedTargetName)); + + init(); + } + + @Nullable + @Override + protected JComponent createCenterPanel() { + return myContentPanel; + } + + public int getSelectedJavaSdkIndex() { + return myInternalJdkComboBox.getSelectedIndex(); + } + + public int getSelectedTargetIndex() { + return myBuildTargetComboBox.getSelectedIndex(); + } +} diff --git a/plugins/android/src/org/jetbrains/android/sdk/AndroidSdkConfigurableForm.form b/plugins/android/src/org/jetbrains/android/sdk/AndroidNewSdkForm.form similarity index 81% rename from plugins/android/src/org/jetbrains/android/sdk/AndroidSdkConfigurableForm.form rename to plugins/android/src/org/jetbrains/android/sdk/AndroidNewSdkForm.form index abd6c673d3d2..ca0fdb83dd8c 100644 --- a/plugins/android/src/org/jetbrains/android/sdk/AndroidSdkConfigurableForm.form +++ b/plugins/android/src/org/jetbrains/android/sdk/AndroidNewSdkForm.form @@ -1,9 +1,9 @@ -
- + + - + @@ -38,6 +38,11 @@ + + + + + diff --git a/plugins/android/src/org/jetbrains/android/sdk/AndroidSdkType.java b/plugins/android/src/org/jetbrains/android/sdk/AndroidSdkType.java index a72cbae0b817..784b83bbea64 100644 --- a/plugins/android/src/org/jetbrains/android/sdk/AndroidSdkType.java +++ b/plugins/android/src/org/jetbrains/android/sdk/AndroidSdkType.java @@ -20,7 +20,6 @@ import com.android.sdklib.IAndroidTarget; import com.intellij.CommonBundle; import com.intellij.openapi.projectRoots.*; import com.intellij.openapi.ui.Messages; -import com.intellij.util.ArrayUtil; import icons.AndroidIcons; import org.jdom.Element; import org.jetbrains.android.util.AndroidBundle; @@ -30,6 +29,7 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -102,17 +102,6 @@ public class AndroidSdkType extends SdkType implements JavaSdkType { return false; } - int choice = Messages - .showChooseDialog("Please select Java SDK", "Select Internal Java Platform", ArrayUtil.toStringArray(javaSdks), javaSdks.get(0), - Messages.getQuestionIcon()); - - if (choice == -1) { - return false; - } - - final String name = javaSdks.get(choice); - final Sdk jdk = sdkModel.findSdk(name); - MessageBuildingSdkLog log = new MessageBuildingSdkLog(); AndroidSdkData sdkData = AndroidSdkData.parse(sdk.getHomePath(), log); @@ -144,16 +133,17 @@ public class AndroidSdkType extends SdkType implements JavaSdkType { } } - choice = - Messages.showChooseDialog("Select build target", "Create New Android SDK", targetNames, - newestPlatform != null ? newestPlatform : targetNames[0], Messages.getQuestionIcon()); + final AndroidNewSdkDialog dialog = + new AndroidNewSdkDialog(null, javaSdks, javaSdks.get(0), Arrays.asList(targetNames), + newestPlatform != null ? newestPlatform : targetNames[0]); + dialog.show(); - if (choice == -1) { + if (!dialog.isOK()) { return false; } - - AndroidSdkUtils.setUpSdk(sdk, jdk, sdks, targets[choice], true); - + final String name = javaSdks.get(dialog.getSelectedJavaSdkIndex()); + final Sdk jdk = sdkModel.findSdk(name); + AndroidSdkUtils.setUpSdk(sdk, jdk, sdks, targets[dialog.getSelectedTargetIndex()], true); return true; }