<!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.3</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 Thu Nov 1 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>