]> SALOME platform Git repositories - modules/eficas.git/blob - src/EELIH/ddl.py
Salome HOME
Intégration eficas_novice
[modules/eficas.git] / src / EELIH / ddl.py
1 # -*- coding: iso-8859-1 -*-
2
3 # modules PyQt
4 from qt import *
5 from qttable import QTable
6 # modules de gestion des panneaux
7 from panelbase import *
8 # modules validateur lineedit
9 from validationlineedit import *
10 # modules controles des tables
11 from c_suppressionLigneTable import *
12 from c_nouvelleLigneTableDdl import *
13 from c_table import *
14 # modules de base
15 import commands
16
17 class Ddl(PanelBase):
18     """
19     Hérite de la classe mère PanelBase
20     Définit le panneau pour le choix des degrés de liberté d'un groupe de faces :
21         - tbl = table d'affichage des degrés de liberté
22         - controleurTable = controleur de gestion de la table
23         - controleurNouvelleLigneTable = controleur pour l'ajout d'une nouvelle ligne dans la table
24         - boutonPlus = permet de créer une nouvelle ligne quand on clique dessus
25     """
26     def __init__(self, parent, appli):
27         # hérite de la classe mère des panneaux
28         PanelBase.__init__(self, parent, appli)
29         
30         # on modifie le label titre
31         self.lblTitre.setText('Degrés de liberté imposés')
32         
33         # on modifie l'explication
34         self.lblExplication.setText("Définissez le(s) groupe(s) de mailles et les ddls à appliquer :")
35         
36         # bouton suivant toujours actif
37         self.btnSuivant.setEnabled(1)
38         
39         # espacement
40         self.sp2 = QSpacerItem(20, 50, QSizePolicy.Minimum, QSizePolicy.Minimum)
41         self.gl.addItem(self.sp2, 3, 0)
42         
43         # création d'une QGridLayout
44         self.glProprietes = QGridLayout(self.parent, 1, 2, 5)
45         self.gl.addLayout(self.glProprietes, 4, 0)
46         
47         # ---------------- création et ajout du QTable ----------------
48         self.tbl = QTable(1, 5, self.parent)
49         self.tbl.setMinimumHeight(150)
50         self.tbl.setMaximumHeight(200)
51         self.tbl.setColumnWidth(4, 30)
52         self.tbl.setRowHeight(0, 30)
53         
54         self.th = self.tbl.horizontalHeader()
55         self.th.setLabel(0, 'Objet')
56         self.th.setLabel(1, 'DX')
57         self.th.setLabel(2, 'DY')
58         self.th.setLabel(3, 'DZ')
59         self.th.setLabel(4, '')
60         
61         self.tbl.verticalHeader().hide()
62         self.tbl.setLeftMargin(0)
63         
64         self.glProprietes.addWidget(self.tbl, 0, 0)
65         
66         # création du controleur de la table
67         self.controleurTable = C_table(self.tbl)
68
69         # création du controleur pour l'ajout d'une nouvelle ligne
70         self.controleurNouvelleLigneTable = C_nouvelleLigneTableDdl(self.appli, self.controleurTable, self)
71         # ajout de la première ligne
72         self.controleurNouvelleLigneTable.creeBoutons()
73         
74         # bouton plus = nouvelle ligne
75         px = QPixmap(os.path.join(os.getenv("EFICAS_ROOT_DIR"), 'share/salome/resources/plus.png'))
76         icon = QIconSet(px)
77         self.boutonPlus = QPushButton(icon, '', self.parent)
78         self.glProprietes.addWidget(self.boutonPlus, 0, 1, Qt.AlignCenter)
79         
80         self.connect(self.boutonPlus, SIGNAL('clicked()'), self.controleurNouvelleLigneTable.nouvelleLigne)
81     
82     def suivant(self):
83         """
84         met à jour l'étude avec les valeurs des ddls saisies
85         passe au panneau suivant
86         affiche les valeurs mises à jour (simple fonction d'aide)
87         """
88         self.appli.etude.setDdls(self.tbl)
89         PanelBase.suivant(self)
90         self.appli.etude.affiche()