myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Simon Lessard" <simon.lessar...@gmail.com>
Subject Re: [Trinidad] tr:panelTabbed examples?
Date Wed, 04 Jul 2007 17:50:27 GMT
Hello Francisco,

your problem is with partialTriggers, you must not use "tab" the id of the
navigation item won't be simply that. since navigationPane is an
UIXIterator, it's also a NamingContainer, thus it will generated different
client ids including the rowKey. You might have to programatically add the
navigationPane as a partialTarget using RequestContext. You can then set the
partialTriggers value of your outputText to the navigationPane's id. I think
it will work.


Regards,

~ Simon

On 7/4/07, Francisco Passos <francisco.passos@gmail.com> wrote:
>
> I meant panelTabbed, sorry.
>
> On 7/4/07, Francisco Passos <francisco.passos@gmail.com> wrote:
> >
> > Just tried setting partialTriggers="tab" on the panelPage. Same thing
> > still.
> >
> > On 7/4/07, Simon Lessard < simon.lessard.3@gmail.com> wrote:
> > >
> > > Hello Francisco,
> > >
> > > Hmmm, strange... Did you try to set a partialTriggers on the
> > > navigationPane?
> > >
> > >
> > > Regards,
> > >
> > > ~ Simon
> > >
> > > On 7/4/07, Francisco Passos <francisco.passos@gmail.com> wrote:
> > > >
> > > > Renzo, yours is a cool solution, but it depends on the way the
> > > > subcomponents are stamped, which is an information I believe we
> > > > theoretically shouldn't depend on, unless we had some kind of control
over
> > > > the way the stamping goes.
> > > >
> > > > Simon, I'm trying your solution and here's what I've come to:
> > > >
> > > > <tr:navigationPane id="tabber" hint="tabs" value="#{
> > > > fichaBean.gruposAtributos}" var="grupoAtributos">
> > > >         <f:facet name="nodeStamp">
> > > >             <tr:commandNavigationItem action="#{
> > > > fichaBean.selectGroup}" id="tab" text="#{grupoAtributos.ndenomin}"
> > > > partialSubmit="true" selected="#{ grupoAtributos.igrupoid eq
> > > > fichaBean.selectedGroupId}">
> > > >                 <tr:setActionListener from="#{
> > > > grupoAtributos.igrupoid}" to="#{fichaBean.selectedGroupId}" />
> > > >             </tr:commandNavigationItem>
> > > >         </f:facet>
> > > >     </tr:navigationPane>
> > > >
> > > >     <tr:outputText value="#{fichaBean.selectedGroupId}"
> > > > partialTriggers="tab" />
> > > >
> > > >
> > > > I've checked that the selectedGroupId property is being updated when
> > > > I click on the tab, which is the good news :)
> > > >
> > > > The bad news is that the tab isn't changing its aspect to show it is
> > > > selected. And the outputText below does not update either. I've tried
> > > > setting partialTriggers to "tab" as well as "tabber". What am I still
> > > > missing?
> > > >
> > > > On 7/4/07, Renzo Tomaselli <renzo.tomaselli@tecnotp.it> wrote:
> > > > >
> > > > >  I simply parse the component id. Being an iterating component -
> > > > > Tridindad adds a progressive index while stamping out subcomponents:
> > > > >
> > > > >     public void navigation(ActionEvent event) {
> > > > >         FacesContext fc = FacesContext.getCurrentInstance();
> > > > >         UIComponent actionItem = event.getComponent();
> > > > >         String id = actionItem.getClientId(fc);
> > > > >         int i = id.lastIndexOf(NamingContainer.SEPARATOR_CHAR);
> > > > >         if (i >= 0) {
> > > > >             id = id.substring(0, i);
> > > > >             i = id.lastIndexOf(NamingContainer.SEPARATOR_CHAR);
> > > > >             id = id.substring(i + 1);
> > > > >             int newSelected = Integer.parseInt(id);
> > > > >        .....
> > > > >
> > > > > This should work well for all Trinidad iterating components,
> > > > > provided that stamping includesTrinidad components only. Otherwise,
the
> > > > > index can be easily forgotten by Trinidad (then duplicated id warnings),
> > > > > don't ask me why.
> > > > >
> > > > > -- Renzo
> > > > >
> > > > > Francisco Passos wrote:
> > > > >
> > > > > Thank you, your example is great.
> > > > >
> > > > > However, how do you know what tab has been clicked, so you can act
> > > > > accordingly on the actionListener?
> > > > >
> > > > >
> > > > > On 7/2/07, * Renzo Tomaselli* <renzo.tomaselli@tecnotp.it>
wrote:
> > > > >
> > > > > Francisco,
> > > > >     component tr:navigationPane is an iterating component by
> > > > > itself - no need for an explicit loop. I do it like this (using Facelets):
> > > > >
> > > > > <ui:component>
> > > > >     <c:if test="#{bean.visible}">
> > > > >         <t:saveState id="selected" value="#{bean.selected}"/>
> > > > >         <t:saveState id="tabs" value="#{bean.tabs}"/>
> > > > >         <tr:navigationPane id="tabber" hint="tabs" value="#{
> > > > > bean.tabModel}" var="tab" styleClass="navigator">
> > > > >             <f:facet name="nodeStamp">
> > > > >                 <tr:commandNavigationItem text="#{tab.label}"
> > > > > actionListener="#{bean.navigation}"
> > > > >                         id="tab" selected="#{cx:isSelected(bean,
> > > > > tab)}" icon="#{tab.icon}"/>
> > > > >             </f:facet>
> > > > >         </tr:navigationPane>
> > > > >         <cx:include src="#{bean.component}" bean="#{
> > > > > bean.componentBean}" container="#{container}tabby:"/>
> > > > >     </c:if>
> > > > > </ui:component>
> > > > >
> > > > > Here everythings - from the tab list to the child component to
> > > > > appear below the tabs - is dynamically taken from a bean.
> > > > > Tab list and current selection are made persistent across requests
> > > > > by means of saveState (my beans are only request-scoped).
> > > > > Hope it helps.
> > > > >
> > > > > -- Renzo
> > > > >
> > > > >
> > > > >
> > > > > Francisco Passos wrote:
> > > > >
> > > > > By the way, I'm trying to populate dinamically either a
> > > > > panelTabbed or a navigationPane.
> > > > >
> > > > > When using ui:repeat, panelTabbed renders incorrectly (no content
> > > > > appears) and this is shown on the logs:
> > > > > WARNING: Only tr:showDetailItem is allowed as child of
> > > > > tr:panelTabbed.
> > > > >
> > > > > When using ui:repeat and navigationPane, an exception is thrown:
> > > > > SEVERE: Warning: illegal component hierarchy detected, expected
> > > > > UIXCommand but found another type of component instead.
> > > > > java.lang.ClassCastException : com.sun.facelets.component.UIRepeat
> > > > >
> > > > > I'm going to try my luck with JSTL now, nevertheless if you know
> > > > > of a solution, do tell :)
> > > > >
> > > > > --Francisco
> > > > >
> > > > > On 7/2/07, * Francisco Passos* <francisco.passos@gmail.com>
wrote:
> > > > >
> > > > > Simon and Matthias,
> > > > >
> > > > > thank you for clearing my doubt. By the way, if I may leave the
> > > > > suggestion, it would be cool if panelTabbed had alternative ways
for
> > > > > presentation, much like navigationPage.
> > > > >
> > > > > As far as the wiki, I've added the missing entry to the page for
> > > > > completeness, although obviously it may still be incomplete.
> > > > >
> > > > > --Francisco
> > > > >
> > > > > On 7/2/07, *Matthias Wessendorf* < matzew@apache.org> wrote:
> > > > >
> > > > > Francisco,
> > > > >
> > > > > we started a wiki, containing infos like this, in the past,
> > > > > but never updated it.
> > > > >
> > > > > feel free to join ;-)
> > > > >
> > > > > -M
> > > > >
> > > > > On 7/2/07, Simon Lessard < simon.lessard.3@gmail.com> wrote:
> > > > > > Hello Francisco,
> > > > > >
> > > > > > No, menuTabs was replaced by navigationPane with hint attribute
> > > > > set to tabs.
> > > > > >
> > > > > >
> > > > > > Regards,
> > > > > >
> > > > > > ~ Simon
> > > > > >
> > > > > >
> > > > > > On 7/2/07, Francisco Passos <francisco.passos@gmail.com>
wrote:
> > > > > > > Thank you.
> > > > > > >
> > > > > > > The correspondence I couldn't find in the wiki was for
the
> > > > > component
> > > > > > af:menuTabs, but probably panelTabbed also replaces it.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > On 6/29/07, Adam Winer < awiner@gmail.com> wrote:
> > > > > > > > Actually, the Wiki page shows the renaming:
> > > > > > > > panelTabbed was formerly called showOneTabs.
> > > > > > > >
> > > > > > > > There's an example in trinidad-demo.
> > > > > > > >
> > > > > > > > -- Adam
> > > > > > > >
> > > > > > > >
> > > > > > > > On 6/29/07, Francisco Passos < francisco.passos@gmail.com
>
> > > > > wrote:
> > > > > > > > > Hello there.
> > > > > > > > >
> > > > > > > > > I'm evaluating the usage of a panelTabbed. Are
there any
> > > > > working
> > > > > > examples of
> > > > > > > > > this component?
> > > > > > > > >
> > > > > > > > > The only example I have is from an ADF Faces
app, which
> > > > > uses
> > > > > > af:menuTabs,
> > > > > > > > > but http://wiki.apache.org/myfaces/Trinidad_renaming
> > > > > > does
> > > > > > > > > not mention any changes to this component.
> > > > > > > > >
> > > > > > > > > Thanks,
> > > > > > > > > Francisco
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Matthias Wessendorf
> > > > >
> > > > > further stuff:
> > > > > blog: http://matthiaswessendorf.wordpress.com/
> > > > > mail: matzew-at-apache-dot-org
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > >
> >
>

Mime
View raw message