View Full Version : Annoying GXT Flaws

16 Feb 2011, 3:14 PM
I'm new to GXT, and overall I like it, but I've found four recurring flaws that are bugging the heck out of me, and would be (at least in some cases) very easy to fix.

The first is the deplorable lack of documentation. The GXT examples are incomplete, and often too complex (introducing unnecessary complications that must be extricated from the heart of the matter). The GXT documentation itself looks like someone worked on it for a day, then got reassigned to another project. Using an intricate product with almost no good explanation, examples or details is a nightmare for any developer.
The second is that may features don't work quite right, and aren't easily corrected. For example, it is not a trivial thing (in fact, it's nearly impossible) to add animation to a dialog box (a simple fade in/out when logging in/out, for example). Basically, one has to completely re-implement the Dialog class from the bottom up to add animation.
The third is that when one wants to extend a GXT "base" class (like Window or Dialog) to improve the behavior, doing so can be flat out impossible because too many fields are scoped private instead of protected, or don't have a full set of getters and setters, so one can't properly override methods that directly reference those fields or methods.
The fourth is that, even though the source code is available to completely re-implement some of these classes (with the fields properly made protected instead of private), one still runs into issues with other classes that explicitly reference the "unruly" classes (for example, the WindowManager and Window classes). WindowManager really should have been implemented using a ManagedWindow Interface, rather than directly referencing the Window class. This would have allowed any well behaved ManagedWindow implementation to join the party, rather than just GXT Window objects as defined by/extended from GXT.

All in all it's a good product, and it's helping me to quickly produce a better result than pure GWT alone would, but the whole point of libraries like this, and Java in general, is to make things easily extensible. I wouldn't at all classify GXT as easily extensible.

17 Feb 2011, 7:32 AM
Welcome to GXT. ;)

...means, all you described are facts. You have to accept it, because they will not change it. Maybe GXT3 will be easier to extend, but nowbody knows when it will come and how it will come.

17 Feb 2011, 8:36 AM
How hard are they working on improving GXT?

I ask partly because I want to know that it's alive, but also because I've done part of the work I wanted or needed by re-engineering their classes. Once I get it to a certain point in development and testing, so I think it's stable, I'll release the extensions for public consumption. For GXT to pick them up and apply would be trivial... for instance, my "dialog with animation effects" class (and the supporting external changes) is relatively trivial... change "private" fields to "protected" in the Window class, break up the show() and hide() methods into three segments (before animation, animate, and after animation) and a few other minor tweaks. It would take a develop 10 minutes to diff the files with the standard GXT classes, verify that they make sense and aren't harmful, and then put them into a release test cycle.

Obviously re-engineering everything right would take a while, but baby steps shouldn't be hard to accomplish.

17 Feb 2011, 9:01 AM
So, you are not a premium member and therefore you have no access to trunk. I am, and therefore I can see that they are not really working anymore on GXT 2.x. Maybe they are working on GXT 3.0, I don't know. And if you have a look on GXT roadmap, you will see that it doesn't look like they will add more features to GXT 2.x. But you are writing about improve GXT 2.x, not extend GXT 2.x. Maybe they will... but I don't think so. Have a look at the feature request forum. They mostly get ignored, even if the requests are just some minor changes. Changes like you describe. But I saw that there is a new developer, maybe he will. I don't know. But I don't think so. ;)

So is this the end? Don't use GXT anymore? No, GXT is a good basis. Use it, extend there classes or, if necessary, replace the classes. If you have good extensions, put them in here. Even if we have to replace classes. Maybe GXT team will apply them... but here again, I don't think so. ;)

8 Apr 2011, 6:26 AM
Thanks for the initiative here, please put your extensions here so that others with the same issues but not as good as you will benefit. Just appealing. Cheers

8 Apr 2011, 1:19 PM
GXT 3 is on it's way. Here is the video introducing features: http://vimeo.com/17681624. More news in the next newsletter.