public static void ensureVersionsOrExit() {
List<Incompatibility> unsatisfied = checkPackageVersions();
if (unsatisfied.isEmpty())
return;
Resources res = Resources.getDashBundle(
"ProcessDashboard.Errors.Version_Incompatibility");
StringBuilder upgradeList = new StringBuilder();
StringBuilder missingList = new StringBuilder();
for (Incompatibility item: unsatisfied) {
String itemDisplay = res.format("Item_FMT", item
.getPackageDisplayName(), item.minVersion);
(item.pkg == null ? missingList : upgradeList).append("\n")
.append(BULLET).append(itemDisplay);
}
String title = res.getString("Title");
Object[] message = new Object[3];
message[0] = res.getStrings("Header");
if (missingList.length() > 0) {
message[1] = missingList.substring(1).split("\n");
message[2] = res.getStrings("Missing_Message");
} else {
message[1] = upgradeList.substring(1).split("\n");
message[2] = res.getStrings("Upgrade_Message");
}
JOptionPane.showMessageDialog(null, message, title,
JOptionPane.ERROR_MESSAGE);
System.exit(1);
}