1
|
<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
|
2
|
<html>
|
3
|
<head>
|
4
|
<title>
|
5
|
<a href='http://mapbuilder.sourceforge.net'>Community Map Builder</a> 27 Apr 2008 Overview
|
6
|
</title>
|
7
|
<link rel ="stylesheet" type="text/css" href="stylesheet.css" title="Style">
|
8
|
<script>
|
9
|
function asd() {
|
10
|
|
11
|
parent.document.title="ButtonBase.js Overview";
|
12
|
|
13
|
}
|
14
|
</script>
|
15
|
</head>
|
16
|
<body bgcolor="white" onload="asd();">
|
17
|
|
18
|
<!-- ========== START OF NAVBAR ========== -->
|
19
|
<a name="navbar_top"><!-- --></a>
|
20
|
<table border="0" width="100%" cellpadding="1" cellspacing="0">
|
21
|
<tr>
|
22
|
<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
|
23
|
<a name="navbar_top_firstrow"><!-- --></a>
|
24
|
<table border="0" cellpadding="0" cellspacing="3">
|
25
|
<tr align="center" valign="top">
|
26
|
|
27
|
|
28
|
<td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
|
29
|
<td bgcolor="#FFFFFF" class="NavBarCell1Rev"> <font class="NavBarFont1Rev"><b>File</b></font> </td>
|
30
|
|
31
|
|
32
|
<td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td>
|
33
|
<td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
|
34
|
<td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
|
35
|
<td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
|
36
|
</tr>
|
37
|
</table>
|
38
|
</td>
|
39
|
<td bgcolor="#EEEEFF" align="right" valign="top">
|
40
|
<em>
|
41
|
<b><a href='http://mapbuilder.sourceforge.net'>Community Map Builder</a> 27 Apr 2008</b></em>
|
42
|
</td>
|
43
|
</tr>
|
44
|
|
45
|
<tr>
|
46
|
<td bgcolor="white" class="NavBarCell2"><font size="-2">
|
47
|
PREV
|
48
|
NEXT</font></td>
|
49
|
<td bgcolor="white" class="NavBarCell2"><font size="-2">
|
50
|
<a href="index.html" target="_top"><b>FRAMES</b></a>
|
51
|
<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
|
52
|
|
53
|
<script>
|
54
|
<!--
|
55
|
if(window==top) {
|
56
|
document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
|
57
|
}
|
58
|
//-->
|
59
|
</script>
|
60
|
<noscript>
|
61
|
<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
|
62
|
</noscript>
|
63
|
</font></td>
|
64
|
</tr>
|
65
|
</table>
|
66
|
<!-- =========== END OF NAVBAR =========== -->
|
67
|
|
68
|
<hr>
|
69
|
<center>
|
70
|
|
71
|
<h2>ButtonBase.js</h2>
|
72
|
|
73
|
</center>
|
74
|
|
75
|
|
76
|
|
77
|
|
78
|
<h4>Summary</h4>
|
79
|
<p>
|
80
|
|
81
|
No overview generated for 'ButtonBase.js'<BR/><BR/>
|
82
|
|
83
|
</p>
|
84
|
|
85
|
<hr>
|
86
|
|
87
|
|
88
|
<table border="1" cellpadding="3" cellspacing="0" width="100%">
|
89
|
<tr bgcolor="#CCCCFF" class="TableHeadingColor">
|
90
|
<td colspan=2><font size="+2">
|
91
|
|
92
|
<b>Class Summary</b>
|
93
|
|
94
|
</font></td>
|
95
|
</tr>
|
96
|
|
97
|
<tr bgcolor="white" class="TableRowColor">
|
98
|
<td width="15%"><b><a href="ButtonBase.html">ButtonBase</a></b></td>
|
99
|
<td> </td>
|
100
|
</tr>
|
101
|
|
102
|
</table>
|
103
|
<hr/>
|
104
|
|
105
|
|
106
|
<!-- ========== METHOD SUMMARY =========== -->
|
107
|
|
108
|
<!-- ========== END METHOD SUMMARY =========== -->
|
109
|
|
110
|
|
111
|
<pre class="sourceview"><span class="comment">/*
|
112
|
License: LGPL as per: http://www.gnu.org/copyleft/lesser.html
|
113
|
$Id: ButtonBase.js 3879 2008-02-27 14:20:29Z gjvoosten $
|
114
|
*/</span>
|
115
|
<span class="comment">
|
116
|
// Ensure this object's dependancies are loaded.</span>
|
117
|
mapbuilder.loadScript(baseDir+<span class="literal">"/util/Util.js"</span>);
|
118
|
mapbuilder.loadScript(baseDir+<span class="literal">"/widget/WidgetBase.js"</span>);
|
119
|
|
120
|
<span class="comment">/**
|
121
|
* Abstract base button object that all Buttons extend.
|
122
|
* A Button is a widget which renders an image and an optional second image
|
123
|
* for the enabled state.
|
124
|
* <span class="attrib">@constructor</span>
|
125
|
* <span class="attrib">@base</span> WidgetBase
|
126
|
* <span class="attrib">@author</span> Mike Adair mike.adairATccrs.nrcan.gc.ca
|
127
|
* <span class="attrib">@param</span> widgetNode The tool node from the Config XML file.
|
128
|
* <span class="attrib">@param</span> model The parent model object (optional).
|
129
|
*/</span>
|
130
|
<span class="reserved">function</span> ButtonBase(widgetNode, model) {
|
131
|
WidgetBase.apply(<span class="reserved">this</span>, new Array(widgetNode, model));
|
132
|
|
133
|
<span class="reserved">this</span>.htmlTagId = <span class="reserved">this</span>.getProperty(<span class="literal">"mb:buttonBar"</span>);
|
134
|
<span class="reserved">if</span> (!<span class="reserved">this</span>.htmlTagId) {
|
135
|
<span class="reserved">this</span>.htmlTagId = <span class="reserved">this</span>.getProperty(<span class="literal">"mb:htmlTagId"</span>);
|
136
|
}
|
137
|
<span class="reserved">if</span> (!<span class="reserved">this</span>.htmlTagId) {
|
138
|
alert(mbGetMessage(<span class="literal">"buttonBarRequired"</span>, widgetNode.nodeName));
|
139
|
}
|
140
|
<span class="comment"> // Set button text values as parameters</span>
|
141
|
<span class="reserved">if</span> (config.widgetText) {
|
142
|
var textNodeXpath = <span class="literal">"/mb:WidgetText/mb:widgets/mb:"</span> + widgetNode.nodeName;
|
143
|
var textParams = config.widgetText.selectNodes(textNodeXpath+<span class="literal">"/*"</span>);
|
144
|
<span class="reserved">for</span> (var j=0;j<textParams.length;j++) {
|
145
|
<span class="reserved">this</span>[textParams[j].nodeName]=getNodeValue(textParams[j]);
|
146
|
}
|
147
|
}
|
148
|
<span class="comment"> // html tag id of the div where OL places its panel code</span>
|
149
|
<span class="reserved">this</span>.panelHtmlTagId = <span class="reserved">this</span>.htmlTagId+<span class="literal">'_panel'</span>;
|
150
|
<span class="comment">
|
151
|
// load controlPanel.css for button base styles</span>
|
152
|
loadCss(<span class="literal">'controlPanel.css'</span>);
|
153
|
<span class="comment">
|
154
|
//set the button type</span>
|
155
|
<span class="reserved">this</span>.buttonType = <span class="reserved">this</span>.getProperty(<span class="literal">"mb:class"</span>)
|
156
|
<span class="reserved">this</span>.buttonType = <span class="reserved">this</span>.buttonType ? <span class="reserved">this</span>.buttonType.toUpperCase() : null;
|
157
|
<span class="reserved">if</span> (<span class="reserved">this</span>.buttonType == <span class="literal">"RADIOBUTTON"</span>) <span class="reserved">this</span>.enabled = false;
|
158
|
<span class="comment">
|
159
|
// map between MB and OL button types</span>
|
160
|
<span class="reserved">this</span>.olButtonType = {
|
161
|
<span class="literal">"RADIOBUTTON"</span> : OpenLayers.Control.TYPE_TOOL,
|
162
|
<span class="literal">"TOOL"</span> : OpenLayers.Control.TYPE_TOOL,
|
163
|
<span class="literal">"BUTTON"</span> : OpenLayers.Control.TYPE_BUTTON,
|
164
|
<span class="literal">"TOGGLE"</span> : OpenLayers.Control.TYPE_TOGGLE
|
165
|
}
|
166
|
<span class="comment">
|
167
|
//set the button action</span>
|
168
|
<span class="reserved">this</span>.action = <span class="reserved">this</span>.getProperty(<span class="literal">"mb:action"</span>);
|
169
|
<span class="comment">
|
170
|
// set the button tooltip</span>
|
171
|
var tooltip = <span class="reserved">this</span>.getProperty(<span class="literal">"mb:tooltip"</span>);
|
172
|
<span class="reserved">if</span> (tooltip) {
|
173
|
<span class="reserved">this</span>.tooltip = tooltip;
|
174
|
}
|
175
|
<span class="comment">
|
176
|
//pre-load the button bar images; add them to the config</span>
|
177
|
var disabledImage = <span class="reserved">this</span>.getProperty(<span class="literal">"mb:disabledSrc"</span>);
|
178
|
<span class="reserved">if</span> (disabledImage) {
|
179
|
<span class="reserved">this</span>.disabledImage = config.skinDir + disabledImage;
|
180
|
}
|
181
|
<span class="comment">
|
182
|
//optional second image to be displayed in the enabled state</span>
|
183
|
var enabledImage = <span class="reserved">this</span>.getProperty(<span class="literal">"mb:enabledSrc"</span>);
|
184
|
<span class="reserved">if</span> (enabledImage) {
|
185
|
<span class="reserved">this</span>.enabledImage = config.skinDir + enabledImage;
|
186
|
}
|
187
|
|
188
|
<span class="reserved">this</span>.cursor = <span class="literal">'default'</span>;
|
189
|
<span class="comment">
|
190
|
// Check for cursor override</span>
|
191
|
<span class="reserved">this</span>.cursor = <span class="reserved">this</span>.getProperty(<span class="literal">"mb:cursor"</span>);
|
192
|
<span class="comment">
|
193
|
//a button may be set as selected in the config file</span>
|
194
|
<span class="reserved">this</span>.selected = Mapbuilder.parseBoolean(<span class="reserved">this</span>.getProperty(<span class="literal">"mb:selected"</span>, false));
|
195
|
|
196
|
<span class="comment">/**
|
197
|
* Gets the css classname for this button. We use this
|
198
|
* to define the button styles.
|
199
|
* <span class="attrib">@param</span> objRef Reference to this object.
|
200
|
* <span class="attrib">@param</span> state 'Active' or 'Inactive' (case sensitive!)
|
201
|
*/</span>
|
202
|
<span class="reserved">this</span>.getButtonClass = <span class="reserved">function</span>(objRef, state) {
|
203
|
var cssName;
|
204
|
<span class="reserved">if</span> (objRef.control.displayClass) {
|
205
|
cssName = objRef.control.displayClass;
|
206
|
} <span class="reserved">else</span> {
|
207
|
cssName = objRef.control.CLASS_NAME;
|
208
|
cssName = cssName.replace(/OpenLayers/, <span class="literal">'ol'</span>).replace(/\./g, <span class="literal">''</span>);
|
209
|
}
|
210
|
cssName += <span class="literal">'Item'</span>;
|
211
|
<span class="reserved">return</span> <span class="literal">'.'</span> + cssName + state;
|
212
|
}
|
213
|
|
214
|
<span class="comment">/**
|
215
|
* OpenLayers control for this button.
|
216
|
* This will be filled with the instance of the control
|
217
|
* by the attachToOL method.
|
218
|
*/</span>
|
219
|
<span class="reserved">this</span>.control = null;
|
220
|
<span class="comment">
|
221
|
//TBD This is never called, but I think we can drop it</span>
|
222
|
<span class="comment"> // if we get rid of MB mouse handlers</span>
|
223
|
<span class="comment">/**
|
224
|
* Override this in buttons which inherit from this object to carry out the action.
|
225
|
* This is the function that will be called either when the button is selected
|
226
|
* via the select() method or on a mouseup event if there is an associated
|
227
|
* mouseHandler property in config.
|
228
|
*/</span>
|
229
|
<span class="reserved">this</span>.doAction = <span class="reserved">function</span>() {}
|
230
|
|
231
|
<span class="comment">/**
|
232
|
* Select this button. Enables and disables associated tools,
|
233
|
* then the control.trigger()/activate() methods make OL call
|
234
|
* the doSelect method defined in derived classes.
|
235
|
*/</span>
|
236
|
<span class="reserved">this</span>.select = <span class="reserved">function</span>() {
|
237
|
<span class="reserved">if</span> (<span class="reserved">this</span>.control.type == OpenLayers.Control.TYPE_BUTTON) {
|
238
|
<span class="reserved">this</span>.control.trigger();
|
239
|
} <span class="reserved">else</span> {
|
240
|
<span class="reserved">this</span>.panel.activateControl(<span class="reserved">this</span>.control);
|
241
|
}
|
242
|
}
|
243
|
|
244
|
<span class="comment">/**
|
245
|
* Method overriden by subclasses
|
246
|
* <span class="attrib">@param</span> objRef Reference to this object.
|
247
|
* <span class="attrib">@param</span> selected True when selected, false when deselected.
|
248
|
*/</span>
|
249
|
<span class="reserved">this</span>.doSelect = <span class="reserved">function</span>(objRef, selected) {
|
250
|
}
|
251
|
|
252
|
<span class="comment">/**
|
253
|
* Attaches the control for this button to OpenLayers
|
254
|
* and add it to the buttonBar. When this method is called,
|
255
|
* everything of the OL map is available.
|
256
|
* <span class="attrib">@param</span> {OpenLayers.Control} control to add.
|
257
|
* <span class="attrib">@param</span> objRef Reference to this object.
|
258
|
*/</span>
|
259
|
<span class="reserved">this</span>.attachToOL = <span class="reserved">function</span>(objRef,refreshId) {
|
260
|
<span class="reserved">if</span> (objRef.control) {
|
261
|
<span class="reserved">return</span>;
|
262
|
}
|
263
|
<span class="comment">
|
264
|
//pass in a widget ID to refresh only that widget</span>
|
265
|
<span class="reserved">if</span> (refreshId && (refreshId!=objRef.id)) <span class="reserved">return</span>;
|
266
|
<span class="comment">
|
267
|
// nothing to do here if subclass does not have a</span>
|
268
|
<span class="comment"> // createControl method</span>
|
269
|
<span class="reserved">if</span> (!objRef.createControl) <span class="reserved">return</span>;
|
270
|
<span class="comment">
|
271
|
// override the control from the subclass to add</span>
|
272
|
<span class="comment"> // MB-stuff to the activate and deactivate methods</span>
|
273
|
var SubclassControl = objRef.createControl(objRef);
|
274
|
var type = objRef.olButtonType[objRef.buttonType] ||
|
275
|
SubclassControl.<span class="reserved">prototype</span>.type;
|
276
|
|
277
|
var Control = OpenLayers.Class( SubclassControl, {
|
278
|
objRef: objRef,
|
279
|
type: type,
|
280
|
superclass: SubclassControl.<span class="reserved">prototype</span>,
|
281
|
<span class="comment"> // call objRef.doSelect after OL activate from this control</span>
|
282
|
trigger: <span class="reserved">function</span>() {
|
283
|
<span class="reserved">if</span>(<span class="reserved">this</span>.superclass.trigger) {
|
284
|
<span class="reserved">this</span>.superclass.trigger.call(<span class="reserved">this</span>);
|
285
|
}
|
286
|
objRef.doSelect(objRef, true);
|
287
|
},
|
288
|
activate: <span class="reserved">function</span>() {
|
289
|
<span class="reserved">if</span> (<span class="reserved">this</span>.superclass.activate.call(<span class="reserved">this</span>)) {
|
290
|
<span class="reserved">this</span>.panel_div.style.backgroundImage = <span class="literal">"url(\"</span><span class="literal">"+objRef.enabledImage+"</span>\<span class="literal">")"</span>;
|
291
|
<span class="reserved">this</span>.map.div.style.cursor = objRef.cursor;
|
292
|
<span class="comment"> // store the cursor with the map object; this will be applied</span>
|
293
|
<span class="comment"> // to the map div again when setting the aoi on the</span>
|
294
|
<span class="comment"> // OpenLayers moveend event</span>
|
295
|
<span class="reserved">this</span>.map.mbCursor = objRef.cursor;
|
296
|
objRef.enabled = true;
|
297
|
<span class="reserved">this</span>.active = true;
|
298
|
objRef.doSelect(objRef, true);
|
299
|
}
|
300
|
},
|
301
|
<span class="comment"> // call objRef.doSelect after OL deactivate from this control</span>
|
302
|
deactivate: <span class="reserved">function</span>() {
|
303
|
<span class="reserved">if</span> (<span class="reserved">this</span>.superclass.deactivate.call(<span class="reserved">this</span>)) {
|
304
|
<span class="reserved">this</span>.panel_div.style.backgroundImage = <span class="literal">"url(\"</span><span class="literal">"+objRef.disabledImage+"</span>\<span class="literal">")"</span>;
|
305
|
objRef.enabled = false;
|
306
|
<span class="reserved">this</span>.active = false;
|
307
|
<span class="reserved">if</span> (map.getControlsBy(<span class="literal">"active"</span>, true).length == 0) {
|
308
|
<span class="reserved">this</span>.map.div.style.cursor = <span class="literal">""</span>;
|
309
|
<span class="reserved">this</span>.map.mbCursor = <span class="literal">""</span>;
|
310
|
}
|
311
|
objRef.doSelect(objRef, false)
|
312
|
}
|
313
|
},
|
314
|
destroy: <span class="reserved">function</span>() {
|
315
|
try {
|
316
|
<span class="reserved">this</span>.superclass.destroy.apply(<span class="reserved">this</span>, arguments);
|
317
|
} catch(e) {
|
318
|
OpenLayers.Control.<span class="reserved">prototype</span>.destroy.apply(<span class="reserved">this</span>, arguments);
|
319
|
}
|
320
|
<span class="reserved">this</span>.superclass = null;
|
321
|
OpenLayers.Event.stopObservingElement(<span class="reserved">this</span>.panel_div);
|
322
|
<span class="reserved">this</span>.objRef.panel.div.removeChild(<span class="reserved">this</span>.panel_div);
|
323
|
<span class="reserved">this</span>.objRef.control = null;
|
324
|
<span class="reserved">this</span>.objRef = null;
|
325
|
<span class="reserved">this</span>.panel_div = null;
|
326
|
<span class="reserved">this</span>.div = null;
|
327
|
}
|
328
|
});
|
329
|
<span class="comment">
|
330
|
// if the subclass provides an instantiateControl() method,</span>
|
331
|
<span class="comment"> // use it for instantiation. If not, instantiate directly</span>
|
332
|
<span class="reserved">if</span> (!objRef.control) {
|
333
|
objRef.control = objRef.instantiateControl ? objRef.instantiateControl(objRef, Control) : new Control();
|
334
|
}
|
335
|
<span class="comment">
|
336
|
// get the control from the createControl method of the subclass</span>
|
337
|
<span class="comment"> //objRef.control = objRef.createControl(objRef);</span>
|
338
|
var map = objRef.targetContext.map;
|
339
|
objRef.panel = objRef.targetContext.buttonBars[objRef.htmlTagId];
|
340
|
<span class="comment"> // create a panel, if we do not have one yet for this buttonBar</span>
|
341
|
<span class="comment"> // or if the old map.panel was destroyed</span>
|
342
|
<span class="reserved">if</span> (!objRef.panel || objRef.panel.map == null) {
|
343
|
<span class="comment"> // create a dom node for OL to use as panel</span>
|
344
|
<span class="reserved">if</span> (!document.getElementById(objRef.panelHtmlTagId)) {
|
345
|
var olPanelNode = document.createElement(<span class="literal">'div'</span>);
|
346
|
olPanelNode.setAttribute(<span class="literal">'id'</span>, objRef.panelHtmlTagId);
|
347
|
olPanelNode.setAttribute(<span class="literal">'class'</span>, <span class="literal">'olControlPanel'</span>);
|
348
|
var parentNode = objRef.getNode();
|
349
|
parentNode.appendChild(olPanelNode);
|
350
|
parentNode.innerHTML += <span class="literal">" "</span>;
|
351
|
}
|
352
|
var Panel = OpenLayers.Class( OpenLayers.Control.Panel, {
|
353
|
div: document.getElementById(objRef.panelHtmlTagId),
|
354
|
defaultControl: null,
|
355
|
destroy: <span class="reserved">function</span>() {
|
356
|
parentNode.removeChild(<span class="reserved">this</span>.div);
|
357
|
OpenLayers.Control.<span class="reserved">prototype</span>.destroy.apply(<span class="reserved">this</span>, arguments);
|
358
|
<span class="reserved">this</span>.div = null;
|
359
|
objRef.panel = null;
|
360
|
}
|
361
|
});
|
362
|
objRef.panel = new Panel();
|
363
|
objRef.targetContext.buttonBars[objRef.htmlTagId] = objRef.panel;
|
364
|
map.addControl(objRef.panel);
|
365
|
}
|
366
|
<span class="comment">
|
367
|
// add the control to the panel</span>
|
368
|
<span class="reserved">if</span> (OpenLayers.Util.indexOf(objRef.control, objRef.panel.controls) == -1) {
|
369
|
<span class="comment"> // we do not want to stop event propagation. So we save the original</span>
|
370
|
<span class="comment"> // Event.stop function...</span>
|
371
|
var originalStop = OpenLayers.Event.stop;
|
372
|
<span class="comment"> // and overwrite it with a new one...</span>
|
373
|
OpenLayers.Event.stop = <span class="reserved">function</span>(){};
|
374
|
<span class="comment"> // now, thanks to boxing, this one will be assigned in addControls...</span>
|
375
|
objRef.panel.addControls(objRef.control);
|
376
|
<span class="comment"> // and we can switch back to the original one.</span>
|
377
|
OpenLayers.Event.stop = originalStop;
|
378
|
}
|
379
|
<span class="comment">
|
380
|
// set tooltip for the button</span>
|
381
|
<span class="reserved">if</span> (objRef.tooltip) {
|
382
|
objRef.control.panel_div.title=objRef.tooltip;
|
383
|
}
|
384
|
<span class="comment">
|
385
|
//set default css style properties</span>
|
386
|
objRef.control.panel_div.style.backgroundImage = <span class="literal">"url(\"</span><span class="literal">"+objRef.disabledImage+"</span>\<span class="literal">")"</span>;
|
387
|
<span class="comment">
|
388
|
// activate the control if it is defined as selected in config</span>
|
389
|
<span class="reserved">if</span>(objRef.selected == true) {
|
390
|
objRef.control.activate();
|
391
|
}
|
392
|
}
|
393
|
|
394
|
<span class="comment">/**
|
395
|
* Set the target context for the button, initialise the
|
396
|
* buttonBars array in the context document and add a
|
397
|
* listener to the target model for adding controls
|
398
|
* to the OL map as soon as the map is initialized.
|
399
|
* <span class="attrib">@param</span> objRef Reference to this object.
|
400
|
*/</span>
|
401
|
<span class="reserved">this</span>.buttonInit = <span class="reserved">function</span>(objRef) {
|
402
|
<span class="comment"> //set the target context</span>
|
403
|
var targetContext = objRef.widgetNode.selectSingleNode(<span class="literal">"mb:targetContext"</span>);
|
404
|
<span class="reserved">if</span> (targetContext) {
|
405
|
objRef.targetContext = window.config.objects[getNodeValue(targetContext)];
|
406
|
<span class="reserved">if</span> ( !objRef.targetModel ) {
|
407
|
alert(mbGetMessage(<span class="literal">"noTargetContext"</span>, getNodeValue(targetContext), objRef.id));
|
408
|
}
|
409
|
} <span class="reserved">else</span> {
|
410
|
objRef.targetContext = objRef.targetModel;
|
411
|
}
|
412
|
<span class="comment">
|
413
|
// initialize button bars for the context</span>
|
414
|
<span class="reserved">if</span> (!objRef.targetContext.buttonBars) {
|
415
|
<span class="comment"> // this array in the context will hold all</span>
|
416
|
<span class="comment"> // buttonBars used by button widgets</span>
|
417
|
objRef.targetContext.buttonBars = new Array();
|
418
|
}
|
419
|
<span class="comment">
|
420
|
// add another event listener for the loaded context,</span>
|
421
|
<span class="comment"> // because we need the map to add panel and buttons,</span>
|
422
|
<span class="comment"> // and we do not have tha map yet</span>
|
423
|
objRef.targetContext.addListener(<span class="literal">"refresh"</span>, objRef.attachToOL, objRef);
|
424
|
}
|
425
|
|
426
|
<span class="reserved">this</span>.model.addListener(<span class="literal">"init"</span>,<span class="reserved">this</span>.buttonInit,<span class="reserved">this</span>);
|
427
|
<span class="reserved">this</span>.model.removeListener(<span class="literal">"newNodel"</span>, <span class="reserved">this</span>.clearWidget, <span class="reserved">this</span>);
|
428
|
}
|
429
|
</pre>
|
430
|
<hr>
|
431
|
|
432
|
|
433
|
|
434
|
<!-- ========== START OF NAVBAR ========== -->
|
435
|
<a name="navbar_top"><!-- --></a>
|
436
|
<table border="0" width="100%" cellpadding="1" cellspacing="0">
|
437
|
<tr>
|
438
|
<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
|
439
|
<a name="navbar_top_firstrow"><!-- --></a>
|
440
|
<table border="0" cellpadding="0" cellspacing="3">
|
441
|
<tr align="center" valign="top">
|
442
|
|
443
|
|
444
|
<td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
|
445
|
<td bgcolor="#FFFFFF" class="NavBarCell1Rev"> <font class="NavBarFont1Rev"><b>File</b></font> </td>
|
446
|
|
447
|
|
448
|
<td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td>
|
449
|
<td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
|
450
|
<td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
|
451
|
<td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
|
452
|
</tr>
|
453
|
</table>
|
454
|
</td>
|
455
|
<td bgcolor="#EEEEFF" align="right" valign="top"><em>
|
456
|
<b><a href='http://mapbuilder.sourceforge.net'>Community Map Builder</a> 27 Apr 2008</b></em>
|
457
|
</td>
|
458
|
</tr>
|
459
|
|
460
|
<tr>
|
461
|
<td bgcolor="white" class="NavBarCell2"><font size="-2">
|
462
|
PREV
|
463
|
NEXT</font></td>
|
464
|
<td bgcolor="white" class="NavBarCell2"><font size="-2">
|
465
|
<a href="index.html" target="_top"><b>FRAMES</b></a>
|
466
|
<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
|
467
|
|
468
|
<script>
|
469
|
<!--
|
470
|
if(window==top) {
|
471
|
document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
|
472
|
}
|
473
|
//-->
|
474
|
</script>
|
475
|
<noscript>
|
476
|
<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
|
477
|
</noscript>
|
478
|
</font></td>
|
479
|
</tr>
|
480
|
</table>
|
481
|
<!-- =========== END OF NAVBAR =========== -->
|
482
|
|
483
|
<hr>
|
484
|
<font size="-1">
|
485
|
|
486
|
</font>
|
487
|
<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Sun Apr 27 20:30:54 2008</div>
|
488
|
</body>
|
489
|
</html>
|