cfgrid wish list for centaur
Tags: Coldfusion, Ajax UI
I have never really been a big fan of the new ajaxUI tags that have been introduced into ColdFusion, the main reason is that the library that it uses is well and truly outdated and if you need to get under the hood to do things, it can be extremely difficult to get support on such an older framework.
While working with the cfgrid for the first time in like 2 years, I again discovered how much functionality was not put into this tag and it made me cringe at times. So what are some of the things that seem to be missing?
Well for starters the ability to turn on multi select of items with the cfgrid, even under the hood you could maybe switch the flag on but this is an initialisation value that can't be changed once it has been rendered. That was the biggest reason I stopped looking at it when it was introduced way back then, and it looks like centaur from what I am hearing hasn't bothered to fix this problem either. I seriously hope that when ColdFusion 9 is finally released this has been added.
Another issue I ran into with the cfgrid was the ability to change a few aspects of the text colour, and row colours. However the hover cover of the cells and text colour were emitted and have never been thought off to include. You can hack the CSS to override the colours, and it sort of defeats the purpose of having some attributes to the tag to only allow for half the job.
Now comes the biggest problem that I found with the cfgrid, datatypes. Datatypes are important to extJS and if you wish to write JS to modify based on certain types you can't do it because they are not set within the record store that Adobe have magically hidden from us. I like the fact that the Data Store is generated for us, but the Data Store is important that we can read back if we need to.
And how did that come about?
I was working on rendering a cell with dates and times, and I could not find a way to see if a cell is text, a number or even a date. Why because the Data Store has no data types defined, so that was a big pain in the butt.
Now that also brings me to another major issue with cfgrid!!
Custom cell rendering.. In extJS you can write code to render a cell to something other than the default given to you. Yes you can do this in ColdFusion, and it is a hack to get to the underlying code to make this happen. But has anyone actually done this? I have seen a few blog posts where it is shown how to do it, but the problem with everyone of these so far is that they all require you to know which cell you want to re-render.
The problem here is that with ColdFusion you can write code that dynamically creates the cfgrid, and this leads to that cell being unknown. So why the hell did Adobe not support a render attribute, that could have run a JS code to do the rendering for you?
One will never know, but now that extJS2.2 and maybe even extJS3.0 will be available when CF9 is released. I really would like to see more features and configuration with the ajaxUI tags, so far all Adobe have done in the past is slot the new new underlying framework into ColdFusion with no thought on introducing the new features of the framework.
One of the best examples of that would be the HTMLEditor that was introduced, the underlying engine you could pass a different config file to change its behaviour. In ColdFusion you would need to duplicate the entire framework scripts etc., seemed to be a half assed backed attempt without looking into how the thing worked. I also seriously hope that this is also fixed when CF9 is finally released as well.
Well I could go on and on with how much I hate the ajaxUI integration in ColdFusion, so the only thing that I can say to Adobe is I hope that they do the right thing and give us what coldExt allows us to do with extJS, because if they don't they may as well deprecate the entire thing now.
-
Use ColdExt ;) It's up-to-date, more flexible (IMO), and works across CFML engines.
# Posted By Justin Carter | 4/25/09 4:21 AM -
Justin - I couldn't agree with you more. However, you also are aware that not everybody can abide or even afford the extJS license.
So even though I would use it in most scenarios, I can't use it in all.
# Posted By Andrew Scott | 4/25/09 4:36 AM -
My solution is simply to not rely on any CFML engine for any front-end javascript functionality. At best, the CF UI stuff is only good for prototyping IMHO. But in production, just like Flex is now recommended over cfform format="flash", I think it's in a developers best interest to just learn either jQuery, mootools, dojo, Ext, or whatever for frontend javascript development.
# Posted By Tony Garcia | 4/26/09 8:50 AM -
Yes but not everyone can abide by the licensing issues that the other options have either, the problem I have with jQuery is that is runs like a dog at the moment and as a lot fo stuff that requires too much extra programming. Dojo, I gave up on a few years ago as extJS kicked its butt, but has since changed its license and can't always be used.
# Posted By Andrew Scott | 4/26/09 9:08 AM -
I only mentioned those particular js libraries as examples. The point of my comment was that I feel it's better to just use CFML for backend stuff and use JavaScript (and/or JS libraries) for frontend effects/AJAX. Sure, it requires you to learn "extra programming", but in the long run I think they are good skills to have, and it frees you from having to depending on the CF implementation.
# Posted By Tony Garcia | 4/27/09 6:36 AM -
Agreed that the extra skills can never go astray, but the point is that the option that Adobe provide is flawed and needs to be fully updated, to better support the underlying engine to its fullest configurable state.
# Posted By Andrew Scott | 4/27/09 7:51 AM -
I think the measly couple of hundred dollars for an Ext JS license is easily made up in productivity, and the best thing is that it's per developer, so you only have to pay for it once and you can use it across any of your projects (where it suits, of course). Once you've wasted a single day on fiddling with or even trying to find "free" UI components you've already wasted more money than a commercial Ext license would cost :)
# Posted By Justin Carter | 4/28/09 5:32 AM -
What is measly to you is not to someone else, people still need and require options. Why do you think there are others like jQuery and Dojo to name a few of the many?
The point is that ColdFusion can use it regardless, and I am all for you promoting extJS, as I love it myself and have used it extensively in the last 3 years.
But please allow people to have more options too.# Posted By Andrew Scott | 4/28/09 5:37 AM



TweetBacks