Saturday, July 29, 2006

Bird's Eye View of the GWT API

Last week, I wanted to "see" the whole picture, and put together this chart which shows the heirarchy of all of the user interface components that ship with GWT. Originally I wanted to include all of the interfaces as well, but I couldn't find a way to do it that wasn't totally confusing.

In the chart the orange rectangles represent abstract classes, and the while one are concrete classes. There are two classes which I put an orange border on, but did not color them in orange. These two are the Widget and TextBoxBase classes. The TextBoxBase does has a protected constructor, so I am not sure why it is not abstract. The Widget class on the other hand is a little more interesting. You can create a new instance of the Widget class, but since the setElement() method is protected you can't really do anything with it. I am assuming that this was an error and that the Widget class should have been made abstract.

4 comments:

Anonymous said...

Possible enhancement: a symbol in the box below each for the various interfaces they support (mouse, keyboard, focus, etc).

Robert Hanson said...

> Possible enhancement: a symbol in the box
> below each for the various interfaces
> they support (mouse, keyboard, focus, etc).

I like that a lot. I'll see what I can do to add that.

Anonymous said...

I like anonymous's idea, too! What did you use to create this graph?

Robert Hanson said...

> What did you use to create this graph?

I used Inkscape. It is a pretty powerful and FREE tool. I have been using it quite a bit lately, and recommend it unless you have spent a lot of money on a professional tool.

http://www.inkscape.org/