Drawing Hands by M.C. Escher (1948)

Jeff Mesnil


An Outliner application based on Eclipse RCP

On July 31st, 2006 in eclipse, java

While cleaning up my workpace, I (re) discovered a small application I wrote to familiarize myself with Eclipse editors development.

It is a simple outliner which reads and writes OPML files. Each OPML file is opened in an Eclipse Editor. You can navigate the outliner, indent/outdent the outlines, create new outlines and edit them.
To toggle between the edition and the navigation modes, you can use the ESC key (like in vi).

Eclipse Outliner Screenshot

The code is pre-pre alpha (hence the 0.1.1 version) and a lot of essential features are missing:

The fun part of the application is the OutlinerEditor. Each OutlinerEditor is composed of a TreeViewer which displays the outline. The TreeViewer is not editable but each cell of the tree can be edited in place (a la SWT snippet #111).

I released this project on Google Code’s project hosting under the Apache License 2.0 and created a corresponding web site to complement the project home. You can check it out using Subversion but to make it simpler to check out, you can import in your workspace the Outliner Team Project Set (provided you have a Subversion plug-in like Subclipse). I don’t plan to work extensively on this application but I thought it could be of some interest for new Eclipse RCP developers.

I developped the application on Mac OS X and had the bad surprise to see that the application is not working properly on Linux because I can’t navigate the tree with the arrow keys (see issue #3). It seems to be a “bug” in SWT since I can’t navigate with the arrow keys in SWT snippet #111 either. Though I’m not sure this is a SWT bug or a platform specific behavior…

2 Responses to “An Outliner application based on Eclipse RCP”

  1. Alex Blewitt Says:

    Very cool :-) I uploaded an .opml document to an open-source project some time ago, and they said ‘What good is that?’ Now I can point them in this direction :-)

  2. jmesnil Says:

    I think OPML is a good specification and when I wrote this app I had a lot of cool ideas
    about using Eclipse to write an Outliner.
    For example, I could leverage extension point to let users provide new types of outlines:

    • embedded images
    • urls
    • inclusion of other OPML files
    • summary of bug trackers
    • etc.