Thursday, February 22, 2007

T5 coming together rapidly

A long day today, fixing bugs, adding missing features, and otherwise getting things ready for another preview release, 5.0.2. I just re-implemented the support for line precise exception reporting (the part that shows the content of the file in error) and, with a bunch of new CSS tricks up my sleeve, it looks better than ever. At least, on Firefox it does. Somehow I'm sure the ExceptionReport page will pop up when I do the next screencast.

I also added a lot of documentation on page navigation in Tapestry 5, finally documenting exactly what event handler method return values are meaningful, and what behavior they trigger. Of course, that's extensible via service configuration contributions.

I've got many more things on my plate: there seems to be an issue with localization, at least according to one Chinese (or at least, Asian) user. I need to get cracking on nicely integrated JavaScript. I need to support dates with a date translator and some date validators. Lots of stuff related to Ajax, especially the intersection of Ajax and form support. Well, just plain lots and lots more. Joy.

3 comments:

  1. hi,

    how do you plan to integrate ajax/javascript into tapestry 5? do you have a certain concept?

    g,
    kris

    ReplyDelete
  2. I've got a few ideas, there's won't be script templates the way there are in T4. I think Ruby's RJS is the gold standard, but that's not quite doable in Java (!).

    The big problem is addressing forms and, to a lesser degree, ensuring uniqueness of ids when re-rendering a portion of a page.

    The high level goal is identify what does and does not work, and make doing the things that do work easy. Again, the hard part is when a Ajax component needs to operate inside a loop.

    The general structure of T5 makes all of this easier than T4; server-side event handling (with event bubbling, etc.) is much more congruous with client-side event handling. You can define new event types easily, without having to define entirely new engine services. It easier for a Tapestry component (event handler method) to return, directly, a byte/character/markup stream without having to send redirects or do other hacks.

    Just going to take some time to figure it all out :-)

    ReplyDelete
  3. Well, the magic of RJS is that it's very easy to inject, effectively, component properties into the javascript. Couldn't the tapestry 5 subsystem parse a .script file containing ${foo} statements?

    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. 垃圾邮件发送者:不要打扰。我删除您的评论和它的时间对我们双方的浪费