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:sld='http://www.opengis.net/sld'
8
    xmlns:xlink='http://www.w3.org/1999/xlink'
9
    version="1.0">
10
<!--
11
Description: Convert an OWS Context into a HTML Legend
12
Author:      Cameron Shorter cameron ATshorter.net
13
Author:      Patrice C.
14
Licence:     LGPL as per: http://www.gnu.org/copyleft/lesser.html
15

    
16
$Id: Legend2.xsl 3907 2008-03-06 10:27:06Z steven $
17
$Name$
18
-->
19
  <xsl:output method="xml" encoding="utf-8" omit-xml-declaration="yes"/>
20
  
21
  <!-- The common params set for all widgets -->
22
  <xsl:param name="lang">en</xsl:param>
23
  <xsl:param name="modelId"/>
24
  <xsl:param name="widgetId"/>
25

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

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