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.

Reply via email to