2 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
4 <xsl:output method="html" indent="yes"/>
5 <!-- <xsl:output method="xml"/>-->
6 <xsl:strip-space elements="*"/>
8 <xsl:template match="/">
13 Mono Class Library Status
15 <SCRIPT src="cormissing.js"></SCRIPT>
16 <LINK rel="stylesheet" type="text/css" href="cormissing.css"></LINK>
18 <BODY onLoad="onLoad();">
20 <H1>Mono Class Library Status</H1>
26 <td> <input type="checkbox" ID="todo" onClick="selectTodo();" checked="1"/> </td>
27 <td> <img src="cm/st.gif"/> </td>
30 <td> <input type="checkbox" ID="missing" onClick="selectMissing();" checked="1"/> </td>
31 <td> <img src="cm/sm.gif"/> </td>
35 <td> <input type="checkbox" ID="extra" onClick="selectExtra();" checked="1"/> </td>
36 <td> <img src="cm/sx.gif"/> </td>
39 <td> <input type="checkbox" ID="errors" onClick="selectErrors();" checked="1"/> </td>
40 <td> <img src="cm/se.gif"/> </td>
45 <td> <img src="cm/sc.gif"/> </td>
53 <input type="checkbox" ID="ComVisible" onClick="toggleAttributeFilter('ComVisible');" checked="1" />
55 <td> ComVisibleAttribute </td>
59 <input type="checkbox" ID="DebuggerDisplay" onClick="toggleAttributeFilter('DebuggerDisplay');" checked="1" />
61 <td> DebuggerDisplayAttribute </td>
67 <xsl:apply-templates/>
73 <td> <img src="cm/y.gif"/> </td>
76 <td> <img src="cm/n.gif"/> </td>
79 <td> <img src="cm/c.gif"/> </td>
82 <td> <img src="cm/s.gif"/> </td>
86 <td> <img src="cm/i.gif"/> </td>
89 <td> <img src="cm/d.gif"/> </td>
92 <td> <img src="cm/en.gif"/> </td>
95 <td> <img src="cm/m.gif"/> </td>
99 <td> <img src="cm/f.gif"/> </td>
102 <td> <img src="cm/p.gif"/> </td>
105 <td> <img src="cm/e.gif"/> </td>
108 <td> <img src="cm/r.gif"/> </td>
123 <xsl:template match="/assemblies">
124 <xsl:apply-templates select="assembly">
125 <xsl:sort select="@name"/>
126 </xsl:apply-templates>
129 <xsl:template match="assembly">
131 <xsl:call-template name="ELEMENT">
132 <xsl:with-param name="class">y</xsl:with-param>
134 <xsl:if test="not(@presence)">
135 <xsl:apply-templates/>
142 <xsl:template match="namespaces">
143 <xsl:apply-templates select="namespace">
144 <xsl:sort select="@name"/>
145 </xsl:apply-templates>
148 <xsl:template match="namespace">
150 <xsl:call-template name="ELEMENT">
151 <xsl:with-param name="class">n</xsl:with-param>
153 <xsl:if test="not(@presence)">
154 <xsl:apply-templates/>
160 <xsl:template match="namespace/classes">
161 <xsl:apply-templates select="class[@type='interface']">
162 <xsl:sort select="@name"/>
163 </xsl:apply-templates>
164 <xsl:apply-templates select="class[@type='class']">
165 <xsl:sort select="@name"/>
166 </xsl:apply-templates>
167 <xsl:apply-templates select="class[@type='struct']">
168 <xsl:sort select="@name"/>
169 </xsl:apply-templates>
170 <xsl:apply-templates select="class[@type='delegate']">
171 <xsl:sort select="@name"/>
172 </xsl:apply-templates>
173 <xsl:apply-templates select="class[@type='enum']">
174 <xsl:sort select="@name"/>
175 </xsl:apply-templates>
180 <xsl:template match="class[@type='class']">
182 <xsl:call-template name="ELEMENT">
183 <xsl:with-param name="class">c</xsl:with-param>
185 <xsl:if test="(@missing_total or @todo_total or @extra_total or @warning_total or @error) and not(@presence)">
186 <xsl:apply-templates select="attributes"/>
187 <xsl:apply-templates select="interfaces"/>
188 <xsl:apply-templates select="constructors"/>
189 <xsl:apply-templates select="./*[local-name() != 'attributes' and local-name() != 'constructors' and local-name() != 'interfaces']"/>
196 <xsl:template match="class[@type='struct'][@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
198 <xsl:call-template name="ELEMENT">
199 <xsl:with-param name="class">s</xsl:with-param>
201 <xsl:if test="not(@presence)">
202 <xsl:apply-templates/>
209 <!-- interface types -->
210 <xsl:template match="class[@type='interface']">
211 <xsl:apply-templates select="class[@type='interface']">
212 <xsl:sort select="@name"/>
213 </xsl:apply-templates>
216 <xsl:template match="class[@type='interface'][@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
218 <xsl:call-template name="ELEMENT">
219 <xsl:with-param name="class">i</xsl:with-param>
221 <xsl:if test="not(@presence)">
222 <xsl:apply-templates/>
227 <!-- interfaces implemented by Types -->
228 <xsl:template match="interface">
229 <xsl:apply-templates select="interface">
230 <xsl:sort select="@name"/>
231 </xsl:apply-templates>
234 <xsl:template match="interface[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
236 <xsl:call-template name="ELEMENT">
237 <xsl:with-param name="class">i</xsl:with-param>
239 <xsl:if test="not(@presence)">
240 <xsl:apply-templates/>
246 <!-- generic constraints -->
247 <xsl:template match="generic-type-constraints">
248 <xsl:apply-templates select="generic-type-constraint">
249 <xsl:sort select="@name"/>
250 </xsl:apply-templates>
253 <xsl:template match="generic-type-constraint[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
255 <xsl:call-template name="ELEMENT">
256 <xsl:with-param name="class">w</xsl:with-param>
258 <xsl:if test="not(@presence)">
259 <xsl:apply-templates/>
266 <xsl:template match="class[@type='delegate'][@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
268 <xsl:call-template name="ELEMENT">
269 <xsl:with-param name="class">d</xsl:with-param>
271 <xsl:if test="not(@presence)">
272 <xsl:apply-templates/>
279 <xsl:template match="class[@type='enum'][@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
281 <xsl:call-template name="ELEMENT">
282 <xsl:with-param name="class">en</xsl:with-param>
284 <xsl:if test="not(@presence)">
285 <xsl:apply-templates/>
292 <xsl:template match="methods">
293 <xsl:apply-templates select="method">
294 <xsl:sort select="@name"/>
295 </xsl:apply-templates>
298 <xsl:template match="method[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
300 <xsl:call-template name="ELEMENT">
301 <xsl:with-param name="class">m</xsl:with-param>
303 <xsl:if test="not(@presence)">
304 <xsl:apply-templates/>
311 <xsl:template match="properties">
312 <xsl:apply-templates select="property">
313 <xsl:sort select="@name"/>
314 </xsl:apply-templates>
317 <xsl:template match="property[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
319 <xsl:call-template name="ELEMENT">
320 <xsl:with-param name="class">p</xsl:with-param>
322 <xsl:if test="not(@presence)">
323 <xsl:apply-templates/>
330 <xsl:template match="events">
331 <xsl:apply-templates select="event">
332 <xsl:sort select="@name"/>
333 </xsl:apply-templates>
336 <xsl:template match="event[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
338 <xsl:call-template name="ELEMENT">
339 <xsl:with-param name="class">e</xsl:with-param>
341 <xsl:if test="not(@presence)">
342 <xsl:apply-templates/>
349 <xsl:template match="constructors">
350 <xsl:apply-templates select="constructor">
351 <xsl:sort select="@name"/>
352 </xsl:apply-templates>
355 <xsl:template match="constructor[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
357 <xsl:call-template name="ELEMENT">
358 <xsl:with-param name="class">x</xsl:with-param>
359 <xsl:with-param name="image">m</xsl:with-param>
361 <xsl:if test="not(@presence)">
362 <xsl:apply-templates/>
369 <xsl:template match="fields">
370 <xsl:apply-templates select="field">
371 <xsl:sort select="@name"/>
372 </xsl:apply-templates>
375 <xsl:template match="field[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
377 <xsl:call-template name="ELEMENT">
378 <xsl:with-param name="class">f</xsl:with-param>
380 <xsl:if test="not(@presence)">
381 <xsl:apply-templates/>
387 <xsl:template match="property/methods">
388 <xsl:apply-templates select="method">
389 <xsl:sort select="@name"/>
390 </xsl:apply-templates>
393 <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]">
395 <xsl:call-template name="ELEMENT">
396 <xsl:with-param name="class">o</xsl:with-param>
397 <xsl:with-param name="image">m</xsl:with-param>
399 <xsl:if test="not(@presence)">
400 <xsl:apply-templates/>
407 <xsl:template match="attributes">
408 <xsl:apply-templates select="attribute">
409 <xsl:sort select="@name"/>
410 </xsl:apply-templates>
413 <xsl:template match="attribute[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
415 <xsl:call-template name="ELEMENT">
416 <xsl:with-param name="class">r</xsl:with-param>
418 <xsl:if test="not(@presence)">
419 <xsl:apply-templates/>
426 <!-- support templates -->
428 <xsl:template name="ELEMENT">
429 <xsl:param name="class"/>
430 <xsl:param name="image"/>
431 <xsl:attribute name="class">
432 <xsl:value-of select="$class"/>
433 <xsl:if test="./node() and local-name() != 'assembly'">_</xsl:if>
435 <xsl:call-template name="toggle"/>
437 <xsl:when test="@error and @error != 'todo'">
438 <xsl:element name="img">
439 <xsl:attribute name="src">cm/se.gif</xsl:attribute>
440 <xsl:attribute name="class">t</xsl:attribute>
441 <xsl:attribute name="title"><xsl:call-template name="warning-hover" /></xsl:attribute>
444 <xsl:when test="@error = 'todo'">
445 <xsl:element name="img">
446 <xsl:attribute name="src">cm/st.gif</xsl:attribute>
447 <xsl:attribute name="class">t</xsl:attribute>
448 <xsl:if test="@comment">
449 <xsl:attribute name="title"><xsl:value-of select="@comment"/></xsl:attribute>
451 <xsl:if test="not(@comment)">
452 <xsl:attribute name="title">No TODO description</xsl:attribute>
456 <xsl:when test="@presence = 'missing'">
457 <img src="cm/sm.gif" class="t"/>
459 <xsl:when test="@presence = 'extra'">
460 <img src="cm/sx.gif" class="t"/>
463 <img src="cm/sc.gif" class="t"/>
467 <xsl:when test="$image">
468 <img src="cm/{$image}.gif" class="t"/>
471 <img src="cm/{$class}.gif" class="t"/>
474 <xsl:call-template name="name"/>
475 <xsl:if test="not(@presence)">
476 <xsl:call-template name="status"/>
480 <xsl:template name="status">
481 <xsl:if test="@complete_total and @complete_total != 0">
483 <img src="cm/sc.gif"/>
484 <xsl:text>: </xsl:text>
485 <xsl:value-of select="@complete_total"/>
486 <xsl:text>%</xsl:text>
489 <xsl:if test="@todo_total">
491 <img src="cm/st.gif"/>: <xsl:value-of select="@todo_total"/>
494 <xsl:if test="@missing_total">
496 <img src="cm/sm.gif"/>: <xsl:value-of select="@missing_total"/>
499 <xsl:if test="@extra_total">
501 <img src="cm/sx.gif"/>: <xsl:value-of select="@extra_total"/>
504 <xsl:if test="@warning_total">
506 <img src="cm/se.gif"/>: <xsl:value-of select="@warning_total"/>
511 <xsl:template name="toggle">
513 <xsl:when test="not(@presence) and .//*[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
515 <xsl:when test="local-name() != 'assembly'">
516 <img src="cm/tp.gif" class="t"/>
519 <img src="cm/tm.gif" class="t"/>
524 <img src="cm/tb.gif"/>
529 <xsl:template name="name">
530 <xsl:if test="@name">
531 <span class="l"><xsl:value-of select="@name"/></span>
535 <xsl:template name="warning-hover">
536 <xsl:for-each select="warnings/warning">
537 <xsl:text>WARNING: </xsl:text>
538 <xsl:value-of select="@text"/>