protected void encodeMessage(FacesContext facesContext, UIComponent component, Object msg) throws IOException { // TODO fix generator to properly detect iteration variable type MessageForRender message = (MessageForRender) msg; String summary = message.getSummary(); String detail = message.getDetail(); boolean showSummary = true; boolean showDetail = false; boolean isMessages = false; if (isComponentMessage(component)) { UIMessage uiMessage = (UIMessage) component; showSummary = uiMessage.isShowSummary(); showDetail = uiMessage.isShowDetail(); } else if (isComponentMessages(component)) { UIMessages uiMessages = (UIMessages) component; showSummary = uiMessages.isShowSummary(); showDetail = uiMessages.isShowDetail(); isMessages = true; } ResponseWriter responseWriter = facesContext.getResponseWriter(); // Message id responseWriter.writeAttribute( "id", component.getClientId() + ':' + message.getSourceId(), null); // tooltip boolean wroteTooltip = RendererUtils.getInstance().isBooleanAttribute(component, "tooltip"); if (wroteTooltip && !Strings.isNullOrEmpty(summary)) { responseWriter.writeAttribute("title", summary, null); } if (!wroteTooltip && showSummary) { writeMessageLabel(responseWriter, summary, isMessages ? "rf-msgs-sum" : "rf-msg-sum"); } if (showDetail) { writeMessageLabel(responseWriter, detail, isMessages ? "rf-msgs-det" : "rf-msg-det"); } message.rendered(); }