-// Copyright (C) 2011-2013 CEA/DEN, EDF R&D
+// Copyright (C) 2011-2023 CEA, EDF
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
//
#include "MonCreateCase.h"
+#include "MonCreateBoundaryCAO.h"
+#include "MonEditBoundaryCAO.h"
#include "MonCreateBoundaryAn.h"
#include "MonEditBoundaryAn.h"
#include "MonCreateBoundaryDi.h"
#include "MonEditBoundaryDi.h"
+#include "HOMARD.hxx"
#include <QFileDialog>
#include <QMessageBox>
* Sets attributes to default values
*/
// -----------------------------------------------------------------------------------------
-MonCreateCase::MonCreateCase( bool modal, HOMARD::HOMARD_Gen_var myHomardGen0)
+MonCreateCase::MonCreateCase( bool modal, HOMARD::HOMARD_Gen_var myHomardGen0 )
:
Ui_CreateCase(),
_aCaseName(""),_aDirName(""),
- _ConfType(1),
+ _ConfType(0),
+ _ExtType(0),
_Pyram(0)
{
MESSAGE("Debut du constructeur de MonCreateCase");
InitConnect();
SetNewName() ;
+
+ GBBoundaryC->setVisible(0);
GBBoundaryA->setVisible(0);
GBBoundaryD->setVisible(0);
- GBTypeNoConf->setVisible(0);
+
+ CBBoundaryA->setVisible(0);
+ CBBoundaryD->setVisible(0);
+
GBAdvancedOptions->setVisible(0);
Comment->setVisible(0);
CBPyramid->setChecked(false);
-
+//
adjustSize();
- MESSAGE("Fin du constructeur de MonCreateCase");
+
+// MESSAGE("Fin du constructeur de MonCreateCase");
}
// ------------------------------------------------------------------------
MonCreateCase::~MonCreateCase()
void MonCreateCase::InitConnect()
// ------------------------------------------------------------------------
{
- connect( LEName, SIGNAL(textChanged(QString)), this, SLOT(CaseNameChanged()));
- connect( PushDir, SIGNAL(pressed()), this, SLOT(SetDirName()));
- connect( PushFichier, SIGNAL(pressed()), this, SLOT(SetFileName()));
+ connect( LEName, SIGNAL(textChanged(QString)), this, SLOT(CaseNameChanged()));
+ connect( PushDir, SIGNAL(pressed()), this, SLOT(SetDirName()));
+ connect( PushFichier, SIGNAL(pressed()), this, SLOT(SetFileName()));
connect( RBConforme, SIGNAL(clicked()), this, SLOT(SetConforme()));
connect( RBNonConforme, SIGNAL(clicked()), this, SLOT(SetNonConforme()));
- connect( RB1NpM, SIGNAL(clicked()), this, SLOT(Set1NpM()));
- connect( RB1NpA, SIGNAL(clicked()), this, SLOT(Set1NpA()));
- connect( RBQuelconque, SIGNAL(clicked()), this, SLOT(SetQuelconque()));
- connect( CBBoundaryD, SIGNAL(stateChanged(int)), this, SLOT(SetBoundaryD()));
- connect( PBBoundaryDiNew, SIGNAL(pressed()), this, SLOT(PushBoundaryDiNew()));
- connect( PBBoundaryDiEdit, SIGNAL(pressed()), this, SLOT(PushBoundaryDiEdit()) );
- connect( PBBoundaryDiHelp, SIGNAL(pressed()), this, SLOT(PushBoundaryDiHelp()) );
- connect( CBBoundaryA, SIGNAL(stateChanged(int)), this, SLOT(SetBoundaryA()));
- connect( PBBoundaryAnNew, SIGNAL(pressed()), this, SLOT(PushBoundaryAnNew()));
- connect( PBBoundaryAnEdit, SIGNAL(pressed()), this, SLOT(PushBoundaryAnEdit()) );
- connect( PBBoundaryAnHelp, SIGNAL(pressed()), this, SLOT(PushBoundaryAnHelp()) );
+ connect( RBBoundaryNo, SIGNAL(clicked()), this, SLOT(SetBoundaryNo()));
+ connect( RBBoundaryCAO, SIGNAL(clicked()), this, SLOT(SetBoundaryCAO()));
+ connect( RBBoundaryNonCAO, SIGNAL(clicked()), this, SLOT(SetBoundaryNonCAO()));
+
+ connect( PBBoundaryCAONew, SIGNAL(pressed()), this, SLOT(PushBoundaryCAONew()));
+ connect( PBBoundaryCAOEdit, SIGNAL(pressed()), this, SLOT(PushBoundaryCAOEdit()) );
+ connect( PBBoundaryCAOHelp, SIGNAL(pressed()), this, SLOT(PushBoundaryCAOHelp()) );
+ connect( CBBoundaryD, SIGNAL(stateChanged(int)), this, SLOT(SetBoundaryD()));
+ connect( PBBoundaryDiNew, SIGNAL(pressed()), this, SLOT(PushBoundaryDiNew()));
+ connect( PBBoundaryDiEdit, SIGNAL(pressed()), this, SLOT(PushBoundaryDiEdit()) );
+ connect( PBBoundaryDiHelp, SIGNAL(pressed()), this, SLOT(PushBoundaryDiHelp()) );
+ connect( CBBoundaryA, SIGNAL(stateChanged(int)), this, SLOT(SetBoundaryA()));
+ connect( PBBoundaryAnNew, SIGNAL(pressed()), this, SLOT(PushBoundaryAnNew()));
+ connect( PBBoundaryAnEdit, SIGNAL(pressed()), this, SLOT(PushBoundaryAnEdit()) );
+ connect( PBBoundaryAnHelp, SIGNAL(pressed()), this, SLOT(PushBoundaryAnHelp()) );
connect( CBAdvanced, SIGNAL(stateChanged(int)), this, SLOT(SetAdvanced()));
+ connect( RBStandard, SIGNAL(clicked()), this, SLOT(SetStandard()));
+ connect( RBBox, SIGNAL(clicked()), this, SLOT(SetBox()));
+ connect( RBNC1NpA, SIGNAL(clicked()), this, SLOT(SetNC1NpA()));
+ connect( RBNCQuelconque, SIGNAL(clicked()), this, SLOT(SetNCQuelconque()));
+
+ connect( RBMED, SIGNAL(clicked()), this, SLOT(SetMED()));
+ connect( RBSaturne, SIGNAL(clicked()), this, SLOT(SetSaturne()));
+ connect( RBSaturne2D, SIGNAL(clicked()), this, SLOT(SetSaturne2D()));
connect( buttonOk, SIGNAL(pressed()), this, SLOT(PushOnOK()));
- connect( buttonApply, SIGNAL(pressed()), this, SLOT(PushOnApply()));
+ connect( buttonApply, SIGNAL(pressed()), this, SLOT(PushOnApply(0)));
connect( buttonCancel, SIGNAL(pressed()), this, SLOT(close()));
connect( buttonHelp, SIGNAL(pressed()), this, SLOT(PushOnHelp()));
}
// Pour les frontieres analytiques : la colonne des groupes
HOMARD::ListGroupType_var _listeGroupesCas = aCase->GetGroups();
QTableWidgetItem *__colItem = new QTableWidgetItem();
- __colItem->setText(QApplication::translate("CreateCase", "", 0, QApplication::UnicodeUTF8));
+ __colItem->setText(QApplication::translate("CreateCase", "", 0));
TWBoundary->setHorizontalHeaderItem(0, __colItem);
for ( int i = 0; i < _listeGroupesCas->length(); i++ )
{
TWBoundary->setItem( i, 0, new QTableWidgetItem(QString((_listeGroupesCas)[i]).trimmed()));
TWBoundary->item( i, 0 )->setFlags(Qt::ItemIsEnabled |Qt::ItemIsSelectable );
}
+// Pour les frontieres CAO : la liste a saisir
// Pour les frontieres discretes : la liste a saisir
// Pour les frontieres analytiques : les colonnes de chaque frontiere
HOMARD::HOMARD_Boundary_var myBoundary ;
{
myBoundary = myHomardGen->GetBoundary(mesBoundarys[i]);
int type_obj = myBoundary->GetType() ;
- if ( type_obj==0 ) { CBBoundaryDi->addItem(QString(mesBoundarys[i])); }
- else { AddBoundaryAn(QString(mesBoundarys[i])); }
+ if ( type_obj==-1 ) { CBBoundaryCAO->addItem(QString(mesBoundarys[i])); }
+ else if ( type_obj==0 ) { CBBoundaryDi->addItem(QString(mesBoundarys[i])); }
+ else { AddBoundaryAn(QString(mesBoundarys[i])); }
}
// Ajustement
TWBoundary->resizeColumnsToContents();
TWBoundary->clearSelection();
}
// -------------------------------
-bool MonCreateCase::PushOnApply()
+bool MonCreateCase::PushOnApply(int option)
// --------------------------------
{
MESSAGE("PushOnApply");
if ( aDirName != _aDirName)
{ QString CaseNameDir = myHomardGen->VerifieDir( aDirName.toStdString().c_str()) ;
- if ( CaseNameDir != "" )
+ if ( ( CaseNameDir != "" ) & ( CaseNameDir != aCaseName ) )
{
QString texte ;
texte = QObject::tr("HOM_CASE_DIRECTORY_2") + CaseNameDir ;
return false;
}
}
-#ifndef WIN32
- if (chdir(aDirName.toStdString().c_str()) != 0)
-#else
- if (_chdir(aDirName.toStdString().c_str()) != 0)
-#endif
+ if (CHDIR(aDirName.toStdString().c_str()) != 0)
{
QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
QObject::tr("HOM_CASE_DIRECTORY_3") );
return false;
}
+// On verifie qu'un groupe n'est pas associe a deux frontieres differentes
if (CBBoundaryA->isChecked())
{
QStringList ListeGroup ;
}
}
+// Creation du cas
if (aCaseName != _aCaseName )
{
_aCaseName = aCaseName;
{
QMessageBox::critical( 0, QObject::tr("HOM_ERROR"),
QObject::tr(CORBA::string_dup(S_ex.details.text)) );
- try
- {
- aCase = myHomardGen->GetCase(_aCaseName.toStdString().c_str());
- string iter0 = aCase->GetIter0Name();
- HOMARD::HOMARD_Iteration_var aIter = myHomardGen->GetIteration(iter0.c_str());
- QString aFileName = aIter->GetMeshFile();
- LEFileName->setText(aFileName);
- LEFileName->setReadOnly(true);
- PushFichier->hide();
- }
- catch( SALOME::SALOME_Exception& S_ex ) {};
return false;
}
LEFileName->setReadOnly(true);
InitBoundarys();
}
+// Repertoire et type
aCase->SetDirName(aDirName.toStdString().c_str());
_aDirName=aDirName;
aCase->SetConfType(_ConfType);
+ aCase->SetExtType(_ExtType);
-// Enregistrement de la frontiere discrete
- if (CBBoundaryD->isChecked())
+// Menage des eventuelles frontieres deja enregistrees
+ aCase->SupprBoundaryGroup() ;
+
+ // Enregistrement et publication dans l'arbre d'etudes a la sortie definitive
+ if ( option > 0 )
{
- QString monBoundaryDiName=CBBoundaryDi->currentText();
- if (monBoundaryDiName != "" )
+ if (RBBoundaryCAO->isChecked())
{
- aCase->AddBoundaryGroup(monBoundaryDiName.toStdString().c_str(), "");
+ QString monBoundaryCAOName=CBBoundaryCAO->currentText();
+ if (monBoundaryCAOName != "" )
+ {
+ aCase->AddBoundary(monBoundaryCAOName.toStdString().c_str());
+ }
}
- }
-
-// Enregistrement des liens (groupe,frontiere analytique)
- if (CBBoundaryA->isChecked())
- {
- QString NomGroup ;
- int nbcol = TWBoundary->columnCount();
- int nbrow = TWBoundary->rowCount();
- for ( int col=1; col< nbcol; col++)
+ if (CBBoundaryD->isChecked())
{
- for ( int row=0; row< nbrow; row++)
+ QString monBoundaryDiName=CBBoundaryDi->currentText();
+ if (monBoundaryDiName != "" )
{
- if ( TWBoundary->item( row, col )->checkState() == Qt::Checked )
+ aCase->AddBoundary(monBoundaryDiName.toStdString().c_str());
+ }
+ }
+ if (CBBoundaryA->isChecked())
+ {
+ QString NomGroup ;
+ int nbcol = TWBoundary->columnCount();
+ int nbrow = TWBoundary->rowCount();
+ for ( int col=1; col< nbcol; col++)
+ {
+ for ( int row=0; row< nbrow; row++)
{
-// Nom du groupe
- NomGroup = QString(TWBoundary->item(row, 0)->text()) ;
-// Nom de la frontiere
- QTableWidgetItem *__colItem = new QTableWidgetItem();
- __colItem = TWBoundary->horizontalHeaderItem(col);
- aCase->AddBoundaryGroup(QString(__colItem->text()).toStdString().c_str(), NomGroup.toStdString().c_str());
+ if ( TWBoundary->item( row, col )->checkState() == Qt::Checked )
+ {
+ // Nom du groupe
+ NomGroup = QString(TWBoundary->item(row, 0)->text()) ;
+ // Nom de la frontiere
+ QTableWidgetItem *__colItem = new QTableWidgetItem();
+ __colItem = TWBoundary->horizontalHeaderItem(col);
+ aCase->AddBoundaryGroup(QString(__colItem->text()).toStdString().c_str(), NomGroup.toStdString().c_str());
+ }
}
}
}
}
+
// Options avancees
if (CBAdvanced->isChecked())
{
// Autorisation des pyramides
if (CBPyramid->isChecked()) { _Pyram = 1 ; }
}
+ aCase->SetPyram(_Pyram);
HOMARD_UTILS::updateObjBrowser();
void MonCreateCase::PushOnOK()
// ---------------------------
{
- bool bOK = PushOnApply();
+ bool bOK = PushOnApply(1);
if ( bOK ) this->close();
}
//------------------------------
void MonCreateCase::PushOnHelp()
//-------------------------------
{
- char* LanguageShort = myHomardGen->GetLanguageShort();
- HOMARD_UTILS::PushOnHelp(QString("gui_create_case.html"), QString(""), QString(LanguageShort));
+ std::string LanguageShort = myHomardGen->GetLanguageShort();
+ HOMARD_UTILS::PushOnHelp(QString("gui_create_case.html"), QString(""), QString(LanguageShort.c_str()));
}
// ---------------------------------
void MonCreateCase::SetNewName()
{
if ( aCaseName == QString((MyCases)[i]))
{
- num=num+1;
- aCaseName="";
- break;
+ num ++ ;
+ aCaseName = "" ;
+ break ;
}
}
}
// ------------------------------------------------------------------------
{
QString fileName0 = LEFileName->text().trimmed();
- QString fileName = HOMARD_QT_COMMUN::PushNomFichier();
+ QString fileName = HOMARD_QT_COMMUN::PushNomFichier( false, QString("med") ) ;
if (fileName.isEmpty()) fileName = fileName0 ;
LEFileName->setText(fileName);
}
void MonCreateCase::SetConforme()
// ------------------------------------------------------------------------
{
- GBTypeNoConf->setVisible(0);
+//
+ _ConfType=0;
+ RBNC1NpA->setVisible(0);
+ RBNCQuelconque->setVisible(0);
+//
adjustSize();
- _ConfType=1;
}
// ------------------------------------------------------------------------
void MonCreateCase::SetNonConforme()
// ------------------------------------------------------------------------
{
- GBTypeNoConf->setVisible(1);
- RB1NpM->setChecked(true);
+//
+ _ConfType=1;
+ RBNC1NpA->setVisible(1);
+ RBNCQuelconque->setVisible(1);
+//
+ adjustSize();
+}
+// ------------------------------------------------------------------------
+void MonCreateCase::SetStandard()
+// ------------------------------------------------------------------------
+{
+ if ( ( _ConfType == 0 ) || ( _ConfType == -1 ) ) { _ConfType = 0 ; }
+ else { _ConfType = 1 ; }
+ RBStandard->setChecked(true);
+}
+// ------------------------------------------------------------------------
+void MonCreateCase::SetBox()
+// ------------------------------------------------------------------------
+{
+ if ( ( _ConfType == 0 ) || ( _ConfType == -1 ) ) { _ConfType = -1 ; }
+ else { _ConfType = -2 ; }
+}
+// ------------------------------------------------------------------------
+void MonCreateCase::SetNC1NpA()
+// ------------------------------------------------------------------------
+{
+ _ConfType = 2;
+}
+// ------------------------------------------------------------------------
+void MonCreateCase::SetNCQuelconque()
+// ------------------------------------------------------------------------
+{
+ _ConfType = 3;
+}
+// ------------------------------------------------------------------------
+void MonCreateCase::SetMED()
+// ------------------------------------------------------------------------
+{
+ _ExtType = 0 ;
+ RBMED->setChecked(true);
+}
+// ------------------------------------------------------------------------
+void MonCreateCase::SetSaturne()
+// ------------------------------------------------------------------------
+{
+ _ExtType = 1 ;
+ RBSaturne->setChecked(true);
+}
+// ------------------------------------------------------------------------
+void MonCreateCase::SetSaturne2D()
+// ------------------------------------------------------------------------
+{
+ _ExtType = 2 ;
+ RBSaturne2D->setChecked(true);
+}
+// ------------------------------------------------------------------------
+void MonCreateCase::SetBoundaryNo()
+// ------------------------------------------------------------------------
+{
+//
+ GBBoundaryC->setVisible(0);
+ GBBoundaryA->setVisible(0);
+ GBBoundaryD->setVisible(0);
+ CBBoundaryD->setVisible(0);
+ CBBoundaryA->setVisible(0);
+//
adjustSize();
- _ConfType=2;
}
// ------------------------------------------------------------------------
-void MonCreateCase::Set1NpM()
+void MonCreateCase::SetBoundaryCAO()
// ------------------------------------------------------------------------
{
- _ConfType=2;
+//
+ GBBoundaryC->setVisible(1);
+ GBBoundaryA->setVisible(0);
+ GBBoundaryD->setVisible(0);
+ CBBoundaryD->setVisible(0);
+ CBBoundaryA->setVisible(0);
+//
+ adjustSize();
+}
+// ------------------------------------------------------------------------
+void MonCreateCase::SetBoundaryNonCAO()
+// ------------------------------------------------------------------------
+{
+//
+ GBBoundaryC->setVisible(0);
+ CBBoundaryD->setVisible(1);
+ CBBoundaryA->setVisible(1);
+//
+ adjustSize();
+}
+// ------------------------------------------------------------------------
+void MonCreateCase::AddBoundaryCAO(QString newBoundary)
+// ------------------------------------------------------------------------
+{
+ CBBoundaryCAO->insertItem(0,newBoundary);
+ CBBoundaryCAO->setCurrentIndex(0);
}
// ------------------------------------------------------------------------
-void MonCreateCase::Set1NpA()
+void MonCreateCase::PushBoundaryCAONew()
// ------------------------------------------------------------------------
{
- _ConfType=3;
+ MonCreateBoundaryCAO *BoundaryDlg = new MonCreateBoundaryCAO(this, true,
+ HOMARD::HOMARD_Gen::_duplicate(myHomardGen), _aCaseName, "") ;
+ BoundaryDlg->show();
+}
+// ------------------------------------------------------------------------
+void MonCreateCase::PushBoundaryCAOEdit()
+// ------------------------------------------------------------------------
+{
+ if (CBBoundaryCAO->currentText() == QString("")) return;
+ MonEditBoundaryCAO *BoundaryDlg = new MonEditBoundaryCAO(this, true,
+ HOMARD::HOMARD_Gen::_duplicate(myHomardGen), _aCaseName, CBBoundaryCAO->currentText() ) ;
+ BoundaryDlg->show();
}
// ------------------------------------------------------------------------
-void MonCreateCase::SetQuelconque()
+void MonCreateCase::PushBoundaryCAOHelp()
// ------------------------------------------------------------------------
{
- _ConfType=4;
+ std::string LanguageShort = myHomardGen->GetLanguageShort();
+ HOMARD_UTILS::PushOnHelp(QString("gui_create_boundary.html"), QString("CAO"), QString(LanguageShort.c_str()));
}
// ------------------------------------------------------------------------
void MonCreateCase::SetBoundaryD()
MESSAGE("Debut de SetBoundaryD ");
if (CBBoundaryD->isChecked())
{
- bool bOK = PushOnApply();
+ bool bOK = PushOnApply(0);
if (bOK) { GBBoundaryD->setVisible(1); }
else { GBBoundaryD->setVisible(0);
CBBoundaryD->setChecked(0);
CBBoundaryD->setCheckState(Qt::Unchecked); }
}
else { GBBoundaryD->setVisible(0); }
+//
adjustSize();
}
// ------------------------------------------------------------------------
void MonCreateCase::PushBoundaryDiHelp()
// ------------------------------------------------------------------------
{
- char* LanguageShort = myHomardGen->GetLanguageShort();
- HOMARD_UTILS::PushOnHelp(QString("gui_create_boundary.html"), QString("frontiere-discrete"), QString(LanguageShort));
+ std::string LanguageShort = myHomardGen->GetLanguageShort();
+ HOMARD_UTILS::PushOnHelp(QString("gui_create_boundary.html"), QString("frontiere-discrete"), QString(LanguageShort.c_str()));
}
// ------------------------------------------------------------------------
void MonCreateCase::SetBoundaryA()
MESSAGE("Debut de SetBoundaryA ");
if (CBBoundaryA->isChecked())
{
- bool bOK = PushOnApply();
+ bool bOK = PushOnApply(0);
if (bOK) { GBBoundaryA->setVisible(1); }
else { GBBoundaryA->setVisible(0);
CBBoundaryA->setChecked(0);
CBBoundaryA->setCheckState(Qt::Unchecked); }
}
else { GBBoundaryA->setVisible(0); }
- adjustSize();
//
-// MESSAGE("Fin de SetBoundaryA ");
+ adjustSize();
}
// ------------------------------------------------------------------------
void MonCreateCase::AddBoundaryAn(QString newBoundary)
nbcol += 1 ;
TWBoundary->setColumnCount ( nbcol ) ;
QTableWidgetItem *__colItem = new QTableWidgetItem();
- __colItem->setText(QApplication::translate("CreateCase", newBoundary.toStdString().c_str(), 0, QApplication::UnicodeUTF8));
+ __colItem->setText(QApplication::translate("CreateCase", newBoundary.toStdString().c_str(), 0));
TWBoundary->setHorizontalHeaderItem(nbcol-1, __colItem);
/* TWBoundary->horizontalHeaderItem(nbcol-1)->setFlags( Qt::ItemIsSelectable|Qt::ItemIsEnabled );*/
// Chaque case est a cocher
void MonCreateCase::PushBoundaryAnHelp()
// ------------------------------------------------------------------------
{
- char* LanguageShort = myHomardGen->GetLanguageShort();
- HOMARD_UTILS::PushOnHelp(QString("gui_create_boundary.html"), QString("frontiere-analytique"), QString(LanguageShort));
+ std::string LanguageShort = myHomardGen->GetLanguageShort();
+ HOMARD_UTILS::PushOnHelp(QString("gui_create_boundary.html"), QString("frontiere-analytique"), QString(LanguageShort.c_str()));
}
// ------------------------------------------------------------------------
void MonCreateCase::CaseNameChanged()
// ------------------------------------------------------------------------
{
MESSAGE("Debut de SetAdvanced ");
- if (CBAdvanced->isChecked()) { GBAdvancedOptions->setVisible(1); }
+ if (CBAdvanced->isChecked())
+ { GBAdvancedOptions->setVisible(1);
+ GBConforme->setVisible(1);
+ RBStandard->setVisible(1);
+ RBBox->setVisible(1);
+ if ( ( _ConfType == 0 ) || ( _ConfType == -1 ) )
+ { RBNC1NpA->setVisible(0);
+ RBNCQuelconque->setVisible(0);}
+ else
+ { RBNC1NpA->setVisible(1);
+ RBNCQuelconque->setVisible(1);}
+ GBFormat->setVisible(1);
+ RBMED->setVisible(1);
+ RBSaturne2D->setVisible(1);
+ }
else
{ GBAdvancedOptions->setVisible(0);
CBPyramid->setChecked(false);
_Pyram = 0 ;
+ SetStandard() ;
+ SetMED() ;
}
+//
adjustSize();
}