Version: 9.16.0
EntityGUI_FieldDlg.h
Go to the documentation of this file.
1// Copyright (C) 2007-2026 CEA, EDF, OPEN CASCADE
2//
3// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5//
6// This library is free software; you can redistribute it and/or
7// modify it under the terms of the GNU Lesser General Public
8// License as published by the Free Software Foundation; either
9// version 2.1 of the License, or (at your option) any later version.
10//
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14// Lesser General Public License for more details.
15//
16// You should have received a copy of the GNU Lesser General Public
17// License along with this library; if not, write to the Free Software
18// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19//
20// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21//
22
23// GEOM GEOMGUI : GUI for Geometry component
24// File : EntityGUI_FieldDlg.h
25
26#ifndef EntityGUI_FieldDlg_H
27#define EntityGUI_FieldDlg_H
28
29#include <GEOMBase_Skeleton.h>
30
31#include <TopAbs_ShapeEnum.hxx>
32#include <TColStd_DataMapOfIntegerInteger.hxx>
33#include <TColStd_IndexedMapOfInteger.hxx>
34#include <TopTools_IndexedMapOfShape.hxx>
35
36#include <QMap>
37#include <QSet>
38#include <QVector>
39#include <QTableWidget>
40
41class QGroupBox;
42class QLineEdit;
43class QPushButton;
44class QComboBox;
45class SalomeApp_IntSpinBox;
46
47//=================================================================================
48// class : EntityGUI_FieldDlg
49// purpose :
50//=================================================================================
52{
53 Q_OBJECT
54
55 class StepTable;
56 class IntSpinItem;
57 class DoubleSpinItem;
58 class CheckItem;
59 class Delegate;
60
61public:
62 EntityGUI_FieldDlg (GeometryGUI* theGeometryGUI,
63 GEOM::GEOM_Field_ptr theField, int stepID=0,
64 QWidget* parent=0,
65 bool modal=false, Qt::WindowFlags fl=0);
67
68protected:
69 // redefined from GEOMBase_Helper
70 virtual GEOM::GEOM_IOperations_ptr createOperation();
71 virtual bool isValid (QString&);
72 virtual bool execute ();
73 virtual QList<GEOM::GeomObjPtr> getSourceObjects();
74
75private slots:
76 void ClickOnOk();
77 bool ClickOnApply();
78 void ActivateThisDialog();
81
82 void onPrevStep();
83 void onNextStep();
84 void onAddStep();
85 void onRmStep();
86 void onStampChange();
87 void onDimChange();
88 void onTypeChange();
89 void onNbCompsChange();
90 void showCurStep();
91 void highlightSubShapes();
92
93private:
94 void Init();
95 void enterEvent (QEvent*);
96 void activateSelection();
97
98 TopAbs_ShapeEnum getShapeType(int* dim=0) const;
99 int getDim() const;
100 int getDataType() const;
101 int getCurStepID() const;
102 int getNbComps() const;
103 void updateShapeIDs();
104 void updateDims(int curDim=-1);
105 int getSelectedSubshapes (TColStd_IndexedMapOfInteger& map);
106
107private:
109 GEOM::GEOM_Field_var myField;
110 GEOM::GEOM_Object_var myShape;
111 QVector< int > myShapeIDs;
112 TopTools_IndexedMapOfShape myShapeMap;
113
116 QMap< int, StepTable* > myStepTables;
117 QSet< int > myRemovedSteps;
118
121
123
124 QPushButton* myShapeSelBtn;
125 QLineEdit* myShapeName;
126 QComboBox* myTypeCombo;
127 QComboBox* myDimCombo;
128 QPushButton* myPrevStepBtn;
129 QPushButton* myNextStepBtn;
130 QPushButton* myRmStepBtn;
131
132 SalomeApp_IntSpinBox* myNbCompsSpin;
134 QComboBox* myStepsCombo;
135 QLineEdit* myStepEdit;
136 SalomeApp_IntSpinBox* myStampSpin;
137
138};
139
140/*
141 Class : EntityGUI_FieldDlg::StepTable
142 Description : Table widget
143*/
144
146{
147 Q_OBJECT
148
152 GEOM::GEOM_FieldStep_var myStep;
154
156
157public:
158 StepTable( int stepID, int dataType, int nbRows, int nbColumns,
159 QString shapeName, QStringList headers,
160 GEOM::GEOM_FieldStep_ptr stepVar, QWidget* = 0 );
161 virtual ~StepTable();
162
163 QSize minimumSizeHint() const;
164
165 void setEditable( bool, int, int );
166 bool isEditable( int, int ) const;
167
168 void setReadOnly( bool );
169 bool isReadOnly() const;
170
171 void insertRows( int, int = 1 );
172 QString text( int, int );
173
174 QList<int> selectedRows();
175 void selectRows(const QList<int>& rows);
176
177 void setDim( int nbRows, QString shapeName, bool setDefault=true );
178 void setNbComps( int nbComps );
179 void setDataType( int dataType );
180 void setStamp( int stamp ) { myStamp = stamp; }
181 int getStamp() { return myStamp; }
182 int getStepID() { return myStepID; }
183 QStringList getHeaders();
184 void setHeaders(const QStringList& headers);
185 GEOM::GEOM_FieldStep_var getStep() { return myStep; }
186 void setValues(GEOM::GEOM_FieldStep_var& step);
187
188public slots:
189 void setIsChanged() { myIsChanged = true; }
190 void headerDblClicked( int );
191};
192
193#endif
Definition: EntityGUI_FieldDlg.cxx:93
Definition: EntityGUI_FieldDlg.cxx:251
Definition: EntityGUI_FieldDlg.cxx:187
Definition: EntityGUI_FieldDlg.cxx:140
Definition: EntityGUI_FieldDlg.h:146
QStringList getHeaders()
Definition: EntityGUI_FieldDlg.cxx:666
QSize minimumSizeHint() const
Definition: EntityGUI_FieldDlg.cxx:456
GEOM::GEOM_FieldStep_var getStep()
Definition: EntityGUI_FieldDlg.h:185
int myStamp
Definition: EntityGUI_FieldDlg.h:151
void setValues(GEOM::GEOM_FieldStep_var &step)
Definition: EntityGUI_FieldDlg.cxx:690
bool myIsChanged
Definition: EntityGUI_FieldDlg.h:153
void selectRows(const QList< int > &rows)
Definition: EntityGUI_FieldDlg.cxx:548
GEOM::GEOM_FieldStep_var myStep
Definition: EntityGUI_FieldDlg.h:152
virtual ~StepTable()
Definition: EntityGUI_FieldDlg.cxx:448
void setNbComps(int nbComps)
Definition: EntityGUI_FieldDlg.cxx:604
int getStepID()
Definition: EntityGUI_FieldDlg.h:182
void insertRows(int, int=1)
Definition: EntityGUI_FieldDlg.cxx:512
QTableWidgetItem * newDefaultItem()
Definition: EntityGUI_FieldDlg.cxx:650
void setIsChanged()
Definition: EntityGUI_FieldDlg.h:189
int myStepID
Definition: EntityGUI_FieldDlg.h:150
QString text(int, int)
Definition: EntityGUI_FieldDlg.cxx:521
StepTable(int stepID, int dataType, int nbRows, int nbColumns, QString shapeName, QStringList headers, GEOM::GEOM_FieldStep_ptr stepVar, QWidget *=0)
Definition: EntityGUI_FieldDlg.cxx:356
void setDataType(int dataType)
Definition: EntityGUI_FieldDlg.cxx:633
void setDim(int nbRows, QString shapeName, bool setDefault=true)
Definition: EntityGUI_FieldDlg.cxx:567
bool isEditable(int, int) const
Definition: EntityGUI_FieldDlg.cxx:490
void setHeaders(const QStringList &headers)
Definition: EntityGUI_FieldDlg.cxx:680
void setEditable(bool, int, int)
Definition: EntityGUI_FieldDlg.cxx:469
QList< int > selectedRows()
Definition: EntityGUI_FieldDlg.cxx:528
int myDataType
Definition: EntityGUI_FieldDlg.h:149
void setReadOnly(bool)
Definition: EntityGUI_FieldDlg.cxx:496
void setStamp(int stamp)
Definition: EntityGUI_FieldDlg.h:180
bool isReadOnly() const
Definition: EntityGUI_FieldDlg.cxx:503
int getStamp()
Definition: EntityGUI_FieldDlg.h:181
void headerDblClicked(int)
Definition: EntityGUI_FieldDlg.cxx:771
Definition: EntityGUI_FieldDlg.h:52
EntityGUI_FieldDlg(GeometryGUI *theGeometryGUI, GEOM::GEOM_Field_ptr theField, int stepID=0, QWidget *parent=0, bool modal=false, Qt::WindowFlags fl=0)
Definition: EntityGUI_FieldDlg.cxx:788
int getNbComps() const
Definition: EntityGUI_FieldDlg.cxx:1558
int myDmMode
Definition: EntityGUI_FieldDlg.h:119
void activateSelection()
Definition: EntityGUI_FieldDlg.cxx:1629
QComboBox * myDimCombo
Definition: EntityGUI_FieldDlg.h:127
virtual bool execute()
Definition: EntityGUI_FieldDlg.cxx:1860
void onStampChange()
Definition: EntityGUI_FieldDlg.cxx:1363
void updateDims(int curDim=-1)
Definition: EntityGUI_FieldDlg.cxx:1597
QPushButton * myPrevStepBtn
Definition: EntityGUI_FieldDlg.h:128
void onAddStep()
Definition: EntityGUI_FieldDlg.cxx:1320
void enterEvent(QEvent *)
Definition: EntityGUI_FieldDlg.cxx:1057
SalomeApp_IntSpinBox * myNbCompsSpin
Definition: EntityGUI_FieldDlg.h:132
QVector< int > myShapeIDs
Definition: EntityGUI_FieldDlg.h:111
int getDataType() const
Definition: EntityGUI_FieldDlg.cxx:1538
GEOM::GEOM_Field_var myField
Definition: EntityGUI_FieldDlg.h:109
~EntityGUI_FieldDlg()
Definition: EntityGUI_FieldDlg.cxx:934
bool ClickOnApply()
Definition: EntityGUI_FieldDlg.cxx:1079
TopTools_IndexedMapOfShape myShapeMap
Definition: EntityGUI_FieldDlg.h:112
QWidget * mySwitchTableWdg
Definition: EntityGUI_FieldDlg.h:133
virtual GEOM::GEOM_IOperations_ptr createOperation()
Definition: EntityGUI_FieldDlg.cxx:1821
void onPrevStep()
Definition: EntityGUI_FieldDlg.cxx:1275
QPushButton * myShapeSelBtn
Definition: EntityGUI_FieldDlg.h:124
int myCurStepID
Definition: EntityGUI_FieldDlg.h:114
QMap< int, StepTable * > myStepTables
Definition: EntityGUI_FieldDlg.h:116
virtual QList< GEOM::GeomObjPtr > getSourceObjects()
Definition: EntityGUI_FieldDlg.cxx:1992
void SetEditCurrentArgument()
Definition: EntityGUI_FieldDlg.cxx:1142
GEOM::GEOM_Object_var myShape
Definition: EntityGUI_FieldDlg.h:110
int getCurStepID() const
Definition: EntityGUI_FieldDlg.cxx:1547
void onNbCompsChange()
Definition: EntityGUI_FieldDlg.cxx:1250
QPushButton * myRmStepBtn
Definition: EntityGUI_FieldDlg.h:130
int getDim() const
Definition: EntityGUI_FieldDlg.cxx:1528
void SelectionIntoArgument()
Definition: EntityGUI_FieldDlg.cxx:1152
bool myIsHiddenMain
Definition: EntityGUI_FieldDlg.h:120
QComboBox * myStepsCombo
Definition: EntityGUI_FieldDlg.h:134
void onNextStep()
Definition: EntityGUI_FieldDlg.cxx:1289
int getSelectedSubshapes(TColStd_IndexedMapOfInteger &map)
Definition: EntityGUI_FieldDlg.cxx:1445
QComboBox * myTypeCombo
Definition: EntityGUI_FieldDlg.h:126
SalomeApp_IntSpinBox * myStampSpin
Definition: EntityGUI_FieldDlg.h:136
void highlightSubShapes()
Definition: EntityGUI_FieldDlg.cxx:1722
QLineEdit * myShapeName
Definition: EntityGUI_FieldDlg.h:125
QList< int > myHiddenFieldStepIds
Definition: EntityGUI_FieldDlg.h:122
virtual bool isValid(QString &)
Definition: EntityGUI_FieldDlg.cxx:1836
void updateShapeIDs()
Definition: EntityGUI_FieldDlg.cxx:1567
TopAbs_ShapeEnum getShapeType(int *dim=0) const
Definition: EntityGUI_FieldDlg.cxx:1511
void onDimChange()
Definition: EntityGUI_FieldDlg.cxx:1229
bool myIsCreation
Definition: EntityGUI_FieldDlg.h:108
void ActivateThisDialog()
Definition: EntityGUI_FieldDlg.cxx:1128
void Init()
Definition: EntityGUI_FieldDlg.cxx:959
void ClickOnOk()
Definition: EntityGUI_FieldDlg.cxx:1067
void showCurStep()
Definition: EntityGUI_FieldDlg.cxx:1373
QSet< int > myRemovedSteps
Definition: EntityGUI_FieldDlg.h:117
StepTable * myCurStepTable
Definition: EntityGUI_FieldDlg.h:115
QPushButton * myNextStepBtn
Definition: EntityGUI_FieldDlg.h:129
void onTypeChange()
Definition: EntityGUI_FieldDlg.cxx:1263
QLineEdit * myStepEdit
Definition: EntityGUI_FieldDlg.h:135
void onRmStep()
Definition: EntityGUI_FieldDlg.cxx:1345
Definition: GEOMBase_Skeleton.h:53
Definition: GeometryGUI.h:74