/** * Reconfigures the dialog if settings have changed, such as the errorInfo, errorIcon, * warningIcon, etc */ protected void reinit() { 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); } }