Salome HOME
Version initiale de EFICAS 1.2
[tools/eficas.git] / Editeur / compojdc.py
1 #@ MODIF compojdc Editeur  DATE 02/07/2001   AUTEUR D6BHHJP J.P.LEFEBVRE 
2 #            CONFIGURATION MANAGEMENT OF EDF VERSION
3 # ======================================================================
4 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
5 #              SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
6 #              REDISTRIBUTION OF THIS FILE.
7 # ======================================================================
8 #XXX est ce utile ?from Tkinter import *
9 import Pmw
10 import Objecttreeitem
11 import panels
12
13 from widgets import ListeChoix
14 # XXX temporairement supprimé :from Accas import commentaire 
15
16 class JDCPanel(panels.OngletPanel):
17   def init(self):
18       """ Initialise les frame des panneaux contextuels relatifs à un JDC """
19       panneau=Pmw.PanedWidget(self,orient='horizontal')
20       panneau.add('left',min=0.4,max=0.6,size=0.5)
21       panneau.add('right',min=0.4,max=0.6,size=0.5)
22       panneau.pack(expand=1,fill='both')
23       self.bouton_com.pack_forget()
24       self.makeJDCPage(panneau.pane('left'))
25       self.makeReglesPage(panneau.pane('right'))
26     
27   def makeReglesPage(self,page) :
28     regles = []
29     regles = self.node.item.get_regles()
30     texte_regles = []
31     l_regles_en_defaut=[]
32     if len(regles) > 0:
33       l_noms_etapes = self.node.item.get_l_noms_etapes()
34       i = 0
35       for regle in regles :
36         texte_regles.append(regle.gettext())
37         texte,test = regle.verif(l_noms_etapes)
38         if test == 0 : l_regles_en_defaut.append(i)
39         i = i+1
40     Liste = ListeChoix(self,page,texte_regles,liste_marques=l_regles_en_defaut,active='non',titre="Règles")
41     Liste.affiche_liste()
42     # aide associée au panneau
43     bulle_aide="""Ce panneau contient la liste des règles qui s'appliquent à l'objet
44     en cours d'édition.
45     - en noir : règles valides
46     - en rouge : règles violées"""
47     Liste.MCbox.bind("<Button-3>", lambda e,s=self,a=bulle_aide : s.parent.appli.affiche_aide(e,a))
48     Liste.MCbox.bind("<ButtonRelease-3>",self.parent.appli.efface_aide)
49
50 class JDCTreeItem(Objecttreeitem.ObjectTreeItem):
51   panel = JDCPanel
52   
53   def IsExpandable(self):
54 #    return len(self.object.etapes) > 0
55     return 1
56
57   def isJdc(self):
58       """
59       Retourne 1 si l'objet pointé par self est un JDC, 0 sinon
60       """
61       return 1
62     
63   def GetText(self):
64       return  "    "
65
66   def get_jdc(self):
67     """
68     Retourne l'objet pointé par self
69     """
70     return self.object
71   
72   def GetIconName(self):
73     if self.object.isvalid():
74       return "ast-green-square"
75     else:
76       return "ast-red-square"
77
78   def keys(self):
79       if self.object.etapes_niveaux != []:
80           return range(len(self.object.etapes_niveaux))
81       else:
82           return range(len(self.object.etapes))
83
84   def additem(self,name,pos):
85       if isinstance(name,Objecttreeitem.ObjectTreeItem) :
86           cmd=self.object.addentite(name.object,pos)
87       else :
88           cmd = self.object.addentite(name,pos)
89       item = self.make_objecttreeitem(self.appli,cmd.nom + " : ", cmd)
90       return item
91
92   def suppitem(self,item) :
93     # item = item de l'ETAPE à supprimer du JDC
94     # item.object = ETAPE ou COMMENTAIRE
95     # self.object = JDC
96     self.object.suppentite(item.object)
97     if item.object.nature == "COMMENTAIRE" :
98         message = "Commentaire supprimé"
99         self.appli.affiche_infos(message)
100     else :
101         message = "Commande " + item.object.nom + " supprimée"
102         self.appli.affiche_infos(message)
103     return 1
104
105   def GetSubList(self):
106     sublist=[]
107     if self.object.etapes_niveaux != []:
108         liste = self.object.etapes_niveaux
109     else:
110         liste = self.object.etapes
111     key=0
112     for value in liste:
113       def setfunction(value, key=key, object=liste):
114         object[key] = value
115       item = self.make_objecttreeitem(self.appli,value.ident() + " : ", value, setfunction)
116       sublist.append(item)
117       key=key+1
118     return sublist
119
120   def verif_condition_bloc(self):
121       # retourne la liste des sous-items dont la condition est valide
122       # sans objet pour le JDC
123       return [],[]
124
125   def get_l_noms_etapes(self):
126       """ Retourne la liste des noms des étapes de self.object"""
127       return self.object.get_l_noms_etapes()
128
129     
130 import Accas
131 treeitem =JDCTreeItem
132 objet = Accas.JDC