X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=inline;f=doc%2FAddingGroovySupport.html;h=966c9b4410a17c6cc49210955e0c583169f3a0a1;hb=183ab374c9dd795f019a8824ecf07da8fa5e6d8f;hp=6726612df0a7e84b0cd46d1d0fb4f45035f0b3ea;hpb=fdb9f5bbf2b5044a13131f1ad446a7967e20df34;p=jalview.git diff --git a/doc/AddingGroovySupport.html b/doc/AddingGroovySupport.html index 6726612..966c9b4 100644 --- a/doc/AddingGroovySupport.html +++ b/doc/AddingGroovySupport.html @@ -8,109 +8,30 @@ Adding Groovy Support to Jalview
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.