1
|
/*
|
2
|
License: LGPL as per: http://www.gnu.org/copyleft/lesser.html
|
3
|
$Id: Abstract.js 2546 2007-01-23 12:07:39Z gjvoosten $
|
4
|
*/
|
5
|
|
6
|
// Ensure this object's dependencies are loaded.
|
7
|
mapbuilder.loadScript(baseDir+"/widget/WidgetBaseXSL.js");
|
8
|
|
9
|
/**
|
10
|
* Show a layer's metadata
|
11
|
* @constructor
|
12
|
* @base WidgetBaseXSL
|
13
|
* @param widgetNode The widget's XML object node from the configuration document.
|
14
|
* @param model The model object that this widget belongs to.
|
15
|
*/
|
16
|
|
17
|
|
18
|
function LayerMetadata(widgetNode, model) {
|
19
|
WidgetBaseXSL.apply(this,new Array(widgetNode, model));
|
20
|
|
21
|
this.model.setParam("layerMetadata", true);
|
22
|
/**
|
23
|
* Toggles the visibility of a layer's metadata
|
24
|
* @param layerNode Dom element containing the OWS layer
|
25
|
* @param domNode Pointer the Dom element where the metadata should
|
26
|
* be shown
|
27
|
*/
|
28
|
this.paint = function(objRef, params) {
|
29
|
|
30
|
var layerNode = objRef.model.getLayer(params.layerId);
|
31
|
var domNode = document.getElementById(params.domNodeId);
|
32
|
|
33
|
if (!domNode || !layerNode) {
|
34
|
return;
|
35
|
}
|
36
|
|
37
|
// If clicked and metadata was visible, hide it and do nothing
|
38
|
if (domNode.style.display && (domNode.style.display != "none") && (domNode.innerHTML != "")) {
|
39
|
domNode.style.display = "none";
|
40
|
return false;
|
41
|
}
|
42
|
|
43
|
// add the layerNode as a parameter to the XSL
|
44
|
objRef.stylesheet.setParameter("layerNode", layerNode);
|
45
|
|
46
|
// create meta HTML
|
47
|
var metadataHtml = objRef.stylesheet.transformNodeToString(objRef.model.doc);
|
48
|
|
49
|
// insert the metadata HTML in the designated Dom Element
|
50
|
domNode.innerHTML = metadataHtml;
|
51
|
|
52
|
// make it visible
|
53
|
domNode.style.display = "block";
|
54
|
|
55
|
// debug info. TBD: remove
|
56
|
//console.info((new XMLSerializer()).serializeToString(layerNode));
|
57
|
|
58
|
}
|
59
|
this.model.addListener("layerMetadata", this.paint, this);
|
60
|
|
61
|
}
|
62
|
|
63
|
|