1 // Copyright (C) 2011-2021 CEA/DEN, EDF R&D
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 #ifndef SMESHGUI_HOMARDADAPTDLG_HXX
21 #define SMESHGUI_HOMARDADAPTDLG_HXX
23 #include "SMESH_SMESHGUI.hxx"
25 #include <SALOMEconfig.h>
26 #include CORBA_CLIENT_HEADER(SMESH_Homard)
27 #include CORBA_SERVER_HEADER(SMESH_Mesh)
28 #include <SALOME_GenericObj_wrap.hxx>
30 #include <SalomeApp_Module.h>
32 #include <QtCore/QVariant>
33 #include <QtWidgets/QApplication>
34 #include <QtWidgets/QCheckBox>
35 #include <QtWidgets/QComboBox>
36 #include <QtWidgets/QDialog>
37 #include <QtWidgets/QFormLayout>
38 #include <QtWidgets/QGridLayout>
39 #include <QtWidgets/QGroupBox>
40 #include <QtWidgets/QHBoxLayout>
41 #include <QtWidgets/QHeaderView>
42 #include <QtWidgets/QLabel>
43 #include <QtWidgets/QLineEdit>
44 #include <QtWidgets/QPushButton>
45 #include <QtWidgets/QRadioButton>
46 #include <QtWidgets/QSpacerItem>
47 #include <QtWidgets/QTableWidget>
48 #include <QtWidgets/QWidget>
49 #include <QtWidgets/QTabWidget>
50 #include <QtWidgets/QSpinBox>
52 class SMESHGUI_HomardAdaptArguments;
53 class SMESHGUI_HomardAdaptAdvanced;
55 //=================================================================================
56 // class : SMESHGUI_HomardAdaptDlg
58 //=================================================================================
59 class SMESHGUI_EXPORT SMESHGUI_HomardAdaptDlg : public QDialog
64 SMESHGUI_HomardAdaptDlg(SMESHHOMARD::HOMARD_Gen_ptr theHomardGen);
65 ~SMESHGUI_HomardAdaptDlg();
67 void setMyMesh(SMESH::SMESH_Mesh_var);
68 SMESH::SMESH_Mesh_var getMyMesh();
70 void AddBoundaryCAO(QString newBoundary);
71 void AddBoundaryAn(QString newBoundary);
72 void AddBoundaryDi(QString newBoundary);
77 SMESHHOMARD::HOMARD_Cas_var myCase;
78 SMESHHOMARD::HOMARD_Hypothesis_var myHypothesis;
79 SMESHHOMARD::HOMARD_Iteration_var myIteration;
80 SALOME::GenericObj_wrap< SMESHHOMARD::HOMARD_Gen > myHomardGen;
82 virtual void InitConnect();
83 virtual void InitBoundarys();
86 virtual void SetFileName();
88 virtual void SetBoundaryNo();
89 virtual void SetBoundaryCAO();
90 virtual void SetBoundaryNonCAO();
92 virtual void PushBoundaryCAONew();
93 virtual void PushBoundaryCAOEdit();
94 virtual void PushBoundaryCAOHelp();
96 virtual void SetBoundaryD();
97 virtual void PushBoundaryDiNew();
98 virtual void PushBoundaryDiEdit();
99 virtual void PushBoundaryDiHelp();
101 virtual void SetBoundaryA();
102 virtual void PushBoundaryAnNew();
103 virtual void PushBoundaryAnEdit();
104 virtual void PushBoundaryAnHelp();
108 virtual void PushOnOK();
109 virtual bool PushOnApply();
110 virtual void PushOnHelp();
112 void selectionChanged();
113 void updateSelection();
116 SMESHGUI_HomardAdaptArguments* myArgs;
117 SMESHGUI_HomardAdaptAdvanced* myAdvOpt;
119 SMESH::SMESH_Mesh_var myMesh;
121 QPushButton *buttonHelp;
122 QPushButton *buttonApply;
123 QPushButton *buttonOk;
124 QPushButton *buttonCancel;
127 //=================================================================================
128 // class : SMESHGUI_HomardAdaptArguments
130 //=================================================================================
131 class SMESHGUI_HomardAdaptArguments : public QWidget
136 enum ModeIn { MedFile, Browser };
138 SMESHGUI_HomardAdaptArguments (QWidget* parent);
139 ~SMESHGUI_HomardAdaptArguments();
141 void setupUi(QWidget *CreateCase);
145 QButtonGroup* myInMeshGroup;
146 QRadioButton* myInMedFileRadio;
147 QRadioButton* myInBrowserRadio;
149 QPushButton* mySelectInMedFileButton;
150 QLineEdit* mySelectInMedFileLineEdit; // LEFileName
152 QLineEdit* myInBrowserObject;
155 QLineEdit* myOutMeshNameLineEdit;
156 QCheckBox* myOutMedFileChk;
158 QPushButton* mySelectOutMedFileButton;
159 QLineEdit* mySelectOutMedFileLineEdit;
161 QCheckBox* myOutPublishChk;
164 QRadioButton *RBConforme;
165 QRadioButton *RBNonConforme;
168 QGroupBox *GBTypeBoun;
169 QRadioButton *RBBoundaryNo;
170 QRadioButton *RBBoundaryCAO;
171 QRadioButton *RBBoundaryNonCAO;
172 QHBoxLayout *hboxLayout3;
173 QCheckBox *CBBoundaryD;
174 QCheckBox *CBBoundaryA;
176 QGroupBox *GBBoundaryC; // CAO boundary
178 QPushButton *PBBoundaryCAOEdit;
179 QPushButton *PBBoundaryCAOHelp;
180 QComboBox *CBBoundaryCAO;
181 QPushButton *PBBoundaryCAONew;
182 QGroupBox *GBBoundaryN; // Non CAO boundary
183 QGroupBox *GBBoundaryD;
184 QGridLayout *gridLayout;
185 QComboBox *CBBoundaryDi;
186 QPushButton *PBBoundaryDiEdit;
187 QPushButton *PBBoundaryDiHelp;
188 QPushButton *PBBoundaryDiNew;
189 QGroupBox *GBBoundaryA;
190 QFormLayout *formLayout;
191 QTableWidget *TWBoundary;
192 QGridLayout *gridLayout1;
193 QPushButton *PBBoundaryAnEdit;
194 QPushButton *PBBoundaryAnNew;
195 QPushButton *PBBoundaryAnHelp;
198 void updateSelection();
201 void modeInChanged(int);
203 void onOutMedFileChk(int);
204 void onOutPublishChk(int);
205 void onSelectOutMedFileButton();
208 //=================================================================================
209 // class : SMESHGUI_HomardAdaptAdvanced
211 //=================================================================================
212 class SMESHGUI_HomardAdaptAdvanced : public QWidget
217 SMESHGUI_HomardAdaptAdvanced(QWidget* = 0, Qt::WindowFlags = 0);
218 ~SMESHGUI_HomardAdaptAdvanced();
223 QGroupBox *logGroupBox;
225 QLabel *workingDirectoryLabel;
226 QLineEdit *workingDirectoryLineEdit;
227 QPushButton *workingDirectoryPushButton;
229 QLabel *verboseLevelLabel;
230 QSpinBox *verboseLevelSpin;
232 QCheckBox *logInFileCheck;
233 QCheckBox *removeLogOnSuccessCheck;
235 QCheckBox *keepWorkingFilesCheck;
238 void onWorkingDirectoryPushButton();
241 #endif // SMESHGUI_HOMARDADAPTDLG_HXX