Code_TYMPAN  4.4.0
Industrial site acoustic simulation
TYResultatWidget.h
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 
22 #ifndef __TY_RESULTAT_WIDGET__
23 #define __TY_RESULTAT_WIDGET__
24 
25 #include <qwidget.h>
26 // Added by qt3to4:
27 #include <QGridLayout>
28 #include <QLabel>
29 #include "TYWidget.h"
30 
31 class TYResultat;
32 class TYLineEdit;
33 class QGridLayout;
34 class QLabel;
35 class QGroupBox;
36 class QPushButton;
37 class QTableWidget;
38 class QTableWidgetItem;
39 class QComboBox;
40 class TYElementWidget;
41 class QRadioButton;
42 class QButtonGroup;
43 class QPrinter;
44 class TYSpectre;
45 class OSpectre;
46 class TYCalcul;
47 
48 #include <string>
49 
50 typedef struct
51 {
52  int indice;
53  double resultat;
54  std::string name;
55 } TYStructIndiceResultat; // Utilise pour trier les resultats
56 
62 class TYResultatWidget : public TYWidget
63 {
64  Q_OBJECT
65 
67 
68  // Methodes
69 public:
73  TYResultatWidget(TYResultat* pElement, QWidget* _pParent = NULL);
77  virtual ~TYResultatWidget();
78 
82  void sortRes(int col);
83 
87  void sortName();
88 
92  void initTabSort(int col = 1);
93 
97  void showContribTreeDialog(int col);
98 
99 private:
102  void updateHeaderLabel();
103 
104 public slots:
105  virtual void updateContent();
106  virtual void apply();
107 
111  void changeSubstCalcul(int calcul);
112 
116  void updateTable();
117 
121  void exportSpectre();
122 
126  void exportExcel();
127 
131  void print();
132 
136  void changeAffichage(int select);
137 
139  void changeOperation(int select);
140 
145 
146 protected slots:
150  virtual void contextMenuEvent(QContextMenuEvent* e);
151 
153  virtual void setFrequency(int freq);
154 
155  void sortCol(int col);
156 
157 private:
159  void decorsSynthese(QTableWidgetItem* pItem, const int& row, const int& col, const bool& valid,
160  OSpectre& spectre1, OSpectre& spectre2);
161  void decorsContributions(QTableWidgetItem* pItem, const int& row, const int& col, const bool& valid,
162  OSpectre& spectre1, OSpectre& spectre2);
163 
164  TYSpectre getPuissanceElem(const unsigned int& i);
166 
168  void affichageCellule(const int& row, const int& col, TYCalcul* pCalcOp = NULL);
169 
171  void setCellAttributs(const int& row, const int& col, const OSpectre& spectre);
172 
173  // methode a remplir par Denis Thomasson
174  bool isPresenceTonaliteMarquee(const OSpectre& spectre);
175 
178  {
181  DBFREQ
182  };
183 
186  {
190  };
191 
193  void updateFreqList();
194 
196  void findMaxima();
197 
199  double resuAffichage(OSpectre& spectre1, OSpectre& spectre2, bool& valid, const int& typeCase);
200 
202  OSpectre resuSpectre(OSpectre& spectre1, OSpectre& spectre2, const int& typeCase);
203 
205  OSpectre getSpectre(const int& row, const int& col, TYCalcul* pCalcul);
206 
207  // Membres
208 protected:
209  QGridLayout* _resultatLayout;
210  QTableWidget* _pTable;
211 
212  // Choix de l'affichage dBA, dBLin ou par frequence
213  QRadioButton* _radioButtonDBA;
214  QRadioButton* _radioButtonDBLIN;
215  QRadioButton* _radioButtonDBFRQ;
216 
218  QComboBox* _comboBoxFreq;
219 
222 
224  QButtonGroup* _buttonGroupOperation;
225  QRadioButton* _radioButtonNoOp; // Pas d'operation
226  QRadioButton* _radioButtonDelta; // Difference entre les deux resultats
227  QRadioButton* _radioButtonEmergence; // Emergence par rapport a bruit de fond
228  QRadioButton* _radioButtonAmbiant; // Bruit ambiant
229 
230  // Choix du calcul associe au resultat
232 
233  // Capacite d'impression
234  QPrinter* _printer;
235 
236  // Export EXCEL
237  QPushButton* _pButtonExport;
238  QPushButton* _pButtonExportSpectre;
239 
242 
245 
247  double _freq;
248 
250  unsigned int _nbSources;
251  unsigned int _nbRecepteurs;
252 
254  unsigned int _nbLignes;
255  unsigned int _nbColonnes;
256 
258  double* _max;
259 
264 };
265 
266 #endif // __TY_RESULTAT_WIDGET__
outil IHM pour un objet metier de type TYElement (fichier header)
#define TY_DECL_METIER_WIDGET(classname)
Definition: TYWidget.h:31
Calculation program.
Definition: TYCalcul.h:50
classe de l'objet IHM pour un element
classe de l'objet IHM pour un resultat
void slotContributionLineEditChanged()
void findMaxima()
Recherche des maxima de contribution pour chaque recepteur.
OSpectre resuSpectre(OSpectre &spectre1, OSpectre &spectre2, const int &typeCase)
Calcul du spectre en fonction du contexte (option de calcul)
QRadioButton * _radioButtonDelta
unsigned int _nbLignes
Nombre de ligne, de colonnes.
virtual void updateContent()
QRadioButton * _radioButtonDBLIN
QGridLayout * _resultatLayout
int _choixOperation
Type d'operation choisie.
virtual void setFrequency(int freq)
CHangement de la frequence de travail.
double _freq
Frequence de travail.
void sortCol(int col)
unsigned int _nbColonnes
double resuAffichage(OSpectre &spectre1, OSpectre &spectre2, bool &valid, const int &typeCase)
Calcul du contenu de la cellule en fonction du contexte (option de calcul)
QRadioButton * _radioButtonAmbiant
void updateFreqList()
Remplissage du combo des frequences.
void sortRes(int col)
void changeAffichage(int select)
QTableWidget * _pTable
QRadioButton * _radioButtonNoOp
TYCalcul * getSelectedSubstCalcul()
void changeSubstCalcul(int calcul)
QPushButton * _pButtonExportSpectre
QRadioButton * _radioButtonEmergence
QPushButton * _pButtonExport
void decorsSynthese(QTableWidgetItem *pItem, const int &row, const int &col, const bool &valid, OSpectre &spectre1, OSpectre &spectre2)
Coloration de la cellule en fonction du contexte pour la synthese, pour le reste du tableau.
void initTabSort(int col=1)
void decorsContributions(QTableWidgetItem *pItem, const int &row, const int &col, const bool &valid, OSpectre &spectre1, OSpectre &spectre2)
TYSpectre getPuissanceElem(const unsigned int &i)
int _choixAffichage
Mode d'affichage (dBA, dBLin, dB(f))
OSpectre getSpectre(const int &row, const int &col, TYCalcul *pCalcul)
Recherche du spectre associe a une ligne et une colonne pour un calcul.
virtual void contextMenuEvent(QContextMenuEvent *e)
void showContribTreeDialog(int col)
TYStructIndiceResultat * _tabSortedRes
unsigned int _nbRecepteurs
bool isPresenceTonaliteMarquee(const OSpectre &spectre)
typeCellule
Different type de cellule.
QRadioButton * _radioButtonDBFRQ
TYLineEdit * _pContributionLineEdit
void affichageCellule(const int &row, const int &col, TYCalcul *pCalcOp=NULL)
Affichage du contenu de la cellule.
unsigned int _nbSources
Nombre de sources, de recepteurs.
QComboBox * _comboBoxFreq
Combo pour le choix de la frequence de travail.
QComboBox * _comboBoxSubstCalcul
double * _max
Tableau des maxima par colonne.
QRadioButton * _radioButtonDBA
virtual void apply()
QButtonGroup * _buttonGroupOperation
Choix du type de calcul.
void changeOperation(int select)
Changement du type d'operation.
void setCellAttributs(const int &row, const int &col, const OSpectre &spectre)
Definition des attributs d'une cellule (couleur de fond, police)
TYResultatWidget(TYResultat *pElement, QWidget *_pParent=NULL)
optionsAffichage
Differents etats possibles de l'affichage (pourra etre complete ulterieurement)
Classe qui Permet de centraliser les resultats d'un calcul acoustique.
Definition: TYResultat.h:48
classe de l'objet IHM pour un objet metier de type TYElement
Definition: TYWidget.h:43