My favorites | Sign in
Project Logo
Project hosting will be READ-ONLY Wednesday at 8am PST due to brief network maintenance.
          
Repository:
Checkout | Browse | Changes | Clones |
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/*
* JavaScriptUtil.java
*
* Created on 31 Jul, 2009, 10:35:57 AM
*/

package javafxyt.javascript;

import java.applet.Applet;
import java.lang.reflect.Method;

/**
*
* @author Rakesh Menon
*/
public class JavaScriptUtil {

private Class jsClass = null;
private Object jsObject = null;

public JavaScriptUtil(Applet applet) throws Exception {

/**
* var window = netscape.javascript.JSObject.getWindow(applet);
* var startDate = window.call("getStartDate", []);
*/
jsClass = Class.forName("netscape.javascript.JSObject");
Method getWindow = jsClass.getMethod("getWindow", new Class[] { Applet.class });
jsObject = getWindow.invoke(null, new Object[] { applet });
}

public Object call(String methodName, Object args[]) throws Exception {
Method call = jsClass.getMethod("call", new Class[] { String.class, Object[].class });
return call.invoke(jsObject, new Object[] { methodName, args} );
}

public Object eval(String s) throws Exception {
Method eval = jsClass.getMethod("eval", new Class[] { String.class });
return eval.invoke(jsObject, new Object[] { s } );
}

public Object getMember(String name) throws Exception {
Method getMember = jsClass.getMethod("getMember", new Class[] { String.class });
return getMember.invoke(jsObject, new Object[] { name } );
}

public Object getSlot(int index) throws Exception {
Method getSlot = jsClass.getMethod("getSlot", new Class[] { int.class });
return getSlot.invoke(jsObject, new Object[] { index } );
}

public void removeMember(String name) throws Exception {
Method removeMember = jsClass.getMethod("removeMember", new Class[] { String.class });
removeMember.invoke(jsObject, new Object[] { name } );
}

public void setMember(String name, Object value) throws Exception {
Method setMember = jsClass.getMethod("setMember", new Class[] { String.class, Object.class });
setMember.invoke(jsObject, new Object[] { name, value } );
}

public void setSlot(int index, Object value) throws Exception {
Method setSlot = jsClass.getMethod("setSlot", new Class[] { int.class, Object.class });
setSlot.invoke(jsObject, new Object[] { index, value } );
}

public String toString() {
return jsObject.toString();
}
}
Show details Hide details

Change log

1ba1398a3c by Rakesh on Aug 02, 2009   Diff
JavaFXYT
Go to: 

Older revisions

All revisions of this file

File info

Size: 2437 bytes, 70 lines
Hosted by Google Code