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.
Hello,
Excellent add-on!
But I have this error when I press Ctrl+H at MyStaff.mm:
“Error executing the script: null”
Ubuntu 17.10
Freeplane 1.6.12
Java 1.8.0_151
Here is full log:
Feb 01, 2018 6:56:30 PM org.freeplane.core.util.LogUtils warn
WARNING: ExecuteScriptAction failed:
java.security.PrivilegedActionException: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 8: unable to resolve class javafx.embed.swing.JFXPanel
@ line 8, column 1.
import javafx.embed.swing.JFXPanel
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 4: unable to resolve class javafx.application.Platform
@ line 4, column 1.
import javafx.application.Platform
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 6: unable to resolve class javafx.beans.value.ObservableValue
@ line 6, column 1.
import javafx.beans.value.ObservableValue
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 12: unable to resolve class netscape.javascript.JSObject
@ line 12, column 1.
import netscape.javascript.JSObject
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 7: unable to resolve class javafx.concurrent.Worker
@ line 7, column 1.
import javafx.concurrent.Worker
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 5: unable to resolve class javafx.beans.value.ChangeListener
@ line 5, column 1.
import javafx.beans.value.ChangeListener
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 11: unable to resolve class javafx.scene.web.WebView
@ line 11, column 1.
import javafx.scene.web.WebView
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 9: unable to resolve class javafx.scene.Scene
@ line 9, column 1.
import javafx.scene.Scene
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 10: unable to resolve class javafx.scene.web.WebEngine
@ line 10, column 1.
import javafx.scene.web.WebEngine
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 181: unable to resolve class Worker.State
@ line 181, column 78.
ddListener(new ChangeListener<Worker.Sta
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 183: unable to resolve class Worker.State
@ line 183, column 38.
void changed(ObservableValue observable, Worker.State oldValue, Worker.State newValue) {
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 183: unable to resolve class Worker.State
@ line 183, column 74.
nds Worker.State> observable, Worker.Sta
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 183: unable to resolve class Worker.State
@ line 183, column 97.
vable, Worker.State oldValue, Worker.Sta
^
13 errors
at org.freeplane.plugin.script.GroovyScript$1.run(GroovyScript.java:175)
at org.freeplane.plugin.script.GroovyScript$1.run(GroovyScript.java:168)
at java.security.AccessController.doPrivileged(Native Method)
at org.freeplane.plugin.script.GroovyScript.trustedCompileAndCache(GroovyScript.java:168)
at org.freeplane.plugin.script.GroovyScript.execute(GroovyScript.java:136)
at org.freeplane.plugin.script.ExecuteScriptAction.actionPerformed(ExecuteScriptAction.java:92)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1663)
at org.freeplane.core.ui.ActionAcceleratorManager.processKeyBinding(ActionAcceleratorManager.java:443)
at org.freeplane.main.mindmapmode.MModeControllerFactory$2.processKeyBinding(MModeControllerFactory.java:278)
at org.freeplane.view.swing.ui.UserInputListenerFactory$2.processKeyBinding(UserInputListenerFactory.java:119)
at org.freeplane.core.ui.components.FreeplaneMenuBar.processKeyBinding(FreeplaneMenuBar.java:91)
at org.freeplane.main.application.MenuKeyProcessor.processKeyBinding(MenuKeyProcessor.java:26)
at org.freeplane.main.application.ConnectedToMenuView.processKeyBinding(ConnectedToMenuView.java:41)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2943)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2845)
at java.awt.Component.processEvent(Component.java:6310)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:806)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1074)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:945)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:771)
at java.awt.Component.dispatchEventImpl(Component.java:4760)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at org.GNOME.Accessibility.AtkWrapper$5.dispatchEvent(AtkWrapper.java:700)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 8: unable to resolve class javafx.embed.swing.JFXPanel
@ line 8, column 1.
import javafx.embed.swing.JFXPanel
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 4: unable to resolve class javafx.application.Platform
@ line 4, column 1.
import javafx.application.Platform
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 6: unable to resolve class javafx.beans.value.ObservableValue
@ line 6, column 1.
import javafx.beans.value.ObservableValue
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 12: unable to resolve class netscape.javascript.JSObject
@ line 12, column 1.
import netscape.javascript.JSObject
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 7: unable to resolve class javafx.concurrent.Worker
@ line 7, column 1.
import javafx.concurrent.Worker
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 5: unable to resolve class javafx.beans.value.ChangeListener
@ line 5, column 1.
import javafx.beans.value.ChangeListener
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 11: unable to resolve class javafx.scene.web.WebView
@ line 11, column 1.
import javafx.scene.web.WebView
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 9: unable to resolve class javafx.scene.Scene
@ line 9, column 1.
import javafx.scene.Scene
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 10: unable to resolve class javafx.scene.web.WebEngine
@ line 10, column 1.
import javafx.scene.web.WebEngine
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 181: unable to resolve class Worker.State
@ line 181, column 78.
ddListener(new ChangeListener<Worker.Sta
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 183: unable to resolve class Worker.State
@ line 183, column 38.
void changed(ObservableValue observable, Worker.State oldValue, Worker.State newValue) {
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 183: unable to resolve class Worker.State
@ line 183, column 74.
nds Worker.State> observable, Worker.Sta
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 183: unable to resolve class Worker.State
@ line 183, column 97.
vable, Worker.State oldValue, Worker.Sta
^
13 errors
at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:309)
at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:938)
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:585)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:534)
at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:286)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:259)
at org.freeplane.plugin.script.GroovyShell.parseClass(GroovyShell.java:108)
at org.freeplane.plugin.script.GroovyShell.parse(GroovyShell.java:120)
at org.freeplane.plugin.script.GroovyShell.parse(GroovyShell.java:129)
at org.freeplane.plugin.script.GroovyScript.compileAndCache(GroovyScript.java:211)
at org.freeplane.plugin.script.GroovyScript.access$000(GroovyScript.java:47)
at org.freeplane.plugin.script.GroovyScript$1.run(GroovyScript.java:173)
… 47 more
Feb 01, 2018 6:56:30 PM org.freeplane.core.util.LogUtils warn
WARNING: error executing script /home/nep/.config/freeplane/1.6.x/addons/freeplaneGTD/scripts/ShowTasks.groovy – giving up
java.security.PrivilegedActionException: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 8: unable to resolve class javafx.embed.swing.JFXPanel
@ line 8, column 1.
import javafx.embed.swing.JFXPanel
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 4: unable to resolve class javafx.application.Platform
@ line 4, column 1.
import javafx.application.Platform
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 6: unable to resolve class javafx.beans.value.ObservableValue
@ line 6, column 1.
import javafx.beans.value.ObservableValue
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 12: unable to resolve class netscape.javascript.JSObject
@ line 12, column 1.
import netscape.javascript.JSObject
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 7: unable to resolve class javafx.concurrent.Worker
@ line 7, column 1.
import javafx.concurrent.Worker
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 5: unable to resolve class javafx.beans.value.ChangeListener
@ line 5, column 1.
import javafx.beans.value.ChangeListener
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 11: unable to resolve class javafx.scene.web.WebView
@ line 11, column 1.
import javafx.scene.web.WebView
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 9: unable to resolve class javafx.scene.Scene
@ line 9, column 1.
import javafx.scene.Scene
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 10: unable to resolve class javafx.scene.web.WebEngine
@ line 10, column 1.
import javafx.scene.web.WebEngine
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 181: unable to resolve class Worker.State
@ line 181, column 78.
ddListener(new ChangeListener<Worker.Sta
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 183: unable to resolve class Worker.State
@ line 183, column 38.
void changed(ObservableValue observable, Worker.State oldValue, Worker.State newValue) {
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 183: unable to resolve class Worker.State
@ line 183, column 74.
nds Worker.State> observable, Worker.Sta
^
file:/home/nep/.config/freeplane/1.6.x/lib/freeplaneGTD/ReportWindow.groovy: 183: unable to resolve class Worker.State
@ line 183, column 97.
vable, Worker.State oldValue, Worker.Sta
^
13 errors
Feb 01, 2018 6:56:30 PM org.freeplane.core.util.LogUtils warn
WARNING: Error executing the script:
null
Ubuntu does not seem to include JavaFX in the core distribution.
Use the following command to install it:
sudo apt-get install openjfx
Please use version 2.0.1 as there was a major annoyance in the 2.0.0 release!