+ """
+ Une MCList n'est jamais obligatoire (meme si le MCFACT qu'elle represente l'est
+ """
+ return self.data[0].definition.statut=='o'
+
+ def suppentite(self,obj):
+ """
+ Supprime le mot cle facteur obj de la MCLIST
+ """
+ if obj not in self:
+ return 0
+
+ self.init_modif()
+ self.remove(obj)
+ CONNECTOR.Emit(self,"supp",obj)
+ self.update_condition_bloc()
+ obj.supprime()
+ self.etape.modified()
+ self.fin_modif()
+ return 1
+
+ def addentite(self,obj,pos=None):
+ """
+ Ajoute le mot cle facteur obj a la MCLIST a la position pos
+ Retourne None si l'ajout est impossible
+ """
+ if type(obj)==bytes :
+ # on est en mode creation d'un motcle
+ raise EficasException(tr("traitement non-prevu"))
+
+ if not self.ajout_possible():
+ self.jdc.appli.affiche_alerte(tr("Erreur"),
+ tr("L'objet %s ne peut pas etre ajoute", obj.nom))
+ return None
+
+ if self.nom != obj.nom:
+ return None
+
+ if obj.isMCList():
+ obj=obj.data[0]
+
+ # Traitement du copier coller seulement
+ # Les autres cas d'ajout sont traites dans MCFACT
+ self.init_modif()
+ obj.verif_existence_sd()
+ obj.reparent(self.parent)
+ if pos is None:
+ self.append(obj)
+ else:
+ self.insert(pos,obj)
+ CONNECTOR.Emit(self,"add",obj)
+ self.fin_modif()
+ self.update_condition_bloc()
+ return obj