About a year ago I wrote a post on the state of application development with Eclipse – and specifically the lack of visual design tools for thick client apps. Well things sure have changed. Google has released a free download for their complete set of tools including Window Builder Pro. I’ve continued my use of IntelliJ (now at version 9.03) with jgoodies so how does this tandem compare to the new combination of Eclipse 3.6 (Helios) with Window Builder Pro?
A Look Back at IntelliJ 9
There’s a lot of new things in IntelliJ 9 – you can read thru it here. That’s a ton of stuff for sure, but not much has really changed from my initial somewhat superficial look at GUI designer capabilities within the tool. The IDE efficiency work has paid off I think. As you drag and drop components, navigate between form views and source views, and manipulate properties in the pallets, the IDE responds nicely and things work intuitively.
From a GUI widget perspective with IntelliJ you are stuck working with Swing components and the JGoodies form layout manager. The layout manager is pretty nice – its easy and simple to work with. In IJ-9 you can drag and move column widths and row heights. Just drag out and drop the widget where you want it.
The UI Designer panel has some cool color highlighting to warn you about problems and/or missing tasks for you screens. That’s pretty cool, but also can be a bit annoying with all the constant prompts. Similarly the constant spell checking in my source is a pain. There’s probably some way to alter these settings, but in the vast sea of options (which is great) I wasn’t able to locate them.
JetBrain’s IntelliJ really is an incredible product. If you are going to plunk down bucks on an IDE you can’t go wrong for Java and a whole bunch of other languages and web technologies. If you use it for GUI design then you should embrace JGoodies.
Eclipse 3.6 and Window Builder Pro
I got stuck on Eclipse 3.4 and missed the whole 3.5 thing. I re- started working on my bluetooth testing tools that’s I’ve built on IntelliJ, but my license is up again for renewal. That’s what prompted this little weekend diversion. A simple search (yeah I google’d it) popped up something interesting, a free set of GUI designer tools that are Helios (eclipse 3.6) compatible from Google. After a quick browse of the Google pages revealed the ties to other Google Java development tools like GWT I decided to spend the time downloading Helios (all 232 MB for the J2EE version) and then giving Window Builder Pro (WBP) a try.
I downloaded Helios and installed (a simple extract) into its own directory structure. Everything with Eclipse 3.6 seems familiar (that’s good and bad I suppose). Once I had Eclipse working, I just followed the instructions here to get the WBP installed – I had to mess around with Eclipse to use my system default browser for the updates to work. For some reason Eclipse kept trying to use my IE settings (my IE is for work and I have a proxy configured in there for use behind a VPN). With that little issue out of the way I had the tool downloaded and installed into Eclipse in about 20 minutes.
The documentation on the Google site is a bit sparse – there’s a few “quick start” and “tutorial” projects, but they aren’t exactly detailed. To get started, create a new Java project using the “regular” wizard approach. Add a class by right clicking on your app name and using the New>Other choice. Scroll down and expand the Window Builder choices. There’s a bunch of options in there. For initial testing I picked off the Swing application window. After the wizard finishes it dumps you out to the source view.
I have to admit it took me a good five minutes to figure out what to do next, but I think this is an important point. I couldn’t figure out where the tools were. I checked the docs, checked all the menus, and everything seemed like it should be working, but I couldn’t find the designer. Finally I found the tab down at the bottom of the screen.
Once I had that figured out the designer popped up and presented a very nice set of widgets from multiple families (AWT, Swing, jGoodies). There’s a wide variety of other widgets for laying out your screen and for layout management. The array of component is dramatically larger than the set in IntelliJ. Once in the tool it was a simple task to select the window, edit its properties, change layout managers, and then add components. When adding components you need to click the component in the pallet and then position your mouse in the layout region you want it to go in and click. You can’t drag/drop them. Not very intuitive, but once you know that its ok.
From that point you can change properties in that panel. There’s some little icons to switch to events and other stuff. Adding events is really easy once you get past the UI anomalies. For example if you add an event, the property panel temporarily shows the line number where the event is, but if you go back to the designer view its blank again with no indication that you added a method.
The tools does actually work pretty well; its easy to use and works nicely inside Eclipse. There are a couple of decent tutorials on the google site so check them out and also play around with thing in test apps and you will get the hang of the panels and palettes.
It is pretty exciting to have a decent free visual designer for Eclipse. If you can afford the $$$ for IntelliJ I think its a hands down better tool and you simply cannot get a better overall IDE that it. However if you don’t want to spend the cash on IntellIJ or you only very occasionally need to do something with a thick Java client then this is a great tool to use. I certainly think it will put another nail in the coffin for NetBeans. I’m going to port over my bluetooth testing kit and see how that goes. If I learn any other goodies or change my mind I’ll update this post.