From 4cfda7c0cf384b6150d449bc0f96276217e21176 Mon Sep 17 00:00:00 2001 From: Gerald NICOLAS Date: Tue, 9 Jan 2018 17:11:23 +0100 Subject: [PATCH] automatisation FrontTrack - nouveaux fichiers sources --- doc/en/images/create_boundary.png | Bin 0 -> 7347 bytes doc/en/images/create_boundary_cao_2.png | Bin 0 -> 9974 bytes doc/en/images/create_case_5.png | Bin 1809 -> 0 bytes doc/fr/images/create_boundary.png | Bin 0 -> 7347 bytes doc/fr/images/create_boundary_cao_1.png | Bin 0 -> 7894 bytes doc/fr/images/create_boundary_cao_2.png | Bin 0 -> 10607 bytes doc/fr/images/create_case_5.png | Bin 1803 -> 0 bytes resources/geometry.png | Bin 0 -> 794 bytes src/HOMARDGUI/CreateBoundaryCAO.ui | 133 ++++++++++++++++ src/HOMARDGUI/MonCreateBoundaryCAO.cxx | 202 ++++++++++++++++++++++++ src/HOMARDGUI/MonCreateBoundaryCAO.h | 73 +++++++++ src/HOMARDGUI/MonCreateListGroupCAO.cxx | 150 ++++++++++++++++++ src/HOMARDGUI/MonCreateListGroupCAO.h | 64 ++++++++ src/HOMARDGUI/MonEditBoundaryCAO.cxx | 105 ++++++++++++ src/HOMARDGUI/MonEditBoundaryCAO.h | 51 ++++++ src/HOMARDGUI/MonEditListGroupCAO.cxx | 61 +++++++ src/HOMARDGUI/MonEditListGroupCAO.h | 49 ++++++ 17 files changed, 888 insertions(+) create mode 100755 doc/en/images/create_boundary.png create mode 100755 doc/en/images/create_boundary_cao_2.png delete mode 100644 doc/en/images/create_case_5.png create mode 100755 doc/fr/images/create_boundary.png create mode 100755 doc/fr/images/create_boundary_cao_1.png create mode 100755 doc/fr/images/create_boundary_cao_2.png delete mode 100644 doc/fr/images/create_case_5.png create mode 100755 resources/geometry.png create mode 100755 src/HOMARDGUI/CreateBoundaryCAO.ui create mode 100755 src/HOMARDGUI/MonCreateBoundaryCAO.cxx create mode 100755 src/HOMARDGUI/MonCreateBoundaryCAO.h create mode 100755 src/HOMARDGUI/MonCreateListGroupCAO.cxx create mode 100755 src/HOMARDGUI/MonCreateListGroupCAO.h create mode 100755 src/HOMARDGUI/MonEditBoundaryCAO.cxx create mode 100755 src/HOMARDGUI/MonEditBoundaryCAO.h create mode 100755 src/HOMARDGUI/MonEditListGroupCAO.cxx create mode 100755 src/HOMARDGUI/MonEditListGroupCAO.h diff --git a/doc/en/images/create_boundary.png b/doc/en/images/create_boundary.png new file mode 100755 index 0000000000000000000000000000000000000000..0460d48594962c3081f8f2aef2c5836eaec2cace GIT binary patch literal 7347 zcmZ8m1yoeux<3+9N=OPwDBY4nNK1oscSwT_jex*kqy?lzN2Z)s9eClfREki3>r{eMJRXP4M#+d_`iTf$wB-bc_&0?WZU! zrR|fxli_PjJaO9Qs-S?Y`8-(q0a@MByO6`SqH>qtY>%U^ipYdmLUpS-$ynL!9D_A$ zN(~Qm3MFbzBX-Kmf^uqcr}7hE4h1{w?!L=`>V5L79Rp!An#B~gkGmnO;?&|VuXhgf8%-bfKkg0YU_5kFw5LlOXCzdOyIZ^rdmeaS|jRv5S)eYgz_7;9m)D; z_?D}TcyMrV_x9E8S?g`H(-g0!H2$Bpfi!k@_9`xGA`GGn`;}x)BTGxmpSS|Q1*TG} zUVP0mCjI8H_#-r>k~>31;vp^ho3-s!F3}j5dx$8k7OHypb+tD1@{eayHZ`iGzO~mF zoF^| z5DgN)y*gr4PA)O1dZ%sB0RN)EaCmTHfbinfc^?xK`edlroxIyLdT_Bl?2BgMmoJR( z7jIvmI~dF>mYkBkBM#5`sxz)ME=$NjPro?%&59+Gm*bbJ)HG)I{vGtY{b@q3XJvC) zfhblV@t_x3;z{9*)&^`z;sK~cN_}uE)a@5c{(cX;-C&0$6|x6GK|vuQA+0wk$NrB` zSt7$ZobX(eKb-_P_iJ+ttxvq7mhjr1EH$dbe{d;|EwyO0lV_Nzi$kgq&QSP}b5iCnbg4 z!|i(b-1BJ8d*PY)Zu;k4xtk2jHlZi4I>vjiCSA|%$Wypm&O@yD7bUka1dL5hO~ddX z_%3|z>k)^v8H=U~-2;P8N1Lqp^4Q_NrrTpx5=%N0rT zFbd(}PI@_f54Z4mbQ9|TyftL(zf4Z`@8KeBmn3{Uspb@?=b~F~I$-i$eJ-ecKgn

a61A&&7 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 diff --git a/doc/fr/images/create_boundary.png b/doc/fr/images/create_boundary.png new file mode 100755 index 0000000000000000000000000000000000000000..0460d48594962c3081f8f2aef2c5836eaec2cace GIT binary patch literal 7347 zcmZ8m1yoeux<3+9N=OPwDBY4nNK1oscSwT_jex*kqy?lzN2Z)s9eClfREki3>r{eMJRXP4M#+d_`iTf$wB-bc_&0?WZU! zrR|fxli_PjJaO9Qs-S?Y`8-(q0a@MByO6`SqH>qtY>%U^ipYdmLUpS-$ynL!9D_A$ zN(~Qm3MFbzBX-Kmf^uqcr}7hE4h1{w?!L=`>V5L79Rp!An#B~gkGmnO;?&|VuXhgf8%-bfKkg0YU_5kFw5LlOXCzdOyIZ^rdmeaS|jRv5S)eYgz_7;9m)D; z_?D}TcyMrV_x9E8S?g`H(-g0!H2$Bpfi!k@_9`xGA`GGn`;}x)BTGxmpSS|Q1*TG} zUVP0mCjI8H_#-r>k~>31;vp^ho3-s!F3}j5dx$8k7OHypb+tD1@{eayHZ`iGzO~mF zoF^| z5DgN)y*gr4PA)O1dZ%sB0RN)EaCmTHfbinfc^?xK`edlroxIyLdT_Bl?2BgMmoJR( z7jIvmI~dF>mYkBkBM#5`sxz)ME=$NjPro?%&59+Gm*bbJ)HG)I{vGtY{b@q3XJvC) zfhblV@t_x3;z{9*)&^`z;sK~cN_}uE)a@5c{(cX;-C&0$6|x6GK|vuQA+0wk$NrB` zSt7$ZobX(eKb-_P_iJ+ttxvq7mhjr1EH$dbe{d;|EwyO0lV_Nzi$kgq&QSP}b5iCnbg4 z!|i(b-1BJ8d*PY)Zu;k4xtk2jHlZi4I>vjiCSA|%$Wypm&O@yD7bUka1dL5hO~ddX z_%3|z>k)^v8H=U~-2;P8N1Lqp^4Q_NrrTpx5=%N0rT zFbd(}PI@_f54Z4mbQ9|TyftL(zf4Z`@8KeBmn3{Uspb@?=b~F~I$-i$eJ-ecKgn

a61A&&7 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 diff --git a/resources/geometry.png b/resources/geometry.png new file mode 100755 index 0000000000000000000000000000000000000000..5732d5dfc8caf038120a893e4deae175189e00ff GIT binary patch literal 794 zcmV+#1LgdQP)|~SDhNWNmy3cff}ny3g8qRn`a25h zB8nghAuxz6D|$0+VJT%(+tkgq&CPA@dGRg?3zMRANaK2yo-yxL}r_*UU zdiL6__B}@~>q;(~NiF|WRkdhf_CQzPxvt)UtIAqtED?{U0UbatE!ft5==#2a^Ji@} z9=iHZ9vpi%!sPKydsiv&96p zfp#>ZyAz8M4bWsj2*eL(v;RQ3-9cT)E=KR&#_rzC()=_Iw}<5N0;|<#Hg501R@Z=@ zO*8lYwFwX=fXJu!Lze0qs_GlDx;*5pCO*F%)+XOP&Q6by@?~O#`tChAH*aNqTPK-? z@J~ZSk_3>?=flz92VIh+Rw0CC;^Cd>*H^<6iCAPZ84JfWlUD6Ne#W9}MJ5ODW`jcy zKC6Yo6c7}~7tFv`Aw<6{%RP#s=s*IP1y+O*UQbiYK223?W1;Vhx~@lnXTV5lfdDFi z2EYf{fEX|bWC6R;_ZjL90pq~D_{$f<0Ide2Jdgv5MqLRw027cj7%Ji)j3 + + CreateBoundaryCAO + + + + 0 + 0 + 566 + 195 + + + + + 0 + 0 + + + + Get CAO + + + true + + + true + + + + 9 + + + 6 + + + + + + + + + 9 + + + 6 + + + + + Help + + + + + + + Cancel + + + + + + + Apply + + + + + + + OK + + + + + + + + + + Filtering with groups + + + + + + + + 370 + 21 + + + + + + + + + + + + + + + XAO + + + + + + + + 382 + 21 + + + + 32 + + + + + + + Name + + + + + + + + diff --git a/src/HOMARDGUI/MonCreateBoundaryCAO.cxx b/src/HOMARDGUI/MonCreateBoundaryCAO.cxx new file mode 100755 index 00000000..efefdebe --- /dev/null +++ b/src/HOMARDGUI/MonCreateBoundaryCAO.cxx @@ -0,0 +1,202 @@ +// Copyright (C) 2011-2016 CEA/DEN, EDF R&D +// +// 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, 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 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + +#include "MonCreateBoundaryCAO.h" +#include "MonCreateListGroupCAO.h" +#include "MonCreateCase.h" + +#include +#include + +#include "SalomeApp_Tools.h" +#include "HOMARDGUI_Utils.h" +#include "HomardQtCommun.h" +#include + +using namespace std; + +// ------------------------------------------------------------------------------- +MonCreateBoundaryCAO::MonCreateBoundaryCAO(MonCreateCase* parent, bool modal, + HOMARD::HOMARD_Gen_var myHomardGen0, + QString caseName, QString aName) +// --------------------------------------------------------------------------------- +/* Constructs a MonCreateBoundaryCAO */ + : + QDialog(0), Ui_CreateBoundaryCAO(), + _parent(parent), _aName(aName), + myHomardGen(HOMARD::HOMARD_Gen::_duplicate(myHomardGen0)), + _aCaseName(caseName) + { + MESSAGE("Constructeur") ; + setupUi(this); + setModal(modal); + InitConnect(); + + if ( _aName == QString("") ) {SetNewName();}; + } + +// ------------------------------------------------------------------------ +MonCreateBoundaryCAO::~MonCreateBoundaryCAO() +// ------------------------------------------------------------------------ +{ + // no need to delete child widgets, Qt does it all for us +} +// ------------------------------------------------------------------------ +void MonCreateBoundaryCAO::InitConnect() +// ------------------------------------------------------------------------ +{ + connect( PushFichier, SIGNAL(pressed()), this, SLOT(SetCAOFile())); + connect( buttonOk, SIGNAL(pressed()), this, SLOT( PushOnOK())); + connect( buttonApply, SIGNAL(pressed()), this, SLOT( PushOnApply())); + connect( buttonCancel, SIGNAL(pressed()), this, SLOT(close())); + connect( buttonHelp, SIGNAL(pressed()), this, SLOT( PushOnHelp())); + connect( CBGroupe, SIGNAL(stateChanged(int)), this, SLOT( SetFiltrage())); +} + +// ------------------------------------------------------------------------ +bool MonCreateBoundaryCAO::PushOnApply() +// ------------------------------------------------------------------------ +// Appele lorsque l'un des boutons Ok ou Apply est presse +// +{ +// Verifications + + QString aName=LEName->text().trimmed(); + if (aName=="") { + QMessageBox::critical( 0, QObject::tr("HOM_ERROR"), + QObject::tr("HOM_BOUN_NAME") ); + return false; + } + +// La CAO + QString aCAOFile=LEFileName->text().trimmed(); + if (aCAOFile ==QString("")) + { + QMessageBox::critical( 0, QObject::tr("HOM_ERROR"), + QObject::tr("HOM_BOUN_CAO") ); + return false; + } + +// Creation de l'objet CORBA si ce n'est pas deja fait sous le meme nom + if ( _aName != aName ) + { + try + { + _aName=aName; + aBoundary=myHomardGen->CreateBoundaryCAO(CORBA::string_dup(_aName.toStdString().c_str()), aCAOFile.toStdString().c_str()); + _parent->AddBoundaryCAO(_aName); + aBoundary->SetCaseCreation(_aCaseName.toStdString().c_str()); + } + catch( SALOME::SALOME_Exception& S_ex ) + { + QMessageBox::critical( 0, QObject::tr("HOM_ERROR"), + QObject::tr(CORBA::string_dup(S_ex.details.text)) ); + return false; + } + } + +// Les groupes + AssocieLesGroupes(); + + HOMARD_UTILS::updateObjBrowser(); + return true; +} + + +// ------------------------------------------------------------------------ +void MonCreateBoundaryCAO::PushOnOK() +// ------------------------------------------------------------------------ +{ + if (PushOnApply()) this->close(); + if ( _parent ) { _parent->raise(); _parent->activateWindow(); }; +} +// ------------------------------------------------------------------------ +void MonCreateBoundaryCAO::PushOnHelp() +// ------------------------------------------------------------------------ +{ + std::string LanguageShort = myHomardGen->GetLanguageShort(); + HOMARD_UTILS::PushOnHelp(QString("gui_create_boundary.html"), QString("CAO"), QString(LanguageShort.c_str())); +} +// ------------------------------------------------------------------------ +void MonCreateBoundaryCAO::AssocieLesGroupes() +// ------------------------------------------------------------------------ +{ + HOMARD::ListGroupType_var aSeqGroupe = new HOMARD::ListGroupType; + aSeqGroupe->length(_listeGroupesBoundary.size()); + QStringList::const_iterator it; + int i=0; + for (it = _listeGroupesBoundary.constBegin(); it != _listeGroupesBoundary.constEnd(); it++) + aSeqGroupe[i++]=(*it).toStdString().c_str(); + aBoundary->SetGroups(aSeqGroupe); + +} + +// ------------------------------------------------- +void MonCreateBoundaryCAO::SetNewName() +// -------------------------------------------------- +{ + + HOMARD::listeBoundarys_var MyObjects = myHomardGen->GetAllBoundarysName(); + int num = 0; QString aName=""; + while (aName == QString("") ) + { + aName.setNum(num+1) ; + aName.insert(0, QString("Boun_")) ; + for ( int i=0; ilength(); i++) + { + if ( aName == QString(MyObjects[i])) + { + num ++ ; + aName = "" ; + break ; + } + } + } + LEName->setText(aName); +} +// ------------------------------------------------------------------------ +void MonCreateBoundaryCAO::SetCAOFile() +// ------------------------------------------------------------------------ +{ + QString aCAOFile = HOMARD_QT_COMMUN::PushNomFichier( false, QString("xao") ); + if (!(aCAOFile.isEmpty())) LEFileName->setText(aCAOFile); +} + +// ------------------------------------------------------------------------ +void MonCreateBoundaryCAO::setGroups (QStringList listGroup) +// ------------------------------------------------------------------------ +{ + _listeGroupesBoundary = listGroup; +} +// ------------------------------------------------------------------------ +void MonCreateBoundaryCAO::SetFiltrage() +// // ------------------------------------------------------------------------ +{ + if (!CBGroupe->isChecked()) return; + if (_aCaseName.toStdString().c_str() == QString()) { + QMessageBox::critical( 0, QObject::tr("HOM_ERROR"), + QObject::tr("HOM_BOUN_CASE") ); + return; + } + + MonCreateListGroupCAO *aDlg = new MonCreateListGroupCAO(NULL, this, true, HOMARD::HOMARD_Gen::_duplicate(myHomardGen), + _aCaseName, _listeGroupesBoundary) ; + aDlg->show(); +} + diff --git a/src/HOMARDGUI/MonCreateBoundaryCAO.h b/src/HOMARDGUI/MonCreateBoundaryCAO.h new file mode 100755 index 00000000..7f135abb --- /dev/null +++ b/src/HOMARDGUI/MonCreateBoundaryCAO.h @@ -0,0 +1,73 @@ +// Copyright (C) 2011-2016 CEA/DEN, EDF R&D +// +// 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, 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 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + +#ifndef MON_CREATEBOUNDARYCAO_H +#define MON_CREATEBOUNDARYCAO_H + +#include "HOMARDGUI_Exports.hxx" + +#include +#include + +#include CORBA_CLIENT_HEADER(SALOMEDS_Attributes) +#include CORBA_CLIENT_HEADER(HOMARD_Gen) +#include CORBA_CLIENT_HEADER(HOMARD_Boundary) + +#include "ui_CreateBoundaryCAO.h" +#include + +class MonCreateCase; +class HOMARD_EXPORT MonCreateBoundaryCAO : public QDialog, public Ui_CreateBoundaryCAO +{ + Q_OBJECT + +public: + MonCreateBoundaryCAO( MonCreateCase* parent, bool modal, + HOMARD::HOMARD_Gen_var myHomardGen, + QString caseName, QString BoundaryName ); + ~MonCreateBoundaryCAO(); + virtual void setGroups (QStringList listGroup); + +protected : + + MonCreateCase *_parent; + + QString _aName; + QString _aCaseName; + + + HOMARD::HOMARD_Boundary_var aBoundary; + HOMARD::HOMARD_Gen_var myHomardGen; + + QStringList _listeGroupesBoundary; + + virtual void AssocieLesGroupes(); + virtual void InitConnect(); + virtual void SetNewName(); + +public slots: + + virtual void SetCAOFile(); + virtual void SetFiltrage(); + virtual void PushOnOK(); + virtual bool PushOnApply(); + virtual void PushOnHelp(); +}; + +#endif // MON_CREATEBOUNDARYCAO_H diff --git a/src/HOMARDGUI/MonCreateListGroupCAO.cxx b/src/HOMARDGUI/MonCreateListGroupCAO.cxx new file mode 100755 index 00000000..8c8286aa --- /dev/null +++ b/src/HOMARDGUI/MonCreateListGroupCAO.cxx @@ -0,0 +1,150 @@ +// Copyright (C) 2011-2016 CEA/DEN, EDF R&D +// +// 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, 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 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + +#include "MonCreateListGroupCAO.h" +#include "MonCreateHypothesis.h" +#include "MonCreateBoundaryCAO.h" + +#include + +#include "SalomeApp_Tools.h" +#include "HOMARDGUI_Utils.h" +#include "HomardQtCommun.h" +#include + +#include +#include +#include +#include +#include + +using namespace std; + +// -------------------------------------------------------------------------------------------------------------- +MonCreateListGroupCAO::MonCreateListGroupCAO(MonCreateHypothesis* parentHyp, MonCreateBoundaryCAO* parentBound, bool modal, + HOMARD::HOMARD_Gen_var myHomardGen0, QString aCaseName, QStringList listeGroupesHypo) : +// -------------------------------------------------------------------------------------------------------------- +// + QDialog(0), Ui_CreateListGroup(), + _aCaseName (aCaseName), + _listeGroupesHypo (listeGroupesHypo), + _parentHyp(parentHyp), + _parentBound(parentBound) +{ + MESSAGE("Debut de MonCreateListGroupCAO") + myHomardGen=HOMARD::HOMARD_Gen::_duplicate(myHomardGen0); + setupUi(this); + setModal(modal); + InitConnect(); + InitGroupes(); +} +// -------------------------------------------------------------------------------------------------------------- +MonCreateListGroupCAO::MonCreateListGroupCAO(MonCreateHypothesis* parentHyp, MonCreateBoundaryCAO* parentBound, + HOMARD::HOMARD_Gen_var myHomardGen, QString aCaseName, QStringList listeGroupesHypo) : +// -------------------------------------------------------------------------------------------------------------- +// + QDialog(0), Ui_CreateListGroup(), + _aCaseName (aCaseName), + _listeGroupesHypo (listeGroupesHypo), + _parentHyp(parentHyp), + _parentBound(parentBound) +{ + myHomardGen=HOMARD::HOMARD_Gen::_duplicate(myHomardGen); + setupUi(this); + InitConnect(); +} + +// ------------------------------------------------------------------------ +MonCreateListGroupCAO::~MonCreateListGroupCAO() +// ------------------------------------------------------------------------ +{ + // no need to delete child widgets, Qt does it all for us +} +// ------------------------------------------------------------------------ +void MonCreateListGroupCAO::InitConnect() +// ------------------------------------------------------------------------ +{ + connect( buttonOk, SIGNAL( pressed() ), this, SLOT( PushOnOK() ) ); + connect( buttonApply, SIGNAL( pressed() ), this, SLOT( PushOnApply() ) ); + connect( buttonCancel, SIGNAL( pressed() ), this, SLOT( close() ) ); + connect( buttonHelp, SIGNAL( pressed() ), this, SLOT( PushOnHelp() ) ); +} +// ------------------------------------------------------------------------ +bool MonCreateListGroupCAO::PushOnApply() +// ------------------------------------------------------------------------ +// Appele lorsque l'un des boutons Ok ou Apply est presse +// +{ + QStringList ListeGroup ; + for ( int row=0; row< TWGroupe->rowCount(); row++) + { + if ( TWGroupe->item( row, 0 )->checkState() == Qt::Checked ) + ListeGroup.insert(0, QString(TWGroupe->item(row, 1)->text()) ); + } + if ( _parentHyp ) { _parentHyp->setGroups(ListeGroup);}; + if ( _parentBound ) { _parentBound->setGroups(ListeGroup);}; + return true; +} + + +// ------------------------------------------------------------------------ +void MonCreateListGroupCAO::PushOnOK() +// ------------------------------------------------------------------------ +{ + if (PushOnApply()) this->close(); + if ( _parentHyp ) { _parentHyp->raise(); _parentHyp->activateWindow(); }; + if ( _parentBound ) { _parentBound->raise(); _parentBound->activateWindow(); }; +} +// ------------------------------------------------------------------------ +void MonCreateListGroupCAO::PushOnHelp() +// ------------------------------------------------------------------------ +{ + std::string LanguageShort = myHomardGen->GetLanguageShort(); + HOMARD_UTILS::PushOnHelp(QString("gui_create_hypothese.html"), QString(""), QString(LanguageShort.c_str())); +} +// ------------------------------------------------------------------------ +void MonCreateListGroupCAO::InitGroupes() +// ------------------------------------------------------------------------ +{ + MESSAGE("Debut de MonCreateListGroupCAO::InitGroupes "); + for ( int row=0; row< TWGroupe->rowCount(); row++) + TWGroupe->removeRow(row); + TWGroupe->setRowCount(0); + if (_aCaseName == QString("")) { return; }; + HOMARD::HOMARD_Cas_var monCas= myHomardGen->GetCase(_aCaseName.toStdString().c_str()); + HOMARD::ListGroupType_var _listeGroupesCas = monCas->GetGroups(); + for ( int i = 0; i < _listeGroupesCas->length(); i++ ) + { + TWGroupe->insertRow(i); + TWGroupe->setItem( i, 0, new QTableWidgetItem( QString ("") ) ); + TWGroupe->item( i, 0 )->setFlags( 0 ); + TWGroupe->item( i, 0 )->setFlags( Qt::ItemIsUserCheckable|Qt::ItemIsEnabled ); + if (_listeGroupesHypo.contains (QString((_listeGroupesCas)[i]))) + {TWGroupe->item( i, 0 )->setCheckState( Qt::Checked );} + else + {TWGroupe->item( i, 0 )->setCheckState( Qt::Unchecked );} + TWGroupe->setItem( i, 1, new QTableWidgetItem(QString((_listeGroupesCas)[i]).trimmed())); + TWGroupe->item( i, 1 )->setFlags(Qt::ItemIsEnabled |Qt::ItemIsSelectable ); + } + TWGroupe->resizeColumnsToContents(); + TWGroupe->resizeRowsToContents(); + TWGroupe->clearSelection(); +// MESSAGE("Fin de MonCreateListGroupCAO::InitGroupes "); +} + diff --git a/src/HOMARDGUI/MonCreateListGroupCAO.h b/src/HOMARDGUI/MonCreateListGroupCAO.h new file mode 100755 index 00000000..19432667 --- /dev/null +++ b/src/HOMARDGUI/MonCreateListGroupCAO.h @@ -0,0 +1,64 @@ +// Copyright (C) 2011-2016 CEA/DEN, EDF R&D +// +// 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, 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 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + +#ifndef MON_CREATELISTGROUPCAO_H +#define MON_CREATELISTGROUPCAO_H + +#include "HOMARDGUI_Exports.hxx" + +#include +#include + +#include CORBA_CLIENT_HEADER(SALOMEDS_Attributes) +#include CORBA_CLIENT_HEADER(HOMARD_Gen) + +#include "ui_CreateListGroup.h" +#include + +class MonCreateHypothesis; +class MonCreateBoundaryCAO; +class HOMARD_EXPORT MonCreateListGroupCAO : public QDialog, public Ui_CreateListGroup +{ + Q_OBJECT + +public: + MonCreateListGroupCAO( MonCreateHypothesis* parentHyp, MonCreateBoundaryCAO* parentBound, bool modal, HOMARD::HOMARD_Gen_var myHomardGen, QString aCaseName, QStringList listeGroupesHypo); + MonCreateListGroupCAO( MonCreateHypothesis* parentHyp, MonCreateBoundaryCAO* parentBound, HOMARD::HOMARD_Gen_var myHomardGen, QString aCaseName, QStringList listeGroupesHypo); + virtual ~MonCreateListGroupCAO(); + +protected : + + HOMARD::HOMARD_Gen_var myHomardGen; + + MonCreateHypothesis * _parentHyp; + MonCreateBoundaryCAO * _parentBound; + QString _aCaseName; + QStringList _listeGroupesHypo; + + virtual void InitConnect(); + virtual void InitGroupes(); + +public slots: + virtual void PushOnOK(); + virtual bool PushOnApply(); + virtual void PushOnHelp(); + +}; + +#endif // MON_CREATELISTGROUPCAO_H diff --git a/src/HOMARDGUI/MonEditBoundaryCAO.cxx b/src/HOMARDGUI/MonEditBoundaryCAO.cxx new file mode 100755 index 00000000..d217ea14 --- /dev/null +++ b/src/HOMARDGUI/MonEditBoundaryCAO.cxx @@ -0,0 +1,105 @@ +// Copyright (C) 2011-2016 CEA/DEN, EDF R&D +// +// 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, 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 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + +#include "MonEditBoundaryCAO.h" +#include "MonEditListGroupCAO.h" + +#include + +#include "SalomeApp_Tools.h" +#include "HOMARDGUI_Utils.h" +#include "HomardQtCommun.h" +#include + +using namespace std; + +// ------------------------------------------------------------------------------------------------------------------------------------- +MonEditBoundaryCAO::MonEditBoundaryCAO( MonCreateCase* parent, bool modal, + HOMARD::HOMARD_Gen_var myHomardGen, + QString caseName, QString Name): +// ------------------------------------------------------------------------------------------------------------------------------------- +/* Constructs a MonEditBoundaryCAO + herite de MonCreateBoundaryCAO +*/ + MonCreateBoundaryCAO(parent, modal, myHomardGen, caseName, Name) +{ + MESSAGE("Debut de Boundary pour " << Name.toStdString().c_str()); + setWindowTitle(QObject::tr("HOM_BOUN_C_EDIT_WINDOW_TITLE")); + try + { + aBoundary=myHomardGen->GetBoundary(CORBA::string_dup(_aName.toStdString().c_str())); + if (caseName==QString("")) { _aCaseName=aBoundary->GetCaseCreation();} + InitValEdit(); + } + catch( SALOME::SALOME_Exception& S_ex ) + { + QMessageBox::critical( 0, QObject::tr("HOM_ERROR"), + QObject::tr(CORBA::string_dup(S_ex.details.text)) ); + return; + } + + HOMARD::ListGroupType_var maListe = aBoundary->GetGroups(); + for ( int i = 0; i < maListe->length(); i++ ) + _listeGroupesBoundary << QString(maListe[i]); + +} +// ------------------------------ +MonEditBoundaryCAO::~MonEditBoundaryCAO() +// ------------------------------ +{ +} +// ------------------------------ +void MonEditBoundaryCAO::InitValEdit() +// ------------------------------ +{ + LEName->setText(_aName); + LEName->setReadOnly(true); + + QString aDataFile = aBoundary->GetDataFile(); + LEFileName->setText(aDataFile); + LEFileName->setReadOnly(1); + PushFichier->setVisible(0); +// + adjustSize(); +} +// ------------------------------ +bool MonEditBoundaryCAO::PushOnApply() +// ------------------------------ +{ + return true; +} +// ------------------------------------------------------------------------ +void MonEditBoundaryCAO::SetFiltrage() +// // ------------------------------------------------------------------------ +{ + if (!CBGroupe->isChecked()) return; + if (_aCaseName.toStdString().c_str() == QString()) + { + QMessageBox::critical( 0, QObject::tr("HOM_ERROR"), + QObject::tr("HOM_BOUN_CASE") ); + return; + } + HOMARD::HOMARD_Cas_var monCas= myHomardGen->GetCase(_aCaseName.toStdString().c_str()); + HOMARD::ListGroupType_var _listeGroupesCas = monCas->GetGroups(); + + MonEditListGroupCAO *aDlg = new MonEditListGroupCAO(NULL, this, true, HOMARD::HOMARD_Gen::_duplicate(myHomardGen), + _aCaseName, _listeGroupesBoundary) ; + aDlg->show(); +} + diff --git a/src/HOMARDGUI/MonEditBoundaryCAO.h b/src/HOMARDGUI/MonEditBoundaryCAO.h new file mode 100755 index 00000000..b86f4dc5 --- /dev/null +++ b/src/HOMARDGUI/MonEditBoundaryCAO.h @@ -0,0 +1,51 @@ +// Copyright (C) 2011-2016 CEA/DEN, EDF R&D +// +// 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, 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 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + +#ifndef MON_EDITBOUNDARYCAO_H +#define MON_EDITBOUNDARYCAO_H + +#include "HOMARDGUI_Exports.hxx" + +#include +#include + +#include CORBA_CLIENT_HEADER(SALOMEDS_Attributes) +#include CORBA_CLIENT_HEADER(HOMARD_Gen) + +#include + +class HOMARD_EXPORT MonEditBoundaryCAO : public MonCreateBoundaryCAO +{ + Q_OBJECT +public: + MonEditBoundaryCAO( MonCreateCase* parent, bool modal, + HOMARD::HOMARD_Gen_var myHomardGen, + QString caseName, QString Name ); + virtual ~MonEditBoundaryCAO(); + +protected : + virtual void InitValEdit(); + virtual bool PushOnApply(); + virtual void SetFiltrage(); + +public slots: + +}; + +#endif diff --git a/src/HOMARDGUI/MonEditListGroupCAO.cxx b/src/HOMARDGUI/MonEditListGroupCAO.cxx new file mode 100755 index 00000000..783e368c --- /dev/null +++ b/src/HOMARDGUI/MonEditListGroupCAO.cxx @@ -0,0 +1,61 @@ +// Copyright (C) 2011-2016 CEA/DEN, EDF R&D +// +// 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, 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 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + +#include "MonEditListGroupCAO.h" +#include + +using namespace std; +//--------------------------------------------------------------------- +MonEditListGroupCAO::MonEditListGroupCAO( MonCreateHypothesis* parentHyp, + MonCreateBoundaryCAO* parentBound, + bool modal, + HOMARD::HOMARD_Gen_var myHomardGen, + QString aCaseName, + QStringList listeGroupesHypo): +//--------------------------------------------------------------------- +MonCreateListGroupCAO(parentHyp,parentBound,myHomardGen,aCaseName,listeGroupesHypo) +{ + MESSAGE("Debut de MonEditListGroupCAO"); + setWindowTitle(QObject::tr("HOM_GROU_EDIT_WINDOW_TITLE")); + setModal(true); + InitGroupes(); +} + +//------------------------------------ +MonEditListGroupCAO:: ~MonEditListGroupCAO() +//------------------------------------ +{ +} +// ------------------------------------- +void MonEditListGroupCAO:: InitGroupes() +// ------------------------------------- +{ + for (int i = 0; i < _listeGroupesHypo.size(); i++ ) + { + std::cerr << _listeGroupesHypo[i].toStdString().c_str() << std::endl; + TWGroupe->insertRow(i); + TWGroupe->setItem( i, 0, new QTableWidgetItem( QString ("") ) ); + TWGroupe->item( i, 0 )->setFlags( 0 ); + TWGroupe->item( i, 0 )->setCheckState( Qt::Checked ); + TWGroupe->setItem( i, 1, new QTableWidgetItem(_listeGroupesHypo[i])); + } + TWGroupe->resizeRowsToContents(); +} + + diff --git a/src/HOMARDGUI/MonEditListGroupCAO.h b/src/HOMARDGUI/MonEditListGroupCAO.h new file mode 100755 index 00000000..7a72ce5e --- /dev/null +++ b/src/HOMARDGUI/MonEditListGroupCAO.h @@ -0,0 +1,49 @@ +// Copyright (C) 2011-2016 CEA/DEN, EDF R&D +// +// 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, 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 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + +#ifndef MON_EDITLISTGROUPCAO_H +#define MON_EDITLISTGROUPCAO_H + +#include "HOMARDGUI_Exports.hxx" + +#include +#include + +#include CORBA_CLIENT_HEADER(SALOMEDS_Attributes) +#include CORBA_CLIENT_HEADER(HOMARD_Gen) + +#include + +class MonCreateHypothesis; +class MonCreateBoundaryCAO; +class HOMARD_EXPORT MonEditListGroupCAO : public MonCreateListGroupCAO +{ + Q_OBJECT + +public: + MonEditListGroupCAO( MonCreateHypothesis* parentHyp, MonCreateBoundaryCAO* parentBound, bool modal, HOMARD::HOMARD_Gen_var myHomardGen, QString aCaseName, QStringList listeGroupesHypo); + virtual ~MonEditListGroupCAO(); + +protected : + + virtual void InitGroupes(); + +}; + +#endif // MON_EDITLISTGROUPCAO_H -- 2.39.2