setDetailsVisible(false);
Action reportAction = pane.getActionMap().get(JXErrorPane.REPORT_ACTION_KEY);
reportButton.setAction(reportAction);
reportButton.setVisible(reportAction != null && reportAction.isEnabled() && pane.getErrorReporter() != null);
reportButton.setEnabled(reportButton.isVisible());
ErrorInfo errorInfo = pane.getErrorInfo();
if (errorInfo == null) {
iconLabel.setIcon(pane.getIcon());
setErrorMessage("");
closeButton.setText(UIManagerExt.getString(
CLASS_NAME + ".ok_button_text", closeButton.getLocale()));
setDetails("");
//TODO Does this ever happen? It seems like if errorInfo is null and
//this is called, it would be an IllegalStateException.
} else {
//change the "closeButton"'s text to either the default "ok"/"close" text
//or to the "fatal" text depending on the error level of the incident info
if (errorInfo.getErrorLevel() == ErrorLevel.FATAL) {
closeButton.setText(UIManagerExt.getString(
CLASS_NAME + ".fatal_button_text", closeButton.getLocale()));
} else {
closeButton.setText(UIManagerExt.getString(
CLASS_NAME + ".ok_button_text", closeButton.getLocale()));
}
//if the icon for the pane has not been specified by the developer,
//then set it to the default icon based on the error level
Icon icon = pane.getIcon();
if (icon == null || icon instanceof UIResource) {
if (errorInfo.getErrorLevel().intValue() <= Level.WARNING.intValue()) {
icon = getDefaultWarningIcon();
} else {
icon = getDefaultErrorIcon();
}
}
iconLabel.setIcon(icon);
setErrorMessage(errorInfo.getBasicErrorMessage());
String details = errorInfo.getDetailedErrorMessage();
if(details == null) {
details = getDetailsAsHTML(errorInfo);
}
setDetails(details);
}