|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.wicket.Component org.apache.wicket.MarkupContainer org.apache.wicket.markup.html.WebMarkupContainer org.apache.wicket.markup.html.border.Border
public abstract class Border
A border component has associated markup which is drawn and determines placement of 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.
The border body container will automatically be created for you and added to the border
container. It is accessible via getBodyContainer()
. In case the body markup is not an
immediate child of border (see the example below), then you must use code such as
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>The component "someContainer" in the previous example must be added to the border, and not the body, which is achieved via
addToBorder(Component...)
.
add(Component...)
or addToBorderBody(Component...)
will add a child component
to the border body as shown in the example below.
<html> <body> <span wicket:id = "myBorder"> <input wicket:id="name"/;> </span> </body> </html>This implementation does not apply any magic with respect to component handling. In doubt think simple. But everything you can do with a MarkupContainer or Component, you can do with a Border or its Body as well.
Nested Class Summary | |
---|---|
class |
Border.BorderBodyContainer
The container to be associated with the <wicket:body> tag |
Field Summary | |
---|---|
static String |
BODY
|
static String |
BORDER
|
Fields inherited from class org.apache.wicket.Component |
---|
ENABLE, FLAG_INITIALIZED, FLAG_REMOVING_FROM_HIERARCHY, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED8, PATH_SEPARATOR, RENDER |
Constructor Summary | |
---|---|
Border(String id)
|
|
Border(String id,
IModel<?> model)
|
Method Summary | |
---|---|
Component |
add(Behavior... behaviors)
Add a behavior to the border's body. |
MarkupContainer |
add(Component... children)
This is for all components which have been added to the markup like this: |
Component |
addToBorder(Behavior... behaviors)
|
MarkupContainer |
addToBorder(Component... children)
|
Component |
addToBorderBody(Behavior... behaviors)
|
Border |
addToBorderBody(Component... child)
|
Border.BorderBodyContainer |
getBodyContainer()
|
Component |
getFromBorderBody(String path)
|
IMarkupFragment |
getMarkup(Component child)
Search for the child markup in the file associated with the Border. |
protected IMarkupSourcingStrategy |
newMarkupSourcingStrategy()
If Component.getMarkupSourcingStrategy() returns null, this method will be called. |
Component |
resolve(MarkupContainer container,
MarkupStream markupStream,
ComponentTag tag)
Try to resolve the tag, then create a component, add it to the container and render it. |
Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainer |
---|
getWebPage, getWebRequest |
Methods inherited from class org.apache.wicket.MarkupContainer |
---|
addOrReplace, autoAdd, contains, get, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkupType, hasAssociatedMarkup, internalAdd, iterator, iterator, onComponentTagBody, onMarkupAttached, onRender, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, swap, toString, toString, visitChildren, visitChildren |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final String BODY
public static final String BORDER
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()
public MarkupContainer add(Component... children)
<span wicket:id="myBorder"> <input wicket:id="text1" .. /> ... </span>Whereas
addToBorder(Component...)
will add a component associated with the following
markup:
<wicket:border> <form wicket:id="myForm" .. > <body/> </form> </wicket:border>
add
in class MarkupContainer
children
-
public Component add(Behavior... behaviors)
add
in class Component
behaviors
- The behavior modifier(s) to be added
add(Component...)
public MarkupContainer addToBorder(Component... children)
children
-
add(Component...)
public Component addToBorder(Behavior... behaviors)
behaviors
-
add(Component...)
public Border addToBorderBody(Component... child)
child
-
add(Component...)
public Component addToBorderBody(Behavior... behaviors)
behaviors
-
add(Component...)
public final Component getFromBorderBody(String path)
path
-
addToBorderBody(Component...)
,
MarkupContainer.get(String)
public Component resolve(MarkupContainer container, MarkupStream markupStream, ComponentTag tag)
resolve
in interface IComponentResolver
container
- The container parsing its markupmarkupStream
- The current markupStreamtag
- The current component tag while parsing the markup
protected IMarkupSourcingStrategy newMarkupSourcingStrategy()
Component.getMarkupSourcingStrategy()
returns null, this method will be called. By default
it returns null, which means that a default markup strategy will be attached to the
component.
Please note that markup source strategies are not persisted. Instead they get re-created by calling this method again. That's ok since markup sourcing strategies usually do not maintain a state.
newMarkupSourcingStrategy
in class Component
public IMarkupFragment getMarkup(Component child)
getMarkup
in class MarkupContainer
child
- The child component. If null, the container's markup will be returned. See Border,
Panel or Enclosure where getMarkup(null) != getMarkup().
Component.getMarkup()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |