]> SALOME platform Git repositories - tools/eficas.git/blob - Ihm/I_MCLIST.py
Salome HOME
F.R: Plusieurs bugs corrigés pour arriver à écrire la première moitié
[tools/eficas.git] / Ihm / I_MCLIST.py
1 from copy import copy
2
3 class MCList:
4   def isMCList(self):
5     """ 
6        Retourne 1 si self est une MCList (liste de mots-clés), 0 sinon (défaut) 
7     """
8     return 1
9
10   def get_index(self,objet):
11     """
12         Retourne la position d'objet dans la liste self
13     """
14     return self.data.index(objet)
15
16   def ajout_possible(self):
17     """ 
18         Méthode booléenne qui retourne 1 si on peut encore ajouter une occurrence
19         de l'élément que contient self, 0 sinon 
20     """
21     max = self.data[0].definition.max
22     if max == '**':
23       return 1
24     else:
25       if len(self) < max :
26         return 1
27       else:
28         return 0
29
30   def isoblig(self):
31     for i in self.data:
32       if i.isoblig():return 1
33     return 0
34
35   def liste_mc_presents(self):
36     return []
37
38   def delete_concept(self,sd):
39     """ 
40         Inputs :
41            sd=concept detruit
42         Fonction :
43            Mettre a jour les fils de l objet suite à la disparition 
44            du concept sd
45            Seuls les mots cles simples MCSIMP font un traitement autre 
46            que de transmettre aux fils
47     """
48     for child in self.data :
49       child.delete_concept(sd)
50
51   def copy(self):
52     """
53        Réalise la copie d'une MCList
54     """
55     liste = self.data[0].definition.list_instance()
56     # XXX Pas de parent ??
57     # FR -->Il faut en spécifier un pour la méthode init qui attend 2 arguments ...
58     liste.init(self.nom,self.parent)
59     for objet in self:
60       new_obj = objet.copy()
61       new_obj.parent = liste
62       liste.append(new_obj)
63     return liste
64
65   def get_docu(self):
66     return self.data[0].definition.get_docu()
67
68   def get_liste_mc_inconnus(self):
69      """
70      Retourne la liste des mots-clés inconnus dans self
71      """
72      l_mc = []
73      for mcfact in self.data :
74         if mcfact.isvalid() : continue
75         l_child = mcfact.get_liste_mc_inconnus()
76         if l_child :
77            l = [self]
78            l.extend(l_child)
79            l_mc.append(l)
80      return l_mc
81
82   def verif_condition_regles(self,liste_presents):
83     """
84         Retourne la liste des mots-clés à rajouter pour satisfaire les règles
85         en fonction de la liste des mots-clés présents
86     """
87     # Sans objet pour une liste de mots clés facteurs
88     return []
89
90   def verif_condition_bloc(self):
91     """ 
92         Evalue les conditions de tous les blocs fils possibles 
93         (en fonction du catalogue donc de la définition) de self et 
94         retourne deux listes :
95         - la première contient les noms des blocs à rajouter
96         - la seconde contient les noms des blocs à supprimer
97     """
98     # Sans objet pour une liste de mots clés facteurs
99     return [],[]
100
101   def init_modif(self):
102     """
103        Met l'état de l'objet à modified et propage au parent
104        qui vaut None s'il n'existe pas
105     """
106     self.state = 'modified'
107     if self.parent:
108       self.parent.init_modif()
109
110   def get_etape(self):
111      """
112         Retourne l'étape à laquelle appartient self
113         Un objet de la catégorie etape doit retourner self pour indiquer que
114         l'étape a été trouvée
115         XXX double emploi avec self.etape ???
116      """
117      if self.parent == None: return None
118      return self.parent.get_etape()