org.apache.wicket.markup.head.filter
Class FilteringHeaderResponse

java.lang.Object
  extended by org.apache.wicket.markup.html.DecoratingHeaderResponse
      extended by org.apache.wicket.markup.head.filter.FilteringHeaderResponse
All Implemented Interfaces:
Closeable, IHeaderResponse
Direct Known Subclasses:
JavaScriptFilteredIntoFooterHeaderResponse

public class FilteringHeaderResponse
extends DecoratingHeaderResponse

This header response allows you to separate things that are added to the IHeaderResponse into different buckets. Then, you can render those different buckets in separate areas of the page based on your filter logic. A typical use case for this header response is to move the loading of JavaScript files (and inline script tags) to the footer of the page.

Author:
Jeremy Thomerson, Emond Papegaaij
See Also:
HeaderResponseContainer, CssAcceptingHeaderResponseFilter, JavaScriptAcceptingHeaderResponseFilter

Nested Class Summary
static interface FilteringHeaderResponse.IHeaderResponseFilter
          A filter used to bucket your resources, inline scripts, etc, into different responses.
 
Field Summary
static String DEFAULT_HEADER_FILTER_NAME
          The default name of the filter that will collect contributions which should be rendered in the page's <head>
 
Constructor Summary
FilteringHeaderResponse(IHeaderResponse response)
          Constructor without explicit filters.
FilteringHeaderResponse(IHeaderResponse response, String headerFilterName, Iterable<? extends FilteringHeaderResponse.IHeaderResponseFilter> filters)
          Construct.
 
Method Summary
 void close()
          Mark Header rendering is completed and subsequent usage will be ignored.
static FilteringHeaderResponse get()
           
 CharSequence getContent(String filterName)
          Gets the content that was rendered to this header response and matched the filter with the given name.
 void render(HeaderItem item)
          Renders the given HeaderItem to the response if none of the tokens of the item has been rendered before.
protected  void render(HeaderItem item, List<HeaderItem> filteredItems)
           
protected  void setFilters(Iterable<? extends FilteringHeaderResponse.IHeaderResponseFilter> filters)
           
 
Methods inherited from class org.apache.wicket.markup.html.DecoratingHeaderResponse
getRealResponse, getResponse, isClosed, markRendered, wasRendered
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_HEADER_FILTER_NAME

public static final String DEFAULT_HEADER_FILTER_NAME
The default name of the filter that will collect contributions which should be rendered in the page's <head>

See Also:
Constant Field Values
Constructor Detail

FilteringHeaderResponse

public FilteringHeaderResponse(IHeaderResponse response)
Constructor without explicit filters. Generates filters automatically for any FilteredHeaderItem. Any other contribution is rendered in the page's <head>

Parameters:
response - the wrapped IHeaderResponse
See Also:
HeaderResponseContainer

FilteringHeaderResponse

public FilteringHeaderResponse(IHeaderResponse response,
                               String headerFilterName,
                               Iterable<? extends FilteringHeaderResponse.IHeaderResponseFilter> filters)
Construct.

Parameters:
response - the wrapped IHeaderResponse
headerFilterName - the name that the filter for things that should appear in the head (default Wicket location) uses
filters - the filters to use to bucket things. There will be a bucket created for each filter, by name. There should typically be at least one filter with the same name as your headerFilterName
Method Detail

setFilters

protected void setFilters(Iterable<? extends FilteringHeaderResponse.IHeaderResponseFilter> filters)

get

public static FilteringHeaderResponse get()
Returns:
the FilteringHeaderResponse being used in this RequestCycle

render

public void render(HeaderItem item)
Description copied from interface: IHeaderResponse
Renders the given HeaderItem to the response if none of the tokens of the item has been rendered before.

Specified by:
render in interface IHeaderResponse
Overrides:
render in class DecoratingHeaderResponse
Parameters:
item - The item to render.

close

public void close()
Description copied from interface: IHeaderResponse
Mark Header rendering is completed and subsequent usage will be ignored. If some kind of buffering is used internally, this action will mark that the contents has to be flushed out.

Specified by:
close in interface Closeable
Specified by:
close in interface IHeaderResponse
Overrides:
close in class DecoratingHeaderResponse

getContent

public final CharSequence getContent(String filterName)
Gets the content that was rendered to this header response and matched the filter with the given name.

Parameters:
filterName - the name of the filter to get the bucket for
Returns:
the content that was accepted by the filter with this name

render

protected void render(HeaderItem item,
                      List<HeaderItem> filteredItems)


Copyright © 2006-2013 Apache Software Foundation. All Rights Reserved.