1 |
3032
|
perry
|
/*
|
2 |
|
|
License: LGPL as per: http://www.gnu.org/copyleft/lesser.html
|
3 |
4307
|
leinfelder
|
$Id: Legend.js 3887 2008-02-27 18:18:53Z ahocevar $
|
4 |
3032
|
perry
|
*/
|
5 |
|
|
|
6 |
|
|
// Ensure this object's dependancies are loaded.
|
7 |
|
|
mapbuilder.loadScript(baseDir+"/widget/WidgetBaseXSL.js");
|
8 |
|
|
|
9 |
|
|
/**
|
10 |
|
|
* Functions to render and update a Legend from a Web Map Context.
|
11 |
|
|
* @constructor
|
12 |
|
|
* @base WidgetBaseXSL
|
13 |
|
|
* @author Cameron Shorter cameronATshorter.net
|
14 |
|
|
* @param widgetNode The widget's XML object node from the configuration document.
|
15 |
|
|
* @param model The model object that this widget belongs to.
|
16 |
|
|
*/
|
17 |
|
|
function Legend(widgetNode, model) {
|
18 |
|
|
WidgetBaseXSL.apply(this,new Array(widgetNode, model));
|
19 |
|
|
|
20 |
4307
|
leinfelder
|
this.model.addListener("deleteLayer",this.refresh, this);
|
21 |
|
|
this.model.addListener("moveLayerUp",this.refresh, this);
|
22 |
|
|
this.model.addListener("moveLayerDown",this.refresh, this);
|
23 |
|
|
if (this.autoRefresh) this.model.addListener("addLayer",this.refresh, this);
|
24 |
|
|
|
25 |
3032
|
perry
|
/**
|
26 |
|
|
* Override of widget prepaint to set some stylesheet parameters including
|
27 |
|
|
* featureName (for OWS Context) and hidden attribute.
|
28 |
|
|
* @param objRef Pointer to this object.
|
29 |
|
|
*/
|
30 |
|
|
this.prePaint = function(objRef) {
|
31 |
|
|
if (objRef.model.featureName) {
|
32 |
|
|
objRef.stylesheet.setParameter("featureName", objRef.model.featureName );
|
33 |
|
|
objRef.stylesheet.setParameter("hidden", objRef.model.getHidden(objRef.model.featureName).toString() );
|
34 |
|
|
}
|
35 |
4307
|
leinfelder
|
objRef.visibleLayer = Mapbuilder.getProperty(objRef.model.doc, objRef.model.nodeSelectXpath+"[@hidden='0' and @opaque='1']/wmc:Name");
|
36 |
3032
|
perry
|
}
|
37 |
|
|
|
38 |
4307
|
leinfelder
|
}
|
39 |
3032
|
perry
|
|
40 |
4307
|
leinfelder
|
/**
|
41 |
|
|
* Listener method to paint this widget
|
42 |
|
|
* @param layerName the name of the layer to highlight
|
43 |
|
|
*/
|
44 |
|
|
Legend.prototype.refresh = function(objRef, layerName) {
|
45 |
|
|
objRef.paint(objRef, objRef.id);
|
46 |
3032
|
perry
|
}
|
47 |
4307
|
leinfelder
|
|
48 |
|
|
/**
|
49 |
|
|
* Controller method to select a layer
|
50 |
|
|
* @param objRef Pointer to this object.
|
51 |
|
|
* @param layer The selected layer.
|
52 |
|
|
*/
|
53 |
|
|
Legend.prototype.selectLayer = function(objRef,layer) {
|
54 |
|
|
objRef.model.setParam('selectedLayer',layer);
|
55 |
|
|
}
|
56 |
|
|
|
57 |
|
|
/**
|
58 |
|
|
* Controller method to select a layer
|
59 |
|
|
* @param objRef Pointer to this object.
|
60 |
|
|
* @param layer The selected layer.
|
61 |
|
|
*/
|
62 |
|
|
Legend.prototype.swapOpaqueLayer = function(layer) {
|
63 |
|
|
this.model.setHidden(this.visibleLayer, true);
|
64 |
|
|
this.model.setHidden(layer, false);
|
65 |
|
|
this.visibleLayer = layer;
|
66 |
|
|
}
|