2 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
4 <xsl:param name="source-name" select="(fillme)" />
5 <xsl:output method="html" indent="no"/>
6 <!-- <xsl:output method="xml"/>-->
7 <xsl:strip-space elements="*"/>
9 <xsl:template match="/">
10 <xsl:variable name="assembly-name" select="substring-before ($source-name, '.src')" />
14 Mono Class Library Status for <xsl:value-of select="$assembly-name" />
16 <script src="cm/cormissing.js"></script>
17 <link rel="stylesheet" type="text/css" href="cm/cormissing.css"></link>
18 <style type="text/css"><![CDATA[
20 background-color: #CCFFCC;
31 <li><a href="System.Runtime.Serialization.html">Runtime.Serialization</a></li>
32 <li><a href="System.IdentityModel.html">IdentityModel</a></li>
33 <li><a href="System.IdentityModel.Selectors.html">IdentityModel.Selectors</a></li>
34 <li><a href="System.ServiceModel.html">ServiceModel</a></li>
39 <h1>Mono Class Library Status for <xsl:value-of select="$assembly-name" /></h1>
44 <td> <input type="checkbox" ID="todo" onClick="selectTodo();" checked="1"/> </td>
45 <td> <img src="cm/st.gif"/> </td>
48 <td> <input type="checkbox" ID="missing" onClick="selectMissing();" checked="1"/> </td>
49 <td> <img src="cm/sm.gif"/> </td>
53 <td> <input type="checkbox" ID="extra" onClick="selectExtra();" checked="1"/> </td>
54 <td> <img src="cm/sx.gif"/> </td>
57 <td> <input type="checkbox" ID="errors" onClick="selectErrors();" checked="1"/> </td>
58 <td> <img src="cm/se.gif"/> </td>
63 <td> <img src="cm/sc.gif"/> </td>
70 <select id="FilteredAttributes">
71 <option>System.Runtime.InteropServices.ComVisibleAttribute</option>
72 <option>System.Diagnostics.DebuggerDisplayAttribute</option>
73 <option>System.Diagnostics.DebuggerTypeProxyAttribute</option>
75 <input type="button" onclick="removeAndFilter()" value="Unfilter attribute" />
78 <input type="text" id="NewFilterTarget" length="60" />
79 <input type="button" onclick="addAndFilter()" value="Add to attribute filter" />
82 <input type="radio" id="TargetMonodoc" name="TargetDoc" value="0" />monodoc
83 <input type="radio" id="TargetMsdn1" name="TargetDoc" value="1" />msdn
84 <input type="radio" id="TargetMsdn2" name="TargetDoc" value="2" checked="checked" />msdn2
85 <input type="radio" id="TargetWinsdk" name="TargetDoc" value="3" checked="checked" />Windows SDK
89 <xsl:apply-templates/>
95 <td> <img src="cm/y.gif"/> </td>
98 <td> <img src="cm/n.gif"/> </td>
101 <td> <img src="cm/c.gif"/> </td>
104 <td> <img src="cm/s.gif"/> </td>
108 <td> <img src="cm/i.gif"/> </td>
111 <td> <img src="cm/d.gif"/> </td>
114 <td> <img src="cm/en.gif"/> </td>
117 <td> <img src="cm/m.gif"/> </td>
121 <td> <img src="cm/f.gif"/> </td>
124 <td> <img src="cm/p.gif"/> </td>
127 <td> <img src="cm/e.gif"/> </td>
130 <td> <img src="cm/r.gif"/> </td>
134 <td> <img src="cm/w.gif" /> </td>
135 <td colspan="10"> Generic Constraints</td>
148 <xsl:template match="/assemblies">
149 <xsl:apply-templates select="assembly">
150 <xsl:sort select="@name"/>
151 </xsl:apply-templates>
154 <xsl:template match="assembly">
156 <xsl:call-template name="ELEMENT">
157 <xsl:with-param name="class">y</xsl:with-param>
159 <xsl:if test="not(@presence)">
160 <xsl:apply-templates/>
167 <xsl:template match="namespaces">
168 <xsl:apply-templates select="namespace">
169 <xsl:sort select="@name"/>
170 </xsl:apply-templates>
173 <xsl:template match="namespace">
175 <xsl:call-template name="ELEMENT">
176 <xsl:with-param name="class">n</xsl:with-param>
178 <xsl:if test="not(@presence)">
179 <xsl:apply-templates/>
185 <xsl:template match="namespace/classes">
186 <xsl:apply-templates select="class[@type='interface']">
187 <xsl:sort select="@name"/>
188 </xsl:apply-templates>
189 <xsl:apply-templates select="class[@type='class']">
190 <xsl:sort select="@name"/>
191 </xsl:apply-templates>
192 <xsl:apply-templates select="class[@type='struct']">
193 <xsl:sort select="@name"/>
194 </xsl:apply-templates>
195 <xsl:apply-templates select="class[@type='delegate']">
196 <xsl:sort select="@name"/>
197 </xsl:apply-templates>
198 <xsl:apply-templates select="class[@type='enum']">
199 <xsl:sort select="@name"/>
200 </xsl:apply-templates>
205 <xsl:template match="class[@type='class']">
207 <xsl:call-template name="ELEMENT">
208 <xsl:with-param name="class">c</xsl:with-param>
210 <xsl:if test="(@missing_total or @todo_total or @extra_total or @warning_total or @error) and not(@presence)">
211 <xsl:apply-templates select="attributes"/>
212 <xsl:apply-templates select="interfaces"/>
213 <xsl:apply-templates select="constructors"/>
214 <xsl:apply-templates select="./*[local-name() != 'attributes' and local-name() != 'constructors' and local-name() != 'interfaces']"/>
221 <xsl:template match="class[@type='struct'][@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
223 <xsl:call-template name="ELEMENT">
224 <xsl:with-param name="class">s</xsl:with-param>
226 <xsl:if test="not(@presence)">
227 <xsl:apply-templates/>
234 <!-- interface types -->
235 <xsl:template match="class[@type='interface']">
236 <xsl:apply-templates select="class[@type='interface']">
237 <xsl:sort select="@name"/>
238 </xsl:apply-templates>
241 <xsl:template match="class[@type='interface'][@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
243 <xsl:call-template name="ELEMENT">
244 <xsl:with-param name="class">i</xsl:with-param>
246 <xsl:if test="not(@presence)">
247 <xsl:apply-templates/>
252 <!-- interfaces implemented by Types -->
253 <xsl:template match="interface">
254 <xsl:apply-templates select="interface">
255 <xsl:sort select="@name"/>
256 </xsl:apply-templates>
259 <xsl:template match="interface[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
261 <xsl:call-template name="ELEMENT">
262 <xsl:with-param name="class">i</xsl:with-param>
264 <xsl:if test="not(@presence)">
265 <xsl:apply-templates/>
271 <!-- generic constraints -->
272 <xsl:template match="generic-type-constraints">
273 <xsl:apply-templates select="generic-type-constraint">
274 <xsl:sort select="@name"/>
275 </xsl:apply-templates>
278 <xsl:template match="generic-type-constraint[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
280 <xsl:call-template name="ELEMENT">
281 <xsl:with-param name="class">w</xsl:with-param>
283 <xsl:if test="not(@presence)">
284 <xsl:apply-templates/>
292 <xsl:template match="class[@type='delegate'][@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
294 <xsl:call-template name="ELEMENT">
295 <xsl:with-param name="class">d</xsl:with-param>
297 <xsl:if test="not(@presence)">
298 <xsl:apply-templates/>
305 <xsl:template match="class[@type='enum'][@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
307 <xsl:call-template name="ELEMENT">
308 <xsl:with-param name="class">en</xsl:with-param>
310 <xsl:if test="not(@presence)">
311 <xsl:apply-templates/>
318 <xsl:template match="methods">
319 <xsl:apply-templates select="method">
320 <xsl:sort select="@name"/>
321 </xsl:apply-templates>
324 <xsl:template match="method[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
326 <xsl:call-template name="ELEMENT">
327 <xsl:with-param name="class">m</xsl:with-param>
329 <xsl:if test="not(@presence)">
330 <xsl:apply-templates/>
337 <xsl:template match="properties">
338 <xsl:apply-templates select="property">
339 <xsl:sort select="@name"/>
340 </xsl:apply-templates>
343 <xsl:template match="property[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
345 <xsl:call-template name="ELEMENT">
346 <xsl:with-param name="class">p</xsl:with-param>
348 <xsl:if test="not(@presence)">
349 <xsl:apply-templates/>
356 <xsl:template match="events">
357 <xsl:apply-templates select="event">
358 <xsl:sort select="@name"/>
359 </xsl:apply-templates>
362 <xsl:template match="event[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
364 <xsl:call-template name="ELEMENT">
365 <xsl:with-param name="class">e</xsl:with-param>
367 <xsl:if test="not(@presence)">
368 <xsl:apply-templates/>
375 <xsl:template match="constructors">
376 <xsl:apply-templates select="constructor">
377 <xsl:sort select="@name"/>
378 </xsl:apply-templates>
381 <xsl:template match="constructor[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
383 <xsl:call-template name="ELEMENT">
384 <xsl:with-param name="class">x</xsl:with-param>
385 <xsl:with-param name="image">m</xsl:with-param>
387 <xsl:if test="not(@presence)">
388 <xsl:apply-templates/>
395 <xsl:template match="fields">
396 <xsl:apply-templates select="field">
397 <xsl:sort select="@name"/>
398 </xsl:apply-templates>
401 <xsl:template match="field[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
403 <xsl:call-template name="ELEMENT">
404 <xsl:with-param name="class">f</xsl:with-param>
406 <xsl:if test="not(@presence)">
407 <xsl:apply-templates/>
413 <xsl:template match="property/methods">
414 <xsl:apply-templates select="method">
415 <xsl:sort select="@name"/>
416 </xsl:apply-templates>
419 <xsl:template match="property[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]/methods/method[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
421 <xsl:call-template name="ELEMENT">
422 <xsl:with-param name="class">o</xsl:with-param>
423 <xsl:with-param name="image">m</xsl:with-param>
425 <xsl:if test="not(@presence)">
426 <xsl:apply-templates/>
433 <xsl:template match="attributes">
434 <xsl:apply-templates select="attribute">
435 <xsl:sort select="@name"/>
436 </xsl:apply-templates>
439 <xsl:template match="attribute[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
441 <xsl:call-template name="ELEMENT">
442 <xsl:with-param name="class">r</xsl:with-param>
444 <xsl:if test="not(@presence)">
445 <xsl:apply-templates/>
452 <!-- support templates -->
454 <xsl:template name="ELEMENT">
455 <xsl:param name="class"/>
456 <xsl:param name="image"/>
457 <xsl:attribute name="class">
458 <xsl:value-of select="$class"/>
459 <xsl:if test="./node() and local-name() != 'assembly'">_</xsl:if>
461 <xsl:call-template name="toggle"/>
463 <xsl:when test="@error and @error != 'todo'">
464 <xsl:element name="img">
465 <xsl:attribute name="src">cm/se.gif</xsl:attribute>
466 <xsl:attribute name="class">t</xsl:attribute>
467 <xsl:attribute name="title"><xsl:call-template name="warning-hover" /></xsl:attribute>
470 <xsl:when test="@error = 'todo'">
471 <xsl:element name="img">
472 <xsl:attribute name="src">cm/st.gif</xsl:attribute>
473 <xsl:attribute name="class">t</xsl:attribute>
474 <xsl:if test="@comment">
475 <xsl:attribute name="title"><xsl:value-of select="@comment"/></xsl:attribute>
477 <xsl:if test="not(@comment)">
478 <xsl:attribute name="title">No TODO description</xsl:attribute>
482 <xsl:when test="@presence = 'missing'">
483 <img src="cm/sm.gif" class="t"/>
485 <xsl:when test="@presence = 'extra'">
486 <img src="cm/sx.gif" class="t"/>
489 <img src="cm/sc.gif" class="t"/>
493 <xsl:when test="$image">
494 <img src="cm/{$image}.gif" class="t"/>
497 <img src="cm/{$class}.gif" class="t"/>
500 <xsl:call-template name="name"/>
501 <xsl:if test="not(@presence)">
502 <xsl:call-template name="status"/>
506 <xsl:template name="status">
507 <xsl:if test="@complete_total and @complete_total != 0">
509 <img src="cm/sc.gif"/>
510 <xsl:text>: </xsl:text>
511 <xsl:value-of select="@complete_total"/>
512 <xsl:text>%</xsl:text>
515 <xsl:if test="@todo_total">
517 <img src="cm/st.gif"/>: <xsl:value-of select="@todo_total"/>
520 <xsl:if test="@missing_total">
522 <img src="cm/sm.gif"/>: <xsl:value-of select="@missing_total"/>
525 <xsl:if test="@extra_total">
527 <img src="cm/sx.gif"/>: <xsl:value-of select="@extra_total"/>
530 <xsl:if test="@warning_total">
532 <img src="cm/se.gif"/>: <xsl:value-of select="@warning_total"/>
537 <xsl:template name="toggle">
539 <xsl:when test="not(@presence) and .//*[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
541 <xsl:when test="local-name() != 'assembly'">
542 <img src="cm/tp.gif" class="t"/>
545 <img src="cm/tm.gif" class="t"/>
550 <img src="cm/tb.gif"/>
555 <xsl:template name="name">
556 <xsl:if test="@name">
557 <SPAN class="l"><xsl:value-of select="@name"/></SPAN>
561 <xsl:template name="warning-hover">
562 <xsl:for-each select="warnings/warning">
563 <xsl:text>WARNING: </xsl:text>
564 <xsl:value-of select="@text"/>