aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2012-09-13 09:25:18 -0700
committerTor Norbye <tnorbye@google.com>2012-09-13 09:25:18 -0700
commit93145c684dd2dcaebef075a23cf3e143536bd71b (patch)
tree35ae615f222752638df84074056f0267d562e6b5
parent12d4581faa6438941e65a9dc83213be34c6ca970 (diff)
downloadsdk-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.java54
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");
}
}
}