Constructor.
77 : WContainerWidget(),
79 fill_(FillRangeType::MinimumValue)
80{
83
84 PanelList *
list = this->addWidget(std::make_unique<PanelList>());
85
87 = std::make_shared<WIntValidator>(200,2000);
89
92
95
96
97
99 = std::make_shared<WStandardItemModel>(0,1);
102
104 = std::make_shared<WStandardItemModel>(0,1);
107
108 std::shared_ptr<WStandardItemModel>
legendSide
109 = std::make_shared<WStandardItemModel>(0,1);
114
116 = std::make_shared<WStandardItemModel>(0,1);
123
125 = std::make_unique<WTable>();
126 chartConfig->setMargin(WLength::Auto, Side::Left | Side::Right);
127
129 chartConfig->elementAt(
row, 0)->addWidget(std::make_unique<WText>(
"Title:"));
133
134 chartConfig->elementAt(
row, 0)->addWidget(std::make_unique<WText>(
"Width:"));
137 ->setText(WLocale::currentLocale().toString(
chart_->width().value()));
142
143 chartConfig->elementAt(
row, 0)->addWidget(std::make_unique<WText>(
"Height:"));
146 ->setText(WLocale::currentLocale().toString(
chart_->height().value()));
151
152 chartConfig->elementAt(
row, 0)->addWidget(std::make_unique<WText>(
"Orientation:"));
158
159 chartConfig->elementAt(
row, 0)->addWidget(std::make_unique<WText>(
"Legend location:"));
165
166 chartConfig->elementAt(
row, 0)->addWidget(std::make_unique<WText>(
"Legend side:"));
172
173 chartConfig->elementAt(
row, 0)->addWidget(std::make_unique<WText>(
"Legend alignment:"));
179
180 chartConfig->elementAt(
row, 0)->addWidget(std::make_unique<WText>(
"Border:"));
185
189 }
190
192 p->setMargin(WLength::Auto, Side::Left | Side::Right);
193 p->resize(1160, WLength::Auto);
194 p->setMargin(20, Side::Top | Side::Bottom);
195
196
197
198 std::shared_ptr<WStandardItemModel>
types
199 = std::make_shared<WStandardItemModel>(0,1);
209
210 std::shared_ptr<WStandardItemModel>
markers
211 = std::make_shared<WStandardItemModel>(0,1);
223
224 xAxesModel_ = std::make_shared<WStandardItemModel>(0, 1);
226
227 yAxesModel_ = std::make_shared<WStandardItemModel>(0, 1);
230
231 std::shared_ptr<WStandardItemModel>
labels
232 = std::make_shared<WStandardItemModel>(0,1);
237
239 = std::make_unique<WTable>();
241 seriesConfig->setMargin(WLength::Auto, Side::Left | Side::Right);
251
253
254 for (
int j = 1;
j <
chart->model()->columnCount(); ++
j) {
256
257 seriesConfig->elementAt(
j,0)->addWidget(std::make_unique<WText>(
chart->model()->headerData(
j)));
258
259 sc.enabledEdit =
seriesConfig->elementAt(
j,1)->addWidget(std::make_unique<WCheckBox>());
261
262 sc.typeEdit =
seriesConfig->elementAt(
j,2)->addWidget(std::make_unique<WComboBox>());
264 sc.typeEdit->setCurrentIndex(0);
266
267 sc.markerEdit =
seriesConfig->elementAt(
j,3)->addWidget(std::make_unique<WComboBox>());
269 sc.markerEdit->setCurrentIndex(0);
271
274 sc.xAxisEdit->setCurrentIndex(0);
276
279 sc.yAxisEdit->setCurrentIndex(0);
281
282 sc.legendEdit =
seriesConfig->elementAt(
j, 6)->addWidget(std::make_unique<WCheckBox>());
284
285 sc.shadowEdit =
seriesConfig->elementAt(
j, 7)->addWidget(std::make_unique<WCheckBox>());
287
288 sc.labelsEdit =
seriesConfig->elementAt(
j, 8)->addWidget(std::make_unique<WComboBox>());
290 sc.labelsEdit->setCurrentIndex(0);
292
294
296 sc.enabledEdit->setChecked();
299 case SeriesType::Point:
300 sc.typeEdit->setCurrentIndex(0);
break;
301 case SeriesType::Line:
302 sc.typeEdit->setCurrentIndex(
s.fillRange() != FillRangeType::None ?
303 (
s.isStacked() ? 7 : 4) : 1);
break;
304 case SeriesType::Curve:
305 sc.typeEdit->setCurrentIndex(
s.fillRange() != FillRangeType::None ?
306 (
s.isStacked() ? 8 : 5) : 2);
break;
307 case SeriesType::Bar:
308 sc.typeEdit->setCurrentIndex(
s.isStacked() ? 6 : 3);
309 }
310
311 sc.markerEdit->setCurrentIndex((
int)
s.marker());
312 sc.legendEdit->setChecked(
s.isLegendEnabled());
313 sc.shadowEdit->setChecked(
s.shadow() !=
WShadow());
314 }
315
317
319 }
320
323 p->setMargin(WLength::Auto, Side::Left | Side::Right);
324 p->resize(1160, WLength::Auto);
325 p->setMargin(20, Side::Top | Side::Bottom);
326
327
328
329 yScales_ = std::make_shared<WStandardItemModel>(0, 1);
332
333 xScales_ = std::make_shared<WStandardItemModel>(0, 1);
338
339 auto axisConfig = std::make_unique<WContainerWidget>();
341 axisConfig_->setMargin(WLength::Auto, Side::Left | Side::Right);
342
355
357
361
374
376 p->setMargin(WLength::Auto, Side::Left | Side::Right);
377 p->resize(1160, WLength::Auto);
378 p->setMargin(20, Side::Top | Side::Bottom);
379
380
381
382
383
384 if (!WApplication::instance()->environment().javaScript()) {
385 auto *
b = this->addWidget(std::make_unique<WPushButton>());
386 b->setText(
"Update chart");
388 b->setMargin(WLength::Auto, Side::Left | Side::Right);
390 }
391}
Wt::Auth::Dbo::UserDatabase< AuthInfo > UserDatabase
std::vector< SeriesControl > seriesControls_
Controls for series.
void addAxis(Wt::Chart::Axis axis, int axisId)
Wt::WComboBox * legendAlignmentEdit_
Wt::WComboBox * legendLocationEdit_
std::shared_ptr< Wt::WValidator > angleValidator_
Wt::WComboBox * legendSideEdit_
std::shared_ptr< Wt::WValidator > anyNumberValidator_
Wt::WLineEdit * chartWidthEdit_
Wt::WLineEdit * titleEdit_
std::shared_ptr< Wt::WStandardItemModel > xAxesModel_
void connectSignals(Wt::WFormWidget *w)
Wt::Chart::WCartesianChart * chart_
std::shared_ptr< Wt::WStandardItemModel > xScales_
Wt::Chart::FillRangeType fill_
Wt::WCheckBox * borderEdit_
Wt::WLineEdit * chartHeightEdit_
std::shared_ptr< Wt::WStandardItemModel > yAxesModel_
Wt::WComboBox * chartOrientationEdit_
std::shared_ptr< Wt::WStandardItemModel > yScales_