#------------------------------------------------------------------------------- # Jalview - A Sequence Alignment Editor and Viewer (Version 2.5.1) # Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle # # This file is part of Jalview. # # Jalview is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. # # Jalview is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR # PURPOSE. See the GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along with Jalview. If not, see . #------------------------------------------------------------------------------- Adding Groovy Support to Jalview

Adding Groovy Support to Jalview

There is currently no scripting language extension within Jalview, in part because a scripting API has not yet been developed.

It is, however, really easy to embed scripting engines like groovy. If groovy is detected on the classpath, a new menu entry on the Desktop's Tools menu will open the GroovyShell.

Here are some scripts to get you started:

Getting Groovy...

You need the core groovy jars which include the GroovyShell. The easiest way of doing this is to add the groovy-all-*.jar to the lib directory whose path is given in the java.ext.dirs property.

The is obtained from the embedded directory within the groovy distribution).

TODO

Using Java class methods from Groovy is straightforward, but currently, there isn't a set of easy to use methods for the jalview objects. A Jalview Scripting API needs to be developed to make this easier.

Making it easier

jalview.bin.JalviewScript could be a top level jalview instance of a script execution thread, creating and maintaining the context for scripts operating on the jalview datamodel and interfacing with the Jalview GUI.