|
/*
|
|
*/
|
|
|
|
|
|
#include <errno.h>
|
|
#include <stdlib.h>
|
|
|
|
|
|
#include <Wt/WApplication>
|
|
#include <Wt/WBreak>
|
|
#include <Wt/WContainerWidget>
|
|
#include <Wt/WPushButton>
|
|
#include <Wt/WText>
|
|
#include <Wt/WStandardItemModel>
|
|
#include <Wt/WStandardItem>
|
|
#include <Wt/WTable>
|
|
#include <Wt/WTabWidget>
|
|
#include <Wt/WTableView>
|
|
#include <Wt/WVBoxLayout>
|
|
#include <Wt/WHBoxLayout>
|
|
#include <Wt/WAbstractItemView>
|
|
#include <Wt/WDialog>
|
|
|
|
/***********************************************************************/
|
|
using namespace Wt;
|
|
/***********************************************************************/
|
|
class WtWebApplication : public WApplication
|
|
{
|
|
public:
|
|
WtWebApplication(const WEnvironment& env);
|
|
~WtWebApplication();
|
|
|
|
WTabWidget *mtab;
|
|
WVBoxLayout *rvb;
|
|
WHBoxLayout *thb;
|
|
WHBoxLayout *bhb;
|
|
WContainerWidget *TermTab;
|
|
WTableView *Termtv;
|
|
WStandardItemModel *Termsim;
|
|
|
|
};
|
|
|
|
|
|
WtWebApplication::WtWebApplication(const WEnvironment& env)
|
|
: WApplication(env)
|
|
{
|
|
WHBoxLayout *hb;
|
|
|
|
|
|
rvb = new WVBoxLayout();
|
|
root()->setLayout(rvb,Wt::AlignJustify);
|
|
rvb->addLayout((thb = new WHBoxLayout()),0,Wt::AlignJustify);
|
|
//mtab = new WTabWidget();
|
|
//rvb->addWidget(mtab,1,Wt::AlignJustify);
|
|
rvb->addLayout((bhb = new WHBoxLayout()),0,Wt::AlignJustify);
|
|
|
|
TermTab = new WContainerWidget();
|
|
//mtab->addTab(TermTab,"Terminals" /*,Wt::WTabWidget::PreLoading */);
|
|
rvb->addWidget(TermTab,1,Wt::AlignJustify);
|
|
|
|
Termtv = new WTableView();
|
|
hb = new WHBoxLayout();
|
|
TermTab->setLayout(hb,Wt::AlignJustify);
|
|
hb->addWidget(Termtv,0,Wt::AlignJustify);
|
|
|
|
Termsim = new WStandardItemModel(7,7);
|
|
Termsim->setHeaderData(0,WString("Name"));
|
|
Termsim->setHeaderData(1,WString("QNet"));
|
|
//Termsim->setHeaderData(2,WString("Line"));
|
|
//Termsim->setHeaderData(3,WString("Device"));
|
|
//Termsim->setHeaderData(4,WString("Location"));
|
|
//Termsim->setHeaderData(5,WString("Dept"));
|
|
//Termsim->setHeaderData(6,WString("Comment"));
|
|
|
|
Termtv->setModel(Termsim);
|
|
|
|
Termsim->clear();
|
|
#if 1 // Happens with and without this dialog prompt
|
|
/*
|
|
throw up a prompt before calling code that crashes.
|
|
*/
|
|
{
|
|
WDialog *dp;
|
|
WPushButton *bp;
|
|
WVBoxLayout *vb;
|
|
if((dp = new WDialog("Oops"))) {
|
|
vb = new WVBoxLayout();
|
|
dp->contents()->setLayout(vb);
|
|
|
|
vb->addWidget(new WText("Continue?"),1,Wt::AlignJustify);
|
|
|
|
|
|
bp = new WPushButton("Ok");
|
|
vb->addWidget(bp);
|
|
bp->clicked().connect(dp,&Wt::WDialog::accept);
|
|
|
|
dp->exec();
|
|
delete dp;
|
|
}
|
|
}
|
|
#endif
|
|
// We get a Segmentation fault on the next line.
|
|
Termsim->setHeaderData(0,WString("Name"));
|
|
}
|
|
|
|
|
|
WtWebApplication::~WtWebApplication()
|
|
{
|
|
}
|
|
|
|
|
|
WApplication *createApplication(const WEnvironment& env)
|
|
{
|
|
/*
|
|
* You could read information from the environment to decide whether
|
|
* the user has permission to start a new application
|
|
*/
|
|
return new WtWebApplication(env);
|
|
}
|
|
|
|
|
|
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
return WRun(argc, argv, &createApplication);
|
|
}
|
|
|