The Groovy Console ($ groovyConsole
) is a great tool to run Groovy scripts and experiment with Groovy. Normally when we run a script the return result (if not null) is shown as a string value. We can customize the way the value is shown by creating a new file with the name OutputTransforms.groovy
in our GROOVY_HOME
directory. Normally this directory is located in your user directory with the name .groovy
.
In OutputTransforms.groovy
we must fill the internal script variable transforms
of type ArrayList
with a closure where we do the actual customization of the return result. The closure has one parameter which is the return result of the script. We can check for example the type and then transform the result to a different output result.
The Groovy Console already contains some transformations for script results of type java.awt.Image
, javax.swing.Icon
and java.awt.Component
with no parent. To see the customized visual output we must make sure we enable this in the View menu and select Visualize Script Results.
The following sample code show that we return a String result that starts with <html>
and ends with </html>
as a formatted JLabel
. Other String values are prepended with the default text Groovy Console says:.
// File: ~/.groovy/OutputTransforms.groovy import javax.swing.JLabel import javax.swing.ImageIcion transforms << { result -> if (result instanceof String) { if (result ==~ /<html>.*<\/html>/) { return new JLabel(result) } else if (result == 'mrhaki') { return new ImageIcon('/Users/mrhaki/Pictures/blog/haki-logo-black-64.png') } else { return "Groovy Console says: $result" } } }