Author: kono
Date: 2009-12-04 15:19:09 -0800 (Fri, 04 Dec 2009)
New Revision: 18671

Added:
   csplugins/trunk/ucsd/kono/JavaScriptEngine/JavaScriptEngine.jar
   csplugins/trunk/ucsd/kono/JavaScriptEngine/build.xml
   csplugins/trunk/ucsd/kono/JavaScriptEngine/hello.js
   csplugins/trunk/ucsd/kono/JavaScriptEngine/images/
   csplugins/trunk/ucsd/kono/JavaScriptEngine/images/rhino32.png
   csplugins/trunk/ucsd/kono/JavaScriptEngine/lib/
   csplugins/trunk/ucsd/kono/JavaScriptEngine/lib/ScriptEngineManager.jar
   csplugins/trunk/ucsd/kono/JavaScriptEngine/plugin.props
   csplugins/trunk/ucsd/kono/JavaScriptEngine/src/
   csplugins/trunk/ucsd/kono/JavaScriptEngine/src/edu/
   csplugins/trunk/ucsd/kono/JavaScriptEngine/src/edu/ucsd/
   csplugins/trunk/ucsd/kono/JavaScriptEngine/src/edu/ucsd/bioeng/
   csplugins/trunk/ucsd/kono/JavaScriptEngine/src/edu/ucsd/bioeng/idekerlab/
   
csplugins/trunk/ucsd/kono/JavaScriptEngine/src/edu/ucsd/bioeng/idekerlab/javascriptengine/
   
csplugins/trunk/ucsd/kono/JavaScriptEngine/src/edu/ucsd/bioeng/idekerlab/javascriptengine/JavaScriptEnginePlugin.java
   csplugins/trunk/ucsd/kono/JavaScriptEngine/testScripts/
   csplugins/trunk/ucsd/kono/JavaScriptEngine/testScripts/dialog.js
   csplugins/trunk/ucsd/kono/JavaScriptEngine/testScripts/generate_graph.js
   csplugins/trunk/ucsd/kono/JavaScriptEngine/testScripts/hello.js
   csplugins/trunk/ucsd/kono/JavaScriptEngine/testScripts/hello_cytoscape.js
   csplugins/trunk/ucsd/kono/JavaScriptEngine/tests/
   csplugins/trunk/ucsd/kono/JavaScriptEngine/tests/edu/
   csplugins/trunk/ucsd/kono/JavaScriptEngine/tests/edu/ucsd/
   csplugins/trunk/ucsd/kono/JavaScriptEngine/tests/edu/ucsd/bioeng/
   csplugins/trunk/ucsd/kono/JavaScriptEngine/tests/edu/ucsd/bioeng/idekerlab/
   
csplugins/trunk/ucsd/kono/JavaScriptEngine/tests/edu/ucsd/bioeng/idekerlab/javascriptengine/
   
csplugins/trunk/ucsd/kono/JavaScriptEngine/tests/edu/ucsd/bioeng/idekerlab/javascriptengine/tests/
   
csplugins/trunk/ucsd/kono/JavaScriptEngine/tests/edu/ucsd/bioeng/idekerlab/javascriptengine/tests/JavaScriptEnginePluginTest.java
Log:
New version of JavaScript Engine.

Added: csplugins/trunk/ucsd/kono/JavaScriptEngine/JavaScriptEngine.jar
===================================================================
(Binary files differ)


Property changes on: 
csplugins/trunk/ucsd/kono/JavaScriptEngine/JavaScriptEngine.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: csplugins/trunk/ucsd/kono/JavaScriptEngine/build.xml
===================================================================
--- csplugins/trunk/ucsd/kono/JavaScriptEngine/build.xml                        
        (rev 0)
+++ csplugins/trunk/ucsd/kono/JavaScriptEngine/build.xml        2009-12-04 
23:19:09 UTC (rev 18671)
@@ -0,0 +1,103 @@
+<?xml version="1.0"?>
+<!-- 
+
+       JavaScript engine for Cytoscape by Kei Ono 
+       
+       To build this plugin, you need to download Rhino engine separately.
+       
+-->
+
+<project name="JavaScriptEngine" default="all" basedir=".">
+       
+       <property name="rhino.version" value="rhino1_7R2" />
+       
+       <!-- You need modify this to your Cytoscape -->
+       <property name="cytoscape.dir" value="../cytoscape" />
+
+       <!-- All files generated by ant go here -->
+       <property name="build.dir" value="${basedir}/build" />
+
+       <!-- The java source directory-->
+       <property name="src.dir" value="${basedir}/src" />
+
+       <property name="project.jar" value="JavaScriptEngine.jar" />
+
+       <!--  ============ Compilation Control Options ======================= 
-->
+       <property name="compile.debug" value="true" />
+       <property name="compile.deprecation" value="true" />
+       <property name="compile.optimize" value="true" />
+       
+
+       <!-- ==================== Compilation Classpath ====================== 
-->
+       <path id="compile.classpath">
+               <fileset dir="${cytoscape.dir}">
+                       <include name="cytoscape.jar" />
+               </fileset>
+               <fileset dir="${basedir}/lib">
+                       <include name="*.jar" />
+               </fileset>
+       </path>
+
+       <!-- ==================== Clean Target =============================== 
-->
+       <target name="clean" description="Deletes all build files and starts 
fresh">
+               <delete dir="${build.dir}" />
+               <delete file="${project.jar}" />
+       </target>
+
+       <!-- ==================== Compile Target 
==============================-->
+       <target name="compile" depends="prepare" description="Compiles all Java 
source files">
+               <mkdir dir="${build.dir}/classes" />
+               <javac srcdir="${src.dir}" source="1.5" target="1.5" 
destdir="${build.dir}/classes" debug="${compile.debug}" 
deprecation="${compile.deprecation}" optimize="${compile.optimize}">
+                       <classpath refid="compile.classpath" />
+               </javac>
+       </target>
+
+       <!-- ==================== Jar Target ============================== -->
+       <target name="jar" depends="compile" description="Creates Plugin Jar:  
${project.jar}">
+
+               <unjar dest="${build.dir}/classes">
+                       <fileset dir="${basedir}/lib">
+                               <include name="*.jar" />
+                       </fileset>
+                       <fileset dir="${basedir}/${rhino.version}">
+                               <include name="*.jar" />
+                       </fileset>
+               </unjar>
+               
+               <copy 
todir="${build.dir}/classes/edu/ucsd/bioeng/idekerlab/javascriptengine" 
+                                                                       
file="${basedir}/plugin.props"/>
+               
+               <copy todir="${build.dir}/classes/images">
+                                       <fileset dir="${basedir}/images" />
+               </copy>
+
+               <jar destfile="${project.jar}" basedir="${build.dir}/classes">
+
+                       <manifest>
+                               <attribute name="Cytoscape-Plugin" 
value="edu.ucsd.bioeng.idekerlab.javascriptengine.JavaScriptEnginePlugin" />
+                       </manifest>
+
+               </jar>
+       </target>
+
+       <!-- ==================== Build and test jar 
============================== -->
+       <target name="all" depends="jar" />
+
+       <!-- ==================== Prepare Target ============================== 
-->
+       <target name="prepare">
+               <!-- Create build directories as needed -->
+               <mkdir dir="${build.dir}" />
+               <mkdir dir="${build.dir}/classes" />
+
+       </target>
+
+       <!-- ==================== JUnit Test Target =========================== 
-->
+       <target name="test" description="Runs all JUnit tests" 
depends="compile">
+               <junit printsummary="yes" fork="yes" haltonfailure="yes">
+                       <formatter type="plain" usefile="false" />
+                       <test name="cytoscape.test.AllTest" />
+                       <classpath refid="compile.classpath" />
+               </junit>
+       </target>
+
+</project>

Added: csplugins/trunk/ucsd/kono/JavaScriptEngine/hello.js
===================================================================
--- csplugins/trunk/ucsd/kono/JavaScriptEngine/hello.js                         
(rev 0)
+++ csplugins/trunk/ucsd/kono/JavaScriptEngine/hello.js 2009-12-04 23:19:09 UTC 
(rev 18671)
@@ -0,0 +1 @@
+print("hello!!!!!!!!!");
\ No newline at end of file

Added: csplugins/trunk/ucsd/kono/JavaScriptEngine/images/rhino32.png
===================================================================
(Binary files differ)


Property changes on: 
csplugins/trunk/ucsd/kono/JavaScriptEngine/images/rhino32.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: csplugins/trunk/ucsd/kono/JavaScriptEngine/lib/ScriptEngineManager.jar
===================================================================
(Binary files differ)


Property changes on: 
csplugins/trunk/ucsd/kono/JavaScriptEngine/lib/ScriptEngineManager.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: csplugins/trunk/ucsd/kono/JavaScriptEngine/plugin.props
===================================================================
--- csplugins/trunk/ucsd/kono/JavaScriptEngine/plugin.props                     
        (rev 0)
+++ csplugins/trunk/ucsd/kono/JavaScriptEngine/plugin.props     2009-12-04 
23:19:09 UTC (rev 18671)
@@ -0,0 +1,22 @@
+# -- The following properties are REQUIRED -- #
+
+# The plugin name that will be displayed to users
+pluginName=JavaScriptEngine
+
+# Description used to give users information about the plugin such as what it 
does.  
+# Html tags are encouraged for formatting purposes.
+pluginDescription=<p>Rhino JavaScript engine version 1.7.2.  You can run 
JavaScript on Cytoscape.  To use this, you need ScriptEngineManager Plugin.</p>
+
+# Plugin version number, this must be two numbers separated by a decimlal.  
Ex. 0.2, 14.03
+pluginVersion=0.10
+
+# Compatible Cytoscape version
+cytoscapeVersion=2.6, 2.7
+
+# Category, use one of the categories listed on the website or create your own
+pluginCategory=Communication/Scripting
+
+
+# List of authors.  Note each author and institution pair are separated by a : 
(colon)
+# each additional author institution pair must be separated from other pairs 
bye a ; (semicolon)
+pluginAuthorsIntsitutions=Keiichiro Ono:UCSD Department of Medicine
\ No newline at end of file

Added: 
csplugins/trunk/ucsd/kono/JavaScriptEngine/src/edu/ucsd/bioeng/idekerlab/javascriptengine/JavaScriptEnginePlugin.java
===================================================================
--- 
csplugins/trunk/ucsd/kono/JavaScriptEngine/src/edu/ucsd/bioeng/idekerlab/javascriptengine/JavaScriptEnginePlugin.java
                               (rev 0)
+++ 
csplugins/trunk/ucsd/kono/JavaScriptEngine/src/edu/ucsd/bioeng/idekerlab/javascriptengine/JavaScriptEnginePlugin.java
       2009-12-04 23:19:09 UTC (rev 18671)
@@ -0,0 +1,92 @@
+package edu.ucsd.bioeng.idekerlab.javascriptengine;
+
+import java.beans.PropertyChangeEvent;
+import java.lang.reflect.Method;
+
+import javax.swing.Icon;
+import javax.swing.ImageIcon;
+
+import org.apache.bsf.BSFManager;
+
+import cytoscape.Cytoscape;
+import cytoscape.plugin.CytoscapePlugin;
+import edu.ucsd.bioeng.idekerlab.scriptenginemanager.ScriptEngineManagerPlugin;
+import edu.ucsd.bioeng.idekerlab.scriptenginemanager.engine.ScriptingEngine;
+
+public class JavaScriptEnginePlugin extends CytoscapePlugin implements 
ScriptingEngine {
+       private static final String ENGINE_NAME = "javascript";
+       private static final String ENGINE_DISPLAY_NAME = "JavaScript Engine 
(based on Rhino 1.7.2)";
+       private static final Icon ICON = new 
ImageIcon(JavaScriptEnginePlugin.class.getResource("/images/rhino32.png"));
+       
+       private static final JavaScriptEnginePlugin engine = new 
JavaScriptEnginePlugin();
+       /**
+        * Creates a new RubyEnginePlugin object.
+        */
+       public JavaScriptEnginePlugin() {
+               
Cytoscape.getPropertyChangeSupport().addPropertyChangeListener(this);
+       }
+
+       /**
+        *  DOCUMENT ME!
+        *
+        * @return  DOCUMENT ME!
+        */
+       public String getDisplayName() {
+               // TODO Auto-generated method stub
+               return ENGINE_DISPLAY_NAME;
+       }
+
+       /**
+        *  DOCUMENT ME!
+        *
+        * @return  DOCUMENT ME!
+        */
+       public Icon getIcon() {
+               // TODO Auto-generated method stub
+               return ICON;
+       }
+
+       /**
+        *  DOCUMENT ME!
+        *
+        * @return  DOCUMENT ME!
+        */
+       public String getIdentifier() {
+               // TODO Auto-generated method stub
+               return ENGINE_NAME;
+       }
+
+       /**
+        *  DOCUMENT ME!
+        */
+       public static void register() {
+               BSFManager.registerScriptingEngine(ENGINE_NAME, 
"org.apache.bsf.engines.javascript.JavaScriptEngine",
+                                                  new String[] { ENGINE_NAME 
});
+
+               System.out.println("*Rhino JavaScript engine loaded!");
+
+               try {
+                       final Class engineClass = 
Class.forName("edu.ucsd.bioeng.idekerlab.scriptenginemanager.ScriptEngineManager");
+                       Method method = engineClass.getMethod("registerEngine",
+                                                             new Class[] { 
String.class, ScriptingEngine.class });
+                       Object ret = method.invoke(null, new Object[] { 
ENGINE_NAME, engine });
+               } catch (Exception e) {
+                       e.printStackTrace();
+               }
+       }
+
+       /**
+        *  DOCUMENT ME!
+        *
+        * @param e DOCUMENT ME!
+        */
+       public void propertyChange(PropertyChangeEvent e) {
+               
if(ScriptEngineManagerPlugin.getManager().getEngine(ENGINE_NAME) != null)
+                       return;
+               
+               if 
(e.getPropertyName().equals(Cytoscape.CYTOSCAPE_INITIALIZED)) {
+                       // Register this to ScriptEngineManager.
+                       register();
+               }
+       }
+}

Added: csplugins/trunk/ucsd/kono/JavaScriptEngine/testScripts/dialog.js
===================================================================
--- csplugins/trunk/ucsd/kono/JavaScriptEngine/testScripts/dialog.js            
                (rev 0)
+++ csplugins/trunk/ucsd/kono/JavaScriptEngine/testScripts/dialog.js    
2009-12-04 23:19:09 UTC (rev 18671)
@@ -0,0 +1,26 @@
+importPackage( Packages.javax.swing );
+importPackage( Packages.java.lang );
+importPackage( Packages.cytoscape );
+
+dialog = new JDialog();
+dialog.setAlwaysOnTop(true);
+dialog.setTitle("JavaScript Output");
+
+editor = new JEditorPane();
+editor.setContentType("text/html");
+builder = new StringBuilder();
+builder.append("<html><body>");
+builder.append("<h4><font color=\"#ff0000\"> Status of Current Network: " + 
Cytoscape.getCurrentNetwork().getTitle() + "</font></h4>");
+builder.append("<ul><li>" + "Number of Nodes = " + 
Cytoscape.getCurrentNetwork().nodesList().size() + "</li>");
+builder.append("<li>" + "Number of Edges = " + 
Cytoscape.getCurrentNetwork().edgesList().size());
+builder.append("</li></ul>");
+builder.append("</body></html>");
+
+editor.setText(builder.toString());
+
+dialog.add(editor);
+
+dialog.pack();
+dialog.setSize(300, 150);
+dialog.setLocationRelativeTo(Cytoscape.getDesktop());
+dialog.setVisible(true);
\ No newline at end of file

Added: csplugins/trunk/ucsd/kono/JavaScriptEngine/testScripts/generate_graph.js
===================================================================
--- csplugins/trunk/ucsd/kono/JavaScriptEngine/testScripts/generate_graph.js    
                        (rev 0)
+++ csplugins/trunk/ucsd/kono/JavaScriptEngine/testScripts/generate_graph.js    
2009-12-04 23:19:09 UTC (rev 18671)
@@ -0,0 +1,25 @@
+// Generate a complete graph
+
+importPackage( Packages.javax.swing );
+importPackage( Packages.cytoscape );
+importPackage( Packages.cytoscape.layout );
+
+newNetwork = Cytoscape.createNetwork("Complete Graph 1");
+
+var nodes = new Array();
+
+for (i=0; i<10; i++) {
+       nodeName = "Node " + i;
+       nodes.push(newNetwork.addNode(Cytoscape.getCyNode(nodeName, true)));
+}
+
+for (i=0; i<10; i++) {
+       for (j=0; j<10; j++) {
+               if(i != j) {
+                       edge = Cytoscape.getCyEdge(nodes[i], nodes[j], 
"interaction", "pp", true);
+               newNetwork.addEdge(edge);
+       }
+    }
+}
+Cytoscape.getCurrentNetworkView().redrawGraph(false, true);
+CyLayouts.getLayout("force-directed").doLayout();
\ No newline at end of file

Added: csplugins/trunk/ucsd/kono/JavaScriptEngine/testScripts/hello.js
===================================================================
--- csplugins/trunk/ucsd/kono/JavaScriptEngine/testScripts/hello.js             
                (rev 0)
+++ csplugins/trunk/ucsd/kono/JavaScriptEngine/testScripts/hello.js     
2009-12-04 23:19:09 UTC (rev 18671)
@@ -0,0 +1 @@
+print('Hello, World!');
\ No newline at end of file

Added: csplugins/trunk/ucsd/kono/JavaScriptEngine/testScripts/hello_cytoscape.js
===================================================================
--- csplugins/trunk/ucsd/kono/JavaScriptEngine/testScripts/hello_cytoscape.js   
                        (rev 0)
+++ csplugins/trunk/ucsd/kono/JavaScriptEngine/testScripts/hello_cytoscape.js   
2009-12-04 23:19:09 UTC (rev 18671)
@@ -0,0 +1,6 @@
+importPackage( Packages.javax.swing );
+
+JOptionPane.showMessageDialog(
+       null, "Hello Cytoscape!", "JavaScript on Cytoscape",
+       Packages.javax.swing.JOptionPane.INFORMATION_MESSAGE
+);
\ No newline at end of file

Added: 
csplugins/trunk/ucsd/kono/JavaScriptEngine/tests/edu/ucsd/bioeng/idekerlab/javascriptengine/tests/JavaScriptEnginePluginTest.java
===================================================================
--- 
csplugins/trunk/ucsd/kono/JavaScriptEngine/tests/edu/ucsd/bioeng/idekerlab/javascriptengine/tests/JavaScriptEnginePluginTest.java
                           (rev 0)
+++ 
csplugins/trunk/ucsd/kono/JavaScriptEngine/tests/edu/ucsd/bioeng/idekerlab/javascriptengine/tests/JavaScriptEnginePluginTest.java
   2009-12-04 23:19:09 UTC (rev 18671)
@@ -0,0 +1,48 @@
+package edu.ucsd.bioeng.idekerlab.javascriptengine.tests;
+
+import java.io.FileReader;
+
+import org.apache.bsf.BSFException;
+import org.apache.bsf.BSFManager;
+import org.apache.bsf.util.IOUtils;
+
+import junit.framework.TestCase;
+
+public class JavaScriptEnginePluginTest extends TestCase {
+
+       protected void setUp() throws Exception {
+               super.setUp();
+       }
+
+       protected void tearDown() throws Exception {
+               super.tearDown();
+       }
+
+       public void testJavaScriptEnginePlugin() throws Exception {
+                // スクリプトエンジン名
+               String engineName = "javascript";
+               // スクリプトファイル名
+               String scriptFileName = "hello.js";
+
+       
+
+               // BSFマネージャを生成する
+               BSFManager bsfmgr = new BSFManager();
+
+               // 標準以外のスクリプトエンジンを利用する場合は登録をする(今回は groovyとruby )
+               BSFManager.registerScriptingEngine("javascript", 
+                               
"org.apache.bsf.engines.javascript.JavaScriptEngine", new String[] { 
"javascript" });
+               
+
+               // スクリプトのグローバル変数としてJavaオブジェクトを登録する
+               bsfmgr.declareBean("value", "Java", String.class);
+               
+               System.out.println("============= Running Script 
=============");
+
+               // エンジンを指定して,スクリプトを実行する
+               Object obj = bsfmgr.eval( engineName, scriptFileName, 1, 1, 
+               IOUtils.getStringFromReader(new FileReader(scriptFileName)));
+
+       }
+
+}

--

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