diff options
author | Tor Norbye <tnorbye@google.com> | 2012-09-13 09:25:18 -0700 |
---|---|---|
committer | Tor Norbye <tnorbye@google.com> | 2012-09-13 09:25:18 -0700 |
commit | 93145c684dd2dcaebef075a23cf3e143536bd71b (patch) | |
tree | 35ae615f222752638df84074056f0267d562e6b5 | |
parent | 12d4581faa6438941e65a9dc83213be34c6ca970 (diff) | |
download | sdk-93145c684dd2dcaebef075a23cf3e143536bd71b.zip sdk-93145c684dd2dcaebef075a23cf3e143536bd71b.tar.gz sdk-93145c684dd2dcaebef075a23cf3e143536bd71b.tar.bz2 |
Restore widget listeners in new project page
The widget listeners which update the wizard state when you change the
min sdk version, or the target sdk version, went missing in changeset
4ef523b33a392e6c9ca40, probably because a cut & paste operation of a
widget in WindowBuilder (to move it in the hierarchy) also sometimes
removes associated event handler code in other methods (!).
This CL restores this code.
Change-Id: I2501d5e223bec88ebbe74d6fafcc7d7588d6204e
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/templates/NewProjectPage.java | 54 |
1 files changed, 52 insertions, 2 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/templates/NewProjectPage.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/templates/NewProjectPage.java index 2a6e784..e698ac1 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/templates/NewProjectPage.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/templates/NewProjectPage.java @@ -544,6 +544,51 @@ public class NewProjectPage extends WizardPage } Object source = e.getSource(); + if (source == mMinSdkCombo) { + mValues.minSdk = getSelectedMinSdk(); + // If higher than build target, adjust build target + // TODO: implement + + Integer minSdk = mMinNameToApi.get(mValues.minSdk); + if (minSdk == null) { + try { + minSdk = Integer.parseInt(mValues.minSdk); + } catch (NumberFormatException nufe) { + minSdk = 1; + } + } + mValues.iconState.minSdk = minSdk.intValue(); + mValues.minSdkLevel = minSdk.intValue(); + } else if (source == mBuildSdkCombo) { + mValues.target = getSelectedBuildTarget(); + + // If lower than min sdk target, adjust min sdk target + if (mValues.target.getVersion().isPreview()) { + mValues.minSdk = mValues.target.getVersion().getCodename(); + try { + mIgnore = true; + mMinSdkCombo.setText(mValues.minSdk); + } finally { + mIgnore = false; + } + } else { + String minSdk = mValues.minSdk; + int buildApiLevel = mValues.target.getVersion().getApiLevel(); + if (minSdk != null && !minSdk.isEmpty() + && Character.isDigit(minSdk.charAt(0)) + && buildApiLevel < Integer.parseInt(minSdk)) { + mValues.minSdk = Integer.toString(buildApiLevel); + try { + mIgnore = true; + setSelectedMinSdk(buildApiLevel); + } finally { + mIgnore = false; + } + } + } + } else if (source == mTargetSdkCombo) { + mValues.targetSdkLevel = getSelectedTargetSdk(); + } validatePage(); } @@ -560,6 +605,11 @@ public class NewProjectPage extends WizardPage return Integer.toString(mMinSdkCombo.getSelectionIndex() + 1); } + private int getSelectedTargetSdk() { + // +1: First API level (at index 0) is 1 + return mTargetSdkCombo.getSelectionIndex() + 1; + } + private void setSelectedMinSdk(int api) { mMinSdkCombo.select(api - 1); // -1: First API level (at index 0) is 1 } @@ -720,8 +770,8 @@ public class NewProjectPage extends WizardPage } if (status == null || status.getSeverity() != IStatus.ERROR) { if (mValues.targetSdkLevel < mValues.minSdkLevel) { - status = new Status(IStatus.WARNING, AdtPlugin.PLUGIN_ID, - "The target SDK version should be higher than the minimum SDK version"); + status = new Status(IStatus.ERROR, AdtPlugin.PLUGIN_ID, + "The target SDK version should be at least as high as the minimum SDK version"); } } } |