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"
(7 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 | + | 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 16: | Line 16: | ||
foo(20); | foo(20); | ||
foo(30); | foo(30); | ||
− | </source> | + | </source> |
+ | <br> run as vjet js application | ||
− | + | yields in eclipse console | |
− | + | <source lang="text"> | |
− | + | ||
− | <source lang=text> | + | |
20.0 | 20.0 | ||
30.0 | 30.0 | ||
− | </source> | + | </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 | + | should open web browser and display two alert boxes |
− | - alert box with 20 in it | + | - alert box with 20 in it - alert box with 30 in it |
− | - alert box with 30 in it | + | |
+ | === js file with vjo.needs dependencies === | ||
− | + | MyProject/src/foo/bar.js <source lang="javascript"> | |
− | + | ||
− | + | ||
− | MyProject/src/foo/bar.js | + | |
− | <source lang=javascript > | + | |
function foo(a){ | function foo(a){ | ||
vjo.sysout.println(a) | vjo.sysout.println(a) | ||
} | } | ||
− | </source> | + | </source> |
− | MyProject/src/foo/usingbar.js | + | MyProject/src/foo/usingbar.js <source lang="javascript"> |
− | <source lang=javascript > | + | |
vjo.needs("foo.bar") | vjo.needs("foo.bar") | ||
foo(20); | foo(20); | ||
foo(30); | foo(30); | ||
− | </source> | + | </source> |
− | run as vjet application yields | + | run as vjet application yields |
− | <source lang=text> | + | <source lang="text"> |
20.0 | 20.0 | ||
30.0 | 30.0 | ||
− | </source> | + | </source> |
− | VJET launcher automatically loads any js files included using vjo.needs | + | VJET launcher automatically loads any js files included using vjo.needs |
− | === using simple js with vjojs class === | + | === using simple js with vjojs class === |
− | MyProject/src/foo/MyClass.js | + | MyProject/src/foo/MyClass.js <source lang="javascript"> |
− | <source lang=javascript > | + | |
vjo.ctype('foo.MyClass') //< public | vjo.ctype('foo.MyClass') //< public | ||
.protos({ | .protos({ | ||
Line 83: | Line 76: | ||
}) | }) | ||
.endType(); | .endType(); | ||
− | </source> | + | </source> |
− | MyProject/src/foo/usingbar.js | + | MyProject/src/foo/usingbar.js <source lang="javascript"> |
− | <source lang=javascript > | + | |
vjo.needs("foo.MyClass") | vjo.needs("foo.MyClass") | ||
foo.MyClass().foo(20); | foo.MyClass().foo(20); | ||
foo.MyClass().foo(30); | foo.MyClass().foo(30); | ||
− | </source> | + | </source> |
− | run as vjet application yields | + | run as vjet application yields |
− | <source lang=text> | + | <source lang="text"> |
20.0 | 20.0 | ||
30.0 | 30.0 | ||
− | </source> | + | </source> |
− | === using vjojs main with vjo class dependencies === | + | === using vjojs main with vjo class dependencies === |
− | MyProject/src/foo/MyClass.js | + | MyProject/src/foo/MyClass.js <source lang="javascript"> |
− | <source lang=javascript > | + | |
vjo.ctype('foo.MyClass') //< public | vjo.ctype('foo.MyClass') //< public | ||
.protos({ | .protos({ | ||
Line 111: | Line 102: | ||
}) | }) | ||
.endType(); | .endType(); | ||
− | </source> | + | </source> |
− | MyProject/src/foo/Main.js | + | MyProject/src/foo/Main.js <source lang="javascript"> |
− | <source lang=javascript > | + | |
vjo.ctype('foo.Main') //< public | vjo.ctype('foo.Main') //< public | ||
.needs("foo.MyClass") | .needs("foo.MyClass") | ||
Line 125: | Line 115: | ||
}) | }) | ||
.endType(); | .endType(); | ||
− | </source> | + | </source> run as vjet application yields |
− | run as vjet application yields | + | |
− | <source lang=text> | + | <source lang="text"> |
20.0 | 20.0 | ||
30.0 | 30.0 | ||
− | </source> | + | </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.