Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYInfrastructureWidget.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) <2012> <EDF-R&D> <FRANCE>
3  * This program is free software; you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License as published by
5  * the Free Software Foundation; either version 2 of the License, or
6  * (at your option) any later version.
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10  * See the GNU General Public License for more details.
11  * You should have received a copy of the GNU General Public License along
12  * with this program; if not, write to the Free Software Foundation, Inc.,
13  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
14  */
15 
25 #include <qmenu.h>
26 // Added by qt3to4:
27 #include <QGridLayout>
28 #include <QTreeWidget>
29 #include <QTreeWidgetItem>
30 #include <QHeaderView>
31 
32 #include "TYInfrastructureWidget.h"
33 
34 #define TR(id) OLocalizator::getString("TYInfrastructureWidget", (id))
35 
37  : TYWidget(pElement, _pParent)
38 {
39 
40  _elmW = new TYElementWidget(pElement, this);
41  resize(300, 620);
42  setWindowTitle(TR("id_caption"));
43  _infrastructureLayout = new QGridLayout();
44  setLayout(_infrastructureLayout);
45 
46  _infrastructureLayout->addWidget(_elmW, 0, 0);
47 
48  _groupBox = new QGroupBox(this);
49  _groupBox->setTitle(TR("id_tabmachinerepere_box"));
50  _groupBoxLayout = new QGridLayout();
51  _groupBox->setLayout(_groupBoxLayout);
52 
53  _listViewList = new QTreeWidget(_groupBox);
54  _listViewList->setColumnCount(2);
55  QStringList stringList;
56  stringList.append(TR(""));
57  stringList.append(TR("id_machine"));
58  _listViewList->setHeaderLabels(stringList);
59  _listViewList->setRootIsDecorated(true);
60 
61  _groupBoxLayout->addWidget(_listViewList, 0, 0);
62 
63  _infrastructureLayout->addWidget(_groupBox, 1, 0);
64 
65  _groupBox_3 = new QGroupBox(this);
66  _groupBox_3->setTitle(TR("id_tabrestransprepere_box"));
67  _groupBox_3Layout = new QGridLayout();
68  _groupBox_3->setLayout(_groupBox_3Layout);
69 
70  _listViewList_6 = new QTreeWidget(_groupBox_3);
71  _listViewList_6->setColumnCount(2);
72  QStringList stringList6;
73  stringList6.append(TR(""));
74  stringList6.append(TR("id_restransp"));
75  _listViewList_6->setHeaderLabels(stringList6);
76  _listViewList_6->setRootIsDecorated(true);
77 
78  _groupBox_3Layout->addWidget(_listViewList_6, 0, 0);
79 
80  _infrastructureLayout->addWidget(_groupBox_3, 3, 0);
81 
82  _groupBox_4 = new QGroupBox(this);
83  _groupBox_4->setTitle(TR("id_tabrouterepere_box"));
84  _groupBox_4Layout = new QGridLayout();
85  _groupBox_4->setLayout(_groupBox_4Layout);
86 
87  _listViewList_7 = new QTreeWidget(_groupBox_4);
88  _listViewList_7->setColumnCount(2);
89  QStringList stringList7;
90  stringList7.append(TR(""));
91  stringList7.append(TR("id_route"));
92  _listViewList_7->setHeaderLabels(stringList7);
93  _listViewList_7->setRootIsDecorated(true);
94 
95  _groupBox_4Layout->addWidget(_listViewList_7, 0, 0);
96 
97  _infrastructureLayout->addWidget(_groupBox_4, 4, 0);
98 
99  _groupBox_2 = new QGroupBox(this);
100  _groupBox_2->setTitle(TR("id_tabbatimentrepere_box"));
101  _groupBox_2Layout = new QGridLayout();
102  _groupBox_2->setLayout(_groupBox_2Layout);
103 
104  _listViewList_5 = new QTreeWidget(_groupBox_2);
105  _listViewList_5->setColumnCount(2);
106  QStringList stringList5;
107  stringList5.append(TR(""));
108  stringList5.append(TR("id_batiment"));
109  _listViewList_5->setHeaderLabels(stringList5);
110  _listViewList_5->setRootIsDecorated(true);
111 
112  _groupBox_2Layout->addWidget(_listViewList_5, 0, 0);
113 
114  _infrastructureLayout->addWidget(_groupBox_2, 2, 0);
115 
116  _groupBox_1 = new QGroupBox(this);
117  _groupBox_1->setTitle(TR("id_tabsource_box"));
118  _groupBox_1Layout = new QGridLayout();
119  _groupBox_1->setLayout(_groupBox_1Layout);
120 
121  _listViewList_4 = new QTreeWidget(_groupBox_1);
122  _listViewList_4->setColumnCount(2);
123  QStringList stringList4;
124  stringList4.append(TR(""));
125  stringList4.append(TR("id_source"));
126  _listViewList_4->setHeaderLabels(stringList4);
127  _listViewList_4->setRootIsDecorated(true);
128 
129  _groupBox_1Layout->addWidget(_listViewList_4, 0, 0);
130 
131  _infrastructureLayout->addWidget(_groupBox_1, 5, 0);
132 
133  updateContent();
134 }
135 
137 
139 {
140  unsigned int i = 0;
141  _elmW->updateContent();
142 
143  _listViewList_5->clear();
144  for (i = 0; i < getElement()->getListBatiment().size(); i++)
145  {
146  QTreeWidgetItem* item = new QTreeWidgetItem(_listViewList_5);
147  item->setText(0, QString().setNum(i));
148  item->setText(1, getElement()->getListBatiment()[i]->getElement()->getName());
149  }
150 
151  _listViewList->clear();
152  for (i = 0; i < getElement()->getListMachine().size(); i++)
153  {
154  QTreeWidgetItem* item = new QTreeWidgetItem(_listViewList);
155  item->setText(0, QString().setNum(i));
156  item->setText(1, getElement()->getListMachine()[i]->getElement()->getName());
157  }
158 
159  _listViewList_6->clear();
160  for (i = 0; i < getElement()->getListResTrans().size(); i++)
161  {
162  QTreeWidgetItem* item = new QTreeWidgetItem(_listViewList_6);
163  item->setText(0, QString().setNum(i));
164  item->setText(1, getElement()->getListResTrans()[i]->getElement()->getName());
165  }
166 #if WITH_NMPB
167  _listViewList_7->clear();
168  for (i = 0; i < getElement()->getListRoute().size(); i++)
169  {
170  QTreeWidgetItem* item = new QTreeWidgetItem(_listViewList_7);
171  item->setText(0, QString().setNum(i));
172  item->setText(1, getElement()->getListRoute()[i]->getElement()->getName());
173  }
174 #endif
175 
176  _listViewList_4->clear();
177  for (i = 0; i < getElement()->getSrcs().size(); i++)
178  {
179  QTreeWidgetItem* item = new QTreeWidgetItem(_listViewList_4);
180  item->setText(0, QString().setNum(i));
181  item->setText(1, getElement()->getSrcs()[i]->getElement()->getName());
182  }
183 }
184 
186 {
187  _elmW->apply();
188 
189  emit modified();
190 }
191 
192 void TYInfrastructureWidget::editBatiment(QTreeWidgetItem* item)
193 {
194  int ret = getElement()->getListBatiment()[item->text(0).toInt()]->getElement()->edit(this);
195 
196  if (ret == QDialog::Accepted)
197  {
198  _listViewList_5->clear();
199  for (unsigned int i = 0; i < getElement()->getListBatiment().size(); i++)
200  {
201  QTreeWidgetItem* item = new QTreeWidgetItem(_listViewList_5);
202  item->setText(0, QString().setNum(i));
203  item->setText(1, getElement()->getListBatiment()[i]->getElement()->getName());
204  }
205  }
206 }
207 
208 void TYInfrastructureWidget::editMachine(QTreeWidgetItem* item)
209 {
210  int ret = getElement()->getListMachine()[item->text(0).toInt()]->getElement()->edit(this);
211 
212  if (ret == QDialog::Accepted)
213  {
214  _listViewList->clear();
215  for (unsigned int i = 0; i < getElement()->getListMachine().size(); i++)
216  {
217  QTreeWidgetItem* item = new QTreeWidgetItem(_listViewList);
218  item->setText(0, QString().setNum(i));
219  item->setText(1, getElement()->getListMachine()[i]->getElement()->getName());
220  }
221  }
222 }
223 
224 void TYInfrastructureWidget::editResTransp(QTreeWidgetItem* item)
225 {
226  int ret = getElement()->getListResTrans()[item->text(0).toInt()]->getElement()->edit(this);
227 
228  if (ret == QDialog::Accepted)
229  {
230  _listViewList_6->clear();
231  for (unsigned int i = 0; i < getElement()->getListResTrans().size(); i++)
232  {
233  QTreeWidgetItem* item = new QTreeWidgetItem(_listViewList_6);
234  item->setText(0, QString().setNum(i));
235  item->setText(1, getElement()->getListResTrans()[i]->getElement()->getName());
236  }
237  }
238 }
239 
240 #if WITH_NMPB
241 void TYInfrastructureWidget::editRoute(QTreeWidgetItem* item)
242 {
243  int ret = getElement()->getListRoute()[item->text(0).toInt()]->getElement()->edit(this);
244 
245  if (ret == QDialog::Accepted)
246  {
247  _listViewList_7->clear();
248  for (unsigned int i = 0; i < getElement()->getListRoute().size(); i++)
249  {
250  QTreeWidgetItem* item = new QTreeWidgetItem(_listViewList_7);
251  item->setText(0, QString().setNum(i));
252  item->setText(1, getElement()->getListRoute()[i]->getElement()->getName());
253  }
254  }
255 }
256 #endif
257 
258 void TYInfrastructureWidget::editSource(QTreeWidgetItem* item)
259 {
260  int ret = getElement()->getSrcs()[item->text(0).toInt()]->getElement()->edit(this);
261 
262  if (ret == QDialog::Accepted)
263  {
264  _listViewList_4->clear();
265  for (unsigned int i = 0; i < getElement()->getSrcs().size(); i++)
266  {
267  QTreeWidgetItem* item = new QTreeWidgetItem(_listViewList_4);
268  item->setText(0, QString().setNum(i));
269  item->setText(1, getElement()->getSrcs()[i]->getElement()->getName());
270  }
271  }
272 }
273 
275 {
276  // si on trouve un item associe
277  QPoint point = _listViewList->mapFrom(this, e->pos());
278  QTreeWidgetItem* item = _listViewList->itemAt(point.x(), point.y() - _listViewList->header()->height());
279  QPoint point4 = _listViewList_4->mapFrom(this, e->pos());
280  QTreeWidgetItem* item4 =
281  _listViewList_4->itemAt(point4.x(), point4.y() - _listViewList_4->header()->height());
282  QPoint point5 = _listViewList_5->mapFrom(this, e->pos());
283  QTreeWidgetItem* item5 =
284  _listViewList_5->itemAt(point5.x(), point5.y() - _listViewList_5->header()->height());
285  QPoint point6 = _listViewList_6->mapFrom(this, e->pos());
286  QTreeWidgetItem* item6 =
287  _listViewList_6->itemAt(point6.x(), point6.y() - _listViewList_6->header()->height());
288  QPoint point7 = _listViewList_7->mapFrom(this, e->pos());
289  QTreeWidgetItem* item7 =
290  _listViewList_7->itemAt(point7.x(), point7.y() - _listViewList_7->header()->height());
291  if ((item != NULL) || (item4 != NULL) || (item5 != NULL) || (item6 != NULL) || (item7 != NULL))
292  {
293  QMenu* pMenu = new QMenu(this);
294 
295  QAction* prop = pMenu->addAction(TR("id_property"));
296  if (item != NULL)
297  {
298  QAction* ret = pMenu->exec(_listViewList->mapToGlobal(point));
299  if ((ret) && (ret == prop))
300  {
301  editMachine(item);
302  }
303  }
304  else if (item4 != NULL)
305  {
306  QAction* ret = pMenu->exec(_listViewList_4->mapToGlobal(point4));
307  if ((ret) && (ret == prop))
308  {
309  editSource(item4);
310  }
311  }
312  else if (item5 != NULL)
313  {
314  QAction* ret = pMenu->exec(_listViewList_5->mapToGlobal(point5));
315  if ((ret) && (ret == prop))
316  {
317  editBatiment(item5);
318  }
319  }
320  else if (item6 != NULL)
321  {
322  QAction* ret = pMenu->exec(_listViewList_6->mapToGlobal(point6));
323  if ((ret) && (ret == prop))
324  {
325  editResTransp(item6);
326  }
327  }
328 #if WITH_NMPB
329  else if (item7 != NULL)
330  {
331  QAction* ret = pMenu->exec(_listViewList_7->mapToGlobal(point7));
332  if ((ret) && (ret == prop))
333  {
334  editRoute(item7);
335  }
336  }
337 #endif
338  }
339 }
#define TR(id)
Outil IHM pour une infrastructure (fichier header)
classe de l'objet IHM pour un element
virtual void apply()
virtual void updateContent()
virtual void contextMenuEvent(QContextMenuEvent *e)
void editMachine(QTreeWidgetItem *item)
TYInfrastructureWidget(TYInfrastructure *pElement, QWidget *_pParent=NULL)
void editResTransp(QTreeWidgetItem *item)
void editBatiment(QTreeWidgetItem *item)
void editSource(QTreeWidgetItem *item)
classe de l'objet IHM pour un objet metier de type TYElement
Definition: TYWidget.h:43
void modified()