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.FacesException;
 import  javax.faces.component.UIComponent;
 import  javax.faces.context.FacesContext;
 import  javax.faces.context.ResponseWriter;
 
 import  org.richfaces.component.NotifyAttributes;

Author(s):
Lukas Fryc
Brian Leathem
 
 public class NotifyRendererUtils {
 
     private static final RendererUtils UTILS = RendererUtils.getInstance();
 
     public static String getStackId(FacesContext facesContext, UIComponent component) {
         NotifyAttributes notify = (NotifyAttributes) component;
 
         if (null == notify.getStack()) {
             return null;
         }
 
         UIComponent stack = .findComponentFor(facesContext.getViewRoot(), notify.getStack());
 
         if (stack instanceof AbstractNotifyStack) {
             return stack.getClientId();
         } else {
             return null;
         }
     }
 
     public static void addStackIdOption(Map<StringObjectoptions, FacesContext facesContext, UIComponent component) {
         String stackId = getStackId(facesContextcomponent);
         if (stackId != null) {
             options.put("stackId"stackId);
         }
     }
 
     public static void addFacetOrAttributeAsOption(String nameMap<StringObjectoptions, FacesContext facesContext,
             UIComponent component) {
 
         UIComponent facet = component.getFacet(name);
         if (facet != null && facet.isRendered()) {
             ResponseWriter originalResponseWriter = facesContext.getResponseWriter();
             try {
                 ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
                 PrintWriter printWriter = new PrintWriter(outputStream);
                 ResponseWriter newResponseWriter = facesContext.getRenderKit().createResponseWriter(printWriternullnull);
                 facesContext.setResponseWriter(newResponseWriter);
                 facet.encodeAll(facesContext);
                 printWriter.flush();
                 String value = new String(outputStream.toByteArray());
                 options.put(namevalue);
             } catch (IOException e) {
                 throw new FacesException("Can't encode facet '" + name + "' of component '" + component.getClass().getName()
                         + "'"e);
             } finally {
                 facesContext.setResponseWriter(originalResponseWriter);
             }
             return;
         }
 
         Object attribute = component.getAttributes().get(name);
         if (attribute != null) {
             String value = attribute.toString();
             boolean escape = true;
             if (component instanceof AbstractNotify) {
                escape = ((AbstractNotifycomponent).isEscape();
            }
            if (escape) {
                value = HtmlUtil.escapeHtml(value);
            }
            options.put(namevalue);
            return;
        }
    }
New to GrepCode? Check out our FAQ X