Merge "SdkMan2: Show number of packages to install/delete"
diff --git a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackagesPage.java b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackagesPage.java
index 6450c27..f703fcd 100755
--- a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackagesPage.java
+++ b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackagesPage.java
@@ -280,8 +280,8 @@
});
mButtonInstall = new Button(mGroupOptions, SWT.NONE);
- mButtonInstall.setText("Install Selected...");
- mButtonInstall.setToolTipText("Install all the selected packages");
+ mButtonInstall.setText(""); //$NON-NLS-1$ placeholder, filled in updateButtonsState()
+ mButtonInstall.setToolTipText("Install one or more packages");
GridDataBuilder.create(mButtonInstall).hFill().vCenter().hGrab();
mButtonInstall.addSelectionListener(new SelectionAdapter() {
@Override
@@ -339,8 +339,8 @@
});
mButtonDelete = new Button(mGroupOptions, SWT.NONE);
- mButtonDelete.setText("Delete...");
- mButtonDelete.setToolTipText("Delete an installed package");
+ mButtonDelete.setText(""); //$NON-NLS-1$ placeholder, filled in updateButtonsState()
+ mButtonDelete.setToolTipText("Delete one ore more installed packages");
GridDataBuilder.create(mButtonDelete).hFill().vCenter().hGrab();
mButtonDelete.addSelectionListener(new SelectionAdapter() {
@Override
@@ -888,6 +888,7 @@
}
boolean canInstall = false;
+ int numPackages = 0;
if (mDisplayArchives) {
// In detail mode, we display archives so we can install if at
@@ -899,7 +900,7 @@
if (c instanceof Archive) {
if (((Archive) c).isCompatible()) {
canInstall = true;
- break;
+ numPackages++;
}
}
}
@@ -916,12 +917,12 @@
// This is an update package
if (((Package) c).hasCompatibleArchive()) {
canInstall = true;
- break;
+ numPackages++;
}
} else if (c instanceof PkgItem) {
if (((PkgItem) c).getMainPackage().hasCompatibleArchive()) {
canInstall = true;
- break;
+ numPackages++;
}
}
}
@@ -929,9 +930,15 @@
}
mButtonInstall.setEnabled(canInstall);
+ mButtonInstall.setText(
+ numPackages == 0 ? "Install packages..." :
+ numPackages == 1 ? "Install 1 package..." :
+ String.format("Install %d packages...", numPackages));
// We can only delete local archives
boolean canDelete = false;
+ numPackages = 0;
+
Object[] checked = mTreeViewer.getCheckedElements();
if (checked != null) {
for (Object c : checked) {
@@ -939,13 +946,17 @@
PkgState state = ((PkgItem) c).getState();
if (state == PkgState.INSTALLED) {
canDelete = true;
- break;
+ numPackages++;
}
}
}
}
mButtonDelete.setEnabled(canDelete);
+ mButtonDelete.setText(
+ numPackages == 0 ? "Delete packages..." :
+ numPackages == 1 ? "Delete 1 package..." :
+ String.format("Delete %d packages...", numPackages));
}
private void onButtonInstall() {