/** * The contents of this file are subject to the license and copyright * detailed in the LICENSE and NOTICE files at the root of the source * tree and available online at * * http://www.dspace.org/license/ */ package org.dspace.app.xmlui.utils; import org.apache.cocoon.ProcessingException; import org.apache.cocoon.environment.ObjectModelHelper; import org.apache.cocoon.reading.AbstractReader; import org.xml.sax.SAXException; import java.io.ByteArrayInputStream; import java.io.IOException; /** * Loads in the jquery javascript library if it hasn't been loaded in already * * @author Kevin Van de Velde (kevin at atmire dot com) * @author Mark Diggory (markd at atmire dot com) * @author Ben Bosman (ben at atmire dot com) */ public class JQueryLoaderReader extends AbstractReader { @Override public void generate() throws IOException, SAXException, ProcessingException { String contextPath = ObjectModelHelper.getRequest(objectModel).getContextPath(); String script = "!window.jQuery && document.write('<script type=\"text/javascript\" src=\"" + contextPath + "/static/js/jquery-1.4.2.min.js\"> </script>');"; ByteArrayInputStream inputStream = new ByteArrayInputStream(script.getBytes("UTF-8")); byte[] buffer = new byte[8192]; ObjectModelHelper.getResponse(objectModel).setHeader("Content-Length", String.valueOf(script.length())); int length; while ((length = inputStream.read(buffer)) > -1) { out.write(buffer, 0, length); } out.flush(); } }