if(numberOfMinor == 0 && numberOfWarning == 0 && oneLine)
return null;
if (totalNumber == 0)
return new HTMLNode("#", "");
boolean separatorNeeded = false;
String separator = oneLine?", ":" | ";
int messageTypes=0;
StringBuilder alertSummaryString = new StringBuilder(1024);
if (numberOfCriticalError != 0 && !oneLine) {
alertSummaryString.append(l10n("criticalErrorCountLabel")).append(' ').append(numberOfCriticalError);
separatorNeeded = true;
messageTypes++;
}
if (numberOfError != 0 && !oneLine) {
if (separatorNeeded)
alertSummaryString.append(separator);
alertSummaryString.append(l10n("errorCountLabel")).append(' ').append(numberOfError);
separatorNeeded = true;
messageTypes++;
}
if (numberOfWarning != 0) {
if (separatorNeeded)
alertSummaryString.append(separator);
if(oneLine) {
alertSummaryString.append(numberOfWarning).append(' ').append(l10n("warningCountLabel").replace(":", ""));
} else {
alertSummaryString.append(l10n("warningCountLabel")).append(' ').append(numberOfWarning);
}
separatorNeeded = true;
messageTypes++;
}
if (numberOfMinor != 0) {
if (separatorNeeded)
alertSummaryString.append(separator);
if(oneLine) {
alertSummaryString.append(numberOfMinor).append(' ').append(l10n("minorCountLabel").replace(":", ""));
} else {
alertSummaryString.append(l10n("minorCountLabel")).append(' ').append(numberOfMinor);
}
separatorNeeded = true;
messageTypes++;
}
if (messageTypes != 1 && !oneLine) {
if (separatorNeeded)
alertSummaryString.append(separator);
alertSummaryString.append(l10n("totalLabel")).append(' ').append(totalNumber);
}
HTMLNode summaryBox = null;
String classes = oneLine?"alerts-line contains-":"infobox infobox-";
if (highestLevel <= UserAlert.CRITICAL_ERROR && !oneLine)
summaryBox = new HTMLNode("div", "class", classes + "error");
else if (highestLevel <= UserAlert.ERROR && !oneLine)
summaryBox = new HTMLNode("div", "class", classes + "alert");
else if (highestLevel <= UserAlert.WARNING)
summaryBox = new HTMLNode("div", "class", classes + "warning");
else if (highestLevel <= UserAlert.MINOR)
summaryBox = new HTMLNode("div", "class", classes + "information");
summaryBox.addChild("div", "class", "infobox-header", l10n("alertsTitle"));
HTMLNode summaryContent = summaryBox.addChild("div", "class", "infobox-content");
if(!oneLine) {
summaryContent.addChild("#", alertSummaryString.toString() + separator + " ");
NodeL10n.getBase().addL10nSubstitution(summaryContent, "UserAlertManager.alertsOnAlertsPage",
new String[] { "link" }, new HTMLNode[] { ALERTS_LINK });
} else {
summaryContent.addChild("a", "href", "/alerts/", NodeL10n.getBase().getString("StatusBar.alerts") + " " + alertSummaryString.toString());
}
summaryBox.addAttribute("id", "messages-summary-box");
return summaryBox;
}