aboutsummaryrefslogtreecommitdiffstats
path: root/sdkmanager/libs
diff options
context:
space:
mode:
Diffstat (limited to 'sdkmanager/libs')
-rw-r--r--sdkmanager/libs/sdklib/src/com/android/sdklib/avd/AvdManager.java5
-rw-r--r--sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/ApkConfigWidget.java2
-rw-r--r--sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/AvdSelector.java73
3 files changed, 33 insertions, 47 deletions
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/avd/AvdManager.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/avd/AvdManager.java
index 7b8fdbe..65cbbe3 100644
--- a/sdkmanager/libs/sdklib/src/com/android/sdklib/avd/AvdManager.java
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/avd/AvdManager.java
@@ -303,8 +303,11 @@ public final class AvdManager {
}
if (NUMERIC_SKIN_SIZE.matcher(skinName).matches()) {
- // Skin name is an actual screen resolution, no skin.path
+ // Skin name is an actual screen resolution.
+ // Set skin.name for display purposes in the AVD manager and
+ // set skin.path for use by the emulator.
values.put(AVD_INI_SKIN_NAME, skinName);
+ values.put(AVD_INI_SKIN_PATH, skinName);
} else {
// get the path of the skin (relative to the SDK)
// assume skin name is valid
diff --git a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/ApkConfigWidget.java b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/ApkConfigWidget.java
index 6bf1df3..825be93 100644
--- a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/ApkConfigWidget.java
+++ b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/ApkConfigWidget.java
@@ -41,7 +41,7 @@ import java.util.Set;
* The APK Configuration widget is a table that is added to the given parent composite.
* <p/>
* To use, create it using {@link #ApkConfigWidget(Composite)} then
- * call {@link #fillTable(Map) to set the initial list of configurations.
+ * call {@link #fillTable(Map)} to set the initial list of configurations.
*/
public class ApkConfigWidget {
private final static int INDEX_NAME = 0;
diff --git a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/AvdSelector.java b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/AvdSelector.java
index 9d0b928..67c70a6 100644
--- a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/AvdSelector.java
+++ b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/AvdSelector.java
@@ -36,21 +36,17 @@ import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
-import java.util.ArrayList;
-
/**
* The AVD selector is a table that is added to the given parent composite.
* <p/>
- * To use, create it using {@link #AvdSelector(Composite, AvdInfo[], boolean)} then
+ * To use, create it using {@link #AvdSelector(Composite, AvdInfo[])} then
* call {@link #setSelection(AvdInfo)}, {@link #setSelectionListener(SelectionListener)}
- * and finally use {@link #getFirstSelected()} or {@link #getAllSelected()} to retrieve the
- * selection.
+ * and finally use {@link #getFirstSelected()} to retrieve the selection.
*/
public final class AvdSelector {
private AvdInfo[] mAvds;
- private final boolean mAllowMultipleSelection;
private SelectionListener mSelectionListener;
private Table mTable;
private Label mDescription;
@@ -63,11 +59,8 @@ public final class AvdSelector {
*
* @param parent The parent composite where the selector will be added.
* @param avds The list of AVDs. This is <em>not</em> copied, the caller must not modify.
- * @param allowMultipleSelection True if more than one SDK target can be selected at the same
- * time.
*/
- public AvdSelector(Composite parent, AvdInfo[] avds, IAndroidTarget filter,
- boolean allowMultipleSelection) {
+ public AvdSelector(Composite parent, AvdInfo[] avds, IAndroidTarget filter) {
mAvds = avds;
// Layout has 1 column
@@ -76,7 +69,6 @@ public final class AvdSelector {
group.setLayoutData(new GridData(GridData.FILL_BOTH));
group.setFont(parent.getFont());
- mAllowMultipleSelection = allowMultipleSelection;
mTable = new Table(group, SWT.CHECK | SWT.FULL_SELECTION | SWT.SINGLE | SWT.BORDER);
mTable.setHeaderVisible(true);
mTable.setLinesVisible(false);
@@ -112,11 +104,9 @@ public final class AvdSelector {
*
* @param parent The parent composite where the selector will be added.
* @param avds The list of AVDs. This is <em>not</em> copied, the caller must not modify.
- * @param allowMultipleSelection True if more than one SDK target can be selected at the same
- * time.
*/
- public AvdSelector(Composite parent, AvdInfo[] avds, boolean allowMultipleSelection) {
- this(parent, avds, null /* filter */, allowMultipleSelection);
+ public AvdSelector(Composite parent, AvdInfo[] avds) {
+ this(parent, avds, null /* filter */);
}
@@ -160,8 +150,7 @@ public final class AvdSelector {
* The event's item contains a {@link TableItem}.
* The {@link TableItem#getData()} contains an {@link IAndroidTarget}.
* <p/>
- * It is recommended that the caller uses the {@link #getFirstSelected()} and
- * {@link #getAllSelected()} methods instead.
+ * It is recommended that the caller uses the {@link #getFirstSelected()} method instead.
*
* @param selectionListener The new listener or null to remove it.
*/
@@ -202,27 +191,9 @@ public final class AvdSelector {
}
/**
- * Returns all selected items.
- * This is useful when the table is in multiple-selection mode.
- *
- * @see #getFirstSelected()
- * @return An array of selected items. The list can be empty but not null.
- */
- public AvdInfo[] getAllSelected() {
- ArrayList<IAndroidTarget> list = new ArrayList<IAndroidTarget>();
- for (TableItem i : mTable.getItems()) {
- if (i.getChecked()) {
- list.add((IAndroidTarget) i.getData());
- }
- }
- return list.toArray(new AvdInfo[list.size()]);
- }
-
- /**
* Returns the first selected item.
* This is useful when the table is in single-selection mode.
*
- * @see #getAllSelected()
* @return The first selected item or null.
*/
public AvdInfo getFirstSelected() {
@@ -278,38 +249,50 @@ public final class AvdSelector {
private void setupSelectionListener(final Table table) {
// Add a selection listener that will check/uncheck items when they are double-clicked
table.addSelectionListener(new SelectionListener() {
- /** Default selection means double-click on "most" platforms */
- public void widgetDefaultSelected(SelectionEvent e) {
+
+ /**
+ * Handles single-click selection on the table.
+ * {@inheritDoc}
+ */
+ public void widgetSelected(SelectionEvent e) {
if (e.item instanceof TableItem) {
TableItem i = (TableItem) e.item;
- i.setChecked(!i.getChecked());
enforceSingleSelection(i);
updateDescription(i);
}
if (mSelectionListener != null) {
- mSelectionListener.widgetDefaultSelected(e);
+ mSelectionListener.widgetSelected(e);
}
}
-
- public void widgetSelected(SelectionEvent e) {
+
+ /**
+ * Handles double-click selection on the table.
+ * Note that the single-click handler will probably already have been called.
+ *
+ * On double-click, <em>always</em> check the table item.
+ *
+ * {@inheritDoc}
+ */
+ public void widgetDefaultSelected(SelectionEvent e) {
if (e.item instanceof TableItem) {
TableItem i = (TableItem) e.item;
+ i.setChecked(true);
enforceSingleSelection(i);
updateDescription(i);
}
if (mSelectionListener != null) {
- mSelectionListener.widgetSelected(e);
+ mSelectionListener.widgetDefaultSelected(e);
}
}
/**
- * If we're not in multiple selection mode, uncheck all other
- * items when this one is selected.
+ * To ensure single selection, uncheck all other items when this one is selected.
+ * This makes the chekboxes act as radio buttons.
*/
private void enforceSingleSelection(TableItem item) {
- if (!mAllowMultipleSelection && item.getChecked()) {
+ if (item.getChecked()) {
Table parentTable = item.getParent();
for (TableItem i2 : parentTable.getItems()) {
if (i2 != item && i2.getChecked()) {