mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-93002 merge 'choose java sdk' and 'choose build target' in one dialog
This commit is contained in:
@@ -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<String> javaSdkNames,
|
||||
@NotNull String selectedJavaSdkName,
|
||||
@NotNull List<String> 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();
|
||||
}
|
||||
}
|
||||
+8
-3
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="org.jetbrains.android.sdk.AndroidSdkConfigurableForm">
|
||||
<grid id="27dc6" binding="myContentPanel" layout-manager="GridLayoutManager" row-count="2" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="org.jetbrains.android.sdk.AndroidNewSdkDialog">
|
||||
<grid id="27dc6" binding="myContentPanel" layout-manager="GridLayoutManager" row-count="3" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<xy x="20" y="20" width="500" height="68"/>
|
||||
<xy x="20" y="20" width="500" height="77"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
@@ -38,6 +38,11 @@
|
||||
</constraints>
|
||||
<properties/>
|
||||
</component>
|
||||
<vspacer id="d5308">
|
||||
<constraints>
|
||||
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
</vspacer>
|
||||
</children>
|
||||
</grid>
|
||||
</form>
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user