Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

316 lines
10 KiB

  1. <!-- ******************************************************** -->
  2. <!-- -->
  3. <!-- Copyright (c) 1999-2000 Microsoft Corporation -->
  4. <!-- -->
  5. <!-- drillDwn.xsl -->
  6. <!-- -->
  7. <!-- Build Type : 32 Bit Free -->
  8. <!-- Build Number : 0707 -->
  9. <!-- Build Date : 07/07/2000 -->
  10. <!-- ******************************************************* -->
  11. <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" xmlns:fo="http://www.w3.org/TR/WD-xsl/FO" language="JSCRIPT">
  12. <!-- match the root of the xml data -->
  13. <xsl:template match="/">
  14. <xsl:for-each select="INSTANCE">
  15. <TABLE id="TABLE2" class="table2" cellspacing="0" onmousedown="mouseDown()">
  16. <THEAD id="THEAD2">
  17. <TR >
  18. <td class="drillDownSizer" colspan="3">
  19. </td>
  20. </TR>
  21. <TR>
  22. <TD class="drillDivSub1">source:<xsl:value-of select="PROPERTY[@NAME='Source']/VALUE"/>
  23. </TD>
  24. <xsl:if test="PROPERTY[@NAME='Priority']">
  25. <TD class="drillDivSub1">priority:<xsl:value-of select="PROPERTY[@NAME='Priority']/VALUE"/>
  26. </TD>
  27. </xsl:if>
  28. <TD class="drillDivSub1"><IMG ondragstart='ignoreEvent()' border="0" align="right" src="images/close.gif" style="cursor:hand" id="closegif" title="Close the drilldown" onclick="hideDrillDown()"></IMG></TD>
  29. </TR>
  30. <TR>
  31. <TD class="drillDivSub1">
  32. <xsl:eval>getObjectDisplayString(this)</xsl:eval>
  33. </TD>
  34. <xsl:if test="PROPERTY[@NAME='Severity']">
  35. <TD class="drillDivSub1">severity:<xsl:value-of select="PROPERTY[@NAME='Severity']/VALUE"/>
  36. </TD>
  37. </xsl:if>
  38. <TD class="drillDivSub1FloatRight">
  39. <xsl:choose>
  40. <xsl:when test="PROPERTY[@NAME='Type']/VALUE[.='0']">
  41. red alert
  42. <IMG ondragstart='ignoreEvent()' border="0" align="bottom" src="images/high_imp.gif"></IMG>
  43. </xsl:when>
  44. <xsl:when test="PROPERTY[@NAME='Type']/VALUE[.='red alert']">
  45. red alert
  46. <IMG ondragstart='ignoreEvent()' border="0" align="bottom" src="images/high_imp.gif"></IMG>
  47. </xsl:when>
  48. <xsl:when test="PROPERTY[@NAME='Type']/VALUE[.='1']">
  49. error
  50. <IMG ondragstart='ignoreEvent()' border="0" align="bottom" src="images/error.gif"></IMG>
  51. </xsl:when>
  52. <xsl:when test="PROPERTY[@NAME='Type']/VALUE[.='error']">
  53. error
  54. <IMG ondragstart='ignoreEvent()' border="0" align="bottom" src="images/error.gif"></IMG>
  55. </xsl:when>
  56. <xsl:when test="PROPERTY[@NAME='Type']/VALUE[.='2']">
  57. warning
  58. <IMG ondragstart='ignoreEvent()' border="0" align="bottom" src="images/alert.gif"></IMG>
  59. </xsl:when>
  60. <xsl:when test="PROPERTY[@NAME='Type']/VALUE[.='warning']">
  61. warning
  62. <IMG ondragstart='ignoreEvent()' border="0" align="bottom" src="images/alert.gif"></IMG>
  63. </xsl:when>
  64. <xsl:when test="PROPERTY[@NAME='Type']/VALUE[.='3']">
  65. information
  66. <IMG ondragstart='ignoreEvent()' border="0" align="bottom" src="images/info.gif"></IMG>
  67. </xsl:when>
  68. <xsl:when test="PROPERTY[@NAME='Type']/VALUE[.='information']">
  69. information
  70. <IMG ondragstart='ignoreEvent()' border="0" align="bottom" src="images/info.gif"></IMG>
  71. </xsl:when>
  72. <xsl:when test="PROPERTY[@NAME='Type']/VALUE[.='4']">
  73. security audit success
  74. <IMG ondragstart='ignoreEvent()' border="0" align="bottom" src="images/key.gif"></IMG>
  75. </xsl:when>
  76. <xsl:when test="PROPERTY[@NAME='Type']/VALUE[.='security audit success']">
  77. security audit success
  78. <IMG ondragstart='ignoreEvent()' border="0" align="bottom" src="images/key.gif"></IMG>
  79. </xsl:when>
  80. <xsl:when test="PROPERTY[@NAME='Type']/VALUE[.='5']">
  81. security audit failure
  82. <IMG ondragstart='ignoreEvent()' border="0" align="bottom" src="images/lock.gif"></IMG>
  83. </xsl:when>
  84. <xsl:when test="PROPERTY[@NAME='Type']/VALUE[.='security audit failure']">
  85. security audit failure
  86. <IMG ondragstart='ignoreEvent()' border="0" align="bottom" src="images/lock.gif"></IMG>
  87. </xsl:when>
  88. <xsl:when test="PROPERTY[@NAME='Type']/VALUE[.='6']">
  89. garbage
  90. <IMG ondragstart='ignoreEvent()' border="0" align="bottom" src="images/garbage.gif"></IMG>
  91. </xsl:when>
  92. <xsl:when test="PROPERTY[@NAME='Type']/VALUE[.='garbage']">
  93. garbage
  94. <IMG ondragstart='ignoreEvent()' border="0" align="bottom" src="images/garbage.gif"></IMG>
  95. </xsl:when>
  96. </xsl:choose>
  97. </TD>
  98. </TR>
  99. <TR>
  100. <TD colspan="3" class="drillDivSub1">
  101. <xsl:if test=".[@cur!='0']">
  102. <IMG ondragstart='ignoreEvent()' border="0" align="bottom" src="images/left.gif" onclick="navigateDown()"></IMG>
  103. </xsl:if>
  104. <xsl:if test=".[@cur!=/INSTANCE/@max]">
  105. <IMG ondragstart='ignoreEvent()' border="0" align="bottom" src="images/right.gif" onclick="navigateUp()"></IMG>
  106. </xsl:if>
  107. </TD>
  108. </TR>
  109. </THEAD>
  110. <TBODY>
  111. <xsl:for-each select="//PROPERTY.OBJECT[@lev=/INSTANCE/@cur]">
  112. <TR>
  113. <TD colspan="3" class="tableEvent">
  114. <xsl:value-of select="./@NAME"/>:
  115. <xsl:choose>
  116. <xsl:when test=".[VALUE.OBJECT/INSTANCE/@CLASSNAME='Win32_MouseClickEvent']">
  117. Mouse Click Event
  118. </xsl:when>
  119. <xsl:when test=".[VALUE.OBJECT/INSTANCE/@CLASSNAME='Win32_MouseMoveEvent']">
  120. Mouse Move Event
  121. </xsl:when>
  122. <xsl:when test=".[VALUE.OBJECT/INSTANCE/@CLASSNAME='Win32_MouseDownEvent']">
  123. Mouse Down Event
  124. </xsl:when>
  125. <xsl:when test=".[VALUE.OBJECT/INSTANCE/@CLASSNAME='Win32_MouseUpEvent']">
  126. Mouse Up Event
  127. </xsl:when>
  128. </xsl:choose>
  129. </TD>
  130. </TR>
  131. <xsl:apply-templates select="VALUE.OBJECT/INSTANCE"/>
  132. </xsl:for-each>
  133. </TBODY>
  134. </TABLE>
  135. </xsl:for-each>
  136. </xsl:template>
  137. <xsl:template match="INSTANCE">
  138. <xsl:apply-templates/>
  139. </xsl:template>
  140. <xsl:template match="PROPERTY">
  141. <xsl:choose>
  142. <xsl:when test="..[@NAME = 'NT']">
  143. <xsl:if test=".[@NAME='Message']">
  144. <TR>
  145. <TD vAlign="top" class="drillDownTableDataNT">
  146. <xsl:value-of select="./@NAME"/> :
  147. </TD>
  148. <TD colspan="2" class="drillDownTableData">
  149. <PRE class="tableDataPre">
  150. <xsl:value-of select="VALUE"/>
  151. </PRE>
  152. </TD>
  153. </TR>
  154. </xsl:if>
  155. <xsl:if test=".[@NAME='Data']">
  156. <xsl:if test=".[@NAME='Data']/VALUE/VALUE[0]">
  157. <TR>
  158. <TD class="drillDownTableDataNT" vAlign="top" nowrap="true" >
  159. <xsl:value-of select="./@NAME"/> (
  160. <INPUT type="radio" name="ByteorWord" value="Byte" title="Data in Byte" onclick="hideWordDisplay()" checked="true">Byte</INPUT>
  161. <INPUT type="radio" name="ByteorWord" value="Word" title="Data in Word" onclick="hideByteDisplay() " >Word</INPUT> ) :
  162. </TD>
  163. <TD colspan="2" class="drillDownTableData" vAlign="top" align="left" >
  164. <SPAN class="dataByteClass" id="dataInByteSpan" save=""><xsl:for-each select=".[@NAME='Data']/VALUE/VALUE"><xsl:eval>convertToByte(this)</xsl:eval><xsl:if expr="newLineForByteDisplay()"><BR/></xsl:if></xsl:for-each></SPAN><SPAN class="dataAsciiClass" id="dataInAsciiSpan" save=""><xsl:for-each select=".[@NAME='Data']/VALUE/VALUE"><xsl:eval>convertToAscii(this)</xsl:eval><xsl:if expr="newLineForAsciiDisplay()"><BR/></xsl:if></xsl:for-each></SPAN><SPAN class="dataWordClass" id="dataInWordSpan" save=""><xsl:for-each select=".[@NAME='Data']/VALUE/VALUE"><xsl:eval> convertToWord(this)</xsl:eval><xsl:if expr="newLineForWordDisplay()"><BR/></xsl:if></xsl:for-each></SPAN>
  165. </TD>
  166. </TR>
  167. </xsl:if>
  168. </xsl:if>
  169. </xsl:when>
  170. <xsl:otherwise>
  171. <TR>
  172. <TD class="drillDownTableData">
  173. <xsl:value-of select="./@NAME"/>
  174. </TD>
  175. <TD colspan="2" class="drillDownTableData">
  176. <xsl:value-of select="VALUE"/>
  177. </TD>
  178. </TR>
  179. </xsl:otherwise>
  180. </xsl:choose>
  181. </xsl:template>
  182. <xsl:template match="PROPERTY.OBJECT">
  183. <TR>
  184. <TD class="drillDownTableData">
  185. <xsl:value-of select="./@NAME"/>
  186. </TD>
  187. <TD colspan="2" class="drillDownTableData">
  188. <xsl:value-of select="VALUE.OBJECT/INSTANCE/@CLASSNAME"/>
  189. </TD>
  190. </TR>
  191. </xsl:template>
  192. <xsl:script language="JScript"><![CDATA[
  193. var countdots = 0;
  194. var countascii = 0;
  195. var num1 = new Array ();
  196. var offset =0;
  197. function getObjectDisplayString (e) {
  198. nodeCur = e.selectSingleNode ("//@cur") ;
  199. nodeMax = e.selectSingleNode ("//@max") ;
  200. curVal = new Number (nodeCur.value) + 1 ;
  201. maxVal = new Number (nodeMax.value) + 1 ;
  202. return ("object " + curVal + " of " + maxVal) ;
  203. }
  204. function convertToByte (e) {
  205. var hexnum = new Array ();
  206. node = e.text;
  207. for (i=1;i>-1;i--) {
  208. hexnum[i] = node & '0xf';
  209. if (hexnum[i]>9) hexnum[i]=String.fromCharCode(hexnum[i]+ 55);
  210. node = node>>4 ;
  211. }
  212. num1[countdots]=hexnum[1]+"";
  213. countdots++;
  214. num1[countdots]=hexnum[0]+"";
  215. countdots++;
  216. if ((countdots-2)%16==0) {
  217. offset = countdots/2-1;
  218. offset = convertToHex();
  219. result =offset +" : " + hexnum[0]+""+hexnum[1]+" " ;
  220. }
  221. else result= hexnum[0]+""+hexnum[1]+" " ;
  222. return result;
  223. }
  224. function newLineForByteDisplay() {
  225. if ((countdots%16==0) && (countdots!=0)) return true;
  226. }
  227. function newLineForAsciiDisplay() {
  228. if ((countascii%8==0) && (countascii!=0)) return true;
  229. }
  230. function convertToHex() {
  231. offsetdigit = new Array();
  232. for (i=1;i>-1;i--) {
  233. offsetdigit[i] = offset & '0xf';
  234. if (offsetdigit[i]>9) offsetdigit[i]=String.fromCharCode(offsetdigit[i]+ 55);
  235. offset = offset>>4 ;
  236. }
  237. return "00"+offsetdigit[0]+""+offsetdigit[1];
  238. }
  239. function convertToAscii (e) {
  240. countascii++;
  241. if (e.text<27) return ".";
  242. else return String.fromCharCode(e.text);
  243. }
  244. countwords=7;
  245. countforoffset=0;
  246. countwordlimit=-1;
  247. function convertToWord () {
  248. result="";
  249. if ((countforoffset%32)==0) {
  250. offset = countforoffset/2;
  251. offset = convertToHex(offset);
  252. result = result + offset + " : ";
  253. }
  254. if (countwords<=countwordlimit) {
  255. result=result+" ";
  256. countwords+=16;
  257. countwordlimit=countwords-8;
  258. }
  259. result =result+num1[countwords]+num1[countwords-1]+"";
  260. countwords-=2;
  261. countforoffset+=2;
  262. return result;
  263. }
  264. function newLineForWordDisplay() {
  265. if ((countforoffset%32==0) && (countforoffset!=0)) return true;
  266. }
  267. ]]></xsl:script>
  268. </xsl:stylesheet>