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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Wt examples: /home/koen/project/wt/public-git/wt/examples/charts/ChartsExample.C Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">Wt examples
 <span id="projectnumber">3.2.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.5.1 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File List</span></a></li>
<li><a href="globals.html"><span>File Members</span></a></li>
</ul>
</div>
<div class="header">
<div class="headertitle">
<div class="title">/home/koen/project/wt/public-git/wt/examples/charts/ChartsExample.C</div> </div>
</div>
<div class="contents">
<a href="ChartsExample_8C.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2008 Emweb bvba, Kessel-Lo, Belgium.</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * See the LICENSE file for terms of use.</span>
<a name="l00005"></a>00005 <span class="comment"> */</span>
<a name="l00006"></a>00006
<a name="l00007"></a>00007 <span class="preprocessor">#include <math.h></span>
<a name="l00008"></a>00008 <span class="preprocessor">#include <fstream></span>
<a name="l00009"></a>00009
<a name="l00010"></a>00010 <span class="preprocessor">#include "<a class="code" href="ChartsExample_8h.html">ChartsExample.h</a>"</span>
<a name="l00011"></a>00011 <span class="preprocessor">#include "<a class="code" href="ChartConfig_8h.html">ChartConfig.h</a>"</span>
<a name="l00012"></a>00012 <span class="preprocessor">#include "CsvUtil.h"</span>
<a name="l00013"></a>00013
<a name="l00014"></a>00014 <span class="preprocessor">#include <Wt/WApplication></span>
<a name="l00015"></a>00015 <span class="preprocessor">#include <Wt/WDate></span>
<a name="l00016"></a>00016 <span class="preprocessor">#include <Wt/WEnvironment></span>
<a name="l00017"></a>00017 <span class="preprocessor">#include <Wt/WItemDelegate></span>
<a name="l00018"></a>00018 <span class="preprocessor">#include <Wt/WStandardItemModel></span>
<a name="l00019"></a>00019 <span class="preprocessor">#include <Wt/WText></span>
<a name="l00020"></a>00020
<a name="l00021"></a>00021 <span class="preprocessor">#include <Wt/WBorderLayout></span>
<a name="l00022"></a>00022 <span class="preprocessor">#include <Wt/WFitLayout></span>
<a name="l00023"></a>00023
<a name="l00024"></a>00024 <span class="preprocessor">#include <Wt/WStandardItem></span>
<a name="l00025"></a>00025 <span class="preprocessor">#include <Wt/WTableView></span>
<a name="l00026"></a>00026
<a name="l00027"></a>00027 <span class="preprocessor">#include <Wt/Chart/WCartesianChart></span>
<a name="l00028"></a>00028 <span class="preprocessor">#include <Wt/Chart/WPieChart></span>
<a name="l00029"></a>00029
<a name="l00030"></a>00030 <span class="keyword">using namespace </span>Wt;
<a name="l00031"></a>00031 <span class="keyword">using namespace </span>Wt::Chart;
<a name="l00032"></a>00032 <span class="keyword">namespace </span>{
<a name="l00033"></a>00033
<a name="l00034"></a>00034 <span class="comment">/*</span>
<a name="l00035"></a>00035 <span class="comment"> * Reads a CSV file as an (editable) standard item model.</span>
<a name="l00036"></a>00036 <span class="comment"> */</span>
<a name="l00037"></a>00037 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html">WAbstractItemModel</a> *readCsvFile(<span class="keyword">const</span> std::string &fname,
<a name="l00038"></a>00038 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a> *parent)
<a name="l00039"></a>00039 {
<a name="l00040"></a>00040 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WStandardItemModel.html">WStandardItemModel</a> *model = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WStandardItemModel.html">WStandardItemModel</a>(0, 0, parent);
<a name="l00041"></a>00041 std::ifstream f(fname.c_str());
<a name="l00042"></a>00042
<a name="l00043"></a>00043 <span class="keywordflow">if</span> (f) {
<a name="l00044"></a>00044 <a class="code" href="group__chartsexample.html#ga1ce51cd14c57073cb7839d5e05b59c65" title="Utility function that reads a model from a CSV file.">readFromCsv</a>(f, model);
<a name="l00045"></a>00045
<a name="l00046"></a>00046 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> row = 0; row < model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#ab0709a8f71fd5df882f29bb29fd055f0">rowCount</a>(); ++row)
<a name="l00047"></a>00047 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> col = 0; col < model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#abcf7912a95a0a60f8e9b1c37d30b8383">columnCount</a>(); ++col) {
<a name="l00048"></a>00048 model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WStandardItemModel.html#a32d755ace793c2110b0fa5d650a0d577">item</a>(row, col)-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WStandardItem.html#aedf80dfed644a525e5d726a4b6e74b94">setFlags</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/group__modelview.html#gga1d77c4de293aebfacbdde124de06b8b0a77f858c86a06358abdcc64e4f9d03e40">ItemIsSelectable</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/group__modelview.html#gga1d77c4de293aebfacbdde124de06b8b0a8664c482d721bbcb73539a924c7a9fab">ItemIsEditable</a>);
<a name="l00049"></a>00049
<a name="l00050"></a>00050 <span class="comment">/*</span>
<a name="l00051"></a>00051 <span class="comment"> Example of tool tips (disabled here because they are not updated</span>
<a name="l00052"></a>00052 <span class="comment"> when editing data)</span>
<a name="l00053"></a>00053 <span class="comment"> */</span>
<a name="l00054"></a>00054
<a name="l00055"></a>00055 <span class="comment">/*</span>
<a name="l00056"></a>00056 <span class="comment"> WString toolTip = asString(model->headerData(col)) + ": "</span>
<a name="l00057"></a>00057 <span class="comment"> + asString(model->item(row, col)->data(DisplayRole), "%.f");</span>
<a name="l00058"></a>00058 <span class="comment"> model->item(row, col)->setToolTip(toolTip);</span>
<a name="l00059"></a>00059 <span class="comment"> */</span>
<a name="l00060"></a>00060 }
<a name="l00061"></a>00061
<a name="l00062"></a>00062 <span class="keywordflow">return</span> model;
<a name="l00063"></a>00063 } <span class="keywordflow">else</span> {
<a name="l00064"></a>00064 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WString.html">WString</a> error(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WString.html#a0afc7dc0f9897456d71b569a86ca26c1">WString::tr</a>(<span class="stringliteral">"error-missing-data"</span>));
<a name="l00065"></a>00065 error.arg(fname, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WString.html#a55b820090cc9d15753301df90e35fd52a92c04a55980fec5344377e55b271cfd0">UTF8</a>);
<a name="l00066"></a>00066 <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WText.html">WText</a>(error, parent);
<a name="l00067"></a>00067 <span class="keywordflow">return</span> 0;
<a name="l00068"></a>00068 }
<a name="l00069"></a>00069 }
<a name="l00070"></a>00070 }
<a name="l00071"></a>00071
<a name="l00072"></a><a class="code" href="classChartsExample.html#ad23e2aadfb8bbab5cb2c6aaf9fd25389">00072</a> <a class="code" href="classChartsExample.html#ad23e2aadfb8bbab5cb2c6aaf9fd25389" title="Constructor.">ChartsExample::ChartsExample</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a> *root)
<a name="l00073"></a>00073 : <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a>(root)
<a name="l00074"></a>00074 {
<a name="l00075"></a>00075 <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WText.html">WText</a>(WString::tr(<span class="stringliteral">"introduction"</span>), <span class="keyword">this</span>);
<a name="l00076"></a>00076
<a name="l00077"></a>00077 <span class="keyword">new</span> <a class="code" href="classCategoryExample.html" title="A Widget that demonstrates a category chart.">CategoryExample</a>(<span class="keyword">this</span>);
<a name="l00078"></a>00078 <span class="keyword">new</span> <a class="code" href="classTimeSeriesExample.html" title="A widget that demonstrates a times series chart.">TimeSeriesExample</a>(<span class="keyword">this</span>);
<a name="l00079"></a>00079 <span class="keyword">new</span> <a class="code" href="classScatterPlotExample.html" title="A Widget that demonstrates a scatter plot.">ScatterPlotExample</a>(<span class="keyword">this</span>);
<a name="l00080"></a>00080 <span class="keyword">new</span> <a class="code" href="classPieExample.html" title="A Widget that demonstrates a Pie chart.">PieExample</a>(<span class="keyword">this</span>);
<a name="l00081"></a>00081 }
<a name="l00082"></a>00082
<a name="l00083"></a><a class="code" href="classCategoryExample.html#ad1918a1ab288d28676e215be15919769">00083</a> <a class="code" href="classCategoryExample.html#ad1918a1ab288d28676e215be15919769" title="Creates the category chart example.">CategoryExample::CategoryExample</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">Wt::WContainerWidget</a> *parent):
<a name="l00084"></a>00084 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a>(parent)
<a name="l00085"></a>00085 {
<a name="l00086"></a>00086 <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WText.html">WText</a>(WString::tr(<span class="stringliteral">"category chart"</span>), <span class="keyword">this</span>);
<a name="l00087"></a>00087
<a name="l00088"></a>00088 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html">WAbstractItemModel</a> *model
<a name="l00089"></a>00089 = readCsvFile(WApplication::appRoot() + <span class="stringliteral">"category.csv"</span>, <span class="keyword">this</span>);
<a name="l00090"></a>00090
<a name="l00091"></a>00091 <span class="keywordflow">if</span> (!model)
<a name="l00092"></a>00092 <span class="keywordflow">return</span>;
<a name="l00093"></a>00093
<a name="l00094"></a>00094 <span class="comment">// Show a view that allows editing of the model.</span>
<a name="l00095"></a>00095 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a> *w = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html#a520ba6e52a36a7f2efbef1a31a69e898">WContainerWidget</a>(<span class="keyword">this</span>);
<a name="l00096"></a>00096 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html">WTableView</a> *table = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html">WTableView</a>(w);
<a name="l00097"></a>00097
<a name="l00098"></a>00098 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WCompositeWidget.html#addf49ace29b76331067c86bc4ae6ac38">setMargin</a>(10, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a68b058364f8c2380c1d369a321f22f92">Top</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a87ae7d3cb692a5a4e8f18a7fea93a8a8">Bottom</a>);
<a name="l00099"></a>00099 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WCompositeWidget.html#addf49ace29b76331067c86bc4ae6ac38">setMargin</a>(WLength::Auto, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a6568fecac7c7d7223afaed240bcfdd9e">Left</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3acf431c3ce5eb6f14c0390feb14a68004">Right</a>);
<a name="l00100"></a>00100
<a name="l00101"></a>00101 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html#a2e3629fbaee86da21c77c4583efb79ed">setModel</a>(model);
<a name="l00102"></a>00102 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemView.html#ae1c86a0f37f97f63aed3b00fd8ffad7c">setSortingEnabled</a>(<span class="keyword">true</span>);
<a name="l00103"></a>00103 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemView.html#a4fe24c3ed80cc59f6bed2ed7795bc127">setColumnResizeEnabled</a>(<span class="keyword">true</span>);
<a name="l00104"></a>00104 <span class="comment">// table->setSelectionMode(ExtendedSelection);</span>
<a name="l00105"></a>00105 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html#afbc128d312f1d5aa75c65352cb43e4ca">setAlternatingRowColors</a>(<span class="keyword">true</span>);
<a name="l00106"></a>00106 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemView.html#aafd2a6edd366b620c71d9b3a89ed6590">setColumnAlignment</a>(0, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#ab8f772c69bc8180c31f9e4f4593b143fa121104cdbb5db77c7d038813a93998e5">AlignCenter</a>);
<a name="l00107"></a>00107 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemView.html#a036e6a392c5e38470326d71157140d1a">setHeaderAlignment</a>(0, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#ab8f772c69bc8180c31f9e4f4593b143fa121104cdbb5db77c7d038813a93998e5">AlignCenter</a>);
<a name="l00108"></a>00108 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html#ab17c45b65e38c22c0230062696c36e61">setRowHeight</a>(22);
<a name="l00109"></a>00109
<a name="l00110"></a>00110 <span class="comment">// Editing does not really work without Ajax, it would require an</span>
<a name="l00111"></a>00111 <span class="comment">// additional button somewhere to confirm the edited value.</span>
<a name="l00112"></a>00112 <span class="keywordflow">if</span> (WApplication::instance()->environment().ajax()) {
<a name="l00113"></a>00113 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html#a921a3a6c489b584b261c6b7c7bf720d8">resize</a>(600, 20 + 5*22);
<a name="l00114"></a>00114 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemView.html#a93d2efc8642a6b9c55b35b7665a13da5">setEditTriggers</a>(WAbstractItemView::SingleClicked);
<a name="l00115"></a>00115 } <span class="keywordflow">else</span> {
<a name="l00116"></a>00116 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html#a921a3a6c489b584b261c6b7c7bf720d8">resize</a>(600, WLength::Auto);
<a name="l00117"></a>00117 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemView.html#a93d2efc8642a6b9c55b35b7665a13da5">setEditTriggers</a>(WAbstractItemView::NoEditTrigger);
<a name="l00118"></a>00118 }
<a name="l00119"></a>00119
<a name="l00120"></a>00120 <span class="comment">// We use a single delegate for all items which rounds values to</span>
<a name="l00121"></a>00121 <span class="comment">// the closest integer value.</span>
<a name="l00122"></a>00122 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WItemDelegate.html">WItemDelegate</a> *delegate = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WItemDelegate.html">WItemDelegate</a>(<span class="keyword">this</span>);
<a name="l00123"></a>00123 delegate-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WItemDelegate.html#ad886d265dc00b95d9fb90c022a6322f9">setTextFormat</a>(<span class="stringliteral">"%.f"</span>);
<a name="l00124"></a>00124 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemView.html#a2954ce5999e6ca683fef576777973496">setItemDelegate</a>(delegate);
<a name="l00125"></a>00125
<a name="l00126"></a>00126 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html#af37d27044e96919e2fa6af4e25f3ef67">setColumnWidth</a>(0, 80);
<a name="l00127"></a>00127 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 1; i < model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#abcf7912a95a0a60f8e9b1c37d30b8383">columnCount</a>(); ++i)
<a name="l00128"></a>00128 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html#af37d27044e96919e2fa6af4e25f3ef67">setColumnWidth</a>(i, 120);
<a name="l00129"></a>00129
<a name="l00130"></a>00130 <span class="comment">/*</span>
<a name="l00131"></a>00131 <span class="comment"> * Create the category chart.</span>
<a name="l00132"></a>00132 <span class="comment"> */</span>
<a name="l00133"></a>00133 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html">WCartesianChart</a> *chart = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html">WCartesianChart</a>(<span class="keyword">this</span>);
<a name="l00134"></a>00134 <span class="comment">// chart->setPreferredMethod(WPaintedWidget::PngImage);</span>
<a name="l00135"></a>00135 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WAbstractChart.html#aa23d116689e939301470398df8ad5c8b">setModel</a>(model); <span class="comment">// set the model</span>
<a name="l00136"></a>00136 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#a6c954fa4ed6d73f00ee973bfe3af5ed0">setXSeriesColumn</a>(0); <span class="comment">// set the column that holds the categories</span>
<a name="l00137"></a>00137 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#a26c3d97f4884da079e01e7b50447a915">setLegendEnabled</a>(<span class="keyword">true</span>); <span class="comment">// enable the legend</span>
<a name="l00138"></a>00138
<a name="l00139"></a>00139 <span class="comment">// Provide space for the X and Y axis and title. </span>
<a name="l00140"></a>00140 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WAbstractChart.html#ace6ea85014f731c7034e4215710a8a48">setPlotAreaPadding</a>(80, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a6568fecac7c7d7223afaed240bcfdd9e">Left</a>);
<a name="l00141"></a>00141 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WAbstractChart.html#ace6ea85014f731c7034e4215710a8a48">setPlotAreaPadding</a>(40, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a68b058364f8c2380c1d369a321f22f92">Top</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a87ae7d3cb692a5a4e8f18a7fea93a8a8">Bottom</a>);
<a name="l00142"></a>00142
<a name="l00143"></a>00143 <span class="comment">/*</span>
<a name="l00144"></a>00144 <span class="comment"> * Add all (but first) column as bar series</span>
<a name="l00145"></a>00145 <span class="comment"> */</span>
<a name="l00146"></a>00146 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 1; i < model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#abcf7912a95a0a60f8e9b1c37d30b8383">columnCount</a>(); ++i) {
<a name="l00147"></a>00147 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WDataSeries.html">WDataSeries</a> s(i, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/group__charts.html#gga44d64e4a9d08c7ef69648f4a9c3e4053a6751dbd7ed4600a4befa967107a6dde8">BarSeries</a>);
<a name="l00148"></a>00148 s.<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WDataSeries.html#a683e2c2d0d4b94631be803600b519e9a">setShadow</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WShadow.html">WShadow</a>(3, 3, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WColor.html">WColor</a>(0, 0, 0, 127), 3));
<a name="l00149"></a>00149 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#afa4ac6588e6e2e0dd93320c3a0541d46">addSeries</a>(s);
<a name="l00150"></a>00150 }
<a name="l00151"></a>00151
<a name="l00152"></a>00152 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WPaintedWidget.html#aa57b940110d240951d0e3a6d03390319">resize</a>(800, 400);
<a name="l00153"></a>00153
<a name="l00154"></a>00154 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWebWidget.html#a9795c18e926b26b97fcbabc62a1dd4e3">setMargin</a>(10, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a68b058364f8c2380c1d369a321f22f92">Top</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a87ae7d3cb692a5a4e8f18a7fea93a8a8">Bottom</a>);
<a name="l00155"></a>00155 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWebWidget.html#a9795c18e926b26b97fcbabc62a1dd4e3">setMargin</a>(WLength::Auto, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a6568fecac7c7d7223afaed240bcfdd9e">Left</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3acf431c3ce5eb6f14c0390feb14a68004">Right</a>);
<a name="l00156"></a>00156
<a name="l00157"></a>00157 <span class="comment">/*</span>
<a name="l00158"></a>00158 <span class="comment"> * Provide a widget to manipulate chart properties</span>
<a name="l00159"></a>00159 <span class="comment"> */</span>
<a name="l00160"></a>00160 <span class="keyword">new</span> <a class="code" href="classChartConfig.html" title="A class that allows configuration of a cartesian chart.">ChartConfig</a>(chart, <span class="keyword">this</span>);
<a name="l00161"></a>00161 }
<a name="l00162"></a>00162
<a name="l00163"></a><a class="code" href="classTimeSeriesExample.html#a696c3e952d1f9b4ed3bdbf415f1634a5">00163</a> <a class="code" href="classTimeSeriesExample.html#a696c3e952d1f9b4ed3bdbf415f1634a5" title="Creates the time series scatter plot example.">TimeSeriesExample::TimeSeriesExample</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">Wt::WContainerWidget</a> *parent):
<a name="l00164"></a>00164 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a>(parent)
<a name="l00165"></a>00165 {
<a name="l00166"></a>00166 <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WText.html">WText</a>(WString::tr(<span class="stringliteral">"scatter plot"</span>), <span class="keyword">this</span>);
<a name="l00167"></a>00167
<a name="l00168"></a>00168 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html">WAbstractItemModel</a> *model = readCsvFile(
<a name="l00169"></a>00169 WApplication::appRoot() + <span class="stringliteral">"timeseries.csv"</span>, <span class="keyword">this</span>);
<a name="l00170"></a>00170
<a name="l00171"></a>00171 <span class="keywordflow">if</span> (!model)
<a name="l00172"></a>00172 <span class="keywordflow">return</span>;
<a name="l00173"></a>00173
<a name="l00174"></a>00174 <span class="comment">/*</span>
<a name="l00175"></a>00175 <span class="comment"> * Parses the first column as dates, to be able to use a date scale</span>
<a name="l00176"></a>00176 <span class="comment"> */</span>
<a name="l00177"></a>00177 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#ab0709a8f71fd5df882f29bb29fd055f0">rowCount</a>(); ++i) {
<a name="l00178"></a>00178 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WString.html">WString</a> s = <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/group__modelview.html#ga57b5cadd177847f51eaeb0cee23782c1">asString</a>(model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#a9112b74d160f916ef75fb6c1c09dd8fe">data</a>(i, 0));
<a name="l00179"></a>00179 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WDate.html">WDate</a> d = WDate::fromString(s, <span class="stringliteral">"dd/MM/yy"</span>);
<a name="l00180"></a>00180 model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#a70856db8c322be8c7f397a932165a943">setData</a>(i, 0, d);
<a name="l00181"></a>00181 }
<a name="l00182"></a>00182
<a name="l00183"></a>00183 <span class="comment">// Show a view that allows editing of the model.</span>
<a name="l00184"></a>00184 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a> *w = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html#a520ba6e52a36a7f2efbef1a31a69e898">WContainerWidget</a>(<span class="keyword">this</span>);
<a name="l00185"></a>00185 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html">WTableView</a> *table = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html">WTableView</a>(w);
<a name="l00186"></a>00186
<a name="l00187"></a>00187 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WCompositeWidget.html#addf49ace29b76331067c86bc4ae6ac38">setMargin</a>(10, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a68b058364f8c2380c1d369a321f22f92">Top</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a87ae7d3cb692a5a4e8f18a7fea93a8a8">Bottom</a>);
<a name="l00188"></a>00188 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WCompositeWidget.html#addf49ace29b76331067c86bc4ae6ac38">setMargin</a>(WLength::Auto, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a6568fecac7c7d7223afaed240bcfdd9e">Left</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3acf431c3ce5eb6f14c0390feb14a68004">Right</a>);
<a name="l00189"></a>00189
<a name="l00190"></a>00190 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html#a2e3629fbaee86da21c77c4583efb79ed">setModel</a>(model);
<a name="l00191"></a>00191 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemView.html#ae1c86a0f37f97f63aed3b00fd8ffad7c">setSortingEnabled</a>(<span class="keyword">false</span>); <span class="comment">// Does not make much sense for time series</span>
<a name="l00192"></a>00192 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemView.html#a4fe24c3ed80cc59f6bed2ed7795bc127">setColumnResizeEnabled</a>(<span class="keyword">true</span>);
<a name="l00193"></a>00193 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemView.html#af6fcd9761e2f7a3b497d3563c849d320">setSelectionMode</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a74b3f7eb1689a3cbf0ea514ffd20bcccab681964d34d71d850361461bafc46891">NoSelection</a>);
<a name="l00194"></a>00194 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html#afbc128d312f1d5aa75c65352cb43e4ca">setAlternatingRowColors</a>(<span class="keyword">true</span>);
<a name="l00195"></a>00195 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemView.html#aafd2a6edd366b620c71d9b3a89ed6590">setColumnAlignment</a>(0, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#ab8f772c69bc8180c31f9e4f4593b143fa121104cdbb5db77c7d038813a93998e5">AlignCenter</a>);
<a name="l00196"></a>00196 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemView.html#a036e6a392c5e38470326d71157140d1a">setHeaderAlignment</a>(0, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#ab8f772c69bc8180c31f9e4f4593b143fa121104cdbb5db77c7d038813a93998e5">AlignCenter</a>);
<a name="l00197"></a>00197 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html#ab17c45b65e38c22c0230062696c36e61">setRowHeight</a>(22);
<a name="l00198"></a>00198
<a name="l00199"></a>00199 <span class="comment">// Editing does not really work without Ajax, it would require an</span>
<a name="l00200"></a>00200 <span class="comment">// additional button somewhere to confirm the edited value.</span>
<a name="l00201"></a>00201 <span class="keywordflow">if</span> (WApplication::instance()->environment().ajax()) {
<a name="l00202"></a>00202 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html#a921a3a6c489b584b261c6b7c7bf720d8">resize</a>(800, 20 + 5*22);
<a name="l00203"></a>00203 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemView.html#a93d2efc8642a6b9c55b35b7665a13da5">setEditTriggers</a>(WAbstractItemView::SingleClicked);
<a name="l00204"></a>00204 } <span class="keywordflow">else</span> {
<a name="l00205"></a>00205 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html#a921a3a6c489b584b261c6b7c7bf720d8">resize</a>(800, 20 + 5*22 + 25);
<a name="l00206"></a>00206 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemView.html#a93d2efc8642a6b9c55b35b7665a13da5">setEditTriggers</a>(WAbstractItemView::NoEditTrigger);
<a name="l00207"></a>00207 }
<a name="l00208"></a>00208
<a name="l00209"></a>00209 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WItemDelegate.html">WItemDelegate</a> *delegate = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WItemDelegate.html">WItemDelegate</a>(<span class="keyword">this</span>);
<a name="l00210"></a>00210 delegate-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WItemDelegate.html#ad886d265dc00b95d9fb90c022a6322f9">setTextFormat</a>(<span class="stringliteral">"%.1f"</span>);
<a name="l00211"></a>00211 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemView.html#a2954ce5999e6ca683fef576777973496">setItemDelegate</a>(delegate);
<a name="l00212"></a>00212 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemView.html#a574bc36ec752012ba4a613e0e11e064e">setItemDelegateForColumn</a>(0, <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WItemDelegate.html">WItemDelegate</a>(<span class="keyword">this</span>));
<a name="l00213"></a>00213
<a name="l00214"></a>00214 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html#af37d27044e96919e2fa6af4e25f3ef67">setColumnWidth</a>(0, 80);
<a name="l00215"></a>00215 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 1; i < model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#abcf7912a95a0a60f8e9b1c37d30b8383">columnCount</a>(); ++i)
<a name="l00216"></a>00216 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html#af37d27044e96919e2fa6af4e25f3ef67">setColumnWidth</a>(i, 90);
<a name="l00217"></a>00217
<a name="l00218"></a>00218 <span class="comment">/*</span>
<a name="l00219"></a>00219 <span class="comment"> * Create the scatter plot.</span>
<a name="l00220"></a>00220 <span class="comment"> */</span>
<a name="l00221"></a>00221 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html">WCartesianChart</a> *chart = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html">WCartesianChart</a>(<span class="keyword">this</span>);
<a name="l00222"></a>00222 <span class="comment">//chart->setPreferredMethod(WPaintedWidget::PngImage);</span>
<a name="l00223"></a>00223 <span class="comment">//chart->setBackground(gray);</span>
<a name="l00224"></a>00224 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WAbstractChart.html#aa23d116689e939301470398df8ad5c8b">setModel</a>(model); <span class="comment">// set the model</span>
<a name="l00225"></a>00225 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#a6c954fa4ed6d73f00ee973bfe3af5ed0">setXSeriesColumn</a>(0); <span class="comment">// set the column that holds the X data</span>
<a name="l00226"></a>00226 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#a26c3d97f4884da079e01e7b50447a915">setLegendEnabled</a>(<span class="keyword">true</span>); <span class="comment">// enable the legend</span>
<a name="l00227"></a>00227
<a name="l00228"></a>00228 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#a02775290965d59ffba03da574925e387">setType</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/group__charts.html#gga8d63464f873580c77508e1c0c26cbfeaa6ddab43d32242eb28831938a1e469a1f">ScatterPlot</a>); <span class="comment">// set type to ScatterPlot</span>
<a name="l00229"></a>00229 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#af966d6ee6b2e43e6b26e794459005375">axis</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/group__charts.html#ggaddb678f67fbd9f374fcee0922f158c9fa2a592919e6cbd94bf09e1259559499b5">XAxis</a>).<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WAxis.html#ab067037b83d1d663535250968a1776d8">setScale</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/group__charts.html#ggadfcaed8cd6ff52f5747f7df48f2eeab6aaa627030efa552170a889d7a80a65a12">DateScale</a>); <span class="comment">// set scale of X axis to DateScale</span>
<a name="l00230"></a>00230
<a name="l00231"></a>00231 <span class="comment">// Provide space for the X and Y axis and title. </span>
<a name="l00232"></a>00232 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WAbstractChart.html#ace6ea85014f731c7034e4215710a8a48">setPlotAreaPadding</a>(80, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a6568fecac7c7d7223afaed240bcfdd9e">Left</a>);
<a name="l00233"></a>00233 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WAbstractChart.html#ace6ea85014f731c7034e4215710a8a48">setPlotAreaPadding</a>(40, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a68b058364f8c2380c1d369a321f22f92">Top</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a87ae7d3cb692a5a4e8f18a7fea93a8a8">Bottom</a>);
<a name="l00234"></a>00234
<a name="l00235"></a>00235 <span class="comment">/*</span>
<a name="l00236"></a>00236 <span class="comment"> * Add first two columns as line series</span>
<a name="l00237"></a>00237 <span class="comment"> */</span>
<a name="l00238"></a>00238 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 1; i < 3; ++i) {
<a name="l00239"></a>00239 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WDataSeries.html">WDataSeries</a> s(i, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/group__charts.html#gga44d64e4a9d08c7ef69648f4a9c3e4053a2582c20d00d806d8a175e2f5c0207591">LineSeries</a>);
<a name="l00240"></a>00240 s.<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WDataSeries.html#a683e2c2d0d4b94631be803600b519e9a">setShadow</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WShadow.html">WShadow</a>(3, 3, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WColor.html">WColor</a>(0, 0, 0, 127), 3));
<a name="l00241"></a>00241 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#afa4ac6588e6e2e0dd93320c3a0541d46">addSeries</a>(s);
<a name="l00242"></a>00242 }
<a name="l00243"></a>00243
<a name="l00244"></a>00244 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WPaintedWidget.html#aa57b940110d240951d0e3a6d03390319">resize</a>(800, 400); <span class="comment">// WPaintedWidget must be given explicit size</span>
<a name="l00245"></a>00245
<a name="l00246"></a>00246 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWebWidget.html#a9795c18e926b26b97fcbabc62a1dd4e3">setMargin</a>(10, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a68b058364f8c2380c1d369a321f22f92">Top</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a87ae7d3cb692a5a4e8f18a7fea93a8a8">Bottom</a>); <span class="comment">// add margin vertically</span>
<a name="l00247"></a>00247 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWebWidget.html#a9795c18e926b26b97fcbabc62a1dd4e3">setMargin</a>(WLength::Auto, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a6568fecac7c7d7223afaed240bcfdd9e">Left</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3acf431c3ce5eb6f14c0390feb14a68004">Right</a>); <span class="comment">// center horizontally</span>
<a name="l00248"></a>00248
<a name="l00249"></a>00249 <span class="keyword">new</span> <a class="code" href="classChartConfig.html" title="A class that allows configuration of a cartesian chart.">ChartConfig</a>(chart, <span class="keyword">this</span>);
<a name="l00250"></a>00250 }
<a name="l00251"></a>00251
<a name="l00252"></a><a class="code" href="classScatterPlotExample.html#a75f30afe584a342437d901217fd232db">00252</a> <a class="code" href="classScatterPlotExample.html#a75f30afe584a342437d901217fd232db" title="Creates the scatter plot example.">ScatterPlotExample::ScatterPlotExample</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a> *parent):
<a name="l00253"></a>00253 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a>(parent)
<a name="l00254"></a>00254 {
<a name="l00255"></a>00255 <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WText.html">WText</a>(WString::tr(<span class="stringliteral">"scatter plot 2"</span>), <span class="keyword">this</span>);
<a name="l00256"></a>00256
<a name="l00257"></a>00257 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WStandardItemModel.html">WStandardItemModel</a> *model = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WStandardItemModel.html">WStandardItemModel</a>(40, 2, <span class="keyword">this</span>);
<a name="l00258"></a>00258 model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#a57f5d417f933440db0d38ece7dd370f4">setHeaderData</a>(0, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WString.html">WString</a>(<span class="stringliteral">"X"</span>));
<a name="l00259"></a>00259 model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#a57f5d417f933440db0d38ece7dd370f4">setHeaderData</a>(1, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WString.html">WString</a>(<span class="stringliteral">"Y = sin(X)"</span>));
<a name="l00260"></a>00260
<a name="l00261"></a>00261 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i < 40; ++i) {
<a name="l00262"></a>00262 <span class="keywordtype">double</span> x = (<span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(i) - 20) / 4;
<a name="l00263"></a>00263
<a name="l00264"></a>00264 model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#a70856db8c322be8c7f397a932165a943">setData</a>(i, 0, x);
<a name="l00265"></a>00265 model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#a70856db8c322be8c7f397a932165a943">setData</a>(i, 1, sin(x));
<a name="l00266"></a>00266 }
<a name="l00267"></a>00267
<a name="l00268"></a>00268 <span class="comment">/*</span>
<a name="l00269"></a>00269 <span class="comment"> * Create the scatter plot.</span>
<a name="l00270"></a>00270 <span class="comment"> */</span>
<a name="l00271"></a>00271 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html">WCartesianChart</a> *chart = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html">WCartesianChart</a>(<span class="keyword">this</span>);
<a name="l00272"></a>00272 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WAbstractChart.html#aa23d116689e939301470398df8ad5c8b">setModel</a>(model); <span class="comment">// set the model</span>
<a name="l00273"></a>00273 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#a6c954fa4ed6d73f00ee973bfe3af5ed0">setXSeriesColumn</a>(0); <span class="comment">// set the column that holds the X data</span>
<a name="l00274"></a>00274 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#a26c3d97f4884da079e01e7b50447a915">setLegendEnabled</a>(<span class="keyword">true</span>); <span class="comment">// enable the legend</span>
<a name="l00275"></a>00275
<a name="l00276"></a>00276 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#a02775290965d59ffba03da574925e387">setType</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/group__charts.html#gga8d63464f873580c77508e1c0c26cbfeaa6ddab43d32242eb28831938a1e469a1f">ScatterPlot</a>); <span class="comment">// set type to ScatterPlot</span>
<a name="l00277"></a>00277
<a name="l00278"></a>00278 <span class="comment">// Typically, for mathematical functions, you want the axes to cross</span>
<a name="l00279"></a>00279 <span class="comment">// at the 0 mark:</span>
<a name="l00280"></a>00280 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#af966d6ee6b2e43e6b26e794459005375">axis</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/group__charts.html#ggaddb678f67fbd9f374fcee0922f158c9fa2a592919e6cbd94bf09e1259559499b5">XAxis</a>).<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WAxis.html#a6dab2f46117b85a4a6f439e4f194ee82">setLocation</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/group__charts.html#gga77eb6d0cefa4a012950ea972b471b849af2e58ce3483a5ec496f65fb808ce72b9">ZeroValue</a>);
<a name="l00281"></a>00281 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#af966d6ee6b2e43e6b26e794459005375">axis</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/group__charts.html#ggaddb678f67fbd9f374fcee0922f158c9fa2e1017fdef77b4663715c3d7663a4db4">YAxis</a>).<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WAxis.html#a6dab2f46117b85a4a6f439e4f194ee82">setLocation</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/group__charts.html#gga77eb6d0cefa4a012950ea972b471b849af2e58ce3483a5ec496f65fb808ce72b9">ZeroValue</a>);
<a name="l00282"></a>00282
<a name="l00283"></a>00283 <span class="comment">// Provide space for the X and Y axis and title. </span>
<a name="l00284"></a>00284 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WAbstractChart.html#ace6ea85014f731c7034e4215710a8a48">setPlotAreaPadding</a>(80, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a6568fecac7c7d7223afaed240bcfdd9e">Left</a>);
<a name="l00285"></a>00285 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WAbstractChart.html#ace6ea85014f731c7034e4215710a8a48">setPlotAreaPadding</a>(40, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a68b058364f8c2380c1d369a321f22f92">Top</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a87ae7d3cb692a5a4e8f18a7fea93a8a8">Bottom</a>);
<a name="l00286"></a>00286
<a name="l00287"></a>00287 <span class="comment">// Add the curves</span>
<a name="l00288"></a>00288 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WDataSeries.html">WDataSeries</a> s(1, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/group__charts.html#gga44d64e4a9d08c7ef69648f4a9c3e4053a805880e23c0292fb7a66b2cda2a2f5bf">CurveSeries</a>);
<a name="l00289"></a>00289 s.<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WDataSeries.html#a683e2c2d0d4b94631be803600b519e9a">setShadow</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WShadow.html">WShadow</a>(3, 3, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WColor.html">WColor</a>(0, 0, 0, 127), 3));
<a name="l00290"></a>00290 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#afa4ac6588e6e2e0dd93320c3a0541d46">addSeries</a>(s);
<a name="l00291"></a>00291
<a name="l00292"></a>00292 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WPaintedWidget.html#aa57b940110d240951d0e3a6d03390319">resize</a>(800, 300); <span class="comment">// WPaintedWidget must be given explicit size</span>
<a name="l00293"></a>00293
<a name="l00294"></a>00294 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWebWidget.html#a9795c18e926b26b97fcbabc62a1dd4e3">setMargin</a>(10, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a68b058364f8c2380c1d369a321f22f92">Top</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a87ae7d3cb692a5a4e8f18a7fea93a8a8">Bottom</a>); <span class="comment">// add margin vertically</span>
<a name="l00295"></a>00295 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWebWidget.html#a9795c18e926b26b97fcbabc62a1dd4e3">setMargin</a>(WLength::Auto, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a6568fecac7c7d7223afaed240bcfdd9e">Left</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3acf431c3ce5eb6f14c0390feb14a68004">Right</a>); <span class="comment">// center horizontally</span>
<a name="l00296"></a>00296
<a name="l00297"></a>00297 <a class="code" href="classChartConfig.html" title="A class that allows configuration of a cartesian chart.">ChartConfig</a> *config = <span class="keyword">new</span> <a class="code" href="classChartConfig.html" title="A class that allows configuration of a cartesian chart.">ChartConfig</a>(chart, <span class="keyword">this</span>);
<a name="l00298"></a>00298 config-><a class="code" href="classChartConfig.html#a5f4ddb33c53dc6907dcf73c2598ad0fa">setValueFill</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/group__charts.html#gga7236e5b04bdb6f393162842982b4d1a0a50b16db97a187f9acccdbeecf8732ff0">ZeroValueFill</a>);
<a name="l00299"></a>00299 }
<a name="l00300"></a>00300
<a name="l00301"></a><a class="code" href="classPieExample.html#a23e7441e0e0e19e4dda48ee17bf651ca">00301</a> <a class="code" href="classPieExample.html#a23e7441e0e0e19e4dda48ee17bf651ca" title="Creates the pie chart example.">PieExample::PieExample</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a> *parent):
<a name="l00302"></a>00302 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a>(parent)
<a name="l00303"></a>00303 {
<a name="l00304"></a>00304 <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WText.html">WText</a>(WString::tr(<span class="stringliteral">"pie chart"</span>), <span class="keyword">this</span>);
<a name="l00305"></a>00305
<a name="l00306"></a>00306 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WStandardItemModel.html">WStandardItemModel</a> *model = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WStandardItemModel.html">WStandardItemModel</a>(<span class="keyword">this</span>);
<a name="l00307"></a>00307
<a name="l00308"></a>00308 <span class="comment">//headers</span>
<a name="l00309"></a>00309 model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#a1eded9eb68b9247ae2ff371f74a5e5f2">insertColumns</a>(model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#abcf7912a95a0a60f8e9b1c37d30b8383">columnCount</a>(), 2);
<a name="l00310"></a>00310 model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#a57f5d417f933440db0d38ece7dd370f4">setHeaderData</a>(0, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WString.html">WString</a>(<span class="stringliteral">"Item"</span>));
<a name="l00311"></a>00311 model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#a57f5d417f933440db0d38ece7dd370f4">setHeaderData</a>(1, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WString.html">WString</a>(<span class="stringliteral">"Sales"</span>));
<a name="l00312"></a>00312
<a name="l00313"></a>00313 <span class="comment">//data</span>
<a name="l00314"></a>00314 model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#abcafc38dc24fd9edf70eafe834ca411d">insertRows</a>(model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#ab0709a8f71fd5df882f29bb29fd055f0">rowCount</a>(), 6);
<a name="l00315"></a>00315 <span class="keywordtype">int</span> row = 0;
<a name="l00316"></a>00316 model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#a70856db8c322be8c7f397a932165a943">setData</a>(row, 0, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WString.html">WString</a>(<span class="stringliteral">"Blueberry"</span>));
<a name="l00317"></a>00317 model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#a70856db8c322be8c7f397a932165a943">setData</a>(row, 1, 120);
<a name="l00318"></a>00318 <span class="comment">// model->setData(row, 1, WString("Blueberry"), ToolTipRole);</span>
<a name="l00319"></a>00319 row++;
<a name="l00320"></a>00320 model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#a70856db8c322be8c7f397a932165a943">setData</a>(row, 0, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WString.html">WString</a>(<span class="stringliteral">"Cherry"</span>));
<a name="l00321"></a>00321 model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#a70856db8c322be8c7f397a932165a943">setData</a>(row, 1, 30);
<a name="l00322"></a>00322 row++;
<a name="l00323"></a>00323 model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#a70856db8c322be8c7f397a932165a943">setData</a>(row, 0, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WString.html">WString</a>(<span class="stringliteral">"Apple"</span>));
<a name="l00324"></a>00324 model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#a70856db8c322be8c7f397a932165a943">setData</a>(row, 1, 260);
<a name="l00325"></a>00325 row++;
<a name="l00326"></a>00326 model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#a70856db8c322be8c7f397a932165a943">setData</a>(row, 0, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WString.html">WString</a>(<span class="stringliteral">"Boston Cream"</span>));
<a name="l00327"></a>00327 model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#a70856db8c322be8c7f397a932165a943">setData</a>(row, 1, 160);
<a name="l00328"></a>00328 row++;
<a name="l00329"></a>00329 model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#a70856db8c322be8c7f397a932165a943">setData</a>(row, 0, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WString.html">WString</a>(<span class="stringliteral">"Other"</span>));
<a name="l00330"></a>00330 model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#a70856db8c322be8c7f397a932165a943">setData</a>(row, 1, 40);
<a name="l00331"></a>00331 row++;
<a name="l00332"></a>00332 model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#a70856db8c322be8c7f397a932165a943">setData</a>(row, 0, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WString.html">WString</a>(<span class="stringliteral">"Vanilla Cream"</span>));
<a name="l00333"></a>00333 model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#a70856db8c322be8c7f397a932165a943">setData</a>(row, 1, 120);
<a name="l00334"></a>00334 row++;
<a name="l00335"></a>00335
<a name="l00336"></a>00336 <span class="comment">//set all items to be editable and selectable</span>
<a name="l00337"></a>00337 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> row = 0; row < model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#ab0709a8f71fd5df882f29bb29fd055f0">rowCount</a>(); ++row)
<a name="l00338"></a>00338 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> col = 0; col < model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemModel.html#abcf7912a95a0a60f8e9b1c37d30b8383">columnCount</a>(); ++col)
<a name="l00339"></a>00339 model-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WStandardItemModel.html#a32d755ace793c2110b0fa5d650a0d577">item</a>(row, col)-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WStandardItem.html#aedf80dfed644a525e5d726a4b6e74b94">setFlags</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/group__modelview.html#gga1d77c4de293aebfacbdde124de06b8b0a77f858c86a06358abdcc64e4f9d03e40">ItemIsSelectable</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/group__modelview.html#gga1d77c4de293aebfacbdde124de06b8b0a8664c482d721bbcb73539a924c7a9fab">ItemIsEditable</a>);
<a name="l00340"></a>00340
<a name="l00341"></a>00341 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a> *w = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WContainerWidget.html#a520ba6e52a36a7f2efbef1a31a69e898">WContainerWidget</a>(<span class="keyword">this</span>);
<a name="l00342"></a>00342 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html">WTableView</a>* table = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html">WTableView</a>(w);
<a name="l00343"></a>00343
<a name="l00344"></a>00344 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WCompositeWidget.html#addf49ace29b76331067c86bc4ae6ac38">setMargin</a>(10, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a68b058364f8c2380c1d369a321f22f92">Top</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a87ae7d3cb692a5a4e8f18a7fea93a8a8">Bottom</a>);
<a name="l00345"></a>00345 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WCompositeWidget.html#addf49ace29b76331067c86bc4ae6ac38">setMargin</a>(WLength::Auto, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a6568fecac7c7d7223afaed240bcfdd9e">Left</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3acf431c3ce5eb6f14c0390feb14a68004">Right</a>);
<a name="l00346"></a>00346 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemView.html#ae1c86a0f37f97f63aed3b00fd8ffad7c">setSortingEnabled</a>(<span class="keyword">true</span>);
<a name="l00347"></a>00347 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html#a2e3629fbaee86da21c77c4583efb79ed">setModel</a>(model);
<a name="l00348"></a>00348 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html#af37d27044e96919e2fa6af4e25f3ef67">setColumnWidth</a>(1, 100);
<a name="l00349"></a>00349 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html#ab17c45b65e38c22c0230062696c36e61">setRowHeight</a>(22);
<a name="l00350"></a>00350
<a name="l00351"></a>00351 <span class="keywordflow">if</span> (WApplication::instance()->environment().ajax()) {
<a name="l00352"></a>00352 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html#a921a3a6c489b584b261c6b7c7bf720d8">resize</a>(150 + 100 + 14, 20 + 6 * 22);
<a name="l00353"></a>00353 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemView.html#a93d2efc8642a6b9c55b35b7665a13da5">setEditTriggers</a>(WAbstractItemView::SingleClicked);
<a name="l00354"></a>00354 } <span class="keywordflow">else</span> {
<a name="l00355"></a>00355 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WTableView.html#a921a3a6c489b584b261c6b7c7bf720d8">resize</a>(150 + 100 + 14, WLength::Auto);
<a name="l00356"></a>00356 table-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WAbstractItemView.html#a93d2efc8642a6b9c55b35b7665a13da5">setEditTriggers</a>(WAbstractItemView::NoEditTrigger);
<a name="l00357"></a>00357 }
<a name="l00358"></a>00358
<a name="l00359"></a>00359 <span class="comment">/*</span>
<a name="l00360"></a>00360 <span class="comment"> * Create the pie chart.</span>
<a name="l00361"></a>00361 <span class="comment"> */</span>
<a name="l00362"></a>00362 <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WPieChart.html">WPieChart</a> *chart = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WPieChart.html">WPieChart</a>(<span class="keyword">this</span>);
<a name="l00363"></a>00363 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WAbstractChart.html#aa23d116689e939301470398df8ad5c8b">setModel</a>(model); <span class="comment">// set the model</span>
<a name="l00364"></a>00364 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WPieChart.html#aa40bfd3f2095106f8081596b235de4c6">setLabelsColumn</a>(0); <span class="comment">// set the column that holds the labels</span>
<a name="l00365"></a>00365 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WPieChart.html#a3692ea22a1417e599e9358b0ed5a723d">setDataColumn</a>(1); <span class="comment">// set the column that holds the data</span>
<a name="l00366"></a>00366
<a name="l00367"></a>00367 <span class="comment">// configure location and type of labels</span>
<a name="l00368"></a>00368 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WPieChart.html#a89324f6159e5893e1ddd368718d00e5d">setDisplayLabels</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/group__charts.html#gga9345394a8eeda6800d8a24c5df44d983a88861128e109b6a63e76a311dc57e408">Outside</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/group__charts.html#gga9345394a8eeda6800d8a24c5df44d983a60df9add81425373c20fafe8c4e40b0e">TextLabel</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/group__charts.html#gga9345394a8eeda6800d8a24c5df44d983a307741727c5ef5e33efcd347a0853e50">TextPercentage</a>);
<a name="l00369"></a>00369
<a name="l00370"></a>00370 <span class="comment">// enable a 3D and shadow effect</span>
<a name="l00371"></a>00371 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WPieChart.html#ae36d57f4c2801cb8599a1bc99e340a24">setPerspectiveEnabled</a>(<span class="keyword">true</span>, 0.2);
<a name="l00372"></a>00372 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WPieChart.html#a74b91c0514247ba9ea91b53fbae795f7">setShadowEnabled</a>(<span class="keyword">true</span>);
<a name="l00373"></a>00373
<a name="l00374"></a>00374 <span class="comment">// explode the first item</span>
<a name="l00375"></a>00375 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1Chart_1_1WPieChart.html#a4a2bfe0c147b5433d340d49351b5032c">setExplode</a>(0, 0.3);
<a name="l00376"></a>00376
<a name="l00377"></a>00377 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WPaintedWidget.html#aa57b940110d240951d0e3a6d03390319">resize</a>(800, 300); <span class="comment">// WPaintedWidget must be given an explicit size</span>
<a name="l00378"></a>00378
<a name="l00379"></a>00379 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWebWidget.html#a9795c18e926b26b97fcbabc62a1dd4e3">setMargin</a>(10, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a68b058364f8c2380c1d369a321f22f92">Top</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a87ae7d3cb692a5a4e8f18a7fea93a8a8">Bottom</a>); <span class="comment">// add margin vertically</span>
<a name="l00380"></a>00380 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/classWt_1_1WWebWidget.html#a9795c18e926b26b97fcbabc62a1dd4e3">setMargin</a>(WLength::Auto, <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3a6568fecac7c7d7223afaed240bcfdd9e">Left</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html" href="../../reference/html/namespaceWt.html#a5a6f4636bcc6ab3c075165d249b3a5a3acf431c3ce5eb6f14c0390feb14a68004">Right</a>); <span class="comment">// center horizontally</span>
<a name="l00381"></a>00381 }
<a name="l00382"></a>00382
</pre></div></div>
</div>
<hr size="1"><address style="text-align: right; margin: 3px"><small>
Generated on Fri Mar 30 2012 for <a href="http://www.webtoolkit.eu/wt">the
C++ Web Toolkit (Wt)</a> by <a
href="http://www.doxygen.org/index.html"><img src="doxygen.png"
alt="doxygen" border="0" style="vertical-align: middle; display:
inline-block; height: 2em"></a> 1.7.5.1</small></address>
</body>
</html>
|