|
||||||||||
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.panel.Panel org.apache.wicket.markup.html.panel.FeedbackPanel org.apache.wicket.feedback.FencedFeedbackPanel
public class FencedFeedbackPanel
A specialized feedback panel that only displays messages from inside a fence defined by a
container component. Instances will not show messages coming from inside a nested fence, allowing
the nesting of these panels to work correctly without displaying the same feedback message twice.
A constructor that does not takes a fencing component creates a catch-all panel that shows
messages that do not come from inside any fence or from the Session
.
It is often very useful to have feedback panels that show feedback that comes from inside a certain container only. For example given a page with the following structure:
Page Form1 Feedback1 Input1 Form2 Feedback2 Input2
we want Feedback2 to show messages originating only from inside Form2 and Feedback1 to show messages only originating from Form1 but not Form2 (because messages originating from Form2 are already shown by Feedback2).
It is fairly simple to configure Feedback2 - a ContainerFeedbackMessageFilter
added to
the regular FeedbackPanel
will do the trick. The hard part is configuring Feedback1. We
can add a ContainerFeedbackMessageFilter
to it, but since Form2 is inside Form1 the
container filter will allow messages from both Form1 and Form2 to be added to FeedbackPanel1.
This is where the FencedFeedbackPanel
comes in. All we have to do is to make
FeedbackPanel2 a FencedFeedbackPanel
with the fencing component defined as Form2 and
Feedback1 a FencedFeedbackPanel
with the fencing component defined as Form1.
FencedFeedbackPanel
will only show messages that original from inside its fencing
component and not from inside any descendant component that acts as a fence for another
FencedFeedbackPanel
.
When created with a null
fencing component or using a constructor that does not take one
the panel will only display messages that do not come from inside a fence. It will also display
messages that come from Session
. This acts as a catch-all panels showing messages that
would not be shown using any other instance of the FencedFeedbackPanel
created with a
fencing component. There is usually one instance of such a panel at the top of the page to
display notifications of success.
Field Summary |
---|
Fields inherited from class org.apache.wicket.markup.html.panel.Panel |
---|
PANEL |
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, PARENT_PATH, PATH_SEPARATOR, RENDER |
Constructor Summary | |
---|---|
FencedFeedbackPanel(String id)
Creates a catch-all feedback panel that will show messages not coming from any fence, including messages coming from Session |
|
FencedFeedbackPanel(String id,
Component fence)
Creates a feedback panel that will only show messages if they original from, or inside of, the fence component and not from any inner fence. |
|
FencedFeedbackPanel(String id,
Component fence,
IFeedbackMessageFilter filter)
Creates a fenced feedback panel with a filter. |
|
FencedFeedbackPanel(String id,
IFeedbackMessageFilter filter)
Creates a catch-all instance with a filter. |
Method Summary | |
---|---|
protected FeedbackMessagesModel |
newFeedbackMessagesModel()
Gets a new instance of FeedbackMessagesModel to use. |
protected void |
onReAdd()
This method is called whenever a component is re-added to the page's component tree, if it had been removed at some earlier time, i.e., if it is already initialized (see Component.isInitialized() ). |
protected void |
onRemove()
Called to notify the component it is being removed from the component hierarchy Overrides of this method MUST call the super implementation, the most logical place to do this is the last line of the override method. |
Methods inherited from class org.apache.wicket.markup.html.panel.FeedbackPanel |
---|
anyErrorMessage, anyMessage, anyMessage, getCSSClass, getCurrentMessages, getFeedbackMessagesModel, getFilter, getSortingComparator, isVersioned, newMessageDisplayComponent, setFilter, setMaxMessages, setSortingComparator |
Methods inherited from class org.apache.wicket.markup.html.panel.Panel |
---|
newMarkupSourcingStrategy |
Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainer |
---|
getWebPage, getWebRequest, getWebResponse, getWebSession |
Methods inherited from class org.apache.wicket.MarkupContainer |
---|
add, addOrReplace, autoAdd, contains, get, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkup, getMarkupType, internalAdd, internalInitialize, iterator, iterator, onAfterRenderChildren, onComponentTagBody, onRender, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, swap, toString, toString, visitChildren, visitChildren, visitChildren, visitChildren |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public FencedFeedbackPanel(String id)
Session
id
- public FencedFeedbackPanel(String id, Component fence)
fence
component and not from any inner fence.
id
- fence
- public FencedFeedbackPanel(String id, IFeedbackMessageFilter filter)
id
- filter
- FencedFeedbackPanel(String)
public FencedFeedbackPanel(String id, Component fence, IFeedbackMessageFilter filter)
id
- fence
- filter
- FencedFeedbackPanel(String, Component)
Method Detail |
---|
protected void onRemove()
Component
onRemove
in class Component
protected FeedbackMessagesModel newFeedbackMessagesModel()
FeedbackPanel
newFeedbackMessagesModel
in class FeedbackPanel
protected void onReAdd()
Component
Component.isInitialized()
).
This is similar to onInitialize, but only comes after the component has been removed and
then added again:
onReAdd
in class Component
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |