From 29e62b8e4ec3c8936ca84ab3fd91c8705377e2fe Mon Sep 17 00:00:00 2001 From: Xavier Ducrohet Date: Wed, 1 Jul 2009 01:18:33 -0700 Subject: [PATCH] Add tooltips and a legend (AVD selector) Also added some TODOs --- .../internal/widgets/AvdCreationDialog.java | 31 +++++++++++++++++++--- .../sdkuilib/internal/widgets/AvdSelector.java | 30 ++++++++++++++++----- 2 files changed, 51 insertions(+), 10 deletions(-) diff --git a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/widgets/AvdCreationDialog.java b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/widgets/AvdCreationDialog.java index ffa6f977f..1621efc46 100644 --- a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/widgets/AvdCreationDialog.java +++ b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/widgets/AvdCreationDialog.java @@ -48,6 +48,17 @@ import org.eclipse.swt.widgets.Text; 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; @@ -111,7 +122,9 @@ final class AvdCreationDialog extends Dialog { super.create(); Point p = getShell().getSize(); - p.x += 130; + if (p.x < 400) { + p.x = 400; + } getShell().setSize(p); } @@ -157,6 +170,8 @@ final class AvdCreationDialog extends Dialog { 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(); @@ -257,9 +272,17 @@ final class AvdCreationDialog extends Dialog { 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) { diff --git a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/widgets/AvdSelector.java b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/widgets/AvdSelector.java index b9cc943df..6799c12aa 100644 --- a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/widgets/AvdSelector.java +++ b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/widgets/AvdSelector.java @@ -180,6 +180,11 @@ public final class AvdSelector { 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; @@ -211,7 +216,8 @@ public final class AvdSelector { 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) { @@ -222,6 +228,7 @@ public final class AvdSelector { 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) { @@ -236,6 +243,7 @@ public final class AvdSelector { 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) { @@ -249,6 +257,7 @@ public final class AvdSelector { 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) { @@ -260,12 +269,26 @@ public final class AvdSelector { 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 @@ -278,11 +301,6 @@ public final class AvdSelector { 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); -- 2.11.0