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
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Wt examples: /home/koen/project/wt/public-git/wt/examples/charts/ChartsExample.C Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<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>
<h1>/home/koen/project/wt/public-git/wt/examples/charts/ChartsExample.C</h1><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 "<a class="code" href="charts_2CsvUtil_8h.html">CsvUtil.h</a>"</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/WStandardItemModel></span>
<a name="l00018"></a>00018 <span class="preprocessor">#include <Wt/WText></span>
<a name="l00019"></a>00019
<a name="l00020"></a>00020 <span class="preprocessor">#include <Wt/WBorderLayout></span>
<a name="l00021"></a>00021 <span class="preprocessor">#include <Wt/WFitLayout></span>
<a name="l00022"></a>00022
<a name="l00023"></a>00023 <span class="preprocessor">#include <Wt/Ext/Calendar></span>
<a name="l00024"></a>00024 <span class="preprocessor">#include <Wt/Ext/Container></span>
<a name="l00025"></a>00025 <span class="preprocessor">#include <Wt/Ext/DateField></span>
<a name="l00026"></a>00026 <span class="preprocessor">#include <Wt/Ext/LineEdit></span>
<a name="l00027"></a>00027 <span class="preprocessor">#include <Wt/Ext/NumberField></span>
<a name="l00028"></a>00028 <span class="preprocessor">#include <Wt/Ext/Panel></span>
<a name="l00029"></a>00029 <span class="preprocessor">#include <Wt/Ext/TableView></span>
<a name="l00030"></a>00030
<a name="l00031"></a>00031 <span class="preprocessor">#include <Wt/Chart/WCartesianChart></span>
<a name="l00032"></a>00032 <span class="preprocessor">#include <Wt/Chart/WPieChart></span>
<a name="l00033"></a>00033
<a name="l00034"></a>00034 <span class="keyword">using namespace </span>Wt;
<a name="l00035"></a>00035 <span class="keyword">using namespace </span>Wt::Chart;
<a name="l00036"></a>00036 <span class="keyword">namespace </span>{
<a name="l00037"></a><a class="code" href="ChartsExample_8C.html#ffec5e7d98eb601a40bf039d67cd7982">00037</a> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WAbstractItemModel.html">WAbstractItemModel</a> *<a class="code" href="ChartsExample_8C.html#ffec5e7d98eb601a40bf039d67cd7982">readCsvFile</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *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);
<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#g1ce51cd14c57073cb7839d5e05b59c65" title="Utility function that reads a model from a CSV file.">readFromCsv</a>(f, model);
<a name="l00045"></a>00045 <span class="keywordflow">return</span> model;
<a name="l00046"></a>00046 } <span class="keywordflow">else</span> {
<a name="l00047"></a>00047 <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WString.html">WString</a> error(WString::tr(<span class="stringliteral">"error-missing-data"</span>));
<a name="l00048"></a>00048 error.<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WString.html#1c3d0d7790282777ce13edececfe0095">arg</a>(fname, <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WString.html#55b820090cc9d15753301df90e35fd5292c04a55980fec5344377e55b271cfd0">UTF8</a>);
<a name="l00049"></a>00049 <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="l00050"></a>00050 <span class="keywordflow">return</span> 0;
<a name="l00051"></a>00051 }
<a name="l00052"></a>00052 }
<a name="l00053"></a>00053 }
<a name="l00054"></a>00054
<a name="l00055"></a><a class="code" href="classChartsExample.html#d23e2aadfb8bbab5cb2c6aaf9fd25389">00055</a> <a class="code" href="classChartsExample.html#d23e2aadfb8bbab5cb2c6aaf9fd25389" 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="l00056"></a>00056 : <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a>(root)
<a name="l00057"></a>00057 {
<a name="l00058"></a>00058 <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="l00059"></a>00059
<a name="l00060"></a>00060 <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="l00061"></a>00061 <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="l00062"></a>00062 <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="l00063"></a>00063 <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="l00064"></a>00064 }
<a name="l00065"></a>00065
<a name="l00066"></a><a class="code" href="classCategoryExample.html#d1918a1ab288d28676e215be15919769">00066</a> <a class="code" href="classCategoryExample.html#d1918a1ab288d28676e215be15919769" 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> *<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#3461e31818c4d2f516641bdaf508312a">parent</a>):
<a name="l00067"></a>00067 <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a>(parent)
<a name="l00068"></a>00068 {
<a name="l00069"></a>00069 <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="l00070"></a>00070
<a name="l00071"></a>00071 <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WAbstractItemModel.html">WAbstractItemModel</a> *model = <a class="code" href="ChartsExample_8C.html#ffec5e7d98eb601a40bf039d67cd7982">readCsvFile</a>(<span class="stringliteral">"category.csv"</span>, <span class="keyword">this</span>);
<a name="l00072"></a>00072
<a name="l00073"></a>00073 <span class="keywordflow">if</span> (!model)
<a name="l00074"></a>00074 <span class="keywordflow">return</span>;
<a name="l00075"></a>00075
<a name="l00076"></a>00076 <span class="comment">/*</span>
<a name="l00077"></a>00077 <span class="comment"> * If we have JavaScript, show an Ext table view that allows editing</span>
<a name="l00078"></a>00078 <span class="comment"> * of the model.</span>
<a name="l00079"></a>00079 <span class="comment"> */</span>
<a name="l00080"></a>00080 <span class="keywordflow">if</span> (wApp->environment().javaScript()) {
<a name="l00081"></a>00081 <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#520ba6e52a36a7f2efbef1a31a69e898">WContainerWidget</a>(<span class="keyword">this</span>);
<a name="l00082"></a>00082 <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Ext_1_1TableView.html">Ext::TableView</a> *table = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Ext_1_1TableView.html">Ext::TableView</a>(w);
<a name="l00083"></a>00083 table-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWebWidget.html#07719d06da0dd17af2381c663e8fb0b7">setMargin</a>(10, <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a368b058364f8c2380c1d369a321f22f92">Top</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a387ae7d3cb692a5a4e8f18a7fea93a8a8">Bottom</a>);
<a name="l00084"></a>00084 table-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWebWidget.html#07719d06da0dd17af2381c663e8fb0b7">setMargin</a>(WLength::Auto, <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a36568fecac7c7d7223afaed240bcfdd9e">Left</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a3cf431c3ce5eb6f14c0390feb14a68004">Right</a>);
<a name="l00085"></a>00085 table-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWebWidget.html#e1b84e31581405358b6d57ec14505234">resize</a>(500, 175);
<a name="l00086"></a>00086 table-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Ext_1_1TableView.html#e749720b6992ecf62a900bbc45a5607d">setModel</a>(model);
<a name="l00087"></a>00087 table-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Ext_1_1TableView.html#88f1de406a741b47533311d249a168dc">setAutoExpandColumn</a>(0);
<a name="l00088"></a>00088
<a name="l00089"></a>00089 table-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Ext_1_1TableView.html#8fce08c9e2b06463377342e03f2970d2">setEditor</a>(0, <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Ext_1_1LineEdit.html">Ext::LineEdit</a>());
<a name="l00090"></a>00090
<a name="l00091"></a>00091 <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#bcf7912a95a0a60f8e9b1c37d30b8383">columnCount</a>(); ++i) {
<a name="l00092"></a>00092 <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Ext_1_1NumberField.html">Ext::NumberField</a> *nf = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Ext_1_1NumberField.html">Ext::NumberField</a>();
<a name="l00093"></a>00093 table-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Ext_1_1TableView.html#8fce08c9e2b06463377342e03f2970d2">setEditor</a>(i, nf);
<a name="l00094"></a>00094 }
<a name="l00095"></a>00095 }
<a name="l00096"></a>00096
<a name="l00097"></a>00097 <span class="comment">/*</span>
<a name="l00098"></a>00098 <span class="comment"> * Create the category chart.</span>
<a name="l00099"></a>00099 <span class="comment"> */</span>
<a name="l00100"></a>00100 <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="l00101"></a>00101 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WAbstractChart.html#a23d116689e939301470398df8ad5c8b">setModel</a>(model); <span class="comment">// set the model</span>
<a name="l00102"></a>00102 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#6c954fa4ed6d73f00ee973bfe3af5ed0">setXSeriesColumn</a>(0); <span class="comment">// set the column that holds the categories</span>
<a name="l00103"></a>00103 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#26c3d97f4884da079e01e7b50447a915">setLegendEnabled</a>(<span class="keyword">true</span>); <span class="comment">// enable the legend</span>
<a name="l00104"></a>00104
<a name="l00105"></a>00105 <span class="comment">// Provide space for the X and Y axis and title. </span>
<a name="l00106"></a>00106 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WAbstractChart.html#ce6ea85014f731c7034e4215710a8a48">setPlotAreaPadding</a>(100, <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a36568fecac7c7d7223afaed240bcfdd9e">Left</a>);
<a name="l00107"></a>00107 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WAbstractChart.html#ce6ea85014f731c7034e4215710a8a48">setPlotAreaPadding</a>(50, <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a368b058364f8c2380c1d369a321f22f92">Top</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a387ae7d3cb692a5a4e8f18a7fea93a8a8">Bottom</a>);
<a name="l00108"></a>00108
<a name="l00109"></a>00109 <span class="comment">//chart->axis(YAxis).setBreak(70, 110);</span>
<a name="l00110"></a>00110
<a name="l00111"></a>00111 <span class="comment">/*</span>
<a name="l00112"></a>00112 <span class="comment"> * Add all (but first) column as bar series</span>
<a name="l00113"></a>00113 <span class="comment"> */</span>
<a name="l00114"></a>00114 <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#bcf7912a95a0a60f8e9b1c37d30b8383">columnCount</a>(); ++i) {
<a name="l00115"></a>00115 <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#gg44d64e4a9d08c7ef69648f4a9c3e40536751dbd7ed4600a4befa967107a6dde8">BarSeries</a>);
<a name="l00116"></a>00116 s.<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WDataSeries.html#683e2c2d0d4b94631be803600b519e9a">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="l00117"></a>00117 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#fa4ac6588e6e2e0dd93320c3a0541d46">addSeries</a>(s);
<a name="l00118"></a>00118 }
<a name="l00119"></a>00119
<a name="l00120"></a>00120 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WPaintedWidget.html#a57b940110d240951d0e3a6d03390319">resize</a>(800, 400); <span class="comment">// WPaintedWidget must be given explicit size</span>
<a name="l00121"></a>00121
<a name="l00122"></a>00122 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWebWidget.html#07719d06da0dd17af2381c663e8fb0b7">setMargin</a>(10, <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a368b058364f8c2380c1d369a321f22f92">Top</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a387ae7d3cb692a5a4e8f18a7fea93a8a8">Bottom</a>); <span class="comment">// add margin vertically</span>
<a name="l00123"></a>00123 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWebWidget.html#07719d06da0dd17af2381c663e8fb0b7">setMargin</a>(WLength::Auto, <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a36568fecac7c7d7223afaed240bcfdd9e">Left</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a3cf431c3ce5eb6f14c0390feb14a68004">Right</a>); <span class="comment">// center horizontally</span>
<a name="l00124"></a>00124
<a name="l00125"></a>00125 <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="l00126"></a>00126 }
<a name="l00127"></a>00127
<a name="l00128"></a><a class="code" href="classTimeSeriesExample.html#696c3e952d1f9b4ed3bdbf415f1634a5">00128</a> <a class="code" href="classTimeSeriesExample.html#696c3e952d1f9b4ed3bdbf415f1634a5" 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> *<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#3461e31818c4d2f516641bdaf508312a">parent</a>):
<a name="l00129"></a>00129 <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a>(parent)
<a name="l00130"></a>00130 {
<a name="l00131"></a>00131 <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="l00132"></a>00132
<a name="l00133"></a>00133 <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WAbstractItemModel.html">WAbstractItemModel</a> *model = <a class="code" href="ChartsExample_8C.html#ffec5e7d98eb601a40bf039d67cd7982">readCsvFile</a>(<span class="stringliteral">"timeseries.csv"</span>, <span class="keyword">this</span>);
<a name="l00134"></a>00134
<a name="l00135"></a>00135 <span class="keywordflow">if</span> (!model)
<a name="l00136"></a>00136 <span class="keywordflow">return</span>;
<a name="l00137"></a>00137
<a name="l00138"></a>00138 <span class="comment">/*</span>
<a name="l00139"></a>00139 <span class="comment"> * Parse the first column as dates</span>
<a name="l00140"></a>00140 <span class="comment"> */</span>
<a name="l00141"></a>00141 <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#b0709a8f71fd5df882f29bb29fd055f0">rowCount</a>(); ++i) {
<a name="l00142"></a>00142 <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WString.html">WString</a> s = asString(model-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WAbstractItemModel.html#9112b74d160f916ef75fb6c1c09dd8fe">data</a>(i, 0));
<a name="l00143"></a>00143 <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="l00144"></a>00144 model-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WAbstractItemModel.html#70856db8c322be8c7f397a932165a943">setData</a>(i, 0, boost::any(d));
<a name="l00145"></a>00145 }
<a name="l00146"></a>00146
<a name="l00147"></a>00147 <span class="comment">/*</span>
<a name="l00148"></a>00148 <span class="comment"> * Create the scatter plot.</span>
<a name="l00149"></a>00149 <span class="comment"> */</span>
<a name="l00150"></a>00150 <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="l00151"></a>00151 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WAbstractChart.html#a23d116689e939301470398df8ad5c8b">setModel</a>(model); <span class="comment">// set the model</span>
<a name="l00152"></a>00152 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#6c954fa4ed6d73f00ee973bfe3af5ed0">setXSeriesColumn</a>(0); <span class="comment">// set the column that holds the X data</span>
<a name="l00153"></a>00153 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#26c3d97f4884da079e01e7b50447a915">setLegendEnabled</a>(<span class="keyword">true</span>); <span class="comment">// enable the legend</span>
<a name="l00154"></a>00154
<a name="l00155"></a>00155 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#02775290965d59ffba03da574925e387">setType</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/group__charts.html#gg8d63464f873580c77508e1c0c26cbfea6ddab43d32242eb28831938a1e469a1f">ScatterPlot</a>); <span class="comment">// set type to ScatterPlot</span>
<a name="l00156"></a>00156 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#f966d6ee6b2e43e6b26e794459005375">axis</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/group__charts.html#ggddb678f67fbd9f374fcee0922f158c9f2a592919e6cbd94bf09e1259559499b5">XAxis</a>).<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WAxis.html#b067037b83d1d663535250968a1776d8">setScale</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/group__charts.html#ggdfcaed8cd6ff52f5747f7df48f2eeab6aa627030efa552170a889d7a80a65a12">DateScale</a>); <span class="comment">// set scale of X axis to DateScale</span>
<a name="l00157"></a>00157
<a name="l00158"></a>00158 <span class="comment">// Provide space for the X and Y axis and title. </span>
<a name="l00159"></a>00159 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WAbstractChart.html#ce6ea85014f731c7034e4215710a8a48">setPlotAreaPadding</a>(100, <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a36568fecac7c7d7223afaed240bcfdd9e">Left</a>);
<a name="l00160"></a>00160 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WAbstractChart.html#ce6ea85014f731c7034e4215710a8a48">setPlotAreaPadding</a>(50, <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a368b058364f8c2380c1d369a321f22f92">Top</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a387ae7d3cb692a5a4e8f18a7fea93a8a8">Bottom</a>);
<a name="l00161"></a>00161
<a name="l00162"></a>00162 <span class="comment">/*</span>
<a name="l00163"></a>00163 <span class="comment"> * Add first two columns as line series</span>
<a name="l00164"></a>00164 <span class="comment"> */</span>
<a name="l00165"></a>00165 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 1; i < 3; ++i) {
<a name="l00166"></a>00166 <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#gg44d64e4a9d08c7ef69648f4a9c3e40532582c20d00d806d8a175e2f5c0207591">LineSeries</a>);
<a name="l00167"></a>00167 s.<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WDataSeries.html#683e2c2d0d4b94631be803600b519e9a">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="l00168"></a>00168 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#fa4ac6588e6e2e0dd93320c3a0541d46">addSeries</a>(s);
<a name="l00169"></a>00169 }
<a name="l00170"></a>00170
<a name="l00171"></a>00171 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WPaintedWidget.html#a57b940110d240951d0e3a6d03390319">resize</a>(800, 400); <span class="comment">// WPaintedWidget must be given explicit size</span>
<a name="l00172"></a>00172
<a name="l00173"></a>00173 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWebWidget.html#07719d06da0dd17af2381c663e8fb0b7">setMargin</a>(10, <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a368b058364f8c2380c1d369a321f22f92">Top</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a387ae7d3cb692a5a4e8f18a7fea93a8a8">Bottom</a>); <span class="comment">// add margin vertically</span>
<a name="l00174"></a>00174 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWebWidget.html#07719d06da0dd17af2381c663e8fb0b7">setMargin</a>(WLength::Auto, <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a36568fecac7c7d7223afaed240bcfdd9e">Left</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a3cf431c3ce5eb6f14c0390feb14a68004">Right</a>); <span class="comment">// center horizontally</span>
<a name="l00175"></a>00175
<a name="l00176"></a>00176 <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="l00177"></a>00177 }
<a name="l00178"></a>00178
<a name="l00179"></a><a class="code" href="classScatterPlotExample.html#75f30afe584a342437d901217fd232db">00179</a> <a class="code" href="classScatterPlotExample.html#75f30afe584a342437d901217fd232db" 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> *<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#3461e31818c4d2f516641bdaf508312a">parent</a>):
<a name="l00180"></a>00180 <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a>(parent)
<a name="l00181"></a>00181 {
<a name="l00182"></a>00182 <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="l00183"></a>00183
<a name="l00184"></a>00184 <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="l00185"></a>00185 model-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WAbstractItemModel.html#57f5d417f933440db0d38ece7dd370f4">setHeaderData</a>(0, boost::any(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WString.html">WString</a>(<span class="stringliteral">"X"</span>)));
<a name="l00186"></a>00186 model-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WAbstractItemModel.html#57f5d417f933440db0d38ece7dd370f4">setHeaderData</a>(1, boost::any(<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="l00187"></a>00187
<a name="l00188"></a>00188 <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0; i < 40; ++i) {
<a name="l00189"></a>00189 <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="l00190"></a>00190
<a name="l00191"></a>00191 model-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WAbstractItemModel.html#70856db8c322be8c7f397a932165a943">setData</a>(i, 0, boost::any(x));
<a name="l00192"></a>00192 model-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WAbstractItemModel.html#70856db8c322be8c7f397a932165a943">setData</a>(i, 1, boost::any(sin(x)));
<a name="l00193"></a>00193 }
<a name="l00194"></a>00194
<a name="l00195"></a>00195 <span class="comment">/*</span>
<a name="l00196"></a>00196 <span class="comment"> * Create the scatter plot.</span>
<a name="l00197"></a>00197 <span class="comment"> */</span>
<a name="l00198"></a>00198 <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="l00199"></a>00199 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WAbstractChart.html#a23d116689e939301470398df8ad5c8b">setModel</a>(model); <span class="comment">// set the model</span>
<a name="l00200"></a>00200 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#6c954fa4ed6d73f00ee973bfe3af5ed0">setXSeriesColumn</a>(0); <span class="comment">// set the column that holds the X data</span>
<a name="l00201"></a>00201 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#26c3d97f4884da079e01e7b50447a915">setLegendEnabled</a>(<span class="keyword">true</span>); <span class="comment">// enable the legend</span>
<a name="l00202"></a>00202
<a name="l00203"></a>00203 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#02775290965d59ffba03da574925e387">setType</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/group__charts.html#gg8d63464f873580c77508e1c0c26cbfea6ddab43d32242eb28831938a1e469a1f">ScatterPlot</a>); <span class="comment">// set type to ScatterPlot</span>
<a name="l00204"></a>00204
<a name="l00205"></a>00205 <span class="comment">// Typically, for mathematical functions, you want the axes to cross</span>
<a name="l00206"></a>00206 <span class="comment">// at the 0 mark:</span>
<a name="l00207"></a>00207 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#f966d6ee6b2e43e6b26e794459005375">axis</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/group__charts.html#ggddb678f67fbd9f374fcee0922f158c9f2a592919e6cbd94bf09e1259559499b5">XAxis</a>).<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WAxis.html#6dab2f46117b85a4a6f439e4f194ee82">setLocation</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/group__charts.html#gg77eb6d0cefa4a012950ea972b471b849f2e58ce3483a5ec496f65fb808ce72b9">ZeroValue</a>);
<a name="l00208"></a>00208 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#f966d6ee6b2e43e6b26e794459005375">axis</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/group__charts.html#ggddb678f67fbd9f374fcee0922f158c9f2e1017fdef77b4663715c3d7663a4db4">YAxis</a>).<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WAxis.html#6dab2f46117b85a4a6f439e4f194ee82">setLocation</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/group__charts.html#gg77eb6d0cefa4a012950ea972b471b849f2e58ce3483a5ec496f65fb808ce72b9">ZeroValue</a>);
<a name="l00209"></a>00209
<a name="l00210"></a>00210 <span class="comment">// Provide space for the X and Y axis and title. </span>
<a name="l00211"></a>00211 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WAbstractChart.html#ce6ea85014f731c7034e4215710a8a48">setPlotAreaPadding</a>(100, <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a36568fecac7c7d7223afaed240bcfdd9e">Left</a>);
<a name="l00212"></a>00212 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WAbstractChart.html#ce6ea85014f731c7034e4215710a8a48">setPlotAreaPadding</a>(50, <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a368b058364f8c2380c1d369a321f22f92">Top</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a387ae7d3cb692a5a4e8f18a7fea93a8a8">Bottom</a>);
<a name="l00213"></a>00213
<a name="l00214"></a>00214 <span class="comment">// Add the curves</span>
<a name="l00215"></a>00215 <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#gg44d64e4a9d08c7ef69648f4a9c3e4053805880e23c0292fb7a66b2cda2a2f5bf">CurveSeries</a>);
<a name="l00216"></a>00216 s.<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WDataSeries.html#683e2c2d0d4b94631be803600b519e9a">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="l00217"></a>00217 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WCartesianChart.html#fa4ac6588e6e2e0dd93320c3a0541d46">addSeries</a>(s);
<a name="l00218"></a>00218
<a name="l00219"></a>00219 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WPaintedWidget.html#a57b940110d240951d0e3a6d03390319">resize</a>(800, 300); <span class="comment">// WPaintedWidget must be given explicit size</span>
<a name="l00220"></a>00220
<a name="l00221"></a>00221 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWebWidget.html#07719d06da0dd17af2381c663e8fb0b7">setMargin</a>(10, <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a368b058364f8c2380c1d369a321f22f92">Top</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a387ae7d3cb692a5a4e8f18a7fea93a8a8">Bottom</a>); <span class="comment">// add margin vertically</span>
<a name="l00222"></a>00222 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWebWidget.html#07719d06da0dd17af2381c663e8fb0b7">setMargin</a>(WLength::Auto, <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a36568fecac7c7d7223afaed240bcfdd9e">Left</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a3cf431c3ce5eb6f14c0390feb14a68004">Right</a>); <span class="comment">// center horizontally</span>
<a name="l00223"></a>00223
<a name="l00224"></a>00224 <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="l00225"></a>00225 config-><a class="code" href="classChartConfig.html#5f4ddb33c53dc6907dcf73c2598ad0fa">setValueFill</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/group__charts.html#gg7236e5b04bdb6f393162842982b4d1a050b16db97a187f9acccdbeecf8732ff0">ZeroValueFill</a>);
<a name="l00226"></a>00226 }
<a name="l00227"></a>00227
<a name="l00228"></a><a class="code" href="classPieExample.html#23e7441e0e0e19e4dda48ee17bf651ca">00228</a> <a class="code" href="classPieExample.html#23e7441e0e0e19e4dda48ee17bf651ca" 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> *<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWidget.html#3461e31818c4d2f516641bdaf508312a">parent</a>):
<a name="l00229"></a>00229 <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WContainerWidget.html">WContainerWidget</a>(parent)
<a name="l00230"></a>00230 {
<a name="l00231"></a>00231 <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="l00232"></a>00232
<a name="l00233"></a>00233 <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WAbstractItemModel.html">WAbstractItemModel</a> *model = <a class="code" href="ChartsExample_8C.html#ffec5e7d98eb601a40bf039d67cd7982">readCsvFile</a>(<span class="stringliteral">"pie.csv"</span>, <span class="keyword">this</span>);
<a name="l00234"></a>00234
<a name="l00235"></a>00235 <span class="keywordflow">if</span> (!model)
<a name="l00236"></a>00236 <span class="keywordflow">return</span>;
<a name="l00237"></a>00237
<a name="l00238"></a>00238 <span class="comment">/*</span>
<a name="l00239"></a>00239 <span class="comment"> * If we have JavaScript, show an Ext table view that allows editing</span>
<a name="l00240"></a>00240 <span class="comment"> * of the model.</span>
<a name="l00241"></a>00241 <span class="comment"> */</span>
<a name="l00242"></a>00242 <span class="keywordflow">if</span> (wApp->environment().javaScript()) {
<a name="l00243"></a>00243 <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#520ba6e52a36a7f2efbef1a31a69e898">WContainerWidget</a>(<span class="keyword">this</span>);
<a name="l00244"></a>00244 <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Ext_1_1TableView.html">Ext::TableView</a> *table = <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Ext_1_1TableView.html">Ext::TableView</a>(w);
<a name="l00245"></a>00245 table-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWebWidget.html#07719d06da0dd17af2381c663e8fb0b7">setMargin</a>(10, <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a368b058364f8c2380c1d369a321f22f92">Top</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a387ae7d3cb692a5a4e8f18a7fea93a8a8">Bottom</a>);
<a name="l00246"></a>00246 table-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWebWidget.html#07719d06da0dd17af2381c663e8fb0b7">setMargin</a>(WLength::Auto, <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a36568fecac7c7d7223afaed240bcfdd9e">Left</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a3cf431c3ce5eb6f14c0390feb14a68004">Right</a>);
<a name="l00247"></a>00247 table-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWebWidget.html#e1b84e31581405358b6d57ec14505234">resize</a>(300, 175);
<a name="l00248"></a>00248 table-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Ext_1_1TableView.html#e749720b6992ecf62a900bbc45a5607d">setModel</a>(model);
<a name="l00249"></a>00249 table-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Ext_1_1TableView.html#88f1de406a741b47533311d249a168dc">setAutoExpandColumn</a>(0);
<a name="l00250"></a>00250
<a name="l00251"></a>00251 table-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Ext_1_1TableView.html#8fce08c9e2b06463377342e03f2970d2">setEditor</a>(0, <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Ext_1_1LineEdit.html">Ext::LineEdit</a>());
<a name="l00252"></a>00252
<a name="l00253"></a>00253 <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#bcf7912a95a0a60f8e9b1c37d30b8383">columnCount</a>(); ++i)
<a name="l00254"></a>00254 table-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Ext_1_1TableView.html#8fce08c9e2b06463377342e03f2970d2">setEditor</a>(i, <span class="keyword">new</span> <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Ext_1_1NumberField.html">Ext::NumberField</a>());
<a name="l00255"></a>00255 }
<a name="l00256"></a>00256
<a name="l00257"></a>00257 <span class="comment">/*</span>
<a name="l00258"></a>00258 <span class="comment"> * Create the pie chart.</span>
<a name="l00259"></a>00259 <span class="comment"> */</span>
<a name="l00260"></a>00260 <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="l00261"></a>00261 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WAbstractChart.html#a23d116689e939301470398df8ad5c8b">setModel</a>(model); <span class="comment">// set the model</span>
<a name="l00262"></a>00262 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WPieChart.html#a40bfd3f2095106f8081596b235de4c6">setLabelsColumn</a>(0); <span class="comment">// set the column that holds the labels</span>
<a name="l00263"></a>00263 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WPieChart.html#3692ea22a1417e599e9358b0ed5a723d">setDataColumn</a>(1); <span class="comment">// set the column that holds the data</span>
<a name="l00264"></a>00264
<a name="l00265"></a>00265 <span class="comment">// configure location and type of labels</span>
<a name="l00266"></a>00266 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WPieChart.html#89324f6159e5893e1ddd368718d00e5d">setDisplayLabels</a>(<a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/group__charts.html#gg9345394a8eeda6800d8a24c5df44d98388861128e109b6a63e76a311dc57e408">Outside</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/group__charts.html#gg9345394a8eeda6800d8a24c5df44d98360df9add81425373c20fafe8c4e40b0e">TextLabel</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/group__charts.html#gg9345394a8eeda6800d8a24c5df44d983307741727c5ef5e33efcd347a0853e50">TextPercentage</a>);
<a name="l00267"></a>00267
<a name="l00268"></a>00268 <span class="comment">// enable a 3D effect</span>
<a name="l00269"></a>00269 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WPieChart.html#e36d57f4c2801cb8599a1bc99e340a24">setPerspectiveEnabled</a>(<span class="keyword">true</span>, 0.2);
<a name="l00270"></a>00270
<a name="l00271"></a>00271 <span class="comment">// explode the first item</span>
<a name="l00272"></a>00272 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1Chart_1_1WPieChart.html#4a2bfe0c147b5433d340d49351b5032c">setExplode</a>(0, 0.3);
<a name="l00273"></a>00273
<a name="l00274"></a>00274 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WPaintedWidget.html#a57b940110d240951d0e3a6d03390319">resize</a>(800, 300); <span class="comment">// WPaintedWidget must be given explicit size</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_1WWebWidget.html#07719d06da0dd17af2381c663e8fb0b7">setMargin</a>(10, <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a368b058364f8c2380c1d369a321f22f92">Top</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a387ae7d3cb692a5a4e8f18a7fea93a8a8">Bottom</a>); <span class="comment">// add margin vertically</span>
<a name="l00277"></a>00277 chart-><a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/classWt_1_1WWebWidget.html#07719d06da0dd17af2381c663e8fb0b7">setMargin</a>(WLength::Auto, <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a36568fecac7c7d7223afaed240bcfdd9e">Left</a> | <a class="codeRef" doxygen="wt.tags:../../reference/html/" href="../../reference/html/namespaceWt.html#5a6f4636bcc6ab3c075165d249b3a5a3cf431c3ce5eb6f14c0390feb14a68004">Right</a>); <span class="comment">// center horizontally</span>
<a name="l00278"></a>00278 }
<a name="l00279"></a>00279
</pre></div></div>
<hr size="1"><address style="align: right;"><small>
Generated on Fri Mar 26 17:12:12 2010 for <a href="http://www.webtoolkit.eu/wt/">Wt</a> by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6</small></address>
</body>
</html>
|