source: trunk/tools/qtestlib/chart/benchmark_template.html@ 561

Last change on this file since 561 was 561, checked in by Dmitry A. Kuminov, 15 years ago

trunk: Merged in qt 4.6.1 sources.

  • Property svn:eol-style set to native
File size: 5.0 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2<html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
5 <title>Title</title>
6 <! Javascript Here>
7
8 <script type="text/javascript">
9
10function offsetLabels(labels, offset)
11{
12 var copy = new Array();
13 for (key in labels) {
14 copy[key] = new Array(labels[key][0] + 0.25, labels[key][1]);
15 }
16 return copy;
17}
18
19function createLogDataSet(inDataSet)
20{
21 var logDataSet = {};
22 logDataSet.label = inDataSet.label;
23 logDataSet.data = [];
24
25 if (!inDataSet.data)
26 return logDataSet;
27
28 var length = inDataSet.data.length;
29
30 for (var i = 0; i < length; i++) {
31 logDataSet.data[i] = [];
32 logDataSet.data[i][0] = inDataSet.data[i][0];
33 logDataSet.data[i][1] = Math.log(inDataSet.data[i][1]);
34 }
35 return logDataSet;
36}
37
38
39function createLogData(inData)
40{
41 var logData = [];
42
43 // foreach data set;
44 var length = inData.length;
45 for (var i = 0; i < length; ++i) {
46 logData[i] = createLogDataSet(inData[i]);
47 }
48 return logData;
49}
50
51function createChart() {
52// alert("create chart" + this.chartId)
53
54 var dataSet;
55
56 if (this.useLinearScale)
57 dataSet = this.selectedDataset;
58 else
59 dataSet = createLogData(this.selectedDataset);
60
61 if (this.useLineChart) {
62 var f = Flotr.draw($(this.chartId),
63 dataSet,
64 { legend:{ backgroundColor: '#D2E8FF' }
65 , xaxis: { ticks: this.labels, noTicks : 10 }
66 , mouse: {
67 track: true,
68 lineColor: 'purple',
69 sensibility: 1,
70 trackDecimals: 2,
71 trackFormatter: function(obj){ return 'x = ' + obj.x +', y = ' + obj.y; }
72 }
73 });
74
75 } else {
76 var f = Flotr.draw($(this.chartId),
77 dataSet,
78 { legend:{ backgroundColor: '#D2E8FF'}
79 , bars: { show: true, lineWidth: 1, barWidth: this.barWidth }
80 , xaxis: { ticks: offsetLabels(this.labels, chartOptions.tickOffset), noTicks : 10 }
81 });
82 }
83}
84
85function checkform()
86{
87// alert("check form " + this.form.id + " " + this.chartId);
88 var field = this.form.list
89
90 // Apparently list of lenght one is not a list...
91 // Display the entire chart if there is only one data series.
92 if (!field.length) {
93 this.createChart();
94 return;
95 }
96
97 this.selectedDataset = [];
98 var data = [];
99 var index = 0;
100
101 for (i = 0; i < field.length; i++) {
102 if (field[i].checked == true) {
103 this.selectedDataset[index++] = this.dataset[i];
104 } else {
105 this.selectedDataset[index++] = [];
106 }
107 }
108 this.createChart();
109}
110
111function createElement(nodeName, name) {
112 var node;
113 try {
114 node = document.createElement("<"+nodeName+" name="+name+">");
115 } catch (e) {
116 node = document.createElement(nodeName);
117 node.name = name;
118 }
119 return node;
120}
121
122function createFormSelector(form, value, text, type)
123{
124 var selector = createElement('input', 'list');
125 selector.type = type;
126 selector.defaultChecked = true;
127 selector.value = value;
128
129 form.appendChild(selector);
130 form.appendChild(document.createTextNode(text));
131 form.appendChild(document.createElement("BR"));
132}
133
134function createCheckBox(form, value, text)
135{
136 createFormSelector(form, value, text, "checkbox");
137}
138
139function createRadioButton(form, value, text)
140{
141 createFormSelector(form, value, text, "radio");
142}
143
144function buildSeriesSelector(form, chartOptions)
145{
146// alert("form" + form.id + " " + chartOptions.chartId);
147 var series = chartOptions.seriesLabels;
148 form.onclick = function() { /*alert("fn " + chartOptions.chartId);*/ chartOptions.checkform() };
149 for (s = 0; s < series.length; ++s) {
150 createCheckBox(form, s, series[s]);
151 }
152}
153
154function buildChartTypeSelector()
155{
156 createRadioButton(this.chartTypeForm, 0, "Bar Chart");
157 createRadioButton(this.chartTypeForm, 1, "Line Chart");
158
159 var field = this.chartTypeForm.list;
160 if (this.useLineChart)
161 field[1].checked = true;
162 else
163 field[0].checked = true;
164
165 var chartOptions = this;
166 this.chartTypeForm.onclick = function() {
167 var field = chartOptions.chartTypeForm.list;
168
169 chartOptions.useLineChart = (field[1].checked == true);
170 chartOptions.checkform();
171 };
172}
173
174function buildScaleSelector()
175{
176 createRadioButton(this.scaleForm, 0, "Linear Scale");
177 createRadioButton(this.scaleForm, 1, "Logarithmic Scale");
178
179 var field = this.scaleForm.list;
180 field[0].checked = true;
181 field[1].checked = false;
182
183 var chartOptions = this;
184 this.scaleForm.onclick = function() {
185 var field = chartOptions.scaleForm.list;
186
187 chartOptions.useLinearScale = (field[0].checked == true);
188 chartOptions.checkform();
189 };
190}
191
192
193 </script>
194 </head>
195 <body>
196 <h2>
197 <! Title Here>
198 </h2>
199 <! Description Here>
200 <! Chart Here>
201 </body>
202</html>
Note: See TracBrowser for help on using the repository browser.