annotate build/reports/tests/classes/js/report.js @ 66:0c4a0a1c2f7f

gtadle
author Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
date Mon, 16 Jun 2014 16:47:12 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
66
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 var tabs = new Object();
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 function initTabs() {
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 var container = document.getElementById('tabs');
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 tabs.tabs = findTabs(container);
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 tabs.titles = findTitles(tabs.tabs);
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 tabs.headers = findHeaders(container);
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 tabs.select = select;
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 tabs.deselectAll = deselectAll;
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 tabs.select(0);
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 return true;
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 }
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 window.onload = initTabs;
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 function switchTab() {
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 var id = this.id.substr(1);
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 for (var i = 0; i < tabs.tabs.length; i++) {
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 if (tabs.tabs[i].id == id) {
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 tabs.select(i);
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 break;
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 }
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 }
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 return false;
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 }
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 function select(i) {
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 this.deselectAll();
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 changeElementClass(this.tabs[i], 'tab selected');
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 changeElementClass(this.headers[i], 'selected');
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 while (this.headers[i].firstChild) {
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 this.headers[i].removeChild(this.headers[i].firstChild);
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 }
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 var h2 = document.createElement('H2');
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 h2.appendChild(document.createTextNode(this.titles[i]));
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 this.headers[i].appendChild(h2);
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 }
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 function deselectAll() {
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 for (var i = 0; i < this.tabs.length; i++) {
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 changeElementClass(this.tabs[i], 'tab deselected');
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 changeElementClass(this.headers[i], 'deselected');
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 while (this.headers[i].firstChild) {
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 this.headers[i].removeChild(this.headers[i].firstChild);
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 }
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 var a = document.createElement('A');
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 a.setAttribute('id', 'ltab' + i);
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 a.setAttribute('href', '#tab' + i);
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 a.onclick = switchTab;
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 a.appendChild(document.createTextNode(this.titles[i]));
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 this.headers[i].appendChild(a);
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 }
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 }
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 function changeElementClass(element, classValue) {
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 if (element.getAttribute('className')) {
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 /* IE */
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 element.setAttribute('className', classValue)
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 } else {
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 element.setAttribute('class', classValue)
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 }
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 }
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 function findTabs(container) {
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 return findChildElements(container, 'DIV', 'tab');
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 }
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 function findHeaders(container) {
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 var owner = findChildElements(container, 'UL', 'tabLinks');
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 return findChildElements(owner[0], 'LI', null);
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 }
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 function findTitles(tabs) {
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 var titles = new Array();
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 for (var i = 0; i < tabs.length; i++) {
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 var tab = tabs[i];
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 var header = findChildElements(tab, 'H2', null)[0];
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 header.parentNode.removeChild(header);
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 if (header.innerText) {
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 titles.push(header.innerText)
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 } else {
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 titles.push(header.textContent)
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 }
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 }
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 return titles;
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 }
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 function findChildElements(container, name, targetClass) {
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 var elements = new Array();
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 var children = container.childNodes;
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 for (var i = 0; i < children.length; i++) {
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 var child = children.item(i);
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 if (child.nodeType == 1 && child.nodeName == name) {
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 if (targetClass && child.className.indexOf(targetClass) < 0) {
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 continue;
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 }
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 elements.push(child);
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 }
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 }
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 return elements;
Kanagawa TATSUKI <tatsuki@ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 }