PageRenderTime 39ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/Documentation/Help/scripts/MemberFilter.js

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