org.apache.wicket.markup.html.panel
Class Fragment

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.Fragment
All Implemented Interfaces:
Serializable, IClusterable, IConverterLocator, IHeaderPartContainerProvider

public class Fragment
extends WebMarkupContainerWithAssociatedMarkup

Usually you either have a markup file or a xml tag with wicket:id="myComponent" to associate markup with a component. However in some rare cases, especially when working with small panels it is a bit awkward to maintain tiny pieces of markup in plenty of panel markup files. Use cases are for example list views where list items are different depending on a state.

Fragments provide a means to maintain the panels tiny piece of markup. Since it can be anywhere, the component whose markup contains the fragment's markup must be provided (markup provider).

  <span wicket:id="myPanel">Example input (will be removed)</span>
 
  <wicket:fragment wicket:id="frag1">panel 1</wicket:fragment>
  <wicket:fragment wicket:id="frag2">panel 2</wicket:fragment>
 
  add(new Fragment("myPanel1", "frag1", myPage);
 

Author:
Juergen Donnerstag
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, PARENT_PATH, PATH_SEPARATOR, RENDER
 
Constructor Summary
Fragment(String id, String markupId)
          Deprecated. use Fragment(String, String, MarkupContainer)
Fragment(String id, String markupId, IModel<?> model)
          Deprecated. use Fragment(String, String, MarkupContainer, IModel)
Fragment(String id, String markupId, MarkupContainer markupProvider)
          Constructor.
Fragment(String id, String markupId, MarkupContainer markupProvider, IModel<?> model)
          Constructor.
 
Method Summary
protected  MarkupStream chooseMarkupStream(MarkupStream markupStream)
          Get the markup stream which shall be used to search for the fragment
 MarkupStream findComponentIndex(String path)
          Position the markup stream at the child component relative to the provider markup
 MarkupStream getAssociatedMarkupStream(boolean throwException)
          Gets a fresh markup stream that contains the (immutable) markup resource for this class.
 MarkupContainer getMarkupProvider()
          Returns markup provider associated with this fragment
 boolean hasAssociatedMarkup()
           
protected  void onComponentTag(ComponentTag tag)
          Make sure we open up open-close tags to open-body-close
protected  void onComponentTagBody(MarkupStream markupStream, ComponentTag openTag)
          Handle the container's body.
 void setMarkupTagReferenceId(String markupId)
          The associated markup fragment can be modified
 
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, getMarkupStream, 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, getAjaxRegionMarkupId, 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, onDetach, onEndRequest, onInitialize, onModelChanged, onModelChanging, onRemove, prepareForRender, prepareForRender, redirectToInterceptPage, remove, remove, render, render, renderComponent, renderComponent, renderComponentTag, rendered, renderHead, 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

Fragment

@Deprecated
public Fragment(String id,
                           String markupId)
Deprecated. use Fragment(String, String, MarkupContainer)

Constructor.

Parameters:
id - The component id
markupId - The associated id of the associated markup fragment
See Also:
Component.Component(String)

Fragment

@Deprecated
public Fragment(String id,
                           String markupId,
                           IModel<?> model)
Deprecated. use Fragment(String, String, MarkupContainer, IModel)

Constructor.

Parameters:
id - The component id
markupId - The associated id of the associated markup fragment
model - The model for this fragment
See Also:
Component.Component(String)

Fragment

public Fragment(String id,
                String markupId,
                MarkupContainer markupProvider)
Constructor.

Parameters:
id - The component id
markupId - The associated id of the associated markup fragment
markupProvider - The component whose markup contains the fragment's markup
See Also:
Component.Component(String)

Fragment

public Fragment(String id,
                String markupId,
                MarkupContainer markupProvider,
                IModel<?> model)
Constructor.

Parameters:
id - The component id
markupId - The associated id of the associated markup fragment
markupProvider - The component whose markup contains the fragment's markup
model - The model for this fragment
See Also:
Component.Component(String)
Method Detail

setMarkupTagReferenceId

public final void setMarkupTagReferenceId(String markupId)
The associated markup fragment can be modified

Parameters:
markupId -

onComponentTag

protected void onComponentTag(ComponentTag tag)
Make sure we open up open-close tags to open-body-close

Overrides:
onComponentTag in class Component
Parameters:
tag - Tag to modify
See Also:
Component.onComponentTag(org.apache.wicket.markup.ComponentTag)

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 MarkupContainer
Parameters:
markupStream - The markup stream
openTag - The open tag for the body
See Also:
Component.onComponentTagBody(org.apache.wicket.markup.MarkupStream, org.apache.wicket.markup.ComponentTag)

chooseMarkupStream

protected MarkupStream chooseMarkupStream(MarkupStream markupStream)
Get the markup stream which shall be used to search for the fragment

Parameters:
markupStream - The markup stream is associated with the component (not the fragment)
Returns:
The markup stream to be used to find the fragment markup

findComponentIndex

public MarkupStream findComponentIndex(String path)
Position the markup stream at the child component relative to the provider markup

Parameters:
path -
Returns:
The markup stream for the given component.

hasAssociatedMarkup

public boolean hasAssociatedMarkup()
Overrides:
hasAssociatedMarkup in class MarkupContainer
Returns:
True if this markup container has associated markup
See Also:
MarkupContainer.hasAssociatedMarkup()

getAssociatedMarkupStream

public MarkupStream getAssociatedMarkupStream(boolean throwException)
Description copied from class: MarkupContainer
Gets a fresh markup stream that contains the (immutable) markup resource for this class.

Overrides:
getAssociatedMarkupStream in class MarkupContainer
Parameters:
throwException - If true, throw an exception, if markup could not be found
Returns:
A stream of MarkupElement elements
See Also:
MarkupContainer.getAssociatedMarkupStream(boolean)

getMarkupProvider

public final MarkupContainer getMarkupProvider()
Returns markup provider associated with this fragment

Returns:
markup provider


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