myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Robinson" <andrew.rw.robin...@gmail.com>
Subject Re: [Trinidad] panelPopup: how to avoid full page refreshing
Date Tue, 25 Sep 2007 13:44:01 GMT
Why can't you just put a component in the top level of the included
page that has partialTriggers for your event generating components?
There is no need to re-render the entire page. The PPR works on client
IDs, so it doesn't matter if the component is in the DIV tag of a
popup (the popup is nothing special when it comes to HTML, it just has
some CSS positioning on it).


On 9/25/07, Renzo Tomaselli <renzo.tomaselli@tecnotp.it> wrote:
>
>  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" onclick="return false;"/>
>              </f:facet>
>              <cx:include src="#{bean.component}"
> 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 <renzo.tomaselli@tecnotp.it> 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

Mime
View raw message