|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.myfaces.renderkit.html.util.NonBufferingAddResource
org.apache.myfaces.renderkit.html.util.DefaultAddResource
public class DefaultAddResource
This is a utility class to render link to resources used by custom components. Mostly used to avoid having to include [script src="..."][/script] in the head of the pages before using a component.
When used together with the ExtensionsFilter, this class can allow components in the body of a page to emit script and stylesheet references into the page head section. The relevant methods on this object simply queue the changes, and when the page is complete the ExtensionsFilter calls back into this class to allow it to insert the commands into the buffered response. This class also works with the ExtensionsFilter to allow components to emit references to javascript/css/etc which are bundled in the component's jar file. Special URLs are generated which the ExtensionsFilter will later handle by retrieving the specified resource from the classpath. The special URL format is:
{contextPath}/faces/myFacesExtensionResource/
{resourceLoaderName}/{cacheKey}/{resourceURI}
Where:
| Nested Class Summary | |
|---|---|
protected static class |
DefaultAddResource.AttributeInfo
|
protected static class |
DefaultAddResource.ParseCallbackListener
|
protected static interface |
DefaultAddResource.PositionedInfo
|
protected static interface |
DefaultAddResource.WritablePositionedInfo
|
| Field Summary | |
|---|---|
protected int |
afterBodyContentInsertPosition
|
protected int |
beforeBodyEndPosition
|
protected int |
beforeBodyPosition
|
protected int |
bodyInsertPosition
|
protected int |
headerInsertPosition
|
protected org.apache.commons.logging.Log |
log
|
protected StringBuffer |
originalResponse
|
protected boolean |
parserCalled
|
| Fields inherited from class org.apache.myfaces.renderkit.html.util.NonBufferingAddResource |
|---|
_contextPath, PATH_SEPARATOR |
| Fields inherited from interface org.apache.myfaces.renderkit.html.util.AddResource |
|---|
BODY_END, BODY_ONLOAD, HEADER_BEGIN |
| Constructor Summary | |
|---|---|
protected |
DefaultAddResource()
|
| Method Summary | |
|---|---|
void |
addInlineScriptAtPosition(javax.faces.context.FacesContext context,
ResourcePosition position,
String inlineScript)
Adds the given Inline Script at the specified document position. |
void |
addInlineStyleAtPosition(javax.faces.context.FacesContext context,
ResourcePosition position,
String inlineStyle)
Adds the given Inline Style at the specified document position. |
void |
addJavaScriptAtPosition(javax.faces.context.FacesContext context,
ResourcePosition position,
Class myfacesCustomComponent,
String resourceName)
Insert a [script src="url"] entry into the document header at the specified document position. |
void |
addJavaScriptAtPosition(javax.faces.context.FacesContext context,
ResourcePosition position,
Class myfacesCustomComponent,
String resourceName,
boolean defer)
Insert a [script src="url"] entry into the document header at the specified document position. |
void |
addJavaScriptAtPosition(javax.faces.context.FacesContext context,
ResourcePosition position,
ResourceHandler resourceHandler)
Adds the given Javascript resource to the document header at the specified document positioy by supplying a resourcehandler instance. |
void |
addJavaScriptAtPosition(javax.faces.context.FacesContext context,
ResourcePosition position,
ResourceHandler resourceHandler,
boolean defer)
Adds the given Javascript resource at the specified document position. |
void |
addJavaScriptAtPosition(javax.faces.context.FacesContext context,
ResourcePosition position,
String uri)
Insert a [script src="url"] entry into the document header at the specified document position. |
void |
addJavaScriptAtPosition(javax.faces.context.FacesContext context,
ResourcePosition position,
String uri,
boolean defer)
Adds the given Javascript resource at the specified document position. |
void |
addJavaScriptAtPositionPlain(javax.faces.context.FacesContext context,
ResourcePosition position,
Class myfacesCustomComponent,
String resourceName)
Adds the given Javascript resource at the specified document position. |
void |
addJavaScriptToBodyTag(javax.faces.context.FacesContext context,
String javascriptEventName,
String addedJavaScript)
|
void |
addStyleSheet(javax.faces.context.FacesContext context,
ResourcePosition position,
Class myfacesCustomComponent,
String resourceName)
Adds the given Style Sheet at the specified document position. |
void |
addStyleSheet(javax.faces.context.FacesContext context,
ResourcePosition position,
ResourceHandler resourceHandler)
Adds the given Style Sheet at the specified document position. |
void |
addStyleSheet(javax.faces.context.FacesContext context,
ResourcePosition position,
String uri)
Adds the given Style Sheet at the specified document position. |
protected Set |
getBodyEndInfos()
|
protected Set |
getBodyOnloadInfos()
|
protected Set |
getHeaderBeginInfos()
|
protected DefaultAddResource.PositionedInfo |
getScriptInstance(javax.faces.context.FacesContext context,
String uri,
boolean defer)
|
boolean |
hasHeaderBeginInfos()
check there is something to write to the header |
void |
parseResponse(javax.servlet.http.HttpServletRequest request,
String bufferedResponse,
javax.servlet.http.HttpServletResponse response)
Parses the response to mark the positions where code will be inserted |
boolean |
requiresBuffer()
return true if you require the complete response buffered |
void |
responseFinished()
called when the response has finished |
void |
responseStarted()
called when the response start |
void |
writeMyFacesJavascriptBeforeBodyEnd(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
Writes the javascript code necessary for myfaces in every page, just befode the closing </body> tag |
void |
writeResponse(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
Writes the response |
void |
writeWithFullHeader(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
Add the resources to the <head> of the page. |
| Methods inherited from class org.apache.myfaces.renderkit.html.util.NonBufferingAddResource |
|---|
addJavaScriptHere, addJavaScriptHere, addJavaScriptHere, addJavaScriptHerePlain, addResourceHere, getCacheKey, getResourceUri, getResourceUri, getResourceUri, getResourceUri, getResourceUri, getResourceUri, getResourceUri, isResourceUri, serveResource, setContextPath, validateResourceHandler, validateResourceLoader, writeInlineScript, writeInlineStylesheet, writeJavaScriptReference, writeJavaScriptReference, writeStyleReference, writeStyleReference |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected org.apache.commons.logging.Log log
protected StringBuffer originalResponse
protected boolean parserCalled
protected int headerInsertPosition
protected int bodyInsertPosition
protected int beforeBodyPosition
protected int afterBodyContentInsertPosition
protected int beforeBodyEndPosition
| Constructor Detail |
|---|
protected DefaultAddResource()
| Method Detail |
|---|
public void addJavaScriptAtPosition(javax.faces.context.FacesContext context,
ResourcePosition position,
ResourceHandler resourceHandler)
addJavaScriptAtPosition in interface AddResourceaddJavaScriptAtPosition in class NonBufferingAddResource
public void addJavaScriptAtPosition(javax.faces.context.FacesContext context,
ResourcePosition position,
Class myfacesCustomComponent,
String resourceName)
addJavaScriptAtPosition in interface AddResourceaddJavaScriptAtPosition in class NonBufferingAddResource
public void addJavaScriptAtPositionPlain(javax.faces.context.FacesContext context,
ResourcePosition position,
Class myfacesCustomComponent,
String resourceName)
AddResource
addJavaScriptAtPositionPlain in interface AddResourceaddJavaScriptAtPositionPlain in class NonBufferingAddResource
public void addJavaScriptAtPosition(javax.faces.context.FacesContext context,
ResourcePosition position,
Class myfacesCustomComponent,
String resourceName,
boolean defer)
addJavaScriptAtPosition in interface AddResourceaddJavaScriptAtPosition in class NonBufferingAddResourcedefer - specifies whether the html attribute "defer" is set on the
generated script tag. If this is true then the browser will continue
processing the html page without waiting for the specified script to
load and be run.
public void addJavaScriptAtPosition(javax.faces.context.FacesContext context,
ResourcePosition position,
String uri)
addJavaScriptAtPosition in interface AddResourceaddJavaScriptAtPosition in class NonBufferingAddResourceuri - is the location of the desired resource, relative to the base
directory of the webapp (ie its contextPath).
public void addJavaScriptAtPosition(javax.faces.context.FacesContext context,
ResourcePosition position,
String uri,
boolean defer)
addJavaScriptAtPosition in interface AddResourceaddJavaScriptAtPosition in class NonBufferingAddResource
public void addJavaScriptToBodyTag(javax.faces.context.FacesContext context,
String javascriptEventName,
String addedJavaScript)
addJavaScriptToBodyTag in interface AddResourceaddJavaScriptToBodyTag in class NonBufferingAddResource
public void addJavaScriptAtPosition(javax.faces.context.FacesContext context,
ResourcePosition position,
ResourceHandler resourceHandler,
boolean defer)
addJavaScriptAtPosition in interface AddResourceaddJavaScriptAtPosition in class NonBufferingAddResource
public void addStyleSheet(javax.faces.context.FacesContext context,
ResourcePosition position,
Class myfacesCustomComponent,
String resourceName)
addStyleSheet in interface AddResourceaddStyleSheet in class NonBufferingAddResource
public void addStyleSheet(javax.faces.context.FacesContext context,
ResourcePosition position,
String uri)
addStyleSheet in interface AddResourceaddStyleSheet in class NonBufferingAddResource
public void addStyleSheet(javax.faces.context.FacesContext context,
ResourcePosition position,
ResourceHandler resourceHandler)
addStyleSheet in interface AddResourceaddStyleSheet in class NonBufferingAddResource
public void addInlineStyleAtPosition(javax.faces.context.FacesContext context,
ResourcePosition position,
String inlineStyle)
addInlineStyleAtPosition in interface AddResourceaddInlineStyleAtPosition in class NonBufferingAddResource
public void addInlineScriptAtPosition(javax.faces.context.FacesContext context,
ResourcePosition position,
String inlineScript)
addInlineScriptAtPosition in interface AddResourceaddInlineScriptAtPosition in class NonBufferingAddResourceprotected Set getHeaderBeginInfos()
protected Set getBodyEndInfos()
protected Set getBodyOnloadInfos()
public boolean hasHeaderBeginInfos()
AddResource
hasHeaderBeginInfos in interface AddResourcehasHeaderBeginInfos in class NonBufferingAddResource
public void parseResponse(javax.servlet.http.HttpServletRequest request,
String bufferedResponse,
javax.servlet.http.HttpServletResponse response)
parseResponse in interface AddResourceparseResponse in class NonBufferingAddResource
public void writeMyFacesJavascriptBeforeBodyEnd(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws IOException
writeMyFacesJavascriptBeforeBodyEnd in interface AddResourcewriteMyFacesJavascriptBeforeBodyEnd in class NonBufferingAddResourceIOException
public void writeWithFullHeader(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws IOException
writeWithFullHeader in interface AddResourcewriteWithFullHeader in class NonBufferingAddResourceIOException
public void writeResponse(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws IOException
writeResponse in interface AddResourcewriteResponse in class NonBufferingAddResourceIOException
protected DefaultAddResource.PositionedInfo getScriptInstance(javax.faces.context.FacesContext context,
String uri,
boolean defer)
public boolean requiresBuffer()
AddResource
requiresBuffer in interface AddResourcerequiresBuffer in class NonBufferingAddResourcepublic void responseStarted()
AddResource
responseStarted in interface AddResourceresponseStarted in class NonBufferingAddResourcepublic void responseFinished()
AddResource
responseFinished in interface AddResourceresponseFinished in class NonBufferingAddResource
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||