Danny, assume a panelPopup holds a Facelets ui:included component. Thus in general it can be anything. All actions originated by panel contents can either to close the panel or to change its contents. In the latter case, refreshing should not affect the overall page.
My actual modal panel xhtml component is:

<ui:component>
    <c:if test="#{bean.visible}">
        <t:saveState id="component" value="#{bean.component}"/>
        <t:saveState id="componentBeanName" value="#{bean.componentBeanName}"/>
        <tr:panelPopup id="modal" alignment="center" modal="true">
            <f:facet name="trigger">
                 <tr:commandButton id="modalTrigger" text="d" inlineStyle="visibility: hidden" />
            </f:facet>
            <cx:include src="" bean="#{bean.componentBean}" container="#{container}"/>
        </tr:panelPopup>
    </c:if>
</ui:component>

This component is included in the app. page but in turn it can contain any other panel (see cx:include, just some sugar to replace ui:include).
This inclusion is runtime-defined by #{bean.component}. When such component changes (think about a multi-panel wizard hosting next/previous widgets), there is no reason to refresh the entire page, unless the popup panel itself has to disappear (!visible). The popup panel is activated by an "onload" script which clicks modalTrigger, since till now this component misses any other activation way.

Btw, such PPR would be a nice effect on the overall page as well: in my app. there is only one single page, where a number of facelets components act as containers, even in nesting mode. In all cases where a single panel (e.g. xhtml component) is replaced, there is no reason to redraw all others.

Concerning dialogs - so far I thought they lead to rendering pages, an effect I wanted to avoid. But maybe "lightweight" leads to something different, I miss a clear picture about when using either popup panels or dialogs.

-- Renzo


Danny Robinson wrote:
Renzo,

Do you have a small test-case you can post, you certainly should be able to use PPR inside a model panelPopup.  Although it may be a better option to use lightweight dialogs for what you're suggesting.

Danny

On 9/25/07, Renzo Tomaselli <[EMAIL PROTECTED]> wrote:
Hi, I'm using tr:panelPopup in modal mode only. It works well, but since
it can host alternative panels (e.g. components in the Facelets sense),
the entire page is refreshed whenever a panel is replaced by another
one. Not a nice effect.
Panel navigation occurs from user actions (next/previous) inside the
panel itself.
AFAIK PPR is there just to avoid this effect, e.g. I should be able
somehow to force panel contents refresh only.
But I don't know how to do it.
Suggestions are welcome.

-- Renzo




--
Chordiant Software Inc.
www.chordiant.com

Reply via email to