Author: kono
Date: 2010-07-23 20:07:57 -0700 (Fri, 23 Jul 2010)
New Revision: 21018
Added:
csplugins/trunk/ucsd/kono/ScriptEngineManager/lib/bsf-all-3.1.jar
csplugins/trunk/ucsd/kono/ScriptEngineManager/lib/bsf-api-3.1.jar
csplugins/trunk/ucsd/kono/ScriptEngineManager/lib/bsf-utils-3.1.jar
Modified:
csplugins/trunk/ucsd/kono/ScriptEngineManager/plugin.props
csplugins/trunk/ucsd/kono/ScriptEngineManager/src/edu/ucsd/bioeng/idekerlab/scriptenginemanager/ScriptEngineManager.java
csplugins/trunk/ucsd/kono/ScriptEngineManager/src/edu/ucsd/bioeng/idekerlab/scriptenginemanager/ScriptEngineManagerPlugin.java
csplugins/trunk/ucsd/kono/ScriptEngineManager/src/edu/ucsd/bioeng/idekerlab/scriptenginemanager/ui/SelectScriptDialog.java
Log:
Scripting Engine Manger v 0.10. JRuby 0.3 is compatible with this.
Added: csplugins/trunk/ucsd/kono/ScriptEngineManager/lib/bsf-all-3.1.jar
===================================================================
(Binary files differ)
Property changes on:
csplugins/trunk/ucsd/kono/ScriptEngineManager/lib/bsf-all-3.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: csplugins/trunk/ucsd/kono/ScriptEngineManager/lib/bsf-api-3.1.jar
===================================================================
(Binary files differ)
Property changes on:
csplugins/trunk/ucsd/kono/ScriptEngineManager/lib/bsf-api-3.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: csplugins/trunk/ucsd/kono/ScriptEngineManager/lib/bsf-utils-3.1.jar
===================================================================
(Binary files differ)
Property changes on:
csplugins/trunk/ucsd/kono/ScriptEngineManager/lib/bsf-utils-3.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: csplugins/trunk/ucsd/kono/ScriptEngineManager/plugin.props
===================================================================
--- csplugins/trunk/ucsd/kono/ScriptEngineManager/plugin.props 2010-07-24
01:10:31 UTC (rev 21017)
+++ csplugins/trunk/ucsd/kono/ScriptEngineManager/plugin.props 2010-07-24
03:07:57 UTC (rev 21018)
@@ -5,13 +5,13 @@
# Description used to give users information about the plugin such as what it
does.
# Html tags are encouraged for formatting purposes.
-pluginDescription=Manages scripting engines for Cytoscape. Supporting Ruby,
JavaScript, Groovy, and Python.
+pluginDescription=Manages scripting engines for Cytoscape. Currently supports
RubyScriptingEngine version 0.30 or later only.
# Plugin version number, this must be two numbers separated by a decimlal.
Ex. 0.2, 14.03
-pluginVersion=0.08
+pluginVersion=0.10
# Compatible Cytoscape version
-cytoscapeVersion=2.6, 2.7
+cytoscapeVersion=2.7, 2.8
# Category, use one of the categories listed on the website or create your own
pluginCategory=Communication/Scripting
Modified:
csplugins/trunk/ucsd/kono/ScriptEngineManager/src/edu/ucsd/bioeng/idekerlab/scriptenginemanager/ScriptEngineManager.java
===================================================================
---
csplugins/trunk/ucsd/kono/ScriptEngineManager/src/edu/ucsd/bioeng/idekerlab/scriptenginemanager/ScriptEngineManager.java
2010-07-24 01:10:31 UTC (rev 21017)
+++
csplugins/trunk/ucsd/kono/ScriptEngineManager/src/edu/ucsd/bioeng/idekerlab/scriptenginemanager/ScriptEngineManager.java
2010-07-24 03:07:57 UTC (rev 21018)
@@ -34,64 +34,72 @@
*/
package edu.ucsd.bioeng.idekerlab.scriptenginemanager;
-import cytoscape.Cytoscape;
-
-import edu.ucsd.bioeng.idekerlab.scriptenginemanager.engine.ScriptingEngine;
-import edu.ucsd.bioeng.idekerlab.scriptenginemanager.ui.SelectScriptDialog;
-
-import org.apache.bsf.BSFException;
-import org.apache.bsf.BSFManager;
-import org.apache.bsf.util.IOUtils;
-
import java.awt.event.ActionEvent;
-
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
-
import java.io.FileReader;
import java.io.IOException;
-
import java.lang.reflect.Method;
-
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
+import javax.script.ScriptEngine;
+import javax.script.ScriptException;
import javax.swing.AbstractAction;
+import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
+import cytoscape.Cytoscape;
+import cytoscape.logger.CyLogger;
+import edu.ucsd.bioeng.idekerlab.scriptenginemanager.engine.ScriptingEngine;
+import edu.ucsd.bioeng.idekerlab.scriptenginemanager.ui.SelectScriptDialog;
+
/**
- *
+ * Wrapper class for BSF Scripting Engine Manager
+ *
+ * @author kono
+ *
*/
public class ScriptEngineManager implements PropertyChangeListener {
- private static final BSFManager manager;
- private static final Map<String, ScriptingEngine> registeredNames = new
ConcurrentHashMap<String, ScriptingEngine>();
- private static JMenu menu;
- private static JMenu consoleMenu;
+
+ private static final javax.script.ScriptEngineManager manager;
+
+ private static final Icon SCRIPT_ICON = new
ImageIcon(ScriptEngineManager.class.getResource("/images/stock_run-macro.png"));
+ private static final Icon CONSOLE_ICON = new
ImageIcon(ScriptEngineManager.class
+ .getResource("/images/gnome-terminal.png"));
+
+
+ private final Map<String, ScriptingEngine> registeredNames;
+
+ private final JMenu menu;
+ private final JMenu consoleMenu;
static {
- manager = new BSFManager();
+ manager = new javax.script.ScriptEngineManager();
}
/**
* Creates a new ScriptEngineManager object.
*/
- public ScriptEngineManager() {
+ ScriptEngineManager() {
+
+ registeredNames = new ConcurrentHashMap<String,
ScriptingEngine>();
+
menu = new JMenu("Execute Scripts...");
- menu.setIcon(new ImageIcon(ScriptEngineManager.class
- .getResource("/images/stock_run-macro.png")));
+ menu.setIcon(SCRIPT_ICON);
Cytoscape.getDesktop().getCyMenus().getMenuBar().getMenu("Plugins")
.add(menu);
consoleMenu = new JMenu("Scripting Language Consoles");
- consoleMenu.setIcon(new ImageIcon(ScriptEngineManager.class
- .getResource("/images/gnome-terminal.png")));
+ consoleMenu.setIcon(CONSOLE_ICON);
Cytoscape.getDesktop().getCyMenus().getMenuBar().getMenu("Plugins")
.add(consoleMenu);
}
- protected static BSFManager getManager() {
+
+ javax.script.ScriptEngineManager getManager() {
return manager;
}
@@ -103,11 +111,12 @@
* @param engine
* DOCUMENT ME!
*/
- public static void registerEngine(final String id,
- final ScriptingEngine engine) {
+ public void registerEngine(final String id, final ScriptingEngine
engine) {
registeredNames.put(id, engine);
menu.add(new JMenuItem(new
AbstractAction(engine.getDisplayName()) {
+
+
public void actionPerformed(ActionEvent e) {
SelectScriptDialog.showDialog(id);
}
@@ -120,7 +129,7 @@
* @param consoleMenuItem
* DOCUMENT ME!
*/
- public static void addConsoleMenu(final JMenuItem consoleMenuItem) {
+ public void addConsoleMenu(final JMenuItem consoleMenuItem) {
consoleMenu.add(consoleMenuItem);
}
@@ -150,35 +159,33 @@
* DOCUMENT ME!
* @throws IOException
* DOCUMENT ME!
+ * @throws ScriptException
*/
public static void execute(final String engineName,
final String scriptFileName, final Map<String, String>
arguments)
- throws BSFException, IOException {
- if (BSFManager.isLanguageRegistered(engineName) == false) {
+ throws ScriptException {
+
+ final ScriptEngine engine = manager.getEngineByName(engineName);
+
+ if ( engine == null) {
// Register Engine
- System.out.println("Error: Can't find " + engineName);
-
+ CyLogger.getLogger().error("Error: Can't find " +
engineName);
return;
}
- manager.terminate();
-
try {
// This is a hack... I need to decide which version of
Scripting
// System is appropriate for Cytoscape 3.
if (engineName != "jython") {
- final Object returnVal =
manager.eval(engineName,
- scriptFileName, 1, 1, IOUtils
-
.getStringFromReader(new FileReader(
-
scriptFileName)));
+ final Object returnVal = engine.eval(new
FileReader(scriptFileName));
- if (returnVal != null) {
+ if (returnVal != null)
System.out.println("Return Val = [" +
returnVal + "]");
- }
+
} else {
// Jython uses special console to execute
script.
- final Class engineClass = Class
+ final Class<?> engineClass = Class
.forName("edu.ucsd.bioeng.idekerlab.pythonengine.PythonEnginePlugin");
Method method =
engineClass.getMethod("executePythonScript",
new Class[] { String.class });
@@ -187,8 +194,7 @@
}
} catch (Exception e) {
- throw new
BSFException(BSFException.REASON_EXECUTION_ERROR,
- "Error found in your script", e);
+ throw new ScriptException(e);
}
}
Modified:
csplugins/trunk/ucsd/kono/ScriptEngineManager/src/edu/ucsd/bioeng/idekerlab/scriptenginemanager/ScriptEngineManagerPlugin.java
===================================================================
---
csplugins/trunk/ucsd/kono/ScriptEngineManager/src/edu/ucsd/bioeng/idekerlab/scriptenginemanager/ScriptEngineManagerPlugin.java
2010-07-24 01:10:31 UTC (rev 21017)
+++
csplugins/trunk/ucsd/kono/ScriptEngineManager/src/edu/ucsd/bioeng/idekerlab/scriptenginemanager/ScriptEngineManagerPlugin.java
2010-07-24 03:07:57 UTC (rev 21018)
@@ -31,28 +31,34 @@
You should have received a copy of the GNU Lesser General Public License
along with this library; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
-*/
+ */
package edu.ucsd.bioeng.idekerlab.scriptenginemanager;
import cytoscape.plugin.CytoscapePlugin;
-
/**
- *
+ * Cytoscape Scripting Engine Manager Plugin
+ *
+ * @author kono
+ * @version 0.90
+ *
*/
public class ScriptEngineManagerPlugin extends CytoscapePlugin {
+
private static final ScriptEngineManager manager = new
ScriptEngineManager();
/**
* Creates a new ScriptEngineManagerPlugin object.
+ *
+ * This is private because this object is a singleton.
+ *
*/
- public ScriptEngineManagerPlugin() {
- }
+ public ScriptEngineManagerPlugin() {}
/**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
+ * Get scripting engine manager object.
+ *
+ * @return Scripting engine manager (singleton).
*/
public static ScriptEngineManager getManager() {
return manager;
Modified:
csplugins/trunk/ucsd/kono/ScriptEngineManager/src/edu/ucsd/bioeng/idekerlab/scriptenginemanager/ui/SelectScriptDialog.java
===================================================================
---
csplugins/trunk/ucsd/kono/ScriptEngineManager/src/edu/ucsd/bioeng/idekerlab/scriptenginemanager/ui/SelectScriptDialog.java
2010-07-24 01:10:31 UTC (rev 21017)
+++
csplugins/trunk/ucsd/kono/ScriptEngineManager/src/edu/ucsd/bioeng/idekerlab/scriptenginemanager/ui/SelectScriptDialog.java
2010-07-24 03:07:57 UTC (rev 21018)
@@ -63,6 +63,9 @@
*
*/
public class SelectScriptDialog extends JDialog {
+
+ private static final long serialVersionUID = 8588359223553568782L;
+
private static SelectScriptDialog dialog = new SelectScriptDialog(null,
true);
private static String currentEngineID;
private String scriptName = null;
--
You received this message because you are subscribed to the Google Groups
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/cytoscape-cvs?hl=en.