Project

General

Profile

1
/*
2
License: LGPL as per: http://www.gnu.org/copyleft/lesser.html
3
$Id: Legend.js 3887 2008-02-27 18:18:53Z ahocevar $
4
*/
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
  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
  /**
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
    objRef.visibleLayer = Mapbuilder.getProperty(objRef.model.doc, objRef.model.nodeSelectXpath+"[@hidden='0' and @opaque='1']/wmc:Name");
36
  }
37

    
38
}
39

    
40
/**
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
}
47

    
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
}
67

    
(64-64/145)