Project

General

Profile

RE: WBoxLayout::addStretch (Definite Memory loss is repor... » WUI_Table_View_Form.txt

The Code - Ehsan Mahdavi, 04/28/2016 01:19 PM

 
#ifndef WUI_TABLE_VIEW_H
#define WUI_TABLE_VIEW_H

#include "WUI_TableView.h"
#include "WUI_Form_Dialog.h"

#include <Wt/WDialog>
#include <Wt/WPushButton>
#include <Wt/WVBoxLayout>
#include <Wt/WHBoxLayout>
#include <Wt/WGridLayout>
#include <Wt/WLabel>
#include <Wt/WLabel>
#include <Wt/WBreak>
#include <Wt/WBorder>
#include <Wt/WText>
#include <Wt/Dbo/Dbo>
using namespace Wt;
using namespace Wt::Dbo;


#include <string>
using namespace std;


template <class Result>
class WUI_Table_View_Form : public WContainerWidget
{
/**
* @class DBInterfaceView
* @brief Template class for showing all tables and settings
*/
private:
Wt::WGridLayout * layout_grid_main;
Wt::WContainerWidget * header;
Wt::WHBoxLayout * layout_H_head;
Wt::WContainerWidget * footer;
Wt::WHBoxLayout * layout_h_foot;
Wt::WText * label_dialog_name;
public:
Wt::WPushButton *add;
Wt::WPushButton *remove;
Wt::WPushButton *edit;
WUI_TableView <Result> * contents;
Wt::WPushButton *ok;
Wt::WPushButton *cancel;

/**
* @class WUI_Table_View();
* @brief Default constructor(Does nothing)
*/
WUI_Table_View_Form(){;}
/**
* @fn WUI_Table_View_Form(string dialog_label,Query <Result> * query,bool ok = true ,bool cancel=false)
* @brief Specialized constructor
* It creates the whole form
*/
WUI_Table_View_Form(string dialog_label,Query <Result> * query,bool ok = true ,bool cancel=false)
{
layout_grid_main = new Wt::WGridLayout();
header = new Wt::WContainerWidget();
layout_H_head = new WHBoxLayout();
footer = new Wt::WContainerWidget();
layout_h_foot = new Wt::WHBoxLayout();
label_dialog_name = new Wt::WText();
contents = new WUI_TableView<Result>(query);

this->setOverflow(OverflowHidden);
header->setStyleClass("dialog-head");

this->add = new WPushButton();
add->setIcon("resource/add.png");
this->remove = new WPushButton();
remove->setIcon("resource/remove.png");
this->edit = new WPushButton();
edit->setIcon("resource/edit.png");
this->add->setMaximumSize(48,48);
this->remove->setMaximumSize(48,48);
this->edit->setMaximumSize(48,48);

contents->view->resize(875,300);
contents->resize(875,300);
contents->setMaximumSize(875,300);

layout_H_head->addWidget(add,0);
layout_H_head->addWidget(remove,0);
layout_H_head->addWidget(edit,0);
layout_H_head->addStretch(10);


label_dialog_name->setText(dialog_label);
header->addWidget(label_dialog_name);

layout_grid_main->addWidget(header,1,1);
layout_grid_main->addLayout(layout_H_head,2,1);
layout_grid_main->addWidget(contents,3,1);

setFooter(ok,cancel);

layout_grid_main->setRowStretch(1,0);
layout_grid_main->setRowStretch(2,10);
layout_grid_main->setRowStretch(3,0);
layout_grid_main->setVerticalSpacing(2);

this->setLayout(layout_grid_main);
setMinimumSize(150,400);

return;
}

/**
* @fn Wt::WContainerWidget * getContentsWid(){return this->contents;}
* @brief Makes access to the diaolg contents
*/
Wt::WContainerWidget * getContentsWid(){return this->contents;}

/**
* @fn void setFooter(bool ok, bool cancel)
* @brief Creates the buttom buttons
*
*/
void setFooter(bool ok, bool cancel)
{
this->ok = new Wt::WPushButton("Apply");
this->ok->setDefault(true);
this->ok->setMinimumSize(60,10);
this->cancel = new Wt::WPushButton("Cancel");
this->cancel->setDefault(false);
layout_h_foot->addStretch(10);
if (ok)
{
layout_h_foot->addWidget(this->ok);
}
if(cancel)
{
layout_h_foot->addWidget(this->cancel);
}
footer->setLayout(layout_h_foot);
//footer->setStyleClass("bordered-content");
if(ok||cancel)
{
layout_grid_main->addWidget(footer,4,1);
}
return;
}

/**
* @fn ~WUI_Table_View_Form()
* @brief Default Destructor
*
*/
~WUI_Table_View_Form()
{
// delete this->contents;
// delete this->label_dialog_name;
// delete this->header;
// delete this->add;
// delete this->remove;
// delete this->edit;
// delete this->ok;
// delete this->cancel;
// delete this->layout_H_head;
// delete this->layout_h_foot;
delete this->layout_grid_main;
}
};



#endif // WUI_TABLE_VIEW_H
(1-1/2)