1 #-------------------------------------------------------------------------------
2 # Jalview - A Sequence Alignment Editor and Viewer (Version 2.5.1)
3 # Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
5 # This file is part of Jalview.
7 # Jalview is free software: you can redistribute it and/or
8 # modify it under the terms of the GNU General Public License
9 # as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
11 # Jalview is distributed in the hope that it will be useful, but
12 # WITHOUT ANY WARRANTY; without even the implied warranty
13 # of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14 # PURPOSE. See the GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>.
17 #-------------------------------------------------------------------------------
20 * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5)
21 * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
23 * This file is part of Jalview.
25 * Jalview is free software: you can redistribute it and/or
26 * modify it under the terms of the GNU General Public License
27 * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
29 * Jalview is distributed in the hope that it will be useful, but
30 * WITHOUT ANY WARRANTY; without even the implied warranty
31 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
32 * PURPOSE. See the GNU General Public License for more details.
34 * You should have received a copy of the GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>.
36 <title>Adding Groovy Support to Jalview
40 Adding Groovy Support to Jalview
43 There is currently no scripting language
44 extension within Jalview, in part because a
45 scripting API has not yet been developed.
47 <p>It is, however, really easy to embed scripting
48 engines like groovy. If groovy is detected on the
49 classpath, a new menu entry on the Desktop's Tools
50 menu will open the GroovyShell.
52 <p>Here are some scripts to get you started:</p>
53 <ul><li>Getting the title, alignment and first sequence from the current alignFrame<br>
55 def alf = Jalview.getAlignframes();
56 print alf[0].getTitle();
57 def alignment = alf[0].viewport.alignment;
58 def seq = alignment.getSequenceAt(0);
62 <h1>Getting Groovy...</h1>
64 You need the core groovy jars which include the GroovyShell. The easiest way of doing
65 this is to add the groovy-all-*.jar to the lib directory whose path is given in the java.ext.dirs property.</p>
66 <p>The is obtained from the <em>embedded</em> directory within the <a
67 href="http://dist.codehaus.org/groovy/distributions"/>groovy distribution</a>).
71 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.</p>
72 <h3>Making it easier</h3>
73 <p>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.