File: decorator.js

package info (click to toggle)
logback 1%3A1.1.2-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 16,088 kB
  • sloc: java: 55,176; xml: 4,684; sql: 552; sh: 141; makefile: 18
file content (100 lines) | stat: -rw-r--r-- 2,682 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100


//   <h3><a name="LoggerContext" href="#LoggerContext"><span
//    class="anchor"/></a>Logger context</h3>

function decorate() {
  var anchor = findAnchorInURL(document.URL);
  decoratePropertiesInTables(anchor);
  decorateDoAnchor(anchor);
  decorateConversionWordInTables(anchor);
}

// ----------------------------------------------
function findAnchorInURL(url) {

 if(url == null) return null
  var index = url.lastIndexOf("#");
  if(index != -1 && (index+1) < url.length) 
    return url.substr(index+1);
  else 
    return null;
}

// ----------------------------------------------
function decoratePropertiesInTables(anchor) {

 //if(1==1) return;
 var elems = $('tr td:first-child span.prop');

 for(var i = 0; i < elems.length; i++) {
   var e = elems[i];
   var p = e.parentNode;
   if(p == null) continue;

   var tmpHTML = p.innerHTML;
   var propName = e.innerHTML;
   var nameAttr = $(e).attr('name')
    
   if(nameAttr == null) {
     var containerAttr = $(e).attr('container')
     if(containerAttr != null) 
       nameAttr = containerAttr+capitaliseFirstLetter(propName);
     else 
       nameAttr = propName;
   }
   
   p.innerHTML = "<a name='" + nameAttr + "' href='#" + nameAttr +
                "'><span class='anchor'/></a><b>" +tmpHTML +"</b>";
   scrollIfMatch(p, nameAttr, anchor);
 } // for 
}

function decorateConversionWordInTables(anchor) {
 var elems = $('tr td.word');
 for(var i = 0; i < elems.length; i++) {
   var e = elems[i];
   var tmpHTML = e.innerHTML;
   var nameAttr = $(e).attr('name')
   if(nameAttr == null) 
     continue;
   e.innerHTML = "<a name='" + nameAttr + "' href='#" + nameAttr +
                "'><span class='anchor'/></a>" +tmpHTML;
   scrollIfMatch(e, nameAttr, anchor);
 }
}


function decorateDoAnchor(anchor) {
   var elems = $('.doAnchor');
   for(var i = 0; i < elems.length; i++) {
     var e = elems[i];
     var tmpHTML = e.innerHTML;
     var nameAttr = $(e).attr('name')
     if(nameAttr == null) {
       nameAttr = camelCase($.trim(tmpHTML))
     }
     e.innerHTML = "<a name='" + nameAttr + "' href='#" + nameAttr +
                "'><span class='anchor'/></a>" +tmpHTML;
     scrollIfMatch(e, nameAttr, anchor);
   }
} 

function scrollIfMatch(element, nameAttr, anchor) {
  if(anchor != null && nameAttr.toString() == anchor)
     element.scrollIntoView(true);


}

function capitaliseFirstLetter(str) {
  return str.charAt(0).toUpperCase() + str.slice(1);
}


function camelCase(str) {  
  return $.trim(str).replace(/\s\w/g, function(match) {
    return $.trim(match).toUpperCase();
  });
}