+ } 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)
+ {
+ // use reflection to avoid creating compilation dependency.
+ if (!jalview.bin.Cache.groovyJarsPresent())
+ {
+ throw new Error(
+ "Implementation Error. Cannot create groovyShell without Groovy on the classpath!");
+ }
+ try
+ {
+ Class gcClass = Desktop.class.getClassLoader().loadClass(
+ "groovy.ui.Console");
+ Constructor gccons = gcClass.getConstructor(null);
+ java.lang.reflect.Method setvar = gcClass.getMethod("setVariable",
+ new Class[]
+ { String.class, Object.class });
+ java.lang.reflect.Method run = gcClass.getMethod("run", null);
+ Object gc = gccons.newInstance(null);
+ setvar.invoke(gc, new Object[]
+ { "Jalview", this });
+ run.invoke(gc, null);
+ } catch (Exception ex)
+ {
+ jalview.bin.Cache.log.error("Groovy Shell Creation failed.", ex);
+ JOptionPane
+ .showInternalMessageDialog(
+ Desktop.desktop,
+
+ "Couldn't create the groovy Shell. Check the error log for the details of what went wrong.",
+ "Jalview Groovy Support Failed",
+ JOptionPane.ERROR_MESSAGE);
+ }
+ }
+
+ /**
+ * Progress bars managed by the IProgressIndicator method.
+ */
+ private Hashtable progressBars;
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see jalview.gui.IProgressIndicator#setProgressBar(java.lang.String, long)
+ */
+ public void setProgressBar(String message, long id)
+ {
+ if (progressBars == null)
+ {
+ progressBars = new Hashtable();