|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.wicket.Component
org.apache.wicket.MarkupContainer
org.apache.wicket.markup.html.WebMarkupContainer
org.apache.wicket.markup.html.WebMarkupContainerWithAssociatedMarkup
org.apache.wicket.markup.html.border.Border
public abstract class Border
A border component has associated markup which is drawn and determines placement of any markup and/or components nested within the border component.
The portion of the border's associated markup file which is to be used in rendering the border is denoted by a <wicket:border> tag. The children of the border component instance are then inserted into this markup, replacing the first <wicket:body> tag in the border's associated markup.
For example, if a border's associated markup looked like this:
<html> <body> <wicket:border> First <wicket:body/> Last </wicket:border> </body> </html>And the border was used on a page like this:
<html> <body> <span wicket:id = "myBorder"> Middle </span> </body> </html>Then the resulting HTML would look like this:
<html> <body> First Middle Last </body> </html>In other words, the body of the myBorder component is substituted into the border's associated markup at the position indicated by the <wicket:body> tag.
Regarding <wicket:body/> you have two options. Either use <wicket:body/> (open-close tag) which will automatically be expanded to <wicket:body>body content</wicket:body> or use <wicket:body>preview region</wicket:body> in your border's markup. The preview region (everything in between the open and close tag) will automatically be removed.
Note that if body is not an immediate child of border (example see below), than you must use code
like the following someContainer.add(getBodyContainer())
to add the body component
to the correct container.
<html> <body> <wicket:border> <span wicket:id="someContainer"> <wicket:body/> </span> </wicket:border> </body> </html>
IMPORTANT NOTE
It is important that components added to the border by downstream users are added to the border's
body container instead of directly to the border. This will properly maintain the component
hierarchy synchronicity with markup hierarchy because in markup children are added under the
border:body
tag which is presented by the border's body container and not the border
itself. Here is an example of an improper usage of the border:
BoxBorder border=new BoxBorder("border"); border.add(new Label("label")); <== INVALIDInstead, the label should be added to border's body container:
BoxBorder border=new BoxBorder("border"); border.getBodyContainer().add(new Label("label")); <== VALID
BorderBodyResolver
,
Border.BorderBodyContainer
,
Serialized FormNested Class Summary | |
---|---|
class |
Border.BorderBodyContainer
The container to be associated with the <wicket:body> tag |
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 | |
---|---|
Border(String id)
|
|
Border(String id,
IModel<?> model)
|
Method Summary | |
---|---|
Border.BorderBodyContainer |
getBodyContainer()
Gets the container associated with <wicket:body> |
boolean |
isTransparentResolver()
Some MarkupContainers (e.g. |
protected void |
onComponentTag(ComponentTag tag)
Processes the component tag. |
protected void |
onComponentTagBody(MarkupStream markupStream,
ComponentTag openTag)
Handle the container's body. |
void |
renderHead(HtmlHeaderContainer container)
Print to the web response what ever the component wants to contribute to the head section. |
boolean |
resolve(MarkupContainer container,
MarkupStream markupStream,
ComponentTag tag)
Try to resolve the tag, then create a component, add it to the container and render it. |
Border |
setBorderBodyVisible(boolean bodyVisible)
Deprecated. 1.3 please use #getBodyContainer().setVisible(false) instead |
Border |
setTransparentResolver(boolean enable)
Borders used for bordered pages should set it to "true". |
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, 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 java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public Border(String id)
Component.Component(String)
public Border(String id, IModel<?> model)
Component.Component(String, IModel)
Method Detail |
---|
public final Border.BorderBodyContainer getBodyContainer()
@Deprecated public Border setBorderBodyVisible(boolean bodyVisible)
bodyVisible
-
public final Border setTransparentResolver(boolean enable)
enable
- true, to enable transparent resolving
public boolean isTransparentResolver()
MarkupContainer
isTransparentResolver
in class MarkupContainer
setTransparentResolver(boolean)
,
MarkupContainer.isTransparentResolver()
public boolean resolve(MarkupContainer container, MarkupStream markupStream, ComponentTag tag)
IComponentResolver
resolve
in interface IComponentResolver
container
- The container parsing its markupmarkupStream
- The current markupStreamtag
- The current component tag while parsing the markup
IComponentResolver.resolve(org.apache.wicket.MarkupContainer,
org.apache.wicket.markup.MarkupStream, org.apache.wicket.markup.ComponentTag)
protected void onComponentTag(ComponentTag tag)
Component
onComponentTag
in class Component
tag
- Tag to modifyComponent.onComponentTag(org.apache.wicket.markup.ComponentTag)
protected final void onComponentTagBody(MarkupStream markupStream, ComponentTag openTag)
MarkupContainer
onComponentTagBody
in class MarkupContainer
markupStream
- The markup streamopenTag
- The open tag for the bodyComponent.onComponentTagBody(org.apache.wicket.markup.MarkupStream,
org.apache.wicket.markup.ComponentTag)
public void renderHead(HtmlHeaderContainer container)
Component
NOT intended for overriding by framework clients. Rather, use
IHeaderContributor.renderHead(org.apache.wicket.markup.html.IHeaderResponse)
renderHead
in class Component
container
- The HtmlHeaderContainerComponent.renderHead(org.apache.wicket.markup.html.internal.HtmlHeaderContainer)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |