I can't probably provide a complete comparison between the two branches, but I'll try to highlight some of the changes and improvement in the display09 from the previous released version.
- the code has been totally rewritten. The number of classes has increased a lot starting from the original code, but this is due to a better organization of code: all the utility method have been moved out of the main tag classes and many utility classes have been added (more classes and package doesn't mean more complexity, only better organization). Particolar care has been taken in:
- exception handling: an exception framework with dedicated exception for tag/functionalities and automatic logging. That was for me one of the ugliest thing in the old version (all the exception were thrown as generic JspException or RuntimeException). I think this important aspect is missing in the table- york module, right john?
- logging: now the taglib uses jakarta commons-logging to provide a flexible logging adapter: for developers this makes easier to debug and test new funtionalities, for user this makes easier to integrate error logging into their existing logging system
- output: no more out.write("<tr><td>xxx</td></tr>")... (well, probably a
few lines to clean up are still there): all the html code has been moved in
constants, or better, in dedicated objects wich are used to create the html
output. For example the link are created using an A tag, html attribute are
created using a specific subclass of map, and so on (well, it's more easy to
look at the code than to explain). This makes easy to set attributes at
runtimes, overwrite or add attributes, check validity before output... IMHO
this is another point where I think the display09 module is better then table-
york
PS (strong coding standards have always been followed and checked with
checkstyle, also if the check is not included in the ant build script)
- rendered html code: the code is now completely xhtml STRICT compliant (you are able to set html transitional attributes, but the standard output does not contain none of them). The table structure has been improved (head and body sections); useless css classes are been removed and new useful ones have been added (the ones you need to display the sorting arrow). THIS IS THE ONLY "INCOMPATIBILITY" WITH THE OLD VERSION: all the older features are working. As I already explained in previous mails this only requires changing one css file and it's a matter of seconds: the html output of the previous version was _wrong_ and I can't to keep the existing "style" only for compatibility
- and some of the new features: + (still undocumented) global configuration with a user supplied properties file (configurad in web.xml) which lets you personalize most of the tag output (for example, all the pagination stuff). Hi matt "* I like how display09 has the "number of items found" and export options outside of the table (rather than nested tables like in 0.8.5). The top one should probably be a <div> though, rather than a <span>.", you can configure it directly in the properties file. I also suggest using an <ul> for pagination, I decided to keep a <span> to meke output (without stylesheets) more similar to the previous one. I think I will add two copy of properties files before a release: a compatibility one for people who want to migrate from the previous version without changing too much their html "style", and a new reccomended "good structured xhtml" one. I'll also add the css classes used in the table here, so people can keep the previous names (ok, I'll let people specify the odious "table" class added to all the display tables). (IMHO another point where I think my version is superior to john's one)
+ lots of fixes! most of the currently submitted bugs in the sourceforge bug tracker are now fixed!
+ great new feature: tag attributes are appropriately cleaned and all the link attributes are encoded to let you use more table in the same page with indipendent paging, sorting and exporting. You can also put nested display:table tag! You can see this live on the online samples. Hi matt, the "d-9732" is the encoded attribute for the table, to let you use other tables in the same page without problems. As I can see in the sample output this part of code has been included in the table-york module too.
+ another requested features: link parameters are preserved in paging/sorting. Paging will always keep the correct order, and it will also mantain the correct order/page for all the table displayed (I don't know if this has been included in the table-york module)
+ well, probably the most important improvement: the iterator like approach wich let you specify content in the body of the column tag. You can use both the older method with the "property" attribute or the body, with no difference. Here I think there is a big difference between display09 and table york: display09 uses a mixed approach: the content of the column is evaluated during iteration ONLY IF SPECIFIED IN THE BODY OF THE TAG. If you specify the content in the "property" attribute it works like in the previous version, evaluating it only for display. So, with display09 if you set content using the property attribute and you have to display 10 of 1000 records _only 10 recors will be evaluated_; with table-york (john, correct me if I'm wrong) all the 1000 records are evaluated during iteration. This approach keeps the display09 code a lot more complex, but can really improve performance (remember the old reason for the choice for decorators against iteration?)
+ lots of other small addictions, like an attribute to define the default
sorted column, the sample site refactoring, the ability to define
everywhere objects/nested attributes with the beanutil style language +
scope (es sessionScope.list.value.attribute(name).item[1] =
session.getAttribute("list").getValue().getAttribute("name").getItem[1]),
some decorators improvements and so on.Well, I suggest you to get a copy from cvs to evaluate both taglibs. Note the online version is not updated, the cvs version is better (at least the documentation site is included). I will be out for the next two and a half weeks, so I will be back after the vote deadline... hope to see the display09 choosen and to find someone to help me with the documentation for a release!
ciao fabrizio
------------------------------------------------------- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01 _______________________________________________ displaytag-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/displaytag-devel
