if (missingDataFiles.isEmpty())
return;
// prepare to display an error dialog.
ProcessDashboard.dropSplashScreen();
Resources resources = Resources.getDashBundle("ProcessDashboard.Errors");
// find the errors which can be attributed to missing MCFs.
Map<String, String> warnings = new HashMap(missingDataFiles);
Map<String, List<String>> mcfProjects = findMissingMcfProjects(warnings);
// If they are missing one of the standard MCFs, print a message
// telling them to download and run the dashboard installer.
showMcfWarning(resources, "Missing_MCF.TSP_Footer", "TSP",
mcfProjects.remove("TSP"), DOWNLOAD_URL);
showMcfWarning(resources, "Missing_MCF.TSP_Footer", "PDSSD",
mcfProjects.remove("PDSSD"), DOWNLOAD_URL);
// If they are missing a custom MCF, print a message telling them
// to obtain it from their team leader and install it.
String resKey = CompressedInstanceLauncher.isRunningFromCompressedData()
? "Missing_MCF.Custom_Footer_Zip_FMT"
: "Missing_MCF.Custom_Footer_FMT";
for (Map.Entry<String, List<String>> e : mcfProjects.entrySet())
showMcfWarning(resources, resKey, e.getKey(), e.getValue(),
SHARE_MCF_URL);
// if any other files are missing, display a more generic error.
ErrorReporter errorReporter = new ErrorReporter(
resources.getString("Broken_Data_Title"),
resources.getStrings("Broken_Data_Header"),
resources.getStrings("Broken_Data_Footer"));
for (String dataPrefix : warnings.keySet())
errorReporter.logError(dataPrefix);
errorReporter.done();
}