Salome HOME
Version initiale de EFICAS 1.2
[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     liste = self.data[0].definition.list_instance()
53     # XXX Pas de parent ??
54     liste.init(self.nom)
55     for objet in self:
56       new_obj = objet.copy()
57       liste.append(new_obj)
58     return liste
59
60   def get_docu(self):
61     return self.data[0].definition.get_docu()
62
63   def get_liste_mc_inconnus(self):
64      """
65      Retourne la liste des mots-clés inconnus dans self
66      """
67      l_mc = []
68      for mcfact in self.data :
69         if mcfact.isvalid() : continue
70         l_child = mcfact.get_liste_mc_inconnus()
71         if l_child :
72            l = [self]
73            l.extend(l_child)
74            l_mc.append(l)
75      return l_mc
76
77   def verif_condition_regles(self,liste_presents):
78     """
79         Retourne la liste des mots-clés à rajouter pour satisfaire les règles
80         en fonction de la liste des mots-clés présents
81     """
82     # Sans objet pour une liste de mots clés facteurs
83     return []
84
85   def verif_condition_bloc(self):
86     """ 
87         Evalue les conditions de tous les blocs fils possibles 
88         (en fonction du catalogue donc de la définition) de self et 
89         retourne deux listes :
90         - la première contient les noms des blocs à rajouter
91         - la seconde contient les noms des blocs à supprimer
92     """
93     # Sans objet pour une liste de mots clés facteurs
94     return [],[]
95