Wt examples  3.3.9
Public Member Functions | List of all members
TimeSeriesExample Class Reference

A widget that demonstrates a times series chart. More...

#include <ChartsExample.h>

Inheritance diagram for TimeSeriesExample:
Inheritance graph
[legend]

Public Member Functions

 TimeSeriesExample (Wt::WContainerWidget *parent)
 Creates the time series scatter plot example. More...
 
- Public Member Functions inherited from Wt::WWidget
virtual void setPositionScheme (PositionScheme scheme)=0
 
virtual PositionScheme positionScheme () const =0
 
virtual void setOffsets (const WLength &offset, WFlags< Side > sides=All)=0
 
virtual WLength offset (Side side) const =0
 
virtual void resize (const WLength &width, const WLength &height)
 
virtual WLength width () const =0
 
virtual WLength height () const =0
 
virtual void setMinimumSize (const WLength &width, const WLength &height)=0
 
virtual WLength minimumWidth () const =0
 
virtual WLength minimumHeight () const =0
 
virtual void setMaximumSize (const WLength &width, const WLength &height)=0
 
virtual WLength maximumWidth () const =0
 
virtual WLength maximumHeight () const =0
 
virtual void setLineHeight (const WLength &height)=0
 
virtual WLength lineHeight () const =0
 
virtual void setFloatSide (Side s)=0
 
virtual Side floatSide () const =0
 
virtual void setClearSides (WFlags< Side > sides)=0
 
virtual WFlags< SideclearSides () const =0
 
virtual void setMargin (const WLength &margin, WFlags< Side > sides=All)=0
 
virtual WLength margin (Side side) const =0
 
virtual void setHiddenKeepsGeometry (bool enabled)=0
 
virtual bool hiddenKeepsGeometry () const =0
 
virtual void setHidden (bool hidden, const WAnimation &animation=WAnimation())=0
 
virtual bool isHidden () const =0
 
virtual bool isVisible () const =0
 
virtual void setDisabled (bool disabled)=0
 
virtual bool isDisabled () const =0
 
virtual bool isEnabled () const =0
 
virtual void setPopup (bool popup)=0
 
virtual bool isPopup () const =0
 
virtual void setInline (bool inlined)=0
 
virtual bool isInline () const =0
 
virtual void setDecorationStyle (const WCssDecorationStyle &style)=0
 
virtual WCssDecorationStyledecorationStyle ()=0
 
virtual void setStyleClass (const WString &styleClass)=0
 
virtual WString styleClass () const =0
 
virtual void addStyleClass (const WString &styleClass, bool force=false)=0
 
virtual void removeStyleClass (const WString &styleClass, bool force=false)=0
 
virtual bool hasStyleClass (const WString &styleClass) const =0
 
virtual void setVerticalAlignment (AlignmentFlag alignment, const WLength &length=WLength::Auto)=0
 
virtual AlignmentFlag verticalAlignment () const =0
 
virtual WLength verticalAlignmentLength () const =0
 
virtual void setToolTip (const WString &text, TextFormat textFormat=PlainText)=0
 
virtual WString toolTip () const =0
 
virtual void setDeferredToolTip (bool enable, TextFormat textFormat=PlainText)=0
 
virtual void refresh ()
 
virtual void setAttributeValue (const std::string &name, const WString &value)=0
 
virtual WString attributeValue (const std::string &name) const =0
 
virtual void setJavaScriptMember (const std::string &name, const std::string &value)=0
 
virtual std::string javaScriptMember (const std::string &name) const =0
 
virtual void callJavaScriptMember (const std::string &name, const std::string &args)=0
 
virtual void load ()=0
 
virtual bool loaded () const =0
 
virtual void setCanReceiveFocus (bool enabled)=0
 
virtual bool canReceiveFocus () const =0
 
virtual void setFocus (bool focus)=0
 
virtual bool setFirstFocus ()=0
 
virtual bool hasFocus () const =0
 
virtual void setTabIndex (int index)=0
 
virtual int tabIndex () const =0
 
virtual void setId (const std::string &id)=0
 
virtual WWidgetfind (const std::string &name)=0
 
virtual WWidgetfindById (const std::string &id)=0
 
virtual void setSelectable (bool selectable)=0
 
virtual void doJavaScript (const std::string &js)=0
 
virtual bool scrollVisibilityEnabled () const =0
 
virtual void setScrollVisibilityEnabled (bool enabled)=0
 
virtual int scrollVisibilityMargin () const =0
 
virtual void setScrollVisibilityMargin (int margin)=0
 
virtual Signal< bool > & scrollVisibilityChanged ()=0
 
virtual bool isScrollVisible () const =0
 
virtual void setThemeStyleEnabled (bool enabled)=0
 
virtual bool isThemeStyleEnabled () const =0
 

Additional Inherited Members

- Protected Member Functions inherited from Wt::WWidget
virtual void enableAjax ()=0
 
virtual void propagateSetEnabled (bool enabled)=0
 
virtual void render (WFlags< RenderFlag > flags)
 

Detailed Description

A widget that demonstrates a times series chart.

Definition at line 29 of file ChartsExample.h.

Constructor & Destructor Documentation

TimeSeriesExample::TimeSeriesExample ( Wt::WContainerWidget parent)

Creates the time series scatter plot example.

Definition at line 193 of file ChartsExample.C.

193  :
194  WContainerWidget(parent)
195 {
196  new WText(WString::tr("scatter plot"), this);
197 
198  WAbstractItemModel *model = readCsvFile(
199  WApplication::appRoot() + "timeseries.csv", this);
200 
201  if (!model)
202  return;
203 
204  /*
205  * Parses the first column as dates, to be able to use a date scale
206  */
207  for (int i = 0; i < model->rowCount(); ++i) {
208  WString s = asString(model->data(i, 0));
209  WDate d = WDate::fromString(s, "dd/MM/yy");
210  model->setData(i, 0, d);
211  }
212 
213  // Show a view that allows editing of the model.
214  WContainerWidget *w = new WContainerWidget(this);
215  WTableView *table = new WTableView(w);
216 
217  table->setMargin(10, Top | Bottom);
218  table->setMargin(WLength::Auto, Left | Right);
219 
220  table->setModel(model);
221  table->setSortingEnabled(false); // Does not make much sense for time series
222  table->setColumnResizeEnabled(true);
223  table->setSelectionMode(NoSelection);
224  table->setAlternatingRowColors(true);
225  table->setColumnAlignment(0, AlignCenter);
226  table->setHeaderAlignment(0, AlignCenter);
227  table->setRowHeight(22);
228 
229  // Editing does not really work without Ajax, it would require an
230  // additional button somewhere to confirm the edited value.
231  if (WApplication::instance()->environment().ajax()) {
232  table->resize(800, 20 + 5*22);
233  table->setEditTriggers(WAbstractItemView::SingleClicked);
234  } else {
235  table->resize(800, 20 + 5*22 + 25);
236  table->setEditTriggers(WAbstractItemView::NoEditTrigger);
237  }
238 
239  WItemDelegate *delegate = new WItemDelegate(this);
240  delegate->setTextFormat("%.1f");
241  table->setItemDelegate(delegate);
242  table->setItemDelegateForColumn(0, new WItemDelegate(this));
243 
244  table->setColumnWidth(0, 80);
245  for (int i = 1; i < model->columnCount(); ++i)
246  table->setColumnWidth(i, 90);
247 
248  /*
249  * Create the scatter plot.
250  */
251  WCartesianChart *chart = new WCartesianChart(this);
252  //chart->setPreferredMethod(WPaintedWidget::PngImage);
253  //chart->setBackground(gray);
254  chart->setModel(model); // set the model
255  chart->setXSeriesColumn(0); // set the column that holds the X data
256  chart->setLegendEnabled(true); // enable the legend
257  chart->setZoomEnabled(true);
258  chart->setPanEnabled(true);
259 
260  chart->setType(ScatterPlot); // set type to ScatterPlot
261  chart->axis(XAxis).setScale(DateScale); // set scale of X axis to DateScale
262 
263  // Automatically layout chart (space for axes, legend, ...)
264  chart->setAutoLayoutEnabled();
265 
266  chart->setBackground(WColor(200,200,200));
267  /*
268  * Add first two columns as line series
269  */
270  for (int i = 1; i < 3; ++i) {
271  WDataSeries *s = new WDataSeries(i, LineSeries);
272  s->setShadow(WShadow(3, 3, WColor(0, 0, 0, 127), 3));
273  chart->addSeries(s);
274  }
275 
276  chart->resize(800, 400); // WPaintedWidget must be given explicit size
277 
278  chart->setMargin(10, Top | Bottom); // add margin vertically
279  chart->setMargin(WLength::Auto, Left | Right); // center horizontally
280 
281  new ChartConfig(chart, this);
282 }
void setTextFormat(const WString &format)
virtual void setMargin(const WLength &margin, WFlags< Side > sides=All)
void setPanEnabled(bool pan=true)
WString asString(const boost::any &v, const WString &formatString=WString())
virtual void setColumnWidth(int column, const WLength &width)
void addSeries(const WDataSeries &series)
WAxis & axis(Axis axis)
void setShadow(const WShadow &shadow)
void setItemDelegate(WAbstractItemDelegate *delegate)
virtual boost::any data(const WModelIndex &index, int role=DisplayRole) const =0
void setType(ChartType type)
void setSelectionMode(SelectionMode mode)
virtual void resize(const WLength &width, const WLength &height)
virtual int rowCount(const WModelIndex &parent=WModelIndex()) const =0
virtual void resize(const WLength &width, const WLength &height)
void setZoomEnabled(bool zoom=true)
void setBackground(const WBrush &background)
void setModel(WAbstractItemModel *model)
void setScale(AxisScale scale)
void setXSeriesColumn(int modelColumn)
virtual void setMargin(const WLength &margin, WFlags< Side > sides=All)=0
virtual int columnCount(const WModelIndex &parent=WModelIndex()) const =0
void setEditTriggers(WFlags< EditTrigger > editTriggers)
void setColumnResizeEnabled(bool enabled)
void setAutoLayoutEnabled(bool enabled=true)
virtual void setAlternatingRowColors(bool enable)
virtual void setHeaderAlignment(int column, WFlags< AlignmentFlag > alignment)
virtual void setRowHeight(const WLength &rowHeight)
void setLegendEnabled(bool enabled)
void setSortingEnabled(bool enabled)
void setItemDelegateForColumn(int column, WAbstractItemDelegate *delegate)
A class that allows configuration of a cartesian chart.
Definition: ChartConfig.h:37
virtual bool setData(const WModelIndex &index, const boost::any &value, int role=EditRole)
virtual void setModel(WAbstractItemModel *model)
virtual void setColumnAlignment(int column, AlignmentFlag alignment)

The documentation for this class was generated from the following files:

Generated on Thu Oct 18 2018 for the C++ Web Toolkit (Wt) by doxygen 1.8.5