Autodesk 15606-011408-9300 Developer Guide - Page 80

onBeginLayout, MG Setup, MGPrintInfo, object and an

Page 80 highlights

3 Write the event handler. It goes in the HTML page (or the JavaScript .js file), just like any other JavaScript function. This function is executed automatically every time the onBeginLayout event fires. Note that the function takes an MGPageSetup object and an MGPrintInfo object as its parameters: function onBeginLayout (pgSetup, info) { if (map_only == "true") { pgSetup.setInclude("mg_legend", false); pgSetup.setInclude("mg_northarrow", false); pgSetup.setInclude("mg_scalebar", false); pgSetup.setInclude("mg_title", false); pgSetup.setInclude("mg_timestamp", false); pgSetup.setInclude("mg_url", false); } } The following code shows how to implement the same event handler for the onBeginLayout event in Java: public class MyObserver extends Applet implements MGPrintingObserver { public void onBeginLayout(MGPageSetup pgSetup, MGPrintInfo info) { // turn off all elements except the map pgSetup.setInclude("mg_scalebar", false); pgSetup.setInclude("mg_northarrow", false); pgSetup.setInclude("mg_title", false); pgSetup.setInclude("mg_timestamp", false); pgSetup.setInclude("mg_legend", false); } } Note You can control the Page Setup without using the onBeginLayout event, but the results are different. In the example above, the Page Setup is modified only for that printout. Because the event handler is working with a copy of the MGPageSetup object, subsequent printouts from the popup menu don't show these changes, and the changes don't appear in the Page Setup dialog box. If you were to write a similar function that was not attached to the onBeginLayout event, the changes would continue to be reflected in both the printout and the Page Setup dialog box until the map is refreshed. 80 | Chapter 5 Handling Events

  • 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

80
|
Chapter 5
Handling Events
3
Write the event handler. It goes in the HTML page (or the JavaScript
.js
file), just like any other JavaScript function. This function is executed
automatically every time the
onBeginLayout
event fires. Note that the
function takes an
MGPageSetup
object and an
MGPrintInfo
object as its
parameters:
function onBeginLayout (pgSetup, info)
{
if (map_only == "true")
{
pgSetup.setInclude("mg_legend", false);
pgSetup.setInclude("mg_northarrow", false);
pgSetup.setInclude("mg_scalebar", false);
pgSetup.setInclude("mg_title", false);
pgSetup.setInclude("mg_timestamp", false);
pgSetup.setInclude("mg_url", false);
}
}
The following code shows how to implement the same event handler for the
onBeginLayout
event in Java:
public class MyObserver extends Applet implements
MGPrintingObserver
{
public void onBeginLayout(MGPageSetup pgSetup, MGPrintInfo info)
{
// turn off all elements except the map
pgSetup.setInclude("mg_scalebar", false);
pgSetup.setInclude("mg_northarrow", false);
pgSetup.setInclude("mg_title", false);
pgSetup.setInclude("mg_timestamp", false);
pgSetup.setInclude("mg_legend", false);
}
}
Note
You can control the Page Setup without using the
onBeginLayout
event, but the results are different. In the example above, the Page Setup is mod-
ified only for that printout. Because the event handler is working with a copy of
the
MGPageSetup
object, subsequent printouts from the popup menu don
t
show these changes, and the changes don
t appear in the Page Setup dialog box.
If you were to write a similar function that was not attached to the
onBeginLayout
event, the changes would continue to be reflected in both the
printout and the Page Setup dialog box until the map is refreshed.