Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source
   * Copyright , Red Hat, Inc. and individual contributors
   * by the @authors tag. See the copyright.txt in the distribution for a
   * full listing of individual contributors.
   *
   * This is free software; you can redistribute it and/or modify it
   * under the terms of the GNU Lesser General Public License as
   * published by the Free Software Foundation; either version 2.1 of
  * the License, or (at your option) any later version.
  *
  * This software is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
 package org.richfaces.renderkit;
 
 import java.util.Map;
 
 import  javax.faces.application.FacesMessage;
 import  javax.faces.application.FacesMessage.Severity;
 import  javax.faces.component.UIComponent;
 import  javax.faces.context.FacesContext;
 
 import  org.ajax4jsf.javascript.JSFunction;
 import  org.ajax4jsf.javascript.JSObject;
 import  org.richfaces.application.ServiceTracker;
 import  org.richfaces.javascript.JavaScriptService;
 
 import  com.google.common.base.Strings;
 import  com.google.common.collect.ImmutableMap;
 import  com.google.common.collect.ImmutableMap.Builder;

Author(s):
Lukas Fryc
 
 public class NotifyMessageRendererBase extends MessageRendererBase {
     @Override
     protected String getJSClassName() {
         return "RichFaces.ui.NotifyMessage";
     }
 
     protected void encodeScript(FacesContext facesContext, UIComponent componentMap<StringObjectoptions)
             throws IOException {
         JavaScriptService javaScriptService = ServiceTracker.getService(JavaScriptService.class);
         JSFunction messageObject = new JSObject(getJSClassName(), component.getClientId(facesContext));
         Map<StringObjectattributes = component.getAttributes();
         Builder<StringObjectparametersBuilder = ImmutableMap.builder();
         String forId = (Stringattributes.get("for");
         RendererUtils rendererUtils = RendererUtils.getInstance();
         if (!Strings.isNullOrEmpty(forId)) {
             UIComponent target = rendererUtils.findComponentFor(componentforId);
             if (null != target) {
                 parametersBuilder.put("forComponentId"target.getClientId(facesContext));
             }
         }
         Severity level = getLevel(component);
         if (FacesMessage.SEVERITY_INFO != level) {
             parametersBuilder.put("level"level.getOrdinal());
         }
         if (!rendererUtils.isBooleanAttribute(component"showSummary")) {
             parametersBuilder.put("showSummary"false);
         }
         if (rendererUtils.isBooleanAttribute(component"showDetail")) {
             parametersBuilder.put("showDetail"true);
         }
         if (rendererUtils.isBooleanAttribute(component"tooltip")) {
             parametersBuilder.put("tooltip"true);
         }
         if (isComponentMessages(component) && rendererUtils.isBooleanAttribute(component"globalOnly")) {
             parametersBuilder.put("globalOnly"true);
         }
         if (isComponentMessages(component)) {
             parametersBuilder.put("isMessages"true);
         }
         messageObject.addParameter(parametersBuilder.build());
         messageObject.addParameter(options);
         // RendererUtils.getInstance().writeScript(facesContext, component, messageObject);
         javaScriptService.addPageReadyScript(facesContextmessageObject);
     }
 
     protected void encodeNotification(FacesContext facesContext, UIComponent componentMap<StringObjectoptions)
             throws IOException {
         JavaScriptService javaScriptService = ServiceTracker.getService(JavaScriptService.class);
         for (MessageForRender message : getVisibleMessages(facesContextcomponent)) {
             JSFunction notifyCall = new JSFunction("RichFaces.ui.Notify");
             Map<StringObjectoptionsCopy = new LinkedHashMap<StringObject>(options);
            addMessageSpecificAttributes(messagefacesContextcomponentoptionsCopy);
            notifyCall.addParameter(optionsCopy);
            javaScriptService.addPageReadyScript(facesContextnotifyCall);
            message.rendered();
        }
    }
    private void addMessageSpecificAttributes(MessageForRender message, FacesContext facesContext, UIComponent component,
            Map<StringObjectoptions) {
        Boolean showSummary = (Booleancomponent.getAttributes().get("showSummary");
        Boolean showDetail = (Booleancomponent.getAttributes().get("showDetail");
        String stackId = NotifyRendererUtils.getStackId(facesContextcomponent);
        boolean escape = true;
        if (component instanceof AbstractNotifyMessage) {
            escape = ((AbstractNotifyMessagecomponent).isEscape();
        }
        if (component instanceof AbstractNotifyMessages) {
            escape = ((AbstractNotifyMessagescomponent).isEscape();
        }
        int zeroBasedSeverityOrdinal = message.getSeverity().getOrdinal() - FacesMessage.SEVERITY_INFO.getOrdinal(); // RF-13161
        options.put("severity"zeroBasedSeverityOrdinal);
        if (showSummary != null && showSummary) {
            options.put("summary"escapeValue(message.getSummary(), escape));
        }
        if (showSummary != null && showDetail) {
            options.put("detail"escapeValue(message.getDetail(), escape));
        }
        if (stackId != null && !stackId.isEmpty()) {
            options.put("stackId"stackId);
        }
    }
    private static String escapeValue(String valueboolean escape) {
        return escape ? HtmlUtil.escapeHtml(value) : value;
    }
New to GrepCode? Check out our FAQ X