blob: 7e0119198b13db70f286ed3752f0b012d1680e8f [file] [log] [blame]
package org.jetbrains.android.newProject;
import com.intellij.ide.util.PropertiesComponent;
import com.intellij.ide.util.projectWizard.SettingsStep;
import com.intellij.openapi.ui.ComboBox;
import com.intellij.util.ArrayUtil;
import org.jetbrains.android.run.TargetSelectionMode;
import org.jetbrains.android.util.AndroidBundle;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
/**
* @author Eugene.Kudelevsky
*/
public class AndroidApplicationModifiedSettingsStep extends AndroidModifiedSettingsStep {
private final ComboBox myTargetDeviceCombo;
private static final String TARGET_DO_NOT_CREATE_RUN_CONF = AndroidBundle.message("deployment.target.settings.wizard.configure.later");
private static final String TARGET_SHOW_CHOOSER_DIALOG = AndroidBundle.message("deployment.target.settings.wizard.show.dialog");
private static final String TARGET_USB_DEVICE = AndroidBundle.message("deployment.target.settings.wizard.usb.device");
private static final String TARGET_EMULATOR = AndroidBundle.message("deployment.target.settings.wizard.emulator");
@NonNls private static final String TARGET_SELECTION_MODE_FOR_NEW_MODULE_PROPERTY = "ANDROID_TARGET_SELECTION_MODE_FOR_NEW_MODULE";
AndroidApplicationModifiedSettingsStep(@NotNull AndroidModuleBuilder builder, @NotNull SettingsStep settingsStep) {
super(builder, settingsStep);
final String applicationName = builder.getApplicationName();
if (applicationName != null && applicationName.length() > 0) {
settingsStep.getModuleNameField().setText(applicationName);
}
final String[] items = {TARGET_DO_NOT_CREATE_RUN_CONF, TARGET_SHOW_CHOOSER_DIALOG,
TARGET_USB_DEVICE, TARGET_EMULATOR};
myTargetDeviceCombo = new ComboBox(items);
settingsStep.addSettingsField("\u001BTarget device: ", myTargetDeviceCombo);
final String prevTargetMode = PropertiesComponent.getInstance().getValue(TARGET_SELECTION_MODE_FOR_NEW_MODULE_PROPERTY);
myTargetDeviceCombo.setSelectedItem(prevTargetMode != null && ArrayUtil.contains(prevTargetMode, items)
? prevTargetMode
: TARGET_SHOW_CHOOSER_DIALOG);
}
@Override
public void updateDataModel() {
super.updateDataModel();
TargetSelectionMode targetSelectionMode = null;
final Object selectedItem = myTargetDeviceCombo.getSelectedItem();
if (TARGET_EMULATOR.equals(selectedItem)) {
targetSelectionMode = TargetSelectionMode.EMULATOR;
}
else if (TARGET_SHOW_CHOOSER_DIALOG.equals(selectedItem)) {
targetSelectionMode = TargetSelectionMode.SHOW_DIALOG;
}
else if (TARGET_USB_DEVICE.equals(selectedItem)) {
targetSelectionMode = TargetSelectionMode.USB_DEVICE;
}
myBuilder.setTargetSelectionMode(targetSelectionMode);
if (selectedItem != null) {
PropertiesComponent.getInstance().setValue(TARGET_SELECTION_MODE_FOR_NEW_MODULE_PROPERTY, selectedItem.toString());
}
}
}