#include "formdialog.h"
#include "ui_formdialog.h"
#include <QMessageBox>

FormDialog::FormDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::FormDialog)
{
    ui->setupUi(this);
    m_formSet = false;
    m_form = NULL;
}

FormDialog::~FormDialog()
{
    delete ui;
}

void FormDialog::setForm(IForm *formWidget)
{
    if (m_form == NULL)
    {
        ui->verticalLayout->addWidget(formWidget);
        m_form = formWidget;
        connect(m_form, SIGNAL(validationError(QString)), this, SLOT(onValidationError(QString)));
        setGeometry(formWidget->geometry());
    }
}

void FormDialog::onValidationError(const QString &message)
{
    QMessageBox::critical(this, tr("Validation error"), tr(message.toStdString().c_str()));
}

void FormDialog::accept()
{
    if (m_form->saveRecord())
    {
        QDialog::accept();
    }
}

void FormDialog::reject()
{
    m_form->refresh();
    QDialog::reject();
}
