This post started out as a response to Rahul’s questions posted on this entry. I soon found myself writing a long response and thought that it was worth a whole post by itself. So, here are my comments about using jMaki:
First thing you might want to check is if you are using the latest version of jMaki. The released version that you get through NetBeans typically doesn’t have the latest features and jMaki contributors actually suggested me to try the latest and greatest from CVS. During the time I used the latest builds, the code appeared to be stable for me. So, you might want to give that a try.
One reason for using the bleeding edge code is jMaki’s contributors are very fast at adding new features or adopt latest versions of libraries from other library providers such as YUI. I am amazed at how fast they were able to integrate new features or new releases from other library providers.
Since the number of contributors to the jMaki project isn’t very large and some of them are actually volunteers, so it’s a challenge for them to write their jMaki wrapper code that covers all possible combinations of configurations provided by each library they wrap. So, if you don’t find a configurable that matches your needs, you are welcome to dive into jMaki’s wrapping code to expose some of the configuration parameters through jMaki. Folks at jMaki love to take code contributions and push your changes into jMaki code base. Doing so also relieves you from doing porting your changes to future releases of jMaki.
I actually contributed a simple code change to expose a few pagination parameters for YUI’s datatable widget. I did it for my own needs and didn’t want to port forward the code, so I sent in the changes. I was blown away by how fast the changes got into the code base. So, I definitely recommend anyone who made code improvements for his/her own benefit to share the changes.
I understand that diving into jMaki’s wrapping code might sound daunting. It’s actually not bad. For my own experience, the wrapping code is just code that configure/setup a particular widget, which are will known, widely discussed, or documented from each library publisher’s own documentation, forum and code samples. This is true at least for YUI’s datatable. So, I just cross referenced against YUI’s documentation and updated jMaki’s wrapping code to meet my need, which was a pretty easy task.