1*feeed43cSAndroid Build Coastguard Worker 2*feeed43cSAndroid Build Coastguard Worker <style> 3*feeed43cSAndroid Build Coastguard Worker 4*feeed43cSAndroid Build Coastguard Worker .package-label { 5*feeed43cSAndroid Build Coastguard Worker 6*feeed43cSAndroid Build Coastguard Worker } 7*feeed43cSAndroid Build Coastguard Worker 8*feeed43cSAndroid Build Coastguard Worker .class-label { 9*feeed43cSAndroid Build Coastguard Worker padding-left: 40px; 10*feeed43cSAndroid Build Coastguard Worker } 11*feeed43cSAndroid Build Coastguard Worker 12*feeed43cSAndroid Build Coastguard Worker .method-label { 13*feeed43cSAndroid Build Coastguard Worker padding-left: 80px; 14*feeed43cSAndroid Build Coastguard Worker } 15*feeed43cSAndroid Build Coastguard Worker 16*feeed43cSAndroid Build Coastguard Worker .package-entry { 17*feeed43cSAndroid Build Coastguard Worker background-color: #778899; 18*feeed43cSAndroid Build Coastguard Worker } 19*feeed43cSAndroid Build Coastguard Worker 20*feeed43cSAndroid Build Coastguard Worker .class-entry { 21*feeed43cSAndroid Build Coastguard Worker background-color: #a9a9a9; 22*feeed43cSAndroid Build Coastguard Worker } 23*feeed43cSAndroid Build Coastguard Worker 24*feeed43cSAndroid Build Coastguard Worker .method-entry { 25*feeed43cSAndroid Build Coastguard Worker background-color: #dcdcdc; 26*feeed43cSAndroid Build Coastguard Worker } 27*feeed43cSAndroid Build Coastguard Worker 28*feeed43cSAndroid Build Coastguard Worker .collapsed { 29*feeed43cSAndroid Build Coastguard Worker 30*feeed43cSAndroid Build Coastguard Worker } 31*feeed43cSAndroid Build Coastguard Worker 32*feeed43cSAndroid Build Coastguard Worker .handle { 33*feeed43cSAndroid Build Coastguard Worker width: 25px; 34*feeed43cSAndroid Build Coastguard Worker background-repeat: no-repeat; 35*feeed43cSAndroid Build Coastguard Worker } 36*feeed43cSAndroid Build Coastguard Worker 37*feeed43cSAndroid Build Coastguard Worker .handle-opened { 38*feeed43cSAndroid Build Coastguard Worker background-image: url("<?cs var:triangle.opened ?>"); 39*feeed43cSAndroid Build Coastguard Worker } 40*feeed43cSAndroid Build Coastguard Worker 41*feeed43cSAndroid Build Coastguard Worker .handle-closed { 42*feeed43cSAndroid Build Coastguard Worker background-image: url("<?cs var:triangle.closed?>"); 43*feeed43cSAndroid Build Coastguard Worker } 44*feeed43cSAndroid Build Coastguard Worker 45*feeed43cSAndroid Build Coastguard Worker .tbody { 46*feeed43cSAndroid Build Coastguard Worker padding: 0; 47*feeed43cSAndroid Build Coastguard Worker margin: 0; 48*feeed43cSAndroid Build Coastguard Worker } 49*feeed43cSAndroid Build Coastguard Worker 50*feeed43cSAndroid Build Coastguard Worker #hierarchy { 51*feeed43cSAndroid Build Coastguard Worker border-collapse:collapse; 52*feeed43cSAndroid Build Coastguard Worker } 53*feeed43cSAndroid Build Coastguard Worker 54*feeed43cSAndroid Build Coastguard Worker </style> 55*feeed43cSAndroid Build Coastguard Worker 56*feeed43cSAndroid Build Coastguard Worker <script type="text/javascript" 57*feeed43cSAndroid Build Coastguard Worker src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 58*feeed43cSAndroid Build Coastguard Worker 59*feeed43cSAndroid Build Coastguard Worker <script type="text/javascript"> 60*feeed43cSAndroid Build Coastguard Worker function collapsePackage(tr) { 61*feeed43cSAndroid Build Coastguard Worker var table = $("#hierarchy")[0]; 62*feeed43cSAndroid Build Coastguard Worker 63*feeed43cSAndroid Build Coastguard Worker if (!$(tr).hasClass("collapsable")) { 64*feeed43cSAndroid Build Coastguard Worker return; 65*feeed43cSAndroid Build Coastguard Worker } 66*feeed43cSAndroid Build Coastguard Worker 67*feeed43cSAndroid Build Coastguard Worker if ($(tr).hasClass("collapsed")) { 68*feeed43cSAndroid Build Coastguard Worker $(tr).removeClass("collapsed"); 69*feeed43cSAndroid Build Coastguard Worker $(tr).children(".handle").addClass("handle-opened"); 70*feeed43cSAndroid Build Coastguard Worker $(tr).children(".handle").removeClass("handle-closed"); 71*feeed43cSAndroid Build Coastguard Worker if (tr.rowIndex + 1 < table.rows.length) { 72*feeed43cSAndroid Build Coastguard Worker var tbody = table.rows[tr.rowIndex + 1].parentNode; 73*feeed43cSAndroid Build Coastguard Worker $(tbody).show(); 74*feeed43cSAndroid Build Coastguard Worker } 75*feeed43cSAndroid Build Coastguard Worker } else { 76*feeed43cSAndroid Build Coastguard Worker $(tr).addClass("collapsed"); 77*feeed43cSAndroid Build Coastguard Worker $(tr).children(".handle").removeClass("handle-opened"); 78*feeed43cSAndroid Build Coastguard Worker $(tr).children(".handle").addClass("handle-closed"); 79*feeed43cSAndroid Build Coastguard Worker if (tr.rowIndex + 1 < table.rows.length 80*feeed43cSAndroid Build Coastguard Worker && $(table.rows[tr.rowIndex + 1]).hasClass("class-entry")) { 81*feeed43cSAndroid Build Coastguard Worker var tbody = table.rows[tr.rowIndex + 1].parentNode; 82*feeed43cSAndroid Build Coastguard Worker $(tbody).hide(); 83*feeed43cSAndroid Build Coastguard Worker } 84*feeed43cSAndroid Build Coastguard Worker } 85*feeed43cSAndroid Build Coastguard Worker } 86*feeed43cSAndroid Build Coastguard Worker 87*feeed43cSAndroid Build Coastguard Worker function collapseClass(tr) { 88*feeed43cSAndroid Build Coastguard Worker var table = $("#hierarchy")[0]; 89*feeed43cSAndroid Build Coastguard Worker 90*feeed43cSAndroid Build Coastguard Worker if (!$(tr).hasClass("collapsable")) { 91*feeed43cSAndroid Build Coastguard Worker return; 92*feeed43cSAndroid Build Coastguard Worker } 93*feeed43cSAndroid Build Coastguard Worker 94*feeed43cSAndroid Build Coastguard Worker if ($(tr).hasClass("collapsed")) { 95*feeed43cSAndroid Build Coastguard Worker $(tr).removeClass("collapsed"); 96*feeed43cSAndroid Build Coastguard Worker $(tr).children(".handle").addClass("handle-opened"); 97*feeed43cSAndroid Build Coastguard Worker $(tr).children(".handle").removeClass("handle-closed"); 98*feeed43cSAndroid Build Coastguard Worker var i = tr.rowIndex + 1; 99*feeed43cSAndroid Build Coastguard Worker while (i < table.rows.length && $(table.rows[i]).hasClass("method-entry")) { 100*feeed43cSAndroid Build Coastguard Worker $(table.rows[i++]).show(); 101*feeed43cSAndroid Build Coastguard Worker } 102*feeed43cSAndroid Build Coastguard Worker } else { 103*feeed43cSAndroid Build Coastguard Worker $(tr).addClass("collapsed"); 104*feeed43cSAndroid Build Coastguard Worker $(tr).children(".handle").removeClass("handle-opened"); 105*feeed43cSAndroid Build Coastguard Worker $(tr).children(".handle").addClass("handle-closed"); 106*feeed43cSAndroid Build Coastguard Worker var i = tr.rowIndex + 1; 107*feeed43cSAndroid Build Coastguard Worker while (i < table.rows.length && $(table.rows[i]).hasClass("method-entry")) { 108*feeed43cSAndroid Build Coastguard Worker $(table.rows[i++]).hide(); 109*feeed43cSAndroid Build Coastguard Worker } 110*feeed43cSAndroid Build Coastguard Worker } 111*feeed43cSAndroid Build Coastguard Worker } 112*feeed43cSAndroid Build Coastguard Worker 113*feeed43cSAndroid Build Coastguard Worker $(function() { 114*feeed43cSAndroid Build Coastguard Worker $(".package-entry").click(function() { 115*feeed43cSAndroid Build Coastguard Worker collapsePackage(this); 116*feeed43cSAndroid Build Coastguard Worker }); 117*feeed43cSAndroid Build Coastguard Worker 118*feeed43cSAndroid Build Coastguard Worker $(".class-entry").click(function() { 119*feeed43cSAndroid Build Coastguard Worker collapseClass(this); 120*feeed43cSAndroid Build Coastguard Worker }); 121*feeed43cSAndroid Build Coastguard Worker }); 122*feeed43cSAndroid Build Coastguard Worker </script> 123*feeed43cSAndroid Build Coastguard Worker 124*feeed43cSAndroid Build Coastguard Worker <table border="0" id="hierarchy"> 125*feeed43cSAndroid Build Coastguard Worker <tr> 126*feeed43cSAndroid Build Coastguard Worker <th> </th> 127*feeed43cSAndroid Build Coastguard Worker <?cs each:site = sites ?> 128*feeed43cSAndroid Build Coastguard Worker <th><?cs var:site.name ?></th> 129*feeed43cSAndroid Build Coastguard Worker <?cs /each ?> 130*feeed43cSAndroid Build Coastguard Worker </tr> 131*feeed43cSAndroid Build Coastguard Worker <?cs each:package = packages ?> 132*feeed43cSAndroid Build Coastguard Worker <?cs if:subcount(package.classes) ?> 133*feeed43cSAndroid Build Coastguard Worker <tr class="package-entry collapsable"> 134*feeed43cSAndroid Build Coastguard Worker <td class="handle handle-opened"> </td> 135*feeed43cSAndroid Build Coastguard Worker <?cs else ?> 136*feeed43cSAndroid Build Coastguard Worker <tr class="package-entry"> 137*feeed43cSAndroid Build Coastguard Worker <td class="handle"> </td> 138*feeed43cSAndroid Build Coastguard Worker <?cs /if ?> 139*feeed43cSAndroid Build Coastguard Worker <td class="package-label"><?cs var:package.name ?></td> 140*feeed43cSAndroid Build Coastguard Worker <?cs each:site = package.sites ?> 141*feeed43cSAndroid Build Coastguard Worker <td> 142*feeed43cSAndroid Build Coastguard Worker <?cs if:site.hasPackage ?> 143*feeed43cSAndroid Build Coastguard Worker <a href="<?cs var:site.link ?>">Link</a> 144*feeed43cSAndroid Build Coastguard Worker <?cs else ?> 145*feeed43cSAndroid Build Coastguard Worker N/A 146*feeed43cSAndroid Build Coastguard Worker <?cs /if ?> 147*feeed43cSAndroid Build Coastguard Worker </td> 148*feeed43cSAndroid Build Coastguard Worker <?cs /each ?> 149*feeed43cSAndroid Build Coastguard Worker </tr> 150*feeed43cSAndroid Build Coastguard Worker <tbody class="package-contents"> 151*feeed43cSAndroid Build Coastguard Worker <?cs each:class = package.classes ?> 152*feeed43cSAndroid Build Coastguard Worker <?cs if:subcount(class.methods) ?> 153*feeed43cSAndroid Build Coastguard Worker <tr class="class-entry collapsable"> 154*feeed43cSAndroid Build Coastguard Worker <td class="handle handle-opened"> </td> 155*feeed43cSAndroid Build Coastguard Worker <?cs else ?> 156*feeed43cSAndroid Build Coastguard Worker <tr class="class-entry"> 157*feeed43cSAndroid Build Coastguard Worker <td class="handle"> </td> 158*feeed43cSAndroid Build Coastguard Worker <?cs /if ?> 159*feeed43cSAndroid Build Coastguard Worker <td class="class-label"><?cs var:class.qualifiedName ?></td> 160*feeed43cSAndroid Build Coastguard Worker <?cs each:site = class.sites ?> 161*feeed43cSAndroid Build Coastguard Worker <td> 162*feeed43cSAndroid Build Coastguard Worker <?cs if:site.hasClass ?> 163*feeed43cSAndroid Build Coastguard Worker <a href="<?cs var:site.link ?>">Link</a> 164*feeed43cSAndroid Build Coastguard Worker <?cs else ?> 165*feeed43cSAndroid Build Coastguard Worker N/A 166*feeed43cSAndroid Build Coastguard Worker <?cs /if ?> 167*feeed43cSAndroid Build Coastguard Worker </td> 168*feeed43cSAndroid Build Coastguard Worker <?cs /each ?> 169*feeed43cSAndroid Build Coastguard Worker </tr> 170*feeed43cSAndroid Build Coastguard Worker <?cs each:method = class.methods ?> 171*feeed43cSAndroid Build Coastguard Worker <tr class="method-entry"> 172*feeed43cSAndroid Build Coastguard Worker <td class="handle"> </td> 173*feeed43cSAndroid Build Coastguard Worker <td class="method-label"><?cs var:method.signature ?></td> 174*feeed43cSAndroid Build Coastguard Worker <?cs each:site = method.sites ?> 175*feeed43cSAndroid Build Coastguard Worker <td> 176*feeed43cSAndroid Build Coastguard Worker <?cs if:site.hasMethod ?> 177*feeed43cSAndroid Build Coastguard Worker <a href="<?cs var:site.link ?>">Link</a> 178*feeed43cSAndroid Build Coastguard Worker <?cs else ?> 179*feeed43cSAndroid Build Coastguard Worker N/A 180*feeed43cSAndroid Build Coastguard Worker <?cs /if ?> 181*feeed43cSAndroid Build Coastguard Worker </td> 182*feeed43cSAndroid Build Coastguard Worker <?cs /each ?> 183*feeed43cSAndroid Build Coastguard Worker </tr> 184*feeed43cSAndroid Build Coastguard Worker <?cs /each ?><?cs # methods ?> 185*feeed43cSAndroid Build Coastguard Worker <?cs /each ?><?cs # classes ?> 186*feeed43cSAndroid Build Coastguard Worker </tbody> 187*feeed43cSAndroid Build Coastguard Worker <?cs /each ?><?cs # packages ?> 188*feeed43cSAndroid Build Coastguard Worker </table>