Project

General

Profile

Bug #2282 » wittyTest2.cpp

Andreas Büchin, 10/03/2013 03:36 PM

 
//============================================================================
// Name : wittyTest2.cpp
// Author :
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

#include <iostream>
#include <vector>



/*
* Copyright (C) 2008 Emweb bvba, Heverlee, Belgium.
*
* See the LICENSE file for terms of use.
*/

#include <Wt/WApplication>
#include <Wt/WBreak>
#include <Wt/WContainerWidget>
#include <Wt/WLineEdit>
#include <Wt/WPushButton>
#include <Wt/WText>
#include <Wt/WTableView>
#include <Wt/WStandardItemModel>
#include <Wt/WStandardItem>
#include <Wt/WTimer>
//#include <Wt/WGlobal>
#include <Wt/WString>
// c++0x only, for std::bind
// #include <functional>
using namespace std;
using namespace Wt;


/*
* A simple hello world application class which demonstrates how to react
* to events, read input, and give feed-back.
*/
class HelloApplication : public Wt::WApplication
{
public:
HelloApplication(const Wt::WEnvironment& env);
typedef std::vector<Wt::WStandardItem*> LLColumn;
typedef std::vector<LLColumn> ColumnListVector;

private:
Wt::WLineEdit *nameEdit_;
Wt::WText *greeting_;
Wt::WTableView* createLiveListListView();
Wt::WStandardItemModel *model;
Wt::WTableView *extLLTableView;
Wt::WTimer *updateTimer;
void greet();

void initModel();
void InternalUpdateModel();
void updateModel();
ColumnListVector GetVector();

};

/*
* The env argument contains information about the new session, and
* the initial request. It must be passed to the WApplication
* constructor so it is typically also an argument for your custom
* application constructor.
*/
HelloApplication::HelloApplication(const Wt::WEnvironment& env)
: Wt::WApplication(env)
{
setTitle("Hello world"); // application title

extLLTableView = new Wt::WTableView(root());

extLLTableView->setSortingEnabled(true);
extLLTableView->setAlternatingRowColors(true);

model = new Wt::WStandardItemModel(root());
extLLTableView->setModel(model);
ColumnListVector ColList = GetVector();
for (unsigned int col = 0; col < ColList.size(); col++)
{
model->insertColumn(col, ColList[col]);
}

updateTimer = new WTimer(root());
updateTimer->setInterval(500);
updateTimer->timeout().connect(SLOT(this, HelloApplication::updateModel));
updateTimer->start();
}

HelloApplication::ColumnListVector HelloApplication::GetVector()
{
ColumnListVector testColumnList;
for (int i = 0; i < 6; i++)
{
testColumnList.push_back(std::vector<Wt::WStandardItem*>(1));
testColumnList[i].clear();
}
for (unsigned int col = 0; col < 6; col++)
{
for(int i = 0; i < 35; i++)
{
testColumnList[col].push_back(new Wt::WStandardItem("test123"));
}
}
return testColumnList;
}

void HelloApplication::updateModel()
{
model->clear();

ColumnListVector ColList = GetVector();
for (unsigned int col = 0; col < ColList.size(); col++)
{
model->insertColumn(col, ColList[col]);
}
}

Wt::WApplication *createApplication(const Wt::WEnvironment& env)
{
/*
* You could read information from the environment to decide whether
* the user has permission to start a new application
*/
return new HelloApplication(env);
}

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