3 #include "MonEditCase.h"
5 #include "SalomeApp_Tools.h"
6 #include "HOMARDGUI_Utils.h"
7 #include "HomardQtCommun.h"
11 // -------------------------------------------------------------
12 MonEditCase::MonEditCase ( QWidget* parent, bool modal,
13 HOMARD::HOMARD_Gen_var myHomardGen,
15 // -------------------------------------------------------------
16 /* Constructs a MonEditCase
17 herite de MonCreateCase
19 MonCreateCase(parent, modal, myHomardGen)
21 MESSAGE("Debut de MonEditCase" << CaseName.toStdString().c_str());
22 setWindowTitle(QObject::tr("HOM_CASE_EDIT_WINDOW_TITLE"));
23 _aCaseName = CaseName;
24 aCase = _myHomardGen->GetCas(_aCaseName.toStdString().c_str());
27 // ------------------------------
28 MonEditCase::~MonEditCase()
29 // ------------------------------
34 // ------------------------------
35 void MonEditCase::InitValEdit()
36 // ------------------------------
38 MESSAGE("Debut de MonEditCase::InitValEdit");
39 LECaseName->setText(_aCaseName);
40 LECaseName->setReadOnly(true);
42 QString aDirName = aCase->GetDirName();
43 LEDirName->setText(aDirName);
44 LEDirName->setReadOnly(true);
45 PushDir->setVisible(0);
47 QString _aitername=aCase->GetIter0Name();
48 HOMARD::HOMARD_Iteration_var aIter = _myHomardGen->GetIteration(_aitername.toStdString().c_str());
49 QString aFileName = aIter->GetMeshFile();
50 LEFileName->setText(aFileName);
51 LEFileName->setReadOnly(true);
52 PushFichier->setVisible(0);
54 int ConfType=aCase->GetConfType();
57 GBTypeNoConf->setVisible(0);
58 RBConforme->setChecked(true);
62 RBNonConforme->setChecked(true);
63 GBTypeNoConf->setVisible(1);
64 RB1NpM->setEnabled(false);
65 RB1NpA->setEnabled(false);
66 RBQuelconque->setEnabled(false);
69 if (_ConfType==2) { RB1NpM->setChecked(true);};
70 if (_ConfType==3) { RB1NpA->setChecked(true);};
71 if (_ConfType==4) { RBQuelconque->setChecked(true);};
73 RBNonConforme->setEnabled(false);
74 RBConforme->setEnabled(false);
76 // Non affichage du mode de suivi de frontiere
77 CBBoundaryA->setVisible(0);
78 GBBoundaryA->setVisible(0);
79 CBBoundaryD->setVisible(0);
80 GBBoundaryD->setVisible(0);
82 // On passe en revue tous les couples (frontiere,groupe) du cas
83 HOMARD::ListBoundaryGroupType_var mesBoundarys = aCase->GetBoundaryGroup();
84 if (mesBoundarys->length()>0)
86 QStringList ListeFron ;
90 for (int i=0; i<mesBoundarys->length(); i++)
92 // Nom de la frontiere
93 NomFron = mesBoundarys[i++];
94 MESSAGE("NomFron "<<NomFron.toStdString().c_str());
95 // L'objet associe pour en deduire le type
96 HOMARD::HOMARD_Boundary_var myBoundary = _myHomardGen->GetBoundary(NomFron.toStdString().c_str());
97 int type_obj = myBoundary->GetBoundaryType() ;
99 // C'est une frontiere discrete
100 // Rermarque : on ne gere pas les groupes
104 CBBoundaryDi->addItem(NomFron);
107 // C'est une frontiere analytique
111 int nbcol = TWBoundary->columnCount();
112 // On ajoute une ligne pour le groupe
113 TWBoundary->insertRow(0);
114 // La colonne 0 comporte le nom du groupe
115 TWBoundary->setItem( 0, 0, new QTableWidgetItem(QString(mesBoundarys[i]).trimmed()));
116 // TWBoundary->item( 0, 0 )->setFlags(Qt::ItemIsEnabled |Qt::ItemIsSelectable );
117 // Chacune des colonnes suivantes est associé a une frontiere deja presente : on y met une
119 for ( int j = 1; j < nbcol; j++ )
121 TWBoundary->setItem( 0, j, new QTableWidgetItem( QString ("") ) );
122 TWBoundary->item( 0, j )->setFlags( 0 );
123 TWBoundary->item( 0, j )->setFlags( Qt::ItemIsUserCheckable );
124 TWBoundary->item( 0, j )->setCheckState( Qt::Unchecked );
126 // On cherche si la frontiere en cours d'examen a deja ete rencontree :
127 // si oui, on stocke son numero de colonne
129 for ( int nufr = 0 ; nufr<ListeFron.size(); nufr++)
131 if ( ListeFron[nufr] == NomFron ) ok = nufr+1 ;
133 // si non, on ajoute une colonne
136 ListeFron.append(NomFron);
137 ok = ListeFron.size() ;
138 addBoundaryAn(NomFron);
140 // on coche la case correspondant au couple (frontiere,groupe) en cours d'examen
141 TWBoundary->item( 0, ok )->setCheckState( Qt::Checked );
144 MESSAGE("BounDi "<<BounDi<<", BounAn "<<BounAn);
146 { GBBoundaryA->setVisible(1);
147 // on rend les cases inactives. On ne peut pas le faire pour le tableau sinon on perd l'ascenseur !
148 int nbcol = TWBoundary->columnCount();
149 int nbrow = TWBoundary->rowCount();
150 for ( int i = 0; i < nbrow; i++ )
151 { for ( int j = 0; j < nbcol; j++ ) TWBoundary->item( i, j )->setFlags( !Qt::ItemIsEnabled ); }
152 // on met un nom blanc au coin
153 QTableWidgetItem *__colItem = new QTableWidgetItem();
154 __colItem->setText(QApplication::translate("CreateCase", "", 0, QApplication::UnicodeUTF8));
155 TWBoundary->setHorizontalHeaderItem(0, __colItem);
156 // on cache le bouton New
157 PBBoundaryAnNew->setVisible(0);
160 { GBBoundaryD->setVisible(1);
161 CBBoundaryDi->setDisabled(true);
162 PBBoundaryDiNew->setVisible(0);}
166 // -------------------------------------
167 bool MonEditCase::PushOnApply()
168 // -------------------------------------