import java.io.File;
import java.util.TreeMap;
+/**
+ * AVD creator dialog.
+ *
+ * TODO:
+ * - support custom hardware properties
+ * - use SdkTargetSelector instead of Combo
+ * - Better UI for the sdcard (radio button for K or M, info about what is valid value)
+ * - Support for ###x### skins
+ * - tooltips on widgets.
+ *
+ */
final class AvdCreationDialog extends Dialog {
private final AvdManager mAvdManager;
super.create();
Point p = getShell().getSize();
- p.x += 130;
+ if (p.x < 400) {
+ p.x = 400;
+ }
getShell().setSize(p);
}
label = new Label(top, SWT.NONE);
label.setText("SD Card:");
+ label.setToolTipText("Either a path to an existing SD card image\n" +
+ "or an image size in K or M (e.g. 512K, 10M).");
ValidateListener validateListener = new ValidateListener();
SdkManager sdkManager = mAvdManager.getSdkManager();
if (sdkManager != null) {
for (IAndroidTarget target : sdkManager.getTargets()) {
- String name = String.format("%s - %s",
- target.getName(),
- target.getApiVersionName());
+ String name;
+ if (target.isPlatform()) {
+ name = String.format("%s - API Level %d",
+ target.getName(),
+ target.getApiVersionNumber());
+ } else {
+ name = String.format("%s (%s) - API Level %d",
+ target.getName(),
+ target.getVendor(),
+ target.getApiVersionNumber());
+ }
mCurrentTargets.put(name, target);
mTargetCombo.add(name);
if (!found) {
mTargetFilter = filter;
mDisplayMode = displayMode;
+ // get some bitmaps.
+ mImageFactory = new ImageFactory(parent.getDisplay());
+ mOkImage = mImageFactory.getImageByName("accept_icon16.png");
+ mBrokenImage = mImageFactory.getImageByName("reject_icon16.png");
+
// Layout has 2 columns
Composite group = new Composite(parent, SWT.NONE);
GridLayout gl;
if (displayMode == DisplayMode.MANAGER) {
mNewButton = new Button(buttons, SWT.PUSH | SWT.FLAT);
mNewButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- mNewButton.setText("New...");
+ mNewButton.setText("Add...");
+ mNewButton.setToolTipText("Adds a new AVD.");
mNewButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
mDeleteButton = new Button(buttons, SWT.PUSH | SWT.FLAT);
mDeleteButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
mDeleteButton.setText("Delete");
+ mDeleteButton.setToolTipText("Deletes the selected AVD.");
mDeleteButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
mDetailsButton = new Button(buttons, SWT.PUSH | SWT.FLAT);
mDetailsButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
mDetailsButton.setText("Details...");
+ mDetailsButton.setToolTipText("Diplays details of the selected AVD.");
mDetailsButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
mRefreshButton = new Button(buttons, SWT.PUSH | SWT.FLAT);
mRefreshButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
mRefreshButton.setText("Resfresh");
+ mRefreshButton.setToolTipText("Reloads the list of AVD.\nUse this if you create AVD from the command line.");
mRefreshButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
mManagerButton = new Button(buttons, SWT.PUSH | SWT.FLAT);
mManagerButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
mManagerButton.setText("Manager...");
+ mManagerButton.setToolTipText("Launches the AVD manager.");
mManagerButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
onManager();
}
});
+ } else {
+ Composite legend = new Composite(group, SWT.NONE);
+ legend.setLayout(gl = new GridLayout(2, false /*makeColumnsEqualWidth*/));
+ gl.marginHeight = gl.marginWidth = 0;
+ legend.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, true, false,
+ NUM_COL, 1));
+ legend.setFont(group.getFont());
+
+ new Label(legend, SWT.NONE).setImage(mOkImage);
+ new Label(legend, SWT.NONE).setText("A valid Android Virtual Device.");
+ new Label(legend, SWT.NONE).setImage(mBrokenImage);
+ new Label(legend, SWT.NONE).setText(
+ "An Android Virtual Device that failed to load. Click 'Details' to see the error.");
}
// create the table columns
final TableColumn column3 = new TableColumn(mTable, SWT.NONE);
column3.setText("API Level");
- // get some bitmaps.
- mImageFactory = new ImageFactory(parent.getDisplay());
- mOkImage = mImageFactory.getImageByName("accept_icon16.png");
- mBrokenImage = mImageFactory.getImageByName("reject_icon16.png");
-
adjustColumnsWidth(mTable, column0, column1, column2, column3);
setupSelectionListener(mTable);
fillTable(mTable);