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.