X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=doc%2FAddingGroovySupport.html;h=becc4315063716eb8770ec9e7a9aca865462054d;hb=93642d621a7f86318a7777b0a70f6113dcd299dc;hp=6726612df0a7e84b0cd46d1d0fb4f45035f0b3ea;hpb=fdb9f5bbf2b5044a13131f1ad446a7967e20df34;p=jalview.git
diff --git a/doc/AddingGroovySupport.html b/doc/AddingGroovySupport.html
index 6726612..becc431 100644
--- a/doc/AddingGroovySupport.html
+++ b/doc/AddingGroovySupport.html
@@ -1,4 +1,38 @@
+#-------------------------------------------------------------------------------
+# 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
There is currently no scripting language extension within Jalview, in part because a -scripting API has not been developed. +scripting API has not yet been developed.
It is, however, really easy to embed scripting -engines within Jalview. We haven't done it -with the Bean Scripting Framework, but the -code snippets below show you how to get going -with groovy. +engines like groovy. If groovy is detected on the +classpath, a new menu entry on the Desktop's Tools +menu will open the GroovyShell.
--For each class below, add the following objects and methods to their definitions. -
-Here are some scripts to get you started:
+-.. -protected JMenuItem groovyShell = new JMenuItem(); -.. -jbInit() { -.. -groovyShell.setText("Groovy Shell..."); -groovyShell.addActionListener(new ActionListener() -{ - public void actionPerformed(ActionEvent e) { - groovyShell_actionPerformed(e); - } -}); -.. -} -.. -protected void groovyShell_actionPerformed(ActionEvent e) -{ -} -.. -
-.. -/** - * Accessor method to quickly get all the AlignmentFrames - * loaded. - */ -protected AlignFrame[] getAlignframes() { - JInternalFrame[] frames = Desktop.desktop.getAllFrames(); - - if (frames == null) - { - return null; - } - Vector avp=new Vector(); - try - { - //REVERSE ORDER - for (int i = frames.length - 1; i > -1; i--) - { - if (frames[i] instanceof AlignFrame) - { - AlignFrame af = (AlignFrame) frames[i]; - avp.addElement(af); - } - } - } - catch (Exception ex) - { - ex.printStackTrace(); - } - if (avp.size()==0) - { - return null; - } - AlignFrame afs[] = new AlignFrame[avp.size()]; - for (int i=0,j=avp.size(); i<j; i++) { - afs[i] = (AlignFrame) avp.elementAt(i); - } - avp.clear(); - return afs; -} - -/** - * Add Groovy Support to Jalview - */ -public void groovyShell_actionPerformed(ActionEvent e) { - Console gc = new Console(); - gc.setVariable("Jalview", this); - gc.run(); -} -.. +def alf = Jalview.getAlignframes(); +print alf[0].getTitle(); +def alignment = alf[0].viewport.alignment; +def seq = alignment.getSequenceAt(0);
-Finally, compile and run with the groovy-all-*.jar (get the jar
-from the embedded directory within the
+ The is obtained from the embedded directory within the groovy distribution
-
- - print Jalview.getAlignframes()[0].getTitle(); --Executing this will print the title of the first alignment loaded into Jalview. - +
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.