Home | History | Annotate | Download | only in js
      1 
      2 
      3 //   <h3><a name="LoggerContext" href="#LoggerContext"><span
      4 //    class="anchor"/></a>Logger context</h3>
      5 
      6 function decorate() {
      7   var anchor = findAnchorInURL(document.URL);
      8   decoratePropertiesInTables(anchor);
      9   decorateDoAnchor(anchor);
     10   decorateConversionWordInTables(anchor);
     11 }
     12 
     13 // ----------------------------------------------
     14 function findAnchorInURL(url) {
     15 
     16  if(url == null) return null
     17   var index = url.lastIndexOf("#");
     18   if(index != -1 && (index+1) < url.length) 
     19     return url.substr(index+1);
     20   else 
     21     return null;
     22 }
     23 
     24 // ----------------------------------------------
     25 function decoratePropertiesInTables(anchor) {
     26 
     27  //if(1==1) return;
     28  var elems = $('tr td:first-child span.prop');
     29 
     30  for(var i = 0; i < elems.length; i++) {
     31    var e = elems[i];
     32    var p = e.parentNode;
     33    if(p == null) continue;
     34 
     35    var tmpHTML = p.innerHTML;
     36    var propName = e.innerHTML;
     37    var nameAttr = $(e).attr('name')
     38     
     39    if(nameAttr == null) {
     40      var containerAttr = $(e).attr('container')
     41      if(containerAttr != null) 
     42        nameAttr = containerAttr+capitaliseFirstLetter(propName);
     43      else 
     44        nameAttr = propName;
     45    }
     46    
     47    p.innerHTML = "<a name='" + nameAttr + "' href='#" + nameAttr +
     48                 "'><span class='anchor'/></a><b>" +tmpHTML +"</b>";
     49    scrollIfMatch(p, nameAttr, anchor);
     50  } // for 
     51 }
     52 
     53 function decorateConversionWordInTables(anchor) {
     54  var elems = $('tr td.word');
     55  for(var i = 0; i < elems.length; i++) {
     56    var e = elems[i];
     57    var tmpHTML = e.innerHTML;
     58    var nameAttr = $(e).attr('name')
     59    if(nameAttr == null) 
     60      continue;
     61    e.innerHTML = "<a name='" + nameAttr + "' href='#" + nameAttr +
     62                 "'><span class='anchor'/></a>" +tmpHTML;
     63    scrollIfMatch(e, nameAttr, anchor);
     64  }
     65 }
     66 
     67 
     68 function decorateDoAnchor(anchor) {
     69    var elems = $('.doAnchor');
     70    for(var i = 0; i < elems.length; i++) {
     71      var e = elems[i];
     72      var tmpHTML = e.innerHTML;
     73      var nameAttr = $(e).attr('name')
     74      if(nameAttr == null) {
     75        nameAttr = camelCase($.trim(tmpHTML))
     76      }
     77      e.innerHTML = "<a name='" + nameAttr + "' href='#" + nameAttr +
     78                 "'><span class='anchor'/></a>" +tmpHTML;
     79      scrollIfMatch(e, nameAttr, anchor);
     80    }
     81 } 
     82 
     83 function scrollIfMatch(element, nameAttr, anchor) {
     84   if(anchor != null && nameAttr.toString() == anchor)
     85      element.scrollIntoView(true);
     86 
     87 
     88 }
     89 
     90 function capitaliseFirstLetter(str) {
     91   return str.charAt(0).toUpperCase() + str.slice(1);
     92 }
     93 
     94 
     95 function camelCase(str) {  
     96   var res = str.trim().replace(/\s\w/g, function(match) {
     97               return match.trim().toUpperCase();
     98             });
     99   return res;
    100 }
    101 
    102