Friday, July 27, 2007

Tapestry 5 Preview at OSCON 2007

Yesterday was my session at OSCON. 45 minutes to covert Tapestry 5? Not a hope, especially with Rod Johnson running a little long.

I got the typical stunned reaction, followed by "is it done yet? Can I use it?" People crave T5 once they see it, and the presentation I do barely scratches the surface of what it can do today.

I've converted the presentation to PDF, which is great considering I had to flash through a lot of stuff about the grid very quickly.

13 comments:

  1. Very nice presentation!

    I hope one day to meet you, next time you come to Italy drop me a note!

    ReplyDelete
  2. Ooooof! I was getting to use Tapestry 5 in a big production app, and now they're telling us that we have to use JDK 1.4!

    Yikes!

    ReplyDelete
  3. Nice presentation, I loved the way you begin with ... "If I have to type one more angle bracket I'll chop off my pinkie!" ... It completly caught my attention. I'm waiting patiently for the official release of T5 ...

    ReplyDelete
  4. Any goals for when it'll be released? Curious if it'll be by the end of the year or mid next year since it sounds like you have quite a lot of things to add.

    And I'd take what you say as a goal w/ a grain of salt (add 3 months to it ;-)

    ReplyDelete
  5. A solution to a very common situation is unclear to me: I have a Grid component, actionlinks on every row, as well as some (text areas and drop-down boxes) other fields and a few submit-buttons outside the Grid, but inside the Form. A bit like Gmail or Yahoo mail without the frills.

    I would also like to put a checkbox beside the other row data in the Grid. (again, just like webmail). I could easily add a checkbox beside each row which would just display the boolean data in the row-data object "behind" it.

    However, I don't know how to just add a checkbox to every row so I can select one or more rows that have to be processed simultaneously upon clicking one of the submit buttons. These boxes aren't really there to reflect data in the data object behind the row because they just are there to help identify rows in the context of the form processing of that particular page.

    I suspect there is some way to put a "model" "behind" the form, purely to hold data within the context of processing that form.

    It seems I am stuck, so any help would be greatly appreciated.

    ReplyDelete
  6. I am looking forward for the official release. I have been browsing from past 6-7 months this site to only see the releasing soon slogan. Sorry if this sounds a bit harsh. But given the additional features you have listed and the current state, I am getting a feel that I may have to wait for another 6-7 months. Any comments ??

    Surya

    ReplyDelete
  7. Martin - try the Tapestry mailing lists.

    My 2 cents - I'm a Tapestry 4.0.2 user at the moment, but all of this T5 work is really making me consider redoing what I've already done. Took a long time to get used to Tapestry from Struts, might as well make another change before I get too stuck on a T4 mindset.

    (And on a related note to the post - nice presentation)

    ReplyDelete
  8. Does anyone have, or would be willing to make, a (small) tutorial/example using tapestry-hibernate?

    ReplyDelete
  9. As far as I can tell 5.0.5 does not support check boxes (nor textfields) inside a Grid. The issue was raised in march: ((TAPESTRY-1328) No support for form elements inside a Grid).

    Has anyone been able to find a workaround for this?

    ReplyDelete
  10. Oh sorry, I meant writable checkboxes in a Grid. Display goes just fine until you hit submit. then I get "Failure writing parameter value of component MyRowsPage:checkbox:" In the stacktrace, Tapestry clearly attempts to update the value of the checkbox, but fails when trying to write the parameter value....

    ReplyDelete
  11. actually, we are working on the similar grid table. we would like to be able to add action "button" on each row and column order on the Grid. Is there anyway to do that?

    thanks,

    Tiffany

    ReplyDelete
  12. How do you add checkbox onto grid?

    thanks

    ReplyDelete
  13. Tiffany, I no longer have a compiling version with a checkbox, but
    you can change the rendering of any cell in a Grid by overriding t:parameter as shown in the Grid screencast. Another example is when you are rendering a list of xx (blog software doesn't like html tags, so you'll have to re-intoduce them): t:parameter t:name="idCell" t:actionlink t:id="select" context="xx.id" ${xx.id} /t:actionlink
    /t:parameter
    Here, a number of action links is generated, one for every xx.id
    However, problems seem to arise when you render an updateable element in a grid (I have tried checkboxes and textfields), and then use these fields in a form. Tapestry does not currently seem to handle this correctly as raised in March:((TAPESTRY-1328) No support for form elements inside a Grid).

    Where I needed checkboxes, I just rendered another actionlink (which I made render as an arrow) in their place. I created a void listener method (onActionFromToggle(int id)). Now when I click one, the actionlink updates the variable "behind" the row. Because the listener method is void, we return to the same page.

    The biggest problem with this solution is that every time you click an actionlink (that could have been a checkbox), you generate a browser-server roundtrip.

    ReplyDelete

Please note that this is not a support forum for Tapestry. Requests for help will be deleted. Please subscribe to the Tapestry user mailing list if you are in need of support, or contact me directly for professional (for pay) support.

Spammers: Don't bother. I delete your comments and it's a waste of time for both of us. 垃圾邮件发送者:不要打扰。我删除您的评论和它的时间对我们双方的浪费