]> SALOME platform Git repositories - tools/eficas.git/blob - InterfaceQT4/compofact.py
Salome HOME
*** empty log message ***
[tools/eficas.git] / InterfaceQT4 / compofact.py
1 # -*- coding: utf-8 -*-
2 #            CONFIGURATION MANAGEMENT OF EDF VERSION
3 # ======================================================================
4 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
5 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8 # (AT YOUR OPTION) ANY LATER VERSION.
9 #
10 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
12 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
13 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
14 #
15 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
16 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
17 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
18 #
19 #
20 # ======================================================================
21
22 from PyQt4 import *
23 from PyQt4.QtGui  import *
24 from PyQt4.QtCore import *
25 import browser
26 import typeNode
27
28
29 from Editeur import Objecttreeitem
30
31
32 class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel):
33     def getPanel(self):
34         """
35         """
36         from monMCFactPanel import MonMCFactPanel
37         return MonMCFactPanel(self,parent=self.editor)
38         
39     def createPopUpMenu(self):
40         typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self)
41
42
43 class FACTTreeItem(Objecttreeitem.ObjectTreeItem):
44   itemNode=Node
45   
46   def IsExpandable(self):
47     return 1
48
49   def GetText(self):
50       return  ''
51
52   def GetLabelText(self):
53       """ Retourne 3 valeurs :
54         - le texte à afficher dans le noeud représentant l'item
55         - la fonte dans laquelle afficher ce texte
56         - la couleur du texte
57       """
58       # None --> fonte et couleur par défaut
59       return self.object.getlabeltext(),None,None
60
61   def isvalid(self):
62     return self.object.isvalid()
63
64   def iscopiable(self):
65     return 1
66
67   def GetIconName(self):
68     if self.object.isvalid():
69       return "ast-green-los"
70     elif self.object.isoblig():
71       return "ast-red-los"
72     else:
73       return "ast-yel-los"
74
75   def keys(self):
76     keys=self.object.mc_dict.keys()
77     return keys
78
79   def GetSubList(self):
80       """
81          Reactualise la liste des items fils stockes dans self.sublist
82       """
83       liste=self.object.mc_liste
84       sublist=[None]*len(liste)
85       # suppression des items lies aux objets disparus
86       for item in self.sublist:
87          old_obj=item.getObject()
88          if old_obj in liste:
89             pos=liste.index(old_obj)
90             sublist[pos]=item
91          else:
92             pass # objets supprimes ignores
93       # ajout des items lies aux nouveaux objets
94       pos=0
95       for obj in liste:
96          if sublist[pos] is None:
97             # nouvel objet : on cree un nouvel item
98             def setfunction(value, object=obj):
99                 object.setval(value)
100             item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, setfunction)
101             sublist[pos]=item
102          pos=pos+1
103
104       self.sublist=sublist
105       return self.sublist
106
107   def additem(self,name,pos):
108     objet = self.object.addentite(name,pos)
109     return objet
110
111   def suppitem(self,item) :
112       """ 
113          Cette methode a pour fonction de supprimer l'item passee en argument
114          des fils de l'item FACT qui est son pere
115            - item = item du MOCLE a supprimer du MOCLE pere
116            - item.getObject() = MCSIMP ou MCBLOC 
117       """
118       itemobject=item.getObject()
119       if itemobject.isoblig() :
120          self.appli.affiche_infos('Impossible de supprimer un mot-clé obligatoire ',Qt.red)
121          return 0
122
123       if self.object.suppentite(itemobject):
124          message = "Mot-clé " + itemobject.nom + " supprimé"
125          self.appli.affiche_infos(message)
126          return 1
127       else:
128          self.appli.affiche_infos('Pb interne : impossible de supprimer ce mot-clé',Qt.red)
129          return 0
130
131 import Accas
132 objet = Accas.MCFACT
133 treeitem = FACTTreeItem