Project

General

Profile

Bug #5458 ยป item_model.cpp

Yoika Ghysens, 12/06/2016 09:06 PM

 
#include <Wt/WApplication>
#include <Wt/WTreeView>
#include <Wt/WStandardItemModel>
#include <Wt/WStandardItem>
#include <Wt/WPushButton>

#include <memory>

class TestApplication : public Wt::WApplication
{
public:
TestApplication(const Wt::WEnvironment &env);
};

TestApplication::TestApplication(const Wt::WEnvironment &env) : Wt::WApplication(env)
{
Wt::WTreeView *treeView = new Wt::WTreeView(root());
Wt::WStandardItemModel *itemModel = new Wt::WStandardItemModel(0, 4);
itemModel->setHeaderData(0, Wt::Horizontal, std::string(""), Wt::DisplayRole);
itemModel->setHeaderData(1, Wt::Horizontal, std::string("Id"), Wt::DisplayRole);
itemModel->setHeaderData(2, Wt::Horizontal, std::string("Description"), Wt::DisplayRole);
itemModel->setHeaderData(3, Wt::Horizontal, std::string("Battery"), Wt::DisplayRole);

treeView->setModel(itemModel);
treeView->setColumnWidth(0, 150);
treeView->setColumnWidth(1, 120);
treeView->setColumnWidth(2, 150);
treeView->setColumnWidth(3, 70);
treeView->setWidth(513 + 3 * 7);
treeView->setSelectionMode(Wt::SingleSelection);

Wt::WStandardItem *beacons = new Wt::WStandardItem("Beacons");
beacons->setStyleClass("header-item");
itemModel->appendRow(beacons);
Wt::WStandardItem *basestations = new Wt::WStandardItem("Basestations");
basestations->setStyleClass("header-item");
itemModel->appendRow(basestations);
Wt::WStandardItem *mobiles = new Wt::WStandardItem("Mobiles");
mobiles->setStyleClass("header-item");
itemModel->appendRow(mobiles);
Wt::WStandardItem *tags = new Wt::WStandardItem("Tags");
tags->setStyleClass("header-item");
itemModel->appendRow(tags);

std::vector<Wt::WStandardItem *> row1;
row1.push_back(new Wt::WStandardItem("1"));
row1.push_back(new Wt::WStandardItem("aa"));
row1.push_back(new Wt::WStandardItem("bb"));
row1.push_back(new Wt::WStandardItem("cc"));

beacons->appendRow(row1);

Wt::WPushButton *clearList = new Wt::WPushButton("Clear", root());
clearList->clicked().connect(std::bind([=]() {
beacons->removeRows(0, beacons->rowCount());
}));
}

Wt::WApplication *createApplication(const Wt::WEnvironment &env)
{
return new TestApplication(env);
}

int main(int argc, char **argv)
{
return Wt::WRun(argc, argv, &createApplication);
}
    (1-1/1)