Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2004-2012 ICEsoft Technologies Canada Corp.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the
   * License. You may obtain a copy of the License at
   *
   * http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an "AS
  * IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
  * express or implied. See the License for the specific language
  * governing permissions and limitations under the License.
  */
 
 package org.icefaces.impl.util;
 
 import java.util.List;
 import java.util.Map;
 
 
 public class Util {
     private static Logger log = Logger.getLogger(Util.class.getName());
     private static List DEFAULT_EXCLUSIONS = Arrays.asList(
             "application/pdf",
             "application/zip""application/x-compress""application/x-gzip ",
             "application/java-archive");
     public static final DateFormat HTTP_DATE =
             new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz".);
 
     public static void copyStream(InputStream inOutputStream outthrows IOException {
         byte[] buf = new byte[1000];
         int l = 1;
         while (l > 0) {
             l = in.read(buf);
             if (l > 0) {
                 out.write(buf, 0, l);
             }
         }
     }
 
     public static int copyStream(InputStream inOutputStream out,
             int startint endthrows IOException {
         long skipped = in.skip((longstart);
         if (start != skipped)  {
             throw new IOException("copyStream failed range start " + start);
         }
         byte[] buf = new byte[1000];
         int pos = start - 1;
         int count = 0;
         int l = 1;
         while (l > 0) {
             l = in.read(buf);
             if (l > 0) {
                 pos = pos + l;
                 if (pos > end)  {
                     l = l - (pos - end);
                     out.write(buf, 0, l);
                     count += l;
                     break;
                 }
                 out.write(buf, 0, l);
                 count += l;
             }
         }
         return count;
     }
 
     public static void compressStream(InputStream inOutputStream outthrows IOException {
         GZIPOutputStream gzip = new GZIPOutputStream(out);
         copyStream(ingzip);
         gzip.finish();
     }
 
     public static boolean acceptGzip(ExternalContext externalContext) {
         String acceptHeader = externalContext.getRequestHeaderMap()
                 .get("Accept-Encoding");
         boolean acceptGzip = (null != acceptHeader) &&
                 (acceptHeader.indexOf("gzip") >= 0);
         return acceptGzip;
     }
 
     public static boolean shouldCompress(String contentType) {
        if(contentType == null){
            return false;
        }
        if ( contentType.startsWith("audio/") ||
             contentType.startsWith("video/") ||
             contentType.startsWith("image/") ) {
            return false;
        }
        if (.contains(contentType))  {
            return false;
        }
        return true;
    }

    
Determines whether the component is "under" singleSubmit.

Parameters:
component to test for singleSubmit
Returns:
true if the component is under singleSubmit
    public static boolean withinSingleSubmit(UIComponent component)  {
        UIComponent parent = component;
        while (null != parent)  {
            if ( parent.getAttributes().containsKey(
                    .) )  {
                return true;
            }
            parent = parent.getParent();
        }
        return false;
    }
    
    
    // ICE-4342
    // Encode filename for Content-Disposition header; to be used in save file dialog;
    // See http://greenbytes.de/tech/tc2231/
    // Some code suggested by Deryk Sinotte 
    public static String encodeContentDispositionFilename(String fileName) {
        if (fileName == null || fileName.trim().length() == 0) return null;
        String userAgent = getUserAgent();
        String defaultFileName = "=\"" + fileName + "\"";
        //WebLogic does not provide the user-agent for some reason
        //System.out.println("RegisteredResource.encodeContentDispositionFilename: user-agent = " + userAgent);
        if (userAgent == null || userAgent.trim().length() == 0) return defaultFileName;
        userAgent = userAgent.toLowerCase();
        try {
            if (userAgent.indexOf("msie") > -1) return encodeForIE(fileName);
            if (userAgent.indexOf("firefox") > -1 || userAgent.indexOf("opera") > -1) return encodeForFirefox(fileName);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return defaultFileName;
    }
    // contributed by Robert Vojta
    private static String encodeForIE(String fileName)
            throws UnsupportedEncodingException {
        /*
         * http://greenbytes.de/tech/tc2231/#attwithfnrawpctenca
         *
         * IE decodes %XY to characters and than if it detects
         * UTF-8 stream (after decoding of %XY), than it creates
         * UTF-8 string.
         *
         * We use this behavior to offer correct file name
         * for download.
         */
        StringBuffer encodedFileName = new StringBuffer();
        encodedFileName.append("=\""); // ICEfaces 1.7.2 bug
        encodedFileName.append(URLEncoder.encode(fileName"UTF-8").replaceAll("\\+""%20"));
        encodedFileName.append("\""); // ICEfaces 1.7.2 bug
        return encodedFileName.toString();
    }
    // contributed by Robert Vojta
    private static String encodeForFirefox(String fileName)
            throws UnsupportedEncodingException {
        /*
         * http://greenbytes.de/tech/tc2231/#attwithfn2231utf8 
         */
        StringBuffer encodedFileName = new StringBuffer();
        encodedFileName.append("*=UTF-8''");
        encodedFileName.append(URLEncoder.encode(fileName"UTF-8").replaceAll("\\+""%20"));
        return encodedFileName.toString();
    }    
    
    private static String getUserAgent() {
        Map<StringStringheaderMap = FacesContext.getCurrentInstance().getExternalContext().getRequestHeaderMap();
        return (StringheaderMap.get("user-agent");    	
    }    
New to GrepCode? Check out our FAQ X