I don't see why t:schedule is not usable in tobago.

Yes, it looks for a parent UIForm. With tobago, is there one in the component 
tree or not? I would certainly presume so..

The schedule code does look for an ancestor form, but what is wrong with that? 
There should always be exactly one..

The only problem that I can see is that when the scheduler renderer finds a 
UIForm, then emits its clientId into the javascript it outputs the right value. 
In a tobago environment, it is emitting the value "root" (which is the id 
property of the tobago component) rather than "root::form".

Where does "root::form" come from?

I don't know much about Tobago, but would guess that either:
(1) the tc:page component implements UIForm, or
(2) the tc:page automatically creates a child UIForm

In the case of (1), perhaps the component should implement NamingContainer, and 
override getClientId to return "root::form" or somesuch.

In the case of (2), tc:page should implement NamingContainer, and set the id of 
the child UIForm component to "form". Then its getClientId would return 
"root:form".

There is also the possibility that the t:schedule renderer is a little buggy, 
and is outputting into the javascript the raw componentid of the UIForm it 
finds, rather than its clientId. But if so, that is reasonably easily fixed.

Regards,

Simon

---- Zied Hamdi <[EMAIL PROTECTED]> schrieb:
> That's exactly what I didn't want to hear :-). Thanks for the patch, I'll
> give it a try and tell you if it works.
> 
> Regards,
> Zied
> 
> 
> 
> 2007/12/13, Volker Weber <[EMAIL PROTECTED]>:
> >
> > Hi,
> >
> > i think the t:schedule could not be used inside tobago.
> >
> > it looks like the schedule component looks for the first parent UIForm
> > and takes this id as the id for a html form tag to submit. This can't
> > work in tobago, because there is only one html form tag surrounding
> > all content.
> > And nesting form tags is not allowed in html.
> >
> > We can't fix this in tobago, to make the schedule work in tobago there
> > must added a workarround in the schedule's javascript to find the root
> > form tag.
> >
> >
> > Regards,
> >    Volker
> >
> >
> >
> >
> > 2007/12/13, Zied Hamdi <[EMAIL PROTECTED]>:
> > > Hi Volker,
> > >
> > > Thank you for your fast reply. I'm sorry the preceding mail was against
> > > another source code (as in my app).
> > >
> > > But what I noticed is that, because tc:page creates a form alone, the
> > form
> > > id is always "pageId::form"
> > >
> > > The tomahawk schedule seams to search for a form with the same name as
> > > pageId when no explicit form is specified:
> > >
> > >
> > >
> > > < tc:page
> > >
> > >       xmlns=" http://www.w3.org/1999/xhtml";
> > >
> > >       xmlns:t=" http://myfaces.apache.org/tomahawk";
> > >
> > >       xmlns:tc="
> > > http://myfaces.apache.org/tobago/component";
> > >
> > >       xmlns:tx="
> > > http://myfaces.apache.org/tobago/extension";
> > >
> > >       xmlns:h=" http://java.sun.com/jsf/html";
> > >
> > >       xmlns:f=" http://java.sun.com/jsf/core";
> > >
> > >       id= "root">
> > >
> > >        <!--  The schedule itself -->
> > >
> > >        < div style ="position: absolute; left: 220px; top: 5px; right:
> > 5px;"
> > > ><t:schedule
> > >
> > >              value ="#{contractCtrl.scheduleModel.model}"
> > >
> > >              id ="schedule1"
> > >
> > >              rendered ="true"
> > >
> > >              visibleEndHour ="18"
> > >
> > >              visibleStartHour ="8"
> > >
> > >              workingEndHour ="17"
> > >
> > >              workingStartHour ="9"
> > >
> > >              readonly ="false"
> > >
> > >              theme ="evolution"
> > >
> > >              tooltip= "true" /></div >
> > >
> > > </ tc:page>
> > >
> > >
> > >
> > > Outputs this snippet:
> > >
> > >
> > >
> > >       <form
> > >
> > >              name ="root::form"
> > >
> > >              action ="/IntoServicesWeb/test/schedule.jsf"
> > >
> > >              id ="root::form"
> > >
> > >              method ="post"
> > >
> > >              accept-charset ="utf-8" ><input
> > >
> > >              type ="hidden"
> > >
> > >              name ="root::form-action"
> > >
> > >              id ="root::form-action"
> > >
> > >              value ="" >
> > >
> > >        < div style ="position: absolute; left: 220px; top: 5px; right:
> > 5px;"
> > > ><input
> > >
> > >              type ="hidden"
> > >
> > >              name ="root:schedule1" ><input
> > >
> > >              type ="hidden"
> > >
> > >              name ="root:schedule1_last_clicked_date"
> > > ><input
> > >
> > >              type= "hidden"
> > >
> > >             name="root:schedule1_last_clicked_y" >
> > >
> > >       <div
> > >
> > >             class="schedule-compact-evolution"
> > >
> > >             style="border-style: none; overflow: hidden;" >
> > >
> > >       <table
> > >
> > >              class ="month"
> > >
> > >              style ="position: relative; left: 0px; top: 0px; width:
> > 100%;"
> > >
> > >              cellpadding ="0"
> > >
> > >              cellspacing ="1"
> > >
> > >              border ="0"
> > >
> > >              width ="100%" >
> > >
> > >              < tbody>
> > >
> > >                    < tr>
> > >
> > >                          < td
> > >
> > >                               rowspan ="2"
> > >
> > >                               class ="inactive-day workday"
> > >
> > >                               style ="height: 121px; width: 16.666666%;"
> > >
> > >
> > >                          < table
> > >
> > >                               class ="day"
> > >
> > >                               style ="height: 121px; width: 100%;"
> > >
> > >                               cellpadding ="0"
> > >
> > >                               cellspacing ="0" >
> > >
> > >                               < tr>
> > >
> > >                                     < td
> > >
> > >                                           class ="header"
> > >
> > >                                           style ="height:
> > > 18px; width: 100%; overflow: hidden"
> > >
> > >                                           id
> > > ="root:schedule1_header_20071126" >26 nov. 2007 </td >
> > >
> > >                               </ tr>
> > >
> > >                               < tr>
> > >
> > >                                     < td
> > >
> > >                                           class ="content"
> > >
> > >                                           style ="height:
> > > 103px; width: 100%;" >
> > >
> > >                                     < div
> > >
> > >                                           class
> > > ="contentview"
> > >
> > >                                           style ="width:
> > > 100%; height: 100%; overflow: auto; vertical-align: top;" >
> > >
> > >                                     < div
> > >
> > >                                           style ="width:
> > > 100%; height: 100%; vertical-align: top;"
> > >
> > >                                           id
> > > ="root:schedule1_body_20071126" >
> > >
> > >                                     < table style ="width:
> > > 100%;" >
> > >
> > >                                           < tr>
> > >
> > >                                                 < td
> > >
> > >                                                       style
> > > ="width: 100%;"
> > >
> > >
> > > onmouseover ="return makeTrue(domTT_activate(this, event, 'caption',
> > > 'Menage', 'content', '&lt;i&gt;Alice du four (Pour Hedia)&lt;/i&gt;',
> > > 'trail', true));" >< a
> > >
> > >                                                       href
> > > ="#"
> > >
> > >
> > > onmouseup ="fireEntrySelected('root', 'root:schedule1', '688133');" >
> > > 3:28PM-4:28PM: Menage</ a></ td>
> > >
> > >
> > >
> > >
> > > So even when I want to enfore rules by specifying my own form with my
> > own
> > > id, the tobago libs use a tobago js function to retreive it, but other
> > libs
> > > are lost:
> > >
> > > I was trying this page:
> > >
> > >
> > > < tc:page
> > >
> > >       xmlns= " http://www.w3.org/1999/xhtml";
> > >
> > >       xmlns:t= " http://myfaces.apache.org/tomahawk";
> > >
> > >       xmlns:tc= "
> > > http://myfaces.apache.org/tobago/component";
> > >
> > >       xmlns:tx= "
> > > http://myfaces.apache.org/tobago/extension";
> > >
> > >       xmlns:h= " http://java.sun.com/jsf/html";
> > >
> > >       xmlns:f= " http://java.sun.com/jsf/core";
> > >
> > >       id ="root" >
> > >
> > >       < tc:form id = "testS" >
> > >
> > >             <!--  The schedule itself -->
> > >
> > >             < div style ="position: absolute; left: 220px; top: 5px;
> > right:
> > > 5px;" >
> > >
> > >                 < t:schedule
> > >
> > >                   value
> > > ="#{contractCtrl.scheduleModel.model}"
> > >
> > >                   id ="schedule1"
> > >
> > >                   rendered ="true"
> > >
> > >                   visibleEndHour ="18"
> > >
> > >                   visibleStartHour ="8"
> > >
> > >                   workingEndHour ="17"
> > >
> > >                   workingStartHour ="9"
> > >
> > >                   readonly ="false"
> > >
> > >                   theme ="evolution"
> > >
> > >                   tooltip ="true" /></ div >
> > >
> > >       </ tc:form>
> > >
> > > </ tc:page>
> > >
> > >
> > >
> > > I can't get why we get this html output:
> > >
> > > < form
> > >
> > >       name ="root::form"
> > >
> > >       action ="/IntoServicesWeb/test/schedule.jsf"
> > >
> > >       id ="root::form"
> > >
> > >       method ="post"
> > >
> > >       accept-charset ="utf-8" >< input
> > >
> > >       type ="hidden"
> > >
> > >       name ="root::form-action"
> > >
> > >       id ="root::form-action"
> > >
> > >       value ="" >
> > >
> > > < div style ="position: absolute; left: 220px; top: 5px; right: 5px;"
> > > ><input
> > >
> > >       type ="hidden"
> > >
> > >       name ="root:testS:schedule1" >< input
> > >
> > >       type ="hidden"
> > >
> > >       name ="root:testS:schedule1_last_clicked_date" ><
> > > input
> > >
> > >       type ="hidden"
> > >
> > >       name ="root:testS:schedule1_last_clicked_y" >
> > >
> > > < div
> > >
> > >       class ="schedule-compact-evolution"
> > >
> > >       style ="border-style: none; overflow: hidden;" >
> > >
> > > < table
> > >
> > >       class ="month"
> > >
> > >       style ="position: relative; left: 0px; top: 0px; width: 100%;"
> > >
> > >       cellpadding ="0"
> > >
> > >       cellspacing ="1"
> > >
> > >       border ="0"
> > >
> > >       width ="100%" >
> > >
> > >       < tbody>
> > >
> > >             < tr>
> > >
> > >                   < td
> > >
> > >                         rowspan ="2"
> > >
> > >                         class ="inactive-day workday"
> > >
> > >     ...
> > >
> > > [Nachricht gekürzt]
> >
> >
> > --
> > inexso - information exchange solutions GmbH
> > Bismarckstraße 13      | 26122 Oldenburg
> > Tel.: +49 441 4082 356 |
> > FAX:  +49 441 4082 355 | www.inexso.de
> >
> 
> 
> 
> -- 
> Zied Hamdi
> zatreex.sourceforge.net

Reply via email to