Oh yes, very :) The main problem (as I griped about on another list just yesterday) is that there are only four places to get info on using tables (which perhaps just about 100% of all tapesry coders use);
1) Ken's book (Which is a complete must) at http://agileskills2.org/EWDT/ 2) John Reynolds TapestryTables.war tutorial at http://weblogs.java.net/blog/johnreynolds/archive/2004/10/index.html 3) The deprecated FormTable description at http://jakarta.apache.org/tapestry/tapestry-contrib/ComponentReference/FormTable.html 4) The contrib:Table API at http://jakarta.apache.org/tapestry/tapestry-contrib/apidocs/index.html That's it. It took me nearly two days to understand that if I roll my own ITableColumns (no big deal, and rather well documented (in the source code) in the TapestryTables tutorial) I have do create and add my own Block's inside it so that they can be overriden in the html or jwc/page file. A killer! My aim was to make a simpele table coponent which doesn't need any columsn at all, but uses introspection to grok what the field names are and such - a little bit like trails does, but with less gears and functions (In order to make my own grafts of coming trails functions which I needed atm). And I managed to do it - works great. It just turns out that one doesn't want that, because one alsways want column ordering, and - well - that's what I explicitly didn't build in :-)= Cheers, PS On 3/8/06, Nima Boustanian <[EMAIL PROTECTED]> wrote: > > Okay, understood Peter (and thanks!). Sorry about being persistent > though, but aren't there any other ways of doing this? > I haven't seen it in any examples, is it common practice to override > columns? > > > Peter Svensson wrote: > > >Uh no :) I think I misunderstood you. > >But a table shows only one list at a time, where all properties of the > >current object (which will be the row) make up the fields in the row. > > > >If you want to insert fields from another kind of object, it might get > odd, > >since there is no natural relation in order between the two lists, unless > >you are absolutely certain that the lorder of each list can be trusted > and > >make sense. > > > >In that case you can define a column in you table which does not exist as > a > >property at all in the objects in the first list, then override that > column > >with a "block override" thus; > > > ><div jwcid="@contrib:Table source="ognl:posts" columns="foo, bar, baz"> > > <div jwcid="[EMAIL PROTECTED]"> > > <div jwcid="ognl:renderbaz"> > > </div> > ></div> > > > >But then you would have to keep track of the row as well. > > > >Gotta run! > >cHEERS, > >ps > > > >On 3/8/06, Nima Boustanian <[EMAIL PROTECTED]> wrote: > > > > > >>Peter Svensson wrote: > >> > >> > >> > >>>Well either you could use two tables, or you could have a third method > >>> > >>> > >>mix > >> > >> > >>>the two. > >>>Don't you just want to have one or two of the columns in the first > table > >>>show something from the other list? > >>> > >>>The way I would do that is to just add a property for the Post object > >>> > >>> > >>that > >> > >> > >>>refers to a specific Person object. > >>> > >>>Then you could add a couple of columns in your columns="" binding that > >>>actually refers to properties in person, like; > >>> > >>>columns="columns="listOfPosts:Title:title, personName:Name: > myPerson.name" > >>> > >>>where you add in Post.java; > >>> > >>>Person myPerson; > >>>public Person getMyPerson() > >>>{ > >>> return myPerson; > >>>} > >>> > >>>anbd of course you have a getName() method on person. Would that > work?? > >>> > >>>Cheers, > >>>PS > >>> > >>>On 3/8/06, Nima Boustanian <[EMAIL PROTECTED]> wrote: > >>> > >>> > >>> > >>> > >>>>Hey all > >>>> > >>>>How do I output data from multiple sources into one contrib:Table? > >>>> > >>>>What I do at the moment is: > >>>> <table jwcid="[EMAIL PROTECTED]:Table" > >>>>id="conversationsPlaceHolder" source="ognl:posts" > >>>> columns="listOfPosts:Title:title, > >>>>listOfPosts:Created:createdDate" > >>>> class="postTable" cellpadding="2" > >>>>cellspacing="2" width="100%"> > >>>> > >>>>Where the data source for source="ognl:posts" is > >>>> public List getPosts() { > >>>> return getPostManager().getPosts(); > >>>> } > >>>> > >>>>The above example works fine, but what if I have another method which > >>>>returns > >>>> public List getPerson() { > >>>> return > >>>>getPersonManager().getPersons(); > >>>> } > >>>> > >>>>How can I use both sources in one table? If this isn't possible, are > >>>>there any other components that should be used instead? > >>>> > >>>>Thanks! > >>>> > >>>>Btw - if there are other newbies out there interested in Tapestry > >>>>components, check out this site I stumbled across recently, > >>>>it can come in handy: http://xdoclet.codehaus.org/TapestryTags > >>>> > >>>>--------------------------------------------------------------------- > >>>>To unsubscribe, e-mail: [EMAIL PROTECTED] > >>>>For additional commands, e-mail: [EMAIL PROTECTED] > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>> > >>> > >>> > >>Hmm.. not quite sure if I follow you Peter, what I have now is: > >> > >>public abstract class ConversationsPlaceHolder extends BaseComponent { > >> > >> @InjectObject("spring:tagManager") > >> public abstract TagManager getTagManager(); > >> > >> @InjectObject("spring:postManager") > >> public abstract PostManager getPostManager(); > >> > >> public List getPostTags() { > >> return getTagManager().getTags(); > >> } > >> > >> public List getPosts() { > >> return getPostManager().getPosts(); > >> } > >> > >>Both methods are in the same class... are you saying that I should have > >>a third method which mixes getPostTags and getPosts? > >> > >> > >> > >>--------------------------------------------------------------------- > >>To unsubscribe, e-mail: [EMAIL PROTECTED] > >>For additional commands, e-mail: [EMAIL PROTECTED] > >> > >> > >> > >> > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >
