When I started PasswordSafeSWT, it was a pure SWT app, created almost entirely using SWT Designer. The productivity of that GUI tool is awesome. But the code lacked a little maintainability with all those anonymous event handlers (as easy as they were to edit graphically), so it was time to clean things up.
For my next step, I moved things over to JFace to take advantage of an “Action-style” app. Like in Swing, JFace gives you an action model where you can associate accellerators, icons and logic using a command pattern, and then attached your newly created actions to toolbars and menus.
Because SWT Designer also supports JFace, it was a snack to rearchitect. I now have a dozen self-describing commands, and a very lean main program - all looking much more maintainable. Plus I get status bar management out of the box which was a nice touch.
I’ve also taken advantage of the ListViewer and TreeViewer objects to do the MVC over the main db. Geez I love those controls. The way they’ve designed them is so pragmatic. I can just pass in my real datamodel and let them do the adapting for me. I could never really grok the complexities of the Model/Adaptor stuff that Swing provided, but the Viewer stuff in SWT was a snack.
Once my JFace app was happily running, I started to think about using a Help system. Javahelp would be an obvious choice, but for that fact that my app looks so native now I didn’t want to spoil it. I thought it might be nice to try and use the Eclipse help system somehow. More googling.
Then I came across the Eclipse RCP. And it looks absolutely awesome. There were some great tutorial links off Martin Perez’s blog and a great 3 part introduction off the articles section of RCP site and now I’m very keen to see some more. Since I’m already using the jars for JFace/SWT/OSGI for my standalone app, I’m keen to see how much work it would be to make the jump to a whole RCP app - and then add a pinch of Eclipse help to the equation. I suspect it may be a bit of work, and I’ll get a Jface version out the door before making the investment in anything more grand, but I’m definitely keen to explore more.