Add tooltips and a legend (AVD selector)
Also added some TODOs
This commit is contained in:
@@ -48,6 +48,17 @@ import org.eclipse.swt.widgets.Text;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.TreeMap;
|
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 {
|
final class AvdCreationDialog extends Dialog {
|
||||||
|
|
||||||
private final AvdManager mAvdManager;
|
private final AvdManager mAvdManager;
|
||||||
@@ -111,7 +122,9 @@ final class AvdCreationDialog extends Dialog {
|
|||||||
super.create();
|
super.create();
|
||||||
|
|
||||||
Point p = getShell().getSize();
|
Point p = getShell().getSize();
|
||||||
p.x += 130;
|
if (p.x < 400) {
|
||||||
|
p.x = 400;
|
||||||
|
}
|
||||||
getShell().setSize(p);
|
getShell().setSize(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -157,6 +170,8 @@ final class AvdCreationDialog extends Dialog {
|
|||||||
|
|
||||||
label = new Label(top, SWT.NONE);
|
label = new Label(top, SWT.NONE);
|
||||||
label.setText("SD Card:");
|
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();
|
ValidateListener validateListener = new ValidateListener();
|
||||||
|
|
||||||
@@ -257,9 +272,17 @@ final class AvdCreationDialog extends Dialog {
|
|||||||
SdkManager sdkManager = mAvdManager.getSdkManager();
|
SdkManager sdkManager = mAvdManager.getSdkManager();
|
||||||
if (sdkManager != null) {
|
if (sdkManager != null) {
|
||||||
for (IAndroidTarget target : sdkManager.getTargets()) {
|
for (IAndroidTarget target : sdkManager.getTargets()) {
|
||||||
String name = String.format("%s - %s",
|
String name;
|
||||||
target.getName(),
|
if (target.isPlatform()) {
|
||||||
target.getApiVersionName());
|
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);
|
mCurrentTargets.put(name, target);
|
||||||
mTargetCombo.add(name);
|
mTargetCombo.add(name);
|
||||||
if (!found) {
|
if (!found) {
|
||||||
|
|||||||
@@ -180,6 +180,11 @@ public final class AvdSelector {
|
|||||||
mTargetFilter = filter;
|
mTargetFilter = filter;
|
||||||
mDisplayMode = displayMode;
|
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
|
// Layout has 2 columns
|
||||||
Composite group = new Composite(parent, SWT.NONE);
|
Composite group = new Composite(parent, SWT.NONE);
|
||||||
GridLayout gl;
|
GridLayout gl;
|
||||||
@@ -211,7 +216,8 @@ public final class AvdSelector {
|
|||||||
if (displayMode == DisplayMode.MANAGER) {
|
if (displayMode == DisplayMode.MANAGER) {
|
||||||
mNewButton = new Button(buttons, SWT.PUSH | SWT.FLAT);
|
mNewButton = new Button(buttons, SWT.PUSH | SWT.FLAT);
|
||||||
mNewButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
mNewButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
||||||
mNewButton.setText("New...");
|
mNewButton.setText("Add...");
|
||||||
|
mNewButton.setToolTipText("Adds a new AVD.");
|
||||||
mNewButton.addSelectionListener(new SelectionAdapter() {
|
mNewButton.addSelectionListener(new SelectionAdapter() {
|
||||||
@Override
|
@Override
|
||||||
public void widgetSelected(SelectionEvent arg0) {
|
public void widgetSelected(SelectionEvent arg0) {
|
||||||
@@ -222,6 +228,7 @@ public final class AvdSelector {
|
|||||||
mDeleteButton = new Button(buttons, SWT.PUSH | SWT.FLAT);
|
mDeleteButton = new Button(buttons, SWT.PUSH | SWT.FLAT);
|
||||||
mDeleteButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
mDeleteButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
||||||
mDeleteButton.setText("Delete");
|
mDeleteButton.setText("Delete");
|
||||||
|
mDeleteButton.setToolTipText("Deletes the selected AVD.");
|
||||||
mDeleteButton.addSelectionListener(new SelectionAdapter() {
|
mDeleteButton.addSelectionListener(new SelectionAdapter() {
|
||||||
@Override
|
@Override
|
||||||
public void widgetSelected(SelectionEvent arg0) {
|
public void widgetSelected(SelectionEvent arg0) {
|
||||||
@@ -236,6 +243,7 @@ public final class AvdSelector {
|
|||||||
mDetailsButton = new Button(buttons, SWT.PUSH | SWT.FLAT);
|
mDetailsButton = new Button(buttons, SWT.PUSH | SWT.FLAT);
|
||||||
mDetailsButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
mDetailsButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
||||||
mDetailsButton.setText("Details...");
|
mDetailsButton.setText("Details...");
|
||||||
|
mDetailsButton.setToolTipText("Diplays details of the selected AVD.");
|
||||||
mDetailsButton.addSelectionListener(new SelectionAdapter() {
|
mDetailsButton.addSelectionListener(new SelectionAdapter() {
|
||||||
@Override
|
@Override
|
||||||
public void widgetSelected(SelectionEvent arg0) {
|
public void widgetSelected(SelectionEvent arg0) {
|
||||||
@@ -249,6 +257,7 @@ public final class AvdSelector {
|
|||||||
mRefreshButton = new Button(buttons, SWT.PUSH | SWT.FLAT);
|
mRefreshButton = new Button(buttons, SWT.PUSH | SWT.FLAT);
|
||||||
mRefreshButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
mRefreshButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
||||||
mRefreshButton.setText("Resfresh");
|
mRefreshButton.setText("Resfresh");
|
||||||
|
mRefreshButton.setToolTipText("Reloads the list of AVD.\nUse this if you create AVD from the command line.");
|
||||||
mRefreshButton.addSelectionListener(new SelectionAdapter() {
|
mRefreshButton.addSelectionListener(new SelectionAdapter() {
|
||||||
@Override
|
@Override
|
||||||
public void widgetSelected(SelectionEvent arg0) {
|
public void widgetSelected(SelectionEvent arg0) {
|
||||||
@@ -260,12 +269,26 @@ public final class AvdSelector {
|
|||||||
mManagerButton = new Button(buttons, SWT.PUSH | SWT.FLAT);
|
mManagerButton = new Button(buttons, SWT.PUSH | SWT.FLAT);
|
||||||
mManagerButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
mManagerButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
|
||||||
mManagerButton.setText("Manager...");
|
mManagerButton.setText("Manager...");
|
||||||
|
mManagerButton.setToolTipText("Launches the AVD manager.");
|
||||||
mManagerButton.addSelectionListener(new SelectionAdapter() {
|
mManagerButton.addSelectionListener(new SelectionAdapter() {
|
||||||
@Override
|
@Override
|
||||||
public void widgetSelected(SelectionEvent e) {
|
public void widgetSelected(SelectionEvent e) {
|
||||||
onManager();
|
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
|
// create the table columns
|
||||||
@@ -278,11 +301,6 @@ public final class AvdSelector {
|
|||||||
final TableColumn column3 = new TableColumn(mTable, SWT.NONE);
|
final TableColumn column3 = new TableColumn(mTable, SWT.NONE);
|
||||||
column3.setText("API Level");
|
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);
|
adjustColumnsWidth(mTable, column0, column1, column2, column3);
|
||||||
setupSelectionListener(mTable);
|
setupSelectionListener(mTable);
|
||||||
fillTable(mTable);
|
fillTable(mTable);
|
||||||
|
|||||||
Reference in New Issue
Block a user