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', '<i>Alice du four (Pour Hedia)</i>', > > > '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

