jAlbum / SystemConsole

ToolsSystemConsole.png

This window is mainly a tool to assist developers but it can also be used by end users to run simple scripts, there are some example code snippets that can be used here.

For developers, system console provides more detailed error information and allows you to try out, and play with, scripts that you may later on use in your jAlbum skins. Note logging errors to the the system console can be controlled by setting the logging level in Preferences/General or by skin developers sending their own diagnostic messages directly to the console.

The window is split into two panels, both searchable with CMD/CNTRL + F:

SystemConsole.png
  • The upper panel is best used for scripts to be entered and evaluated, the results appear in the lower panel. Click on the SystemConsole Evaluate.png button or press CTRL+E (⌘+E on Mac) to evaluate an expression. (Evaluates selected text if selection is active)
  • The lower panel can also execute code but results will only be printed to this panel. It also captures debug prints sent to System.out and System.err


SystemConsole Scripting.png

jAlbum has three scripting engines under the hood that enables developers to extend jAlbum's functionality in various ways. You can either script in a Java-like scripting languages called Groovy and BeanShell, or use JavaScript. Other languages can be added by adding the .jar file for the relevant language to jAlbum's "lib" or "ext" folder.

Scripts are executed when skins are loaded (onload scripts), when album making starts (init scripts) and during album making (scriptlets inside the template pages of skins). Scripts are also executed whenever the user selects an external tool (see Tools->External tools)

You have access to the basic jAlbum implicit objects such as engine and window

Sample expressions (Java/BeanShell):

4*(3+2); // Basic calculations 
engine.getSkin(); // Use of implicit object
for (AlbumObject ao : selectedObjects) System.out.println(ao); // Iterate over selected objects
window.messageBox("You can interact with any Java object");


Read more on extending jAlbum in our Developer centre.


SystemConsole Threads.png

The Thread selection option is an aid in testing out Java Swing and JavaFX based user interfaces. JavaFX requires that all interaction with JavaFX UI components happen on the JavaFX thread.

SystemConsole Dump.png

If jAlbum ever seems to hang in a CPU consuming state then open the system console and hit the "Dump threads" button. Then press CMD/Cntrl + C, to open jAlbum's 'config' folder and look for a file called 'thread-dump.txt'. Post a bug in the bugs forum and attach the thread-dump.txt file, along with any other relevant information - like jAlbum and OS versions, skin being used and what you last did.