Last week, I discovered, to my dismay, that I need to write my own list widgets instead of using the built-in SWT widgets. The breaking point occurred when I found that I cannot have lists with variable height rows. I decided that this is something I cannot accept in my UI. I'm a strong believer in usability.
One week later, I'm a smarter man. Building my own list was nothing short of an eye-opening experience with SWT programming. Up until now I was on the SWT expressway. Sure, it will get you from A to B in the quickest way. However, you'll be missing out on everything around you. If you want to get to know a place, you need to take the B-roads, visit the small villages and... well, metaphor exhausted.
Looking back at the journey, here's some thoughts:
- SWT is very complex, especially if you don't have previous experience with similar widget frameworks like Swing, AWT, etc.
- SWT is poorly documented, considering its' complexity and magnitude. Quality information on the net is scarce. I found myself digging into the sources of SWT again and again. True, the public interfaces and methods have good Javadoc. However, the rest of the code is poorly document. It sure make things harder.
- From the reasons above, I found that it is much quicker to take a trial and error approach than to fully understand what's going on. My "SWT enlightenment" came when I decided to ditch that approach and really understand what's going on.
Bottom line: my UI works exactly as I wanted. I took advantage of the effort and added a couple more features which I couldn't with the oh-so-limited list widgets.