Autodesk 15606-011408-9300 Developer Guide - Page 42

Calling JavaScript Functions from a Java Applet, To access JavaScript from a Java Applet

Page 42 highlights

This code calls the Init function, which is placed within the onLoad event, which is inserted into the BODY tag. This prevents errors by loading the map before any code tries to access it. Init passes the embedded map object into the setMap function in the applet. Now you can make any API call to the example file, myUSAMap, in your applet. For instance: Public void getViewerInfo() { myUSAMap.aboutDlg(); } The API is available from Autodesk MapGuide classes in the npmapv32.zip file you copied in Step 1. Calling JavaScript Functions from a Java Applet You can call JavaScript functions in your HTML page from a Java applet. To access JavaScript from a Java Applet 1 Import the netscape.javascript package into your Java applet code. You can usually find this package in the \Program\Java\Classes\java40.jar file in the Netscape browser root directory. You can download this filw from http://developer.netscape.com/software/jdk/download.html. This package provides access to the JSObject class containing the getWindow method, which enables you to call JavaScript methods from your applet. 2 The syntax for calling a JavaScript function from your applet is: JSObject.getWindow(applet instance).call("function name", parameters) If you want to forward the onDigitizedCircle event to a JavaScript function called onDigitizedCircleHandler, you must first put all of the parameters into a java.lang.Object array before you can call onDigitizedCircleHandler. Since the fourth parameter of the onDigitizedCircle event is not derived from the java.lang.Object class, you need to wrap it as a java.lang.Double object: public void onDigitizedCircle(MGMap map, String units, MGPoint center, double radius) { Object[] params = new Object[4]; params[0] = map; params[1] = units; params[2] = center; params[3] = new Double(radius); JSObject.getWindow(this).call("onDigitizedCircleHandler", params); } 42 | Chapter 3 Accessing Maps

  • 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
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208

42
|
Chapter 3
Accessing Maps
This code calls the
Init
function, which is placed within the
onLoad
event, which is inserted into the
BODY
tag. This prevents errors by loading
the map before any code tries to access it.
Init
passes the embedded map
object into the
setMap
function in the applet. Now you can make any API
call to the example file,
myUSAMap
, in your applet. For instance:
Public void getViewerInfo()
{
myUSAMap.aboutDlg();
}
The API is available from Autodesk MapGuide classes in the
npmapv32.zip
file you copied in Step 1.
Calling JavaScript Functions from a Java Applet
You can call JavaScript functions in your HTML page from a Java applet.
To access JavaScript from a Java Applet
1
Import the
netscape.javascript
package into your Java applet code. You can
usually find this package in the
\Program\Java\Classes\java40.jar
file in
the Netscape browser root directory. You can download this filw from
. This pack-
age provides access to the
JSObject
class containing the
getWindow
method, which enables you to call JavaScript methods from your applet.
2
The syntax for calling a JavaScript function from your applet is:
JSObject.getWindow(
applet instance
).call("
function name
",
parameters
)
If you want to forward the
onDigitizedCircle
event to a JavaScript
function called
onDigitizedCircleHandler
, you must first put all of
the parameters into a
java.lang.Object
array before you can call
onDigitizedCircleHandler
. Since the fourth parameter of the
onDigitizedCircle
event is not derived from the
java.lang.Object
class, you need to wrap it as a
java.lang.Double
object:
public void onDigitizedCircle(MGMap map, String units, MGPoint
center, double radius)
{
Object[] params = new Object[4];
params[0] = map;
params[1] = units;
params[2] = center;
params[3] = new Double(radius);
JSObject.getWindow(this).call("onDigitizedCircleHandler",
params);
}