I never really used an outliner before I got my MacBook, the Mac had a bundled copy of OmniOutliner. OmniOutliner is amazing and really blew me away. However as I’m not completely a Mac person I was looking for something that would work on more platforms. Being a Java type of guy I had a quick search of Sourceforge and Freshmeat and came up with JOE. Java Outline Editor, is a pretty nifty program that unfortunately does not seem to be being developed much at the moment. It is also oddly featured, it could be simple enough to be a single jar style application but instead the program has four or five jar dependencies for very marginal features. It’s Find/Replace and File Opener dialogs are customised and very highly featured. However the basic outline functionality is very simple.
Since it’s open source I’ve got it into Eclipse and started to hack it around abit. So far I’ve only been able to remove the XMLRPC and XP jar (as well as a couple of classes that have been replaced by Generics). The underlying model is not what I was expecting, nor is the actual implementation of the line rendering. I was also a bit surprised that the GUI elements are all built up from a XML file which was quite interesting. I was also a bit disappointed to find that JOE seems to smear preference directories in several places rather than just gathering them all under the User Home.
What I really want is a simple outliner that will work cross-platform and ideally will only be in one JAR. To that end I think the way ahead is to cut down JOE while also building from scratch a new small outliner in Java. That way, what I want will be a kind of meet-in-the-middle job.
The new outliner will be a way of understanding the Swing Event model (which I’m very hazy on) and a way to try and understand how the Application Model and the Swing components interact in a vaguely MVC way.