org.apache.wicket.velocity.markup.html
Class VelocityPanel

java.lang.Object
  extended by org.apache.wicket.Component
      extended by org.apache.wicket.MarkupContainer
          extended by org.apache.wicket.markup.html.WebMarkupContainer
              extended by org.apache.wicket.markup.html.WebMarkupContainerWithAssociatedMarkup
                  extended by org.apache.wicket.markup.html.panel.Panel
                      extended by org.apache.wicket.velocity.markup.html.VelocityPanel
All Implemented Interfaces:
Serializable, IClusterable, IConverterLocator, IHeaderPartContainerProvider, IMarkupCacheKeyProvider, IMarkupResourceStreamProvider

public abstract class VelocityPanel
extends Panel
implements IMarkupResourceStreamProvider, IMarkupCacheKeyProvider

Panel that displays the result of rendering a Velocity template. The template itself can be any StringResourceStream implementation, of which there are a number of convenient implementations in the org.apache.wicket.util package. The model can be any normal Map, which will be used to create the VelocityContext.

Note: Be sure to properly initialize the Velocity engine before using VelocityPanel.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.wicket.Component
Component.ComponentModelChange, Component.EnabledChange, Component.IVisitor<T extends Component>, Component.VisibilityChange
 
Field Summary
 
Fields inherited from class org.apache.wicket.Component
ENABLE, FLAG_CONFIGURED, FLAG_INITIALIZED, FLAG_REMOVING_FROM_HIERARCHY, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED6, FLAG_RESERVED7, FLAG_RESERVED8, PATH_SEPARATOR, RENDER
 
Constructor Summary
VelocityPanel(String id, IModel<? extends Map> model)
          Construct.
 
Method Summary
protected  boolean escapeHtml()
          Gets whether to escape HTML characters.
static VelocityPanel forTemplateResource(String id, IModel<? extends Map> model, IStringResourceStream templateResource)
          Convenience factory method to create a VelocityPanel instance with a given template resource.
 String getCacheKey(MarkupContainer container, Class<?> containerClass)
          Provide the markup cache key for the associated Markup resource stream.
 IResourceStream getMarkupResourceStream(MarkupContainer container, Class<?> containerClass)
          Create a new markup resource stream for the container.
protected abstract  IStringResourceStream getTemplateResource()
          Returns the template resource passed to the constructor.
protected  void onComponentTagBody(MarkupStream markupStream, ComponentTag openTag)
          Handle the container's body.
protected  void onDetach()
          Called to allow a component to detach resources after use.
protected  boolean parseGeneratedMarkup()
          Gets whether to parse the resulting Wicket markup.
protected  boolean throwVelocityExceptions()
          Whether any velocity exception should be trapped and displayed on the panel (false) or thrown up to be handled by the exception mechanism of Wicket (true).
 
Methods inherited from class org.apache.wicket.markup.html.panel.Panel
onComponentTag, renderHead
 
Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainerWithAssociatedMarkup
newHeaderPartContainer, renderHeadFromAssociatedMarkupFile
 
Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainer
getMarkupType, getWebPage, getWebRequest
 
Methods inherited from class org.apache.wicket.MarkupContainer
add, addOrReplace, autoAdd, autoAdd, contains, findMarkupStream, get, get, getAssociatedMarkupStream, getMarkupStream, hasAssociatedMarkup, internalAdd, isTransparentResolver, iterator, iterator, newMarkupResourceStream, onAfterRenderChildren, onRender, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderComponentTagBody, renderNext, replace, setDefaultModel, setMarkupStream, size, swap, toString, toString, visitChildren, visitChildren
 
Methods inherited from class org.apache.wicket.Component
add, addStateChange, afterRender, beforeRender, callOnBeforeRenderIfNotVisible, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, configure, continueToOriginalDestination, debug, detach, detachBehaviors, detachModel, detachModels, determineVisibility, error, exceptionMessage, fatal, findPage, findParent, findParentWithAssociatedMarkup, getApplication, getBehaviors, getBehaviors, getBehaviorsRawList, getClassRelativePath, getComponentBorder, getConverter, getConverter, getDefaultModel, getDefaultModelObject, getDefaultModelObjectAsString, getDefaultModelObjectAsString, getEscapeModelStrings, getFeedbackMessage, getFlag, getFlag, getId, getInnermostModel, getInnermostModel, getLocale, getLocalizer, getMarkupAttributes, getMarkupId, getMarkupId, getMarkupIdImpl, getMetaData, getModelComparator, getOutputMarkupId, getOutputMarkupPlaceholderTag, getPage, getPageRelativePath, getParent, getPath, getRenderBodyOnly, getRequest, getRequestCycle, getResponse, getSession, getSizeInBytes, getStatelessHint, getString, getString, getString, getStyle, getVariation, hasBeenRendered, hasErrorMessage, hasFeedbackMessage, info, initModel, internalAttach, internalDetach, internalOnAttach, internalOnDetach, internalOnModelChanged, isActionAuthorized, isAncestorOf, isAttached, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isRenderAllowed, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, locateMarkupStream, markAttached, markRendering, modelChanged, modelChanging, onAfterRender, onAttach, onBeforeRender, onBeginRequest, onConfigure, onEndRequest, onInitialize, onModelChanged, onModelChanging, onRemove, prepareForRender, prepareForRender, redirectToInterceptPage, remove, remove, render, render, renderComponent, renderComponent, renderComponentTag, rendered, renderPlaceholderTag, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, setAuto, setComponentBorder, setDefaultModelObject, setEnabled, setEscapeModelStrings, setFlag, setFlag, setIgnoreAttributeModifier, setMarkupId, setMarkupIdImpl, setMetaData, setOutputMarkupId, setOutputMarkupPlaceholderTag, setRedirect, setRenderBodyOnly, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, urlFor, urlFor, urlFor, urlFor, urlFor, urlFor, visitParents, warn, wrap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

VelocityPanel

public VelocityPanel(String id,
                     IModel<? extends Map> model)
Construct.

Parameters:
id - Component id
templateResource - The velocity template as a string resource
model - Model with variables that can be substituted by Velocity.
Method Detail

forTemplateResource

public static VelocityPanel forTemplateResource(String id,
                                                IModel<? extends Map> model,
                                                IStringResourceStream templateResource)
Convenience factory method to create a VelocityPanel instance with a given template resource.

Parameters:
id - Component id
model - optional model for variable substitution.
templateResource - The template resource
Returns:
an instance of VelocityPanel

onComponentTagBody

protected void onComponentTagBody(MarkupStream markupStream,
                                  ComponentTag openTag)
Description copied from class: MarkupContainer
Handle the container's body. If your override of this method does not advance the markup stream to the close tag for the openTag, a runtime exception will be thrown by the framework.

Overrides:
onComponentTagBody in class Panel
Parameters:
markupStream - The markup stream
openTag - The open tag for the body
See Also:
org.apache.wicket.markup.html.panel.Panel#onComponentTagBody(org.apache.wicket.markup. MarkupStream, org.apache.wicket.markup.ComponentTag)

escapeHtml

protected boolean escapeHtml()
Gets whether to escape HTML characters.

Returns:
whether to escape HTML characters. The default value is false.

getTemplateResource

protected abstract IStringResourceStream getTemplateResource()
Returns the template resource passed to the constructor.

Returns:
The template resource

parseGeneratedMarkup

protected boolean parseGeneratedMarkup()
Gets whether to parse the resulting Wicket markup.

Returns:
whether to parse the resulting Wicket markup. The default is false.

throwVelocityExceptions

protected boolean throwVelocityExceptions()
Whether any velocity exception should be trapped and displayed on the panel (false) or thrown up to be handled by the exception mechanism of Wicket (true). The default is false, which traps and displays any exception without having consequences for the other components on the page.

Trapping these exceptions without disturbing the other components is especially useful in CMS like applications, where 'normal' users are allowed to do basic scripting. On errors, you want them to be able to have them correct them while the rest of the application keeps on working.

Returns:
Whether any velocity exceptions should be thrown or trapped. The default is false.

getMarkupResourceStream

public final IResourceStream getMarkupResourceStream(MarkupContainer container,
                                                     Class<?> containerClass)
Description copied from interface: IMarkupResourceStreamProvider
Create a new markup resource stream for the container.

Note: usually it will only called once, as the IResourceStream will be cached by MarkupCache.

Specified by:
getMarkupResourceStream in interface IMarkupResourceStreamProvider
Parameters:
container - The MarkupContainer which requests to load the Markup resource stream
containerClass - The container the markup should be associated with
Returns:
A IResourceStream if the resource was found
See Also:
org.apache.wicket.markup.IMarkupResourceStreamProvider#getMarkupResourceStream(org.apache .wicket.MarkupContainer, java.lang.Class)

getCacheKey

public final String getCacheKey(MarkupContainer container,
                                Class<?> containerClass)
Description copied from interface: IMarkupCacheKeyProvider
Provide the markup cache key for the associated Markup resource stream.

Specified by:
getCacheKey in interface IMarkupCacheKeyProvider
Parameters:
container - The MarkupContainer object requesting the markup cache key
containerClass - The container the markup should be associated with
Returns:
A IResourceStream if the resource was found
See Also:
org.apache.wicket.markup.IMarkupCacheKeyProvider#getCacheKey(org.apache.wicket. MarkupContainer, java.lang.Class)

onDetach

protected void onDetach()
Description copied from class: Component
Called to allow a component to detach resources after use. Overrides of this method MUST call the super implementation, the most logical place to do this is the last line of the override method.

Overrides:
onDetach in class Component
See Also:
Component.onDetach()


Copyright © 2004-2011 Apache Software Foundation. All Rights Reserved.