FreeplaneGTD 3.0 – Back to school

I have a confession to make. I don’t like what Oracle is doing with the IP they get their hands on. This is just one of those times when it’s easly shown why.

FreeplaneGTD has gone over several stages in the past years. It started off as a spin-off of a long abandoned project, that just didn’t cut it. It was clunky and ugly using a simple HTML view. Over the years I tried adding featured, while following the changes in the main Freeplane developments. It got to be a pretty decent solution over the years, but now there is a major set-back thanks to Oracle’s idea of progress.

This is a story of what happened to FreeplaneGTD over the years.

TL;DR

Freeplane 3.0.0 is available for testing at the usual places.
The release is available at the release page, on GitHub and on SourceForge.
If you like the addon, don’t forget to honor the work put into it by donating to the author.

It more-or less worked, however I needed a few more features, so I decided to take over and add some enhancements, so I can use it for organizing my own daily activities.

Snapshot from v0.9

In later versions a simple task editor dialog was, added, then the task pane was redesigned first to use the much better flying-saucer HTML component. Unfortunately there was still no chance of using interactivity in this stage. So marking a task complete could only be achieved by going over to the map and adding a new icon, or using the editor dialog.

To use the flying-saucer library from inside the Freeplane framework was not easy. I remember having sleepless nights until I brought it together. This essentially required going around the security of the framework. This approach no longer works.

Snapshot from around v1.6

Since the library produced quite ugly rendering and it was quite huge at the time (1.8MB added to the addon) I decided to move on to using a technology that is more readily available on the users’ side. JavaFX was created as a replacement for the old-school AWT and Swing UIs shipping with Java. It never played nice with any of the OSGI frameworks especially the one used Freeplane(Knopflerfish). It took another few weeks of sleep deprivation to get it working.

Snapshot from the release of v2.0.0

By the time v2.0.0 was released the add-on got way smarter. Not only it had more features, like moving done tasks to review/archive folders at a single keystroke, but icons are displayed in the tasks list, many more configurable features, aliases clipboard copy as formatted text, etc. Also had a few languages supported by some of the users like French, German, Spanish.

It still needed some ugly low-level hacks to work, I managed to pull it through to support Freeplane versions 1.7.x. As a great addition the addon creates tasks from typed text automatically. The list and the map are synchronized, and everything is peaceful, until…

This is when I started getting weird reports from the users. I looked into them and to my horror found Oracle pulled the plug on the best UI interface Java had and removed JavaFX from the JRE altogether. First the developers using the latest JDKs were affected but it is spreading fast. From the Java 11 coming up this year, going forward, JavaFX will no longer be available. Since it is quite big, I rather not add to the distribution of the add-on, especially, since I would have to mess around with the Java security and OSGI loaders for weeks again to get it off the ground.

FreeplaneGTD v3.0.0-alpha1
FreeplaneGTD v3.0.0-alpha1

I took a deep breath and dug up my Swing textbooks from 15+ years ago (literally, it was under a thick layer of dust) Now I recreated an operable interface using nothing but old-school Swing components. I removed most of the security hacks the JavaFx dependencies and some more.

It took a long night to do so, not everything is perfect yet, some features are not yet available, but the new UI is working. Good thing I reorganized the original code when switching from Swing to Flyingsaucer and from FlyingSaucer to JavaFX properly. I “only” had to rewrite a single class to get it to work.

Disclaimer: I HATE SWING! This is the worst thing to use for UI. The layouts are confusing, it takes ages to get anything done. Yet Freeplane UI is written in Swing as long as that won’t change the addon will work.

12 thoughts on “FreeplaneGTD 3.0 – Back to school

  1. Only understood half of the problems you encountered, but I love the addon and am very happy, you solved them so far…
    Thx for the great work ??

  2. Mozilla Firefox 74.0 Linux *

    Hello Gergely,
    I wan to say thank you for maintaining and developing this extremely useful addon.
    I don’t know about programming but I use your addon every day.
    Best regards,
    T

  3. I just want to thank you for doing this. Freeplane (and before it, Freemind) is an extension of my brain since maybe 15 years back, and I’ve been looking for a way to integrate tasks in my notes. This is now a key part of my task management!

  4. Hi,
    I’ve tried out this nice add on a couple of years ago and it looked quite helpfull but never deep dived in using freeplane on a daily basis. Now I’m starting to use freeplan more often again and was look at GTD again but it seems a lot has happend. Therefore my question, is it still possible to make a Next Actions list? I doesn’t work for me with anymore.

    btw I don’t know for sure if this is the way to ask.

    1. There is no separate window anymore. It is integrated within the sidebar of the Freeplane framework since version 3.5 or so. Just pull or click the right panel to open and you will find the GTD Next Actions tab there.
      There is no need for manual updates either, the addon watches all node changes by itself. The content of the list is similar to the original version.

  5. Thank you for developing this tool.

    Can you please help me with the following problem?

    I’m having trouble invoking the GTD task editor.
    When I highlight a task and press F4 nothing happens.

    The F4 key is assigned to the addons.freeplaneDTD.editAction_on_selected_node.

    I’m using FreePlane version 1.8.11 with freeplaneGTD-v3.6.0-alpha2.addon on a windows 10 workstation.

  6. “There is no separate window anymore. It is integrated within the sidebar of the Freeplane framework since version 3.5 or so. Just pull or click the right panel to open and you will find the GTD Next Actions tab there.
    There is no need for manual updates either, the addon watches all node changes by itself. The content of the list is similar to the original version. ”

    I wish this was out front !!! I finally found a combination of Freeplane version 1.8 and GTD version 3.0 that worked together very well. I wanted to try the latest, downloaded and installed the latest but couldn’t (didn’t) find the hidden panel referred to above, so I didn’t think the action list feature was working! Uninstalled and went back to what I could see working. With this “hidden” feature boldly proclaimed, it would likely saved me some trouble.

    Anyway, I sure do appreciate the hard work you’ve put into this addon to make our lives easier. I may have to back that up with money if I can find the newest to be working!
    DanK

    1. I was working in an environment for a few years, where I could not use freeplane on my computer neither did I have time to work on it.
      Good news, I can use it again, so I’ll look into it and update the links, documentation and maybe even solve the issues with 1.9.
      It is worth noting, that the only reason the addon works, is that it hacks the security model of the Freeplane API. Each new version of Freeplane needs to be hacked and the security model worked around. This is way more work than it sounds and that I have time for.

    2. Luckily the fix didn’t require to rewrite the entire stack from the bottom up.

      You can try the latest version 3.6.2 that fixes the exceptions in Freeplane 1.9 and supports the extended icon pack and emojis.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.