Project

General

Profile

1
<?xml version="1.0" encoding="UTF-8"?>
2
<xsl:stylesheet 
3
    xmlns:wmc="http://www.opengis.net/context" 
4
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
5
    xmlns:gml='http://www.opengis.net/gml' 
6
    xmlns:wfs='http://www.opengis.net/wfs'
7
    xmlns:xlink='http://www.w3.org/1999/xlink'
8
    version="1.0">
9
<!--
10
Description: Convert a Web Map Context into a HTML Legend
11
Author:      Cameron Shorter cameron ATshorter.net
12
Licence:     LGPL as per: http://www.gnu.org/copyleft/lesser.html
13

    
14
$Id: Legend.xsl 3926 2008-03-20 14:13:35Z steven $
15
$Name$
16
-->
17
  <xsl:output method="xml" encoding="utf-8" omit-xml-declaration="yes"/>
18
  
19
  <!-- The common params set for all widgets -->
20
  <xsl:param name="lang">en</xsl:param>
21
  <xsl:param name="modelId"/>
22
  <xsl:param name="widgetId"/>
23

    
24
  <xsl:param name="skinDir"/>
25
  
26
  <!-- Text params for this widget -->
27
  <xsl:param name="title"/>
28
  
29
<!-- The name of the javascript context object to call -->
30
  <xsl:param name="featureName"/>
31
  <xsl:param name="hidden"/>
32
  <xsl:param name="context">config.objects.<xsl:value-of select="$modelId"/></xsl:param>
33

    
34
<!-- Main html -->
35
  
36
  <xsl:template match="/wmc:OWSContext">
37
    <table border="0" cellpadding="1" cellspacing="0">
38
    
39
      <xsl:apply-templates select="wmc:ResourceList/wmc:Layer">
40
        <xsl:sort select="position()" order="descending" data-type="number"/>
41
      </xsl:apply-templates>
42
      
43
     <xsl:apply-templates select="wmc:ResourceList/wmc:RssLayer">
44
        <xsl:sort select="position()" order="descending" data-type="number"/>
45
      </xsl:apply-templates>
46
    </table>
47
  </xsl:template>
48
  
49
  <xsl:template match="/wfs:FeatureCollection">
50
    <table border="0" cellpadding="1" cellspacing="0">
51
      <tr>
52
        <th colspan="3">WFS Features</th>
53
      </tr>
54
      <tr>
55
  <!-- Visiblity -->
56
        <td>
57
          <xsl:if test="$hidden='false'">
58
            <input type="checkbox" checked="true" id="legend_{$featureName}" onclick="{$context}.setHidden('{$featureName}',!document.getElementById('legend_{$featureName}').checked)"/>
59
          </xsl:if>
60
          <xsl:if test="$hidden='true'">
61
            <input type="checkbox" id="legend_{$featureName}" onclick="{$context}.setHidden('{$featureName}',! document.getElementById('legend_{$featureName}').checked)"/>
62
          </xsl:if>
63
        </td>
64
  <!-- No query capability yet -->
65
        <td>
66
        </td>
67
        <td>
68
          <xsl:value-of select="$featureName"/>
69
        </td>
70
      </tr>
71
    </table>
72
  </xsl:template>
73
  
74
<!-- Layer -->
75
  <xsl:template match="wmc:Layer">
76
    <tr>
77
  <!-- Visiblity -->
78
      <td>
79
        <xsl:if test="@hidden='0'">
80
          <input type="checkbox" checked="true" id="legend_{wmc:Name}" onclick="{$context}.setHidden('{wmc:Name}',!document.getElementById('legend_{wmc:Name}').checked)"/>
81
        </xsl:if>
82
        <xsl:if test="@hidden='1'">
83
          <input type="checkbox" id="legend_{wmc:Name}" onclick="{$context}.setHidden('{wmc:Name}',! document.getElementById('legend_{wmc:Name}').checked)"/>
84
        </xsl:if>
85
      </td>
86
  <!-- Query Image -->
87
      <td>
88
        <xsl:if test="@queryable='1'">
89
          <img
90
            id="query_{wmc:Name}"
91
            title="Click to set {wmc:Title} as the query layer"
92
            onclick="config.objects.{$widgetId}.selectLayer(config.objects.{$widgetId},'{wmc:Name}')"
93
            src="{$skinDir}/images/id.gif" />
94
        </xsl:if>
95
      </td>
96
  <!-- Title -->
97
      <td>
98
        <xsl:choose>
99
          <xsl:when test="wmc:Title/@xml:lang">              
100
            <xsl:value-of select="wmc:Title[@xml:lang=$lang]"/>
101
          </xsl:when>
102
          <xsl:otherwise>
103
            <xsl:value-of select="wmc:Title"/>
104
          </xsl:otherwise>
105
        </xsl:choose>
106
      </td>
107
    </tr>
108
  <!-- StyleList -->
109
    <tr>
110
      <td></td>
111
      <td></td>
112
      <td>
113
      <xsl:if test="wmc:StyleList/wmc:Style[@current='1']/wmc:LegendURL"> 
114
          <xsl:element name="IMG">
115
              <xsl:attribute name="SRC">
116
                <xsl:value-of select="wmc:StyleList/wmc:Style[@current='1']/wmc:LegendURL/wmc:OnlineResource/@xlink:href"/> 
117
              </xsl:attribute>
118
          </xsl:element>
119
         </xsl:if>
120
      </td>
121
    </tr>
122
  </xsl:template>
123
  
124
   <xsl:template match="wmc:RssLayer">
125
    <tr>
126
  <!-- Visiblity -->
127
      <td>
128
        <xsl:if test="@hidden='0'">
129
          <input type="checkbox" checked="true" id="legend_{wmc:Title}" onclick="{$context}.setHidden('{@id}',!document.getElementById('legend_{wmc:Title}').checked)"/>
130
        </xsl:if>
131
        <xsl:if test="@hidden='1'">
132
          <input type="checkbox" id="legend_{wmc:Title}" onclick="{$context}.setHidden('{@id}',! document.getElementById('legend_{wmc:Title}').checked)"/>
133
        </xsl:if>
134
      </td>
135
  <!-- Query Image -->
136
      <td>
137
        <xsl:if test="@queryable='1'">
138
          <img
139
            id="query_{wmc:Name}"
140
            title="Click to set {wmc:Title} as the query layer"
141
            onclick="config.objects.{$widgetId}.selectLayer(config.objects.{$widgetId},'{wmc:Name}')"
142
            src="{$skinDir}/images/id.gif" />
143
        </xsl:if>
144
      </td>
145
  <!-- Title -->
146
      <td>
147
        <xsl:choose>
148
          <xsl:when test="wmc:Title/@xml:lang">              
149
            <xsl:value-of select="wmc:Title[@xml:lang=$lang]"/>
150
          </xsl:when>
151
          <xsl:otherwise>
152
            <xsl:value-of select="wmc:Title"/>
153
          </xsl:otherwise>
154
        </xsl:choose>
155
      </td>
156
    </tr>
157
  <!-- StyleList -->
158
    <tr>
159
      <td></td>
160
      <td></td>
161
      <td>
162
      <xsl:if test="wmc:StyleList/wmc:Style[@current='1']/wmc:LegendURL"> 
163
          <xsl:element name="IMG">
164
              <xsl:attribute name="SRC">
165
                <xsl:value-of select="wmc:StyleList/wmc:Style[@current='1']/wmc:LegendURL/wmc:OnlineResource/@xlink:href"/> 
166
              </xsl:attribute>
167
          </xsl:element>
168
         </xsl:if>
169
      </td>
170
    </tr>
171
  </xsl:template>
172
  
173
  <xsl:template match="text()|@*"/>
174
  
175
</xsl:stylesheet>
(4-4/6)