Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "VJET/JavaScript Run As"
(→VJET supports running JavaScript and vjojs) |
|||
(12 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | == VJET supports running JavaScript and vjojs == | + | == VJET supports running JavaScript and vjojs == |
− | === Simple JS Run with Rhino === | + | === Simple JS Run with Rhino === |
− | Basic run as vjet js application should work for simple functions and vjojs. | + | Basic run as vjet js application should work for simple functions and vjojs. |
− | VJET provides a simple api for outputting to the console and is automatically wired into Rhino. vjo.sysout and vjo.syserr. This idea was borrowed from java System class. | + | VJET provides a simple api for outputting to the console and is automatically wired into Rhino. vjo.sysout and vjo.syserr. This idea was borrowed from java System class. |
− | + | add this file foo.js into vjet project | |
− | + | <source lang="javascript"> | |
− | + | ||
− | <source lang=javascript> | + | |
function foo(a){ | function foo(a){ | ||
vjo.sysout.println(a) | vjo.sysout.println(a) | ||
Line 18: | Line 16: | ||
foo(20); | foo(20); | ||
foo(30); | foo(30); | ||
− | </source> | + | </source> |
+ | <br> run as vjet js application | ||
− | + | yields in eclipse console | |
− | + | ||
− | yields in eclipse console | + | |
+ | <source lang="text"> | ||
20.0 | 20.0 | ||
30.0 | 30.0 | ||
+ | </source> | ||
− | === Simple JS Run with Web Browser === | + | === Simple JS Run with Web Browser === |
− | <source lang=javascript> | + | <source lang="javascript"> |
function foo(a){ | function foo(a){ | ||
alert(a) | alert(a) | ||
Line 37: | Line 36: | ||
foo(20); | foo(20); | ||
foo(30); | foo(30); | ||
− | </source> | + | </source> |
+ | |||
+ | should open web browser and display two alert boxes | ||
+ | |||
+ | - alert box with 20 in it - alert box with 30 in it | ||
+ | |||
+ | === js file with vjo.needs dependencies === | ||
+ | |||
+ | MyProject/src/foo/bar.js <source lang="javascript"> | ||
+ | function foo(a){ | ||
+ | vjo.sysout.println(a) | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | MyProject/src/foo/usingbar.js <source lang="javascript"> | ||
+ | vjo.needs("foo.bar") | ||
+ | foo(20); | ||
+ | foo(30); | ||
+ | </source> | ||
+ | |||
+ | run as vjet application yields | ||
+ | |||
+ | <source lang="text"> | ||
+ | 20.0 | ||
+ | 30.0 | ||
+ | </source> | ||
+ | |||
+ | VJET launcher automatically loads any js files included using vjo.needs | ||
+ | |||
+ | === using simple js with vjojs class === | ||
+ | |||
+ | MyProject/src/foo/MyClass.js <source lang="javascript"> | ||
+ | vjo.ctype('foo.MyClass') //< public | ||
+ | .protos({ | ||
+ | //>public void foo(Number) | ||
+ | foo : function(a){ | ||
+ | vjo.sysout.println(a) | ||
+ | } | ||
+ | }) | ||
+ | .endType(); | ||
+ | </source> | ||
+ | |||
+ | MyProject/src/foo/usingbar.js <source lang="javascript"> | ||
+ | vjo.needs("foo.MyClass") | ||
+ | foo.MyClass().foo(20); | ||
+ | foo.MyClass().foo(30); | ||
+ | </source> | ||
+ | |||
+ | run as vjet application yields | ||
+ | |||
+ | <source lang="text"> | ||
+ | 20.0 | ||
+ | 30.0 | ||
+ | </source> | ||
+ | |||
+ | === using vjojs main with vjo class dependencies === | ||
+ | |||
+ | MyProject/src/foo/MyClass.js <source lang="javascript"> | ||
+ | vjo.ctype('foo.MyClass') //< public | ||
+ | .protos({ | ||
+ | //>public void foo(Number) | ||
+ | foo : function(a){ | ||
+ | vjo.sysout.println(a) | ||
+ | } | ||
+ | }) | ||
+ | .endType(); | ||
+ | </source> | ||
+ | |||
+ | MyProject/src/foo/Main.js <source lang="javascript"> | ||
+ | vjo.ctype('foo.Main') //< public | ||
+ | .needs("foo.MyClass") | ||
+ | .props({ | ||
+ | //>public void main(String... args) | ||
+ | main : function(args){ | ||
+ | foo.MyClass().foo(20); | ||
+ | foo.MyClass().foo(30); | ||
+ | } | ||
+ | }) | ||
+ | .endType(); | ||
+ | </source> run as vjet application yields | ||
+ | |||
+ | <source lang="text"> | ||
+ | 20.0 | ||
+ | 30.0 | ||
+ | </source> | ||
+ | |||
+ | === TODO<br> === | ||
− | + | *Support needs comment as dependency | |
+ | *Debugging JS documentation | ||
+ | *Running Js runner with vjojs and java | ||
+ | *Debugging JS in Web browser | ||
+ | *Support console api rather than vjo.sysout - easier to switch between web and rhino | ||
+ | *Linking this with homepage | ||
− | + | <br> | |
− | + | ||
+ | <br> Tested with Indigo SR2 and Juno SR1 versions of Eclipse. | ||
− | + | [[Category:VJET|JavaScript Debugging]] |
Latest revision as of 18:18, 15 March 2013
Contents
VJET supports running JavaScript and vjojs
Simple JS Run with Rhino
Basic run as vjet js application should work for simple functions and vjojs.
VJET provides a simple api for outputting to the console and is automatically wired into Rhino. vjo.sysout and vjo.syserr. This idea was borrowed from java System class.
add this file foo.js into vjet project
function foo(a){ vjo.sysout.println(a) } foo(20); foo(30);
run as vjet js application
yields in eclipse console
20.0 30.0
Simple JS Run with Web Browser
function foo(a){ alert(a) } foo(20); foo(30);
should open web browser and display two alert boxes
- alert box with 20 in it - alert box with 30 in it
js file with vjo.needs dependencies
MyProject/src/foo/bar.jsfunction foo(a){ vjo.sysout.println(a) }
vjo.needs("foo.bar") foo(20); foo(30);
run as vjet application yields
20.0 30.0
VJET launcher automatically loads any js files included using vjo.needs
using simple js with vjojs class
MyProject/src/foo/MyClass.jsvjo.ctype('foo.MyClass') //< public .protos({ //>public void foo(Number) foo : function(a){ vjo.sysout.println(a) } }) .endType();
vjo.needs("foo.MyClass") foo.MyClass().foo(20); foo.MyClass().foo(30);
run as vjet application yields
20.0 30.0
using vjojs main with vjo class dependencies
MyProject/src/foo/MyClass.jsvjo.ctype('foo.MyClass') //< public .protos({ //>public void foo(Number) foo : function(a){ vjo.sysout.println(a) } }) .endType();
vjo.ctype('foo.Main') //< public .needs("foo.MyClass") .props({ //>public void main(String... args) main : function(args){ foo.MyClass().foo(20); foo.MyClass().foo(30); } }) .endType();
20.0 30.0
TODO
- Support needs comment as dependency
- Debugging JS documentation
- Running Js runner with vjojs and java
- Debugging JS in Web browser
- Support console api rather than vjo.sysout - easier to switch between web and rhino
- Linking this with homepage
Tested with Indigo SR2 and Juno SR1 versions of Eclipse.