]> AND Private Git Repository - blast.git/blob - ParametersWindow.cpp
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
added impl xsd + patterns in impls
[blast.git] / ParametersWindow.cpp
1 #include "ParametersWindow.h"
2 #include "Parameters.h"
3 #include "BlocksToConfigureWidget.h"
4 #include "BlockParameter.h"
5 #include "AbstractBlock.h"
6
7 ParametersWindow::ParametersWindow(AbstractBlock *_block, Parameters *_params, BlocksToConfigureWidget *btcw, QWidget *parent) :
8     QWidget(parent)
9 {
10     block = _block;
11     confWidget = btcw;
12     params = _params;
13
14     layout = new QGridLayout;
15
16     name = new QLabel;
17     value = new QLineEdit;
18     context = new QLabel;
19     type = new QLabel;
20
21     comboBox = new QComboBox;
22
23     cout << "block has " <<block->getParameters().size() << " params" << endl;
24     foreach(BlockParameter *param, block->getParameters()){
25       comboBox->addItem(param->getName());
26     }
27     connect(comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateData()));
28     updateData();
29
30     saveButton = new QPushButton("Save");
31     connect(saveButton, SIGNAL(clicked()), this, SLOT(save()));
32
33     layout->addWidget(new QLabel("Parameters"), 0, 0);
34     layout->addWidget(comboBox, 0, 1);
35
36     layout->addWidget(new QLabel(" "), 1, 0);
37
38     layout->addWidget(new QLabel("Name"), 2, 0);
39     layout->addWidget(name, 2, 1);
40     layout->addWidget(new QLabel("Value"), 3, 0);
41     layout->addWidget(value, 3, 1);
42     layout->addWidget(new QLabel("Context"), 4, 0);
43     layout->addWidget(context, 4, 1);
44     layout->addWidget(new QLabel("Type"), 5, 0);
45     layout->addWidget(type, 5, 1);
46
47     layout->addWidget(saveButton, 6, 0);
48
49     this->setLayout(layout);
50
51     show();
52 }
53
54 void ParametersWindow::updateData()
55 {
56   BlockParameter *param = block->getParameters().at(comboBox->currentIndex());
57   name->setText(param->getName());
58   value->setText(param->getValue().toString());
59   context->setText(param->getContext());
60   type->setText(param->getTypeString());
61 }
62
63 void ParametersWindow::save()
64 {
65   BlockParameter *param = block->getParameters().at(comboBox->currentIndex());
66   param->setValue(value->text());  
67
68   //params->parametersValidation();
69   if(confWidget != NULL){
70     confWidget->updateBlocksList();
71   }
72   close();
73 }