3 #include "MonEditIteration.h"
7 #include "SalomeApp_Tools.h"
8 #include "HOMARDGUI_Utils.h"
9 #include "HomardQtCommun.h"
10 #include <utilities.h>
13 // -------------------------------------------------------------------------------------------------------------------------------------
14 MonEditIteration::MonEditIteration ( QWidget* parent, bool modal,
15 HOMARD::HOMARD_Gen_var myHomardGen,
16 QString IterParentName, QString IterName ):
17 // -------------------------------------------------------------------------------------------------------------------------------------
18 /* Constructs a MonEditIteration
19 herite de MonCreateIteration
21 MonCreateIteration(parent, modal, myHomardGen, IterParentName),
22 _rank(0), _step(0), _IterationName(""), _FieldFile(""),_aTypeAdap()
24 MESSAGE("Debut de MonEditIteration" << IterName.toStdString().c_str());
25 setWindowTitle(QObject::tr("HOM_ITER_EDIT_WINDOW_TITLE"));
26 _IterationName = IterName;
27 aIter = _myHomardGen->GetIteration(_IterationName.toStdString().c_str());
29 // Attention au cas ou c'est une iteration initiale : il faut inhiber l'essentiel
30 int number = aIter->GetNumber() ;
31 if ( number == 0 ) { InitValEdit0(); }
32 else { InitValEdit(); }
34 // ------------------------------
35 MonEditIteration::~MonEditIteration()
36 // ------------------------------
40 // ------------------------------
41 void MonEditIteration::InitValEdit0()
42 // ------------------------------
43 // Cas d'une iteration 0
46 LEIterationName->setText(_IterationName);
47 LEIterationName->setReadOnly(true);
49 // Invisibilite de l'iteration parent
50 Iter_Parent->setVisible(0);
51 PBIterParent->setVisible(0);
52 LEIterationParentName->setVisible(0);
54 // Affichage bloque du nom du maillage de l'iteration courante
55 QString MeshName = aIter->GetMeshName();
56 Mesh_n->setText(QObject::tr("HOM_ITER_STARTING_POINT_0"));
57 LEMeshName_n->setText(MeshName);
58 LEMeshName_n->setReadOnly(1);
61 Mesh_np1->setText(QObject::tr("HOM_ITER_STARTING_POINT_1"));
62 LEMeshName_np1->setVisible(0);
64 // Invisibilite des hypotheses et des champs
65 Hypothese->setVisible(0);
66 GBField->setVisible(0);
70 // ------------------------------
71 void MonEditIteration::InitValEdit()
72 // ------------------------------
73 // Cas d'une iteration > 0
75 // Affichage bloque du nom de l'iteration
76 LEIterationName->setText(_IterationName);
77 LEIterationName->setReadOnly(true);
79 // Affichage bloque du nom de l'iteration parent
80 _IterParentName = aIter->GetIterParent();
81 LEIterationParentName->setText(_IterParentName);
82 LEIterationParentName->setReadOnly(true);
83 PBIterParent->setEnabled(false);
84 PBIterParent->setVisible(0);
86 // Affichage bloque du nom du maillage de l'iteration parent
87 aIterParent = _myHomardGen->GetIteration(_IterParentName.toStdString().c_str());
88 QString MeshNameParent = aIterParent->GetMeshName();
89 LEMeshName_n->setText(MeshNameParent);
90 LEMeshName_n->setReadOnly(1);
92 // Affichage bloque du nom du maillage de l'iteration courante
93 QString MeshName = aIter->GetMeshName();
94 LEMeshName_np1->setText(MeshName);
95 LEMeshName_np1->setReadOnly(1);
97 // Affichage de la bonne hypothese
98 QString HypoName = aIter->GetHypoName();
99 CBHypothese->insertItem(0,HypoName);
100 CBHypothese->setCurrentIndex(0);
101 CBHypothese->setEnabled(false);
102 PBHypoNew->setVisible(0);
104 // Pour une adaptation selon un champ
105 HOMARD::HOMARD_Hypothesis_var myHypo = _myHomardGen->GetHypothesis(HypoName.toStdString().c_str()) ;
106 _aTypeAdap = myHypo->GetAdapType() ;
107 if ( _aTypeAdap == 1 )
109 _FieldFile = aIter->GetFieldFile();
110 LEFieldFile->setText(_FieldFile);
111 _step = aIter->GetTimeStep() ;
112 SpinBox_TimeStep->setValue(_step);
113 _rank = aIter->GetRank() ;
114 SpinBox_Rank->setValue(_rank);
116 // Cas ou on prend le dernier pas de temps ou sans pas de temps
120 SpinBox_Rank->setVisible(0);
121 TimeStep->setVisible(0);
122 SpinBox_TimeStep->setVisible(0);
124 if ( _step == -2 ) { RBLast->setChecked(true); }
125 else { RBNo->setChecked(true); }
128 // Cas avec pas de temps
132 SpinBox_Rank->setVisible(1);
133 TimeStep->setVisible(1);
134 SpinBox_TimeStep->setVisible(1);
135 RBChosen->setChecked(true);
140 GBField->setVisible(0);
146 // -------------------------------------
147 bool MonEditIteration::PushOnApply()
148 // -------------------------------------
150 if ( _aTypeAdap == 1)
152 // Pour du raffinement selon un champ, les instants ont-ils change ?
153 if ( (_FieldFile != LEFieldFile->text().trimmed()) or
154 ( _rank != SpinBox_Rank->value()) or
155 ( _step != SpinBox_TimeStep->value()))
157 _FieldFile = LEFieldFile->text().trimmed();
158 _rank = SpinBox_Rank->value();
159 _step = SpinBox_TimeStep->value();
160 aIter->SetFieldFile(CORBA::string_dup(_FieldFile.toStdString().c_str()));
161 aIter->SetTimeStepRank(_step, _rank);
162 _myHomardGen->InvalideIter(_IterationName.toStdString().c_str());
163 HOMARD_UTILS::updateObjBrowser();