After a long silence I finally released a new version of the addon.
It might not show much on the outside, save the rendering of the task list window, where the previous pixelated display is gone.
More or less everything else was rewritten from scratch under the bonnet. I refactored the code base to allow for more structured programming approach. The ugly rendering of the task list has been replaced with the built-in JavaFX webkit based browser, that is not only better looking and faster, but the add-on doesn’t have to ship with a 1M bulk.
Starting this release the window several features were added to support side by side usage. The position of the task list can be saved, so if it’s closed it will open on the last screen position and use the same size. The window no longer closes when selecting a task, so it’s useful for navigation in the map. Task parsing, editing, archiving will refresh the task window straight away.
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.
The reason for taking so long was a tricky one. It required me to solve the problem I was struggling with for over half a year. For those interested in the details, the addon runs in a Groovy sandbox separating the application internals from the unsafe additions, all this within an OSGI container. This does not permit access to store the open window state anywhere. This was more or less hacked using a technique called monkey patching the data structure. It is a not very intrusive hack that hopefully will work on later freeplane versions as well.
The bigger issue was trying to access the freeplane icons within the JavaFX browser itself. After running head first into the Java security system a few times I finally found that the JavaFX and OSGI don’t work well together. Namely there is just no way to load a resource stored in the OSGI environment through the standard URL class of the browser. By adding an ugly hack to create temporary files for the icons used, it started to work again, so I decided to finally release the add-on.