+<head>\r
+<title>Groovy Shell</title>\r
+</head>\r
+<body>\r
+ <p>\r
+ <strong>The Groovy Shell</strong>\r
+ </p>\r
+ <p>\r
+ <a href="http://groovy.codehaus.org/">Groovy</a> is an "<em>agile\r
+ and dynamic language for the Java platform</em>". The groovy\r
+ scripting language makes it extremely easy to programmatically\r
+ interact with Java programs, in much the same way that Javascript is\r
+ used to generate and interact with applets and other objects on the\r
+ page.\r
+ </p>\r
+ <p>\r
+ <strong><em>Getting Groovy...</em>\r
+ </strong><br> Jalview Groovy support is only possible if the core groovy\r
+ jars which include the GroovyShell are present on the CLASSPATH when\r
+ Jalview is started.\r
+ </p>\r
+ <p>\r
+ The jars are obtained from the <em>embedded</em> directory within the\r
+ <a href="http://dist.codehaus.org/groovy/distributions">groovy\r
+ distribution</a>. The easiest way of adding them to the Jalview classpath\r
+ is to download and build jalview from it's source distribution, and\r
+ then add the groovy-all-*.jar to the lib directory whose path is given\r
+ in the java.ext.dirs property.\r
+ </p>\r
+ <p>\r
+ <strong>Opening Jalview's Groovy Console</strong><br>If groovy is\r
+ available, then the <strong>Tools→Groovy Console...</strong>\r
+ menu entry will be available from the Jalview Desktop's drop-down\r
+ menu. Selecting this will open the <a\r
+ href="http://groovy.codehaus.org/Groovy+Console">Groovy Console</a>\r
+ which allows you to interactively execute Groovy scripts within the\r
+ Jalview run-time environment.\r
+ </p>\r
+ <p>\r
+ <strong>Executing groovy scripts on Jalview startup</strong><br>\r
+ The -groovy <script> option on the <a href="commandline.html" />\r
+ Jalview command line</a> will execute the contents of <script>.\r
+ <script> may be a file, a URL, or alternatively if it is\r
+ "STDIN" then the standard input will be used.<br>\r
+ <em>Note: The groovy script will be executed <strong>after</strong>\r
+ any data is loaded, and <strong>before</strong> images or any output\r
+ files are written. This allows you to perform customised jalview\r
+ analysis workflows with groovy.</em>\r
+ </p>\r
+ <p>\r
+ <strong>Access to Jalview's functions from Groovy Scripts</strong><br>\r
+ There is as yet no properly defined scripting interface to Jalview,\r
+ but all the public methods of the jalview class hierarchy can be\r
+ called from Groovy scripts. The access point for this is the <strong>Jalview</strong>\r
+ object defined in the groovy environent which corresponds to the\r
+ <pre>jalview.gui.Desktop</pre>\r
+ object which manages all the Jalview windows.\r
+ </p>\r
+ Here's an example to get you started:\r
+ <br>\r
+ <ul>\r
+ <li>Getting the title, alignment and first sequence from the\r
+ current alignFrame<br> <pre>\r
+def alf = Jalview.getAlignframes();\r
+print alf[0].getTitle();\r
+def alignment = alf[0].viewport.alignment;\r
+def seq = alignment.getSequenceAt(0);\r
+</pre></li>\r
+<li>When running a groovy script from the command line, the alignment that was just loaded can be referred to like so:<br><pre>\r
+print currentAlFrame.getTitle();</pre>\r
+ </ul>\r
+ </p>\r
+\r
+ <p> </p>\r
+</body>\r
+</html>\r