public class FencedFeedbackPanel extends FeedbackPanel
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.
ENABLE, FLAG_INITIALIZED, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER, RFLAG_CONTAINER_DEQUEING
Constructor and Description |
---|
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.
|
Modifier and Type | Method and Description |
---|---|
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.
|
anyErrorMessage, anyMessage, anyMessage, getCSSClass, getCurrentMessages, getFeedbackMessagesModel, getFilter, getSortingComparator, isVersioned, newMessageDisplayComponent, newMessageItem, setFilter, setMaxMessages, setSortingComparator
getRegionMarkup, newMarkupSourcingStrategy
getWebApplication, getWebPage, getWebRequest, getWebResponse, getWebSession
add, addDequeuedComponent, addOrReplace, autoAdd, canDequeueTag, contains, dequeue, dequeue, dequeuePreamble, findChildComponent, findComponentToDequeue, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkup, getMarkupType, internalAdd, internalInitialize, iterator, iterator, newDequeueContext, onComponentTagBody, onDetach, onInitialize, onRender, queue, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, stream, streamChildren, toString, toString, visitChildren, visitChildren
add, addStateChange, beforeRender, canCallListener, canCallListenerAfterExpiry, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, clearOriginalDestination, configure, continueToOriginalDestination, createConverter, debug, detach, detachModel, detachModels, determineVisibility, error, exceptionMessage, fatal, findMarkupStream, findPage, findParent, findParentWithAssociatedMarkup, getAjaxRegionMarkupId, getApplication, getBehaviorById, getBehaviorId, getBehaviors, getBehaviors, getClassRelativePath, getConverter, getDefaultModel, getDefaultModelObject, getDefaultModelObjectAsString, getDefaultModelObjectAsString, getEscapeModelStrings, getFeedbackMessages, getFlag, getId, getInnermostModel, getInnermostModel, getLocale, getLocalizer, getMarkup, getMarkupAttributes, getMarkupId, getMarkupId, getMarkupIdFromMarkup, getMarkupIdImpl, getMarkupSourcingStrategy, getMetaData, getModelComparator, getOutputMarkupId, getOutputMarkupPlaceholderTag, getPage, getPageRelativePath, getParent, getPath, getRenderBodyOnly, getRequest, getRequestCycle, getRequestFlag, getResponse, getSession, getSizeInBytes, getStatelessHint, getString, getString, getString, getStyle, getVariation, hasBeenRendered, hasErrorMessage, hasFeedbackMessage, info, initModel, internalOnModelChanged, internalRenderComponent, internalRenderHead, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isInitialized, isRenderAllowed, isRendering, isStateless, isVisibilityAllowed, isVisible, isVisibleInHierarchy, markRendering, modelChanged, modelChanging, onAfterRender, onBeforeRender, onComponentTag, onConfigure, onEvent, onModelChanged, onModelChanging, redirectToInterceptPage, remove, remove, render, renderComponentTag, rendered, renderHead, renderPart, renderPlaceholderTag, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, send, setAuto, setDefaultModelObject, setEnabled, setEscapeModelStrings, setFlag, setIgnoreAttributeModifier, setMarkup, setMarkupId, setMarkupIdImpl, setMetaData, setOutputMarkupId, setOutputMarkupPlaceholderTag, setParent, setRenderBodyOnly, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, success, urlFor, urlFor, urlFor, urlForListener, urlForListener, visitParents, visitParents, warn, wrap
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
beforeRender
dequeue, newDequeueContext
forEach, spliterator
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)
protected void onRemove()
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:
Copyright © 2006–2018 Apache Software Foundation. All rights reserved.