Salome HOME
This commit was generated by cvs2git to track changes on a CVS vendor
[tools/eficas.git] / Editeur / compojdc.py
1 #            CONFIGURATION MANAGEMENT OF EDF VERSION
2 # ======================================================================
3 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
4 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7 # (AT YOUR OPTION) ANY LATER VERSION.
8 #
9 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
10 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
12 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
13 #
14 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
16 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
17 #
18 #
19 # ======================================================================
20 import Pmw
21 import Objecttreeitem
22 import panels
23
24 from widgets import ListeChoix
25
26 class JDCPanel(panels.OngletPanel):
27   def init(self):
28       """ Initialise les frame des panneaux contextuels relatifs à un JDC """
29       panneau=Pmw.PanedWidget(self,orient='horizontal')
30       panneau.add('left',min=0.4,max=0.6,size=0.5)
31       panneau.add('right',min=0.4,max=0.6,size=0.5)
32       panneau.pack(expand=1,fill='both')
33       self.bouton_com.pack_forget()
34       self.makeJDCPage(panneau.pane('left'))
35       self.makeReglesPage(panneau.pane('right'))
36     
37   def makeReglesPage(self,page) :
38     regles = []
39     regles = self.node.item.get_regles()
40     texte_regles = []
41     l_regles_en_defaut=[]
42     if len(regles) > 0:
43       l_noms_etapes = self.node.item.get_l_noms_etapes()
44       i = 0
45       for regle in regles :
46         texte_regles.append(regle.gettext())
47         texte,test = regle.verif(l_noms_etapes)
48         if test == 0 : l_regles_en_defaut.append(i)
49         i = i+1
50     Liste = ListeChoix(self,page,texte_regles,liste_marques=l_regles_en_defaut,active='non',titre="Règles")
51     Liste.affiche_liste()
52     # aide associée au panneau
53     bulle_aide="""Ce panneau contient la liste des règles qui s'appliquent à l'objet
54     en cours d'édition.
55     - en noir : règles valides
56     - en rouge : règles violées"""
57     Liste.MCbox.bind("<Button-3>", lambda e,s=self,a=bulle_aide : s.parent.appli.affiche_aide(e,a))
58     Liste.MCbox.bind("<ButtonRelease-3>",self.parent.appli.efface_aide)
59
60 class JDCTreeItem(Objecttreeitem.ObjectTreeItem):
61   panel = JDCPanel
62   
63   def IsExpandable(self):
64 #    return len(self.object.etapes) > 0
65     return 1
66
67   def isJdc(self):
68       """
69       Retourne 1 si l'objet pointé par self est un JDC, 0 sinon
70       """
71       return 1
72     
73   def GetText(self):
74       return  "    "
75
76   def get_jdc(self):
77     """
78     Retourne l'objet pointé par self
79     """
80     return self.object
81   
82   def GetIconName(self):
83     if self.object.isvalid():
84       return "ast-green-square"
85     else:
86       return "ast-red-square"
87
88   def keys(self):
89       if self.object.etapes_niveaux != []:
90           return range(len(self.object.etapes_niveaux))
91       else:
92           return range(len(self.object.etapes))
93
94   def additem(self,name,pos):
95       if isinstance(name,Objecttreeitem.ObjectTreeItem) :
96           cmd=self.object.addentite(name.object,pos)
97       else :
98           cmd = self.object.addentite(name,pos)
99       item = self.make_objecttreeitem(self.appli,cmd.nom + " : ", cmd)
100       return item
101
102   def suppitem(self,item) :
103     # item = item de l'ETAPE à supprimer du JDC
104     # item.object = ETAPE ou COMMENTAIRE
105     # self.object = JDC
106     self.object.suppentite(item.object)
107     if item.object.nature == "COMMENTAIRE" :
108         message = "Commentaire supprimé"
109         self.appli.affiche_infos(message)
110     else :
111         message = "Commande " + item.object.nom + " supprimée"
112         self.appli.affiche_infos(message)
113     return 1
114
115   def GetSubList(self):
116     sublist=[]
117     if self.object.etapes_niveaux != []:
118         liste = self.object.etapes_niveaux
119     else:
120         liste = self.object.etapes
121     key=0
122     for value in liste:
123       def setfunction(value, key=key, object=liste):
124         object[key] = value
125       item = self.make_objecttreeitem(self.appli,value.ident() + " : ", value, setfunction)
126       sublist.append(item)
127       key=key+1
128     return sublist
129
130   def verif_condition_bloc(self):
131       # retourne la liste des sous-items dont la condition est valide
132       # sans objet pour le JDC
133       return [],[]
134
135   def get_l_noms_etapes(self):
136       """ Retourne la liste des noms des étapes de self.object"""
137       return self.object.get_l_noms_etapes()
138
139     
140 import Accas
141 treeitem =JDCTreeItem
142 objet = Accas.JDC