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