OK, that seems to work now when I add in explicit calls to addChild in the .script associated with the TabContainer component.
Next question is about dynamically adding tabs. I can get a simple version of the Event Listener in Tapestry 4.1 working ok where one form element can have a given event listened to e.g. onchange for a select element. e.g. @EventListener(events = "onchange", elements = "tabSelect", submitForm = "myForm") public void tabSelected(){ log.info("Hi"); } <span jwcid="[EMAIL PROTECTED]"> <span jwcid="[EMAIL PROTECTED]" value="ognl:selectedTab" model="ognl:tabs"/> <span jwcid="[EMAIL PROTECTED]" label="literal:Add a tab"/> </span> But...I can't see how I can update the definition of the element to allow me to use the EventListener with a method that includes a BrowserEvent or a RequestCycle in the definition. When I just update the method I get an error telling me it can't find a version of the method with no parameters I need to capture the browser event in order to know what the user has selected so I can add the correct tab. e.g. @EventListener(events = "onchange", elements = "tabSelect", submitForm = "myForm") public void tabSelected(Browser event){ log.info("Hi"); } Exception: no listener method named 'tabSelected' suitable for no parameters found in ... Am I missing something obvious? I've tried looking through all the on-line docs but I can't find anything covering this. Thanks, Dom Dom Couldwell Global Markets Research +1(212)250-7082 Dom Couldwell <[EMAIL PROTECTED]> 08/09/2006 10:33 AM To "Tapestry users" <users@tapestry.apache.org> cc Please respond to "Tapestry users" <users@tapestry.apache.org> Subject Re: Tapestry 4.1 + Dojo Tabs I think the addChild call has implicitly been made as the contents of the first tab are displayed, it's just the actual tabs at the tab of the screen that are missing. I'll try adding in an explicit addChild call to the script of the LinkPane component. Dom Couldwell Global Markets Research +1(212)250-7082 "Jesse Kuhnert" <[EMAIL PROTECTED]> 08/09/2006 10:20 AM To "Tapestry users" <users@tapestry.apache.org> cc Please respond to "Tapestry users" <users@tapestry.apache.org> Subject Re: Tapestry 4.1 + Dojo Tabs I think when you create a TabContainer directly you must call addChild() to it with a reference to the individual tabs themselves. (which must also be created directly) I do plan on adding this particular widget to Tapestry eventually, but have to make sure all other 4.1.1 issues are out of the way first. On 8/9/06, Dom Couldwell <[EMAIL PROTECTED]> wrote: > > > Hi, > > I'm trying to use Tapestry 4.1 to create a set of dynamic tabs using > custom components. > > I've got some if it to work using the components that I've written but I > can't seem to get the tabs themselves to be created, just the content pane. > > The main html looks like this: > > <span jwcid="[EMAIL PROTECTED]"> > <span jwcid="tabs"> > <a jwcid="@LinkPane" > id="ognl:currentLink" > label="ognl:currentLink"> > <span jwcid="@Insert" value="ognl:currentLink"></span> > </a> > </span> > </span> > > Where the tabs component is just a For element. > > The TabContainer component I've written seems to work ok and is rendered > as I'd expect but the LinkPane doesn't seem to render the TabLabels > correctly. > Here's the html that's produced according to Firebug: > > <div wairole="tabpanel" class="dojoTabContainer dojoLayoutContainer" > id="mainTabContainer" role="wairole:tabpanel" style=""> > <div dojoattachpoint="dojoTabLabels" > class="dojoTabLabels-top dojoAlignTop" > style="left: 0px; top: 0px; bottom: auto; right: auto; width: > 500px;" /> > <div dojoattachpoint="containerNode" > class="dojoTabPaneWrapper dojoAlignClient" > style="left: 0px; top: -1px; bottom: auto; right: auto; width: > 498px; height: 299px;"> > <div class="dojoLinkPane" style="">..contents of first pane...</div> > </div> > </div> > > As you can see the dojoTabLabels attach point doesn't contain anything, > this should contain a list of the tabs. > > > Here's the widget definitions produced in the html from the components > script files: > > tapestry.widget.synchronizeWidgetState("Treasuries", > "LinkPane", {"refreshOnShow":"true","href":"<url to contents of first > pane>","label":"Treasuries","widgetId":"Treasuries"}); > > > tapestry.widget.synchronizeWidgetState("mainTabContainer", > "TabContainer", {"selectedTab":"Treasuries","widgetId":"mainTabContainer"}); > > Any ideas as to what I'm missing? > > Thanks, > > Dom > -- > This e-mail may contain confidential and/or privileged information. If you > are not the intended recipient (or have received this e-mail in error) > please notify the sender immediately and destroy this e-mail. Any > unauthorized copying, disclosure or distribution of the material in this > e-mail is strictly forbidden. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Jesse Kuhnert Tacos/Tapestry, team member/developer Open source based consulting work centered around dojo/tapestry/tacos/hivemind. -- This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]