All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.directwebremoting.dwrp.HtmlScriptConduit Maven / Gradle / Ivy

package org.directwebremoting.dwrp;

import java.io.IOException;
import java.io.PrintWriter;

import org.directwebremoting.extend.EnginePrivate;
import org.directwebremoting.util.MimeConstants;

/**
 * A ScriptConduit for use with HTML/SCRIPT wrapped Javascript output.
 * 

Scripts begin with an html and script tags. The scripts have been altered * to include an 'execute-in-parent-context' wrapper. *

If this conduit is used, the output should be directed to an iframe. No * polling should be required. *

This conduit works with IE 6/7 since the 4k buffer drawback does not prevent * the execution of script elements. * @author Joe Walker [joe at getahead dot ltd dot uk] */ public class HtmlScriptConduit extends BaseScriptConduit { public HtmlScriptConduit(PrintWriter out, String instanceId, String batchId, String documentDomain) { super(out, instanceId); this.batchId = batchId; this.documentDomain = documentDomain; } public String getOutboundMimeType() { return MimeConstants.MIME_HTML; } public void beginStreamAndChunk() { out.println(""); beginChunk(true); out.println(EnginePrivate.remoteBeginIFrameResponse(batchId, true)); } public void beginChunk() { beginChunk(false); } private void beginChunk(boolean setDocumentDomain) { if (!chunkOpen) { out.println(""); chunkOpen = false; } } public void endStreamAndChunk() throws IOException { beginChunk(); out.println(EnginePrivate.remoteEndIFrameResponse(batchId, true)); endChunk(); out.println(""); } private final String batchId; private final String documentDomain; /** * Is a chunk section currently open on the output? */ private boolean chunkOpen = false; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy