PageRenderTime 70ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/Main/Source/Sandcastle/Presentation/hana/Scripts/MemberFilter.js

#
JavaScript | 110 lines | 63 code | 33 blank | 14 comment | 40 complexity | 4fc2397ad3e6ee66ce9c35e5c25a4525 MD5 | raw file
Possible License(s): CC-BY-SA-3.0
  1. // a member filter
  2. function MemberFilter () {
  3. // set up defaults
  4. this.subgroup = "all";
  5. this.public = true;
  6. this.protected = true;
  7. this.private = true;
  8. this.instance = true;
  9. this.static = true;
  10. this.declared = true;
  11. this.inherited = true;
  12. this.compact = true;
  13. this.xna = true;
  14. }
  15. MemberFilter.prototype.filterElement = function(element) {
  16. // get the data for the element
  17. if (element == null) return;
  18. var data = element.getAttribute("data");
  19. if (data == null) return;
  20. var datum = data.split("; ");
  21. if (datum.length != 6) return;
  22. // extract the relevent member attributes
  23. var subgroup = datum[0];
  24. var visibility = datum[1];
  25. var binding = datum[2];
  26. var origin = datum[3];
  27. var compactFramework = datum[4];
  28. var xnaFramework = datum[5];
  29. // determine whether to show the member
  30. var show = true;
  31. if (this[visibility] == false) show = false;
  32. if (this[binding] == false) show = false;
  33. if (this[origin] == false) show = false;
  34. if (this[compactFramework] == false) show = false;
  35. if(this[xnaFramework] == false) show = false;
  36. if ((this.subgroup != null) && (this.subgroup != 'all')) {
  37. if (subgroup != this.subgroup) show = false;
  38. }
  39. // show or hide the element
  40. if (show) {
  41. // either block or table-row, depending on browswer, so use default
  42. element.style["display"] = "";
  43. } else {
  44. element.style["display"] = "none";
  45. }
  46. }
  47. // a type filter
  48. function TypeFilter () {
  49. // set up defaults
  50. this.subgroup = "all";
  51. this.public = true;
  52. this.internal = true;
  53. }
  54. TypeFilter.prototype.filterElement = function(element) {
  55. // get the data for the element
  56. if (element == null) return;
  57. var data = element.getAttribute("data");
  58. if (data == null) return;
  59. var datum = data.split("; ");
  60. if (datum.length != 2) return;
  61. // extract the relevent member attributes
  62. var subgroup = datum[0];
  63. var visibility = datum[1];
  64. // determine whether to show the member
  65. var show = true;
  66. if (this[visibility] == false) show = false;
  67. if ((this.subgroup != null) && (this.subgroup != 'all')) {
  68. if (subgroup != this.subgroup) show = false;
  69. }
  70. // show or hide the element
  71. if (show) {
  72. // either block or table-row, depending on browser, so use default
  73. element.style["display"] = "";
  74. } else {
  75. element.style["display"] = "none";
  76. }
  77. }