Salome HOME
F.R: fin correction bug copier/coller
authoreficas <>
Fri, 5 Apr 2002 06:32:39 +0000 (06:32 +0000)
committereficas <>
Fri, 5 Apr 2002 06:32:39 +0000 (06:32 +0000)
Aster/sdist.py
Editeur/compomacro.py
Editeur/compomclist.py
Editeur/compooper.py
Editeur/panels.py
Editeur/treewidget.py
Extensions/commentaire.py
Extensions/parametre.py
Ihm/I_MCCOMPO.py
Ihm/I_MCLIST.py

index e0a96057317b7f1ffea14925c0409a6b69b6cbbc..830ccb73a9584bed84aff842b78e323d2bbe5598 100644 (file)
@@ -22,8 +22,9 @@ import os,shutil,glob,sys
 import types
 
 version="$Name:  $"[7:-2] or 'Test1_2'
-
+# ==========Path du noyau fourni par Aster====================
 path_Noyau="../../../Tutorial/Superv"
+# ============================================================
 nom_distrib="Eficas"+version+"AsterSTA6"
 path_distrib=os.path.join("dist",nom_distrib)
 path_TextTools="/home/eficas/pkg/mxTools/egenix2.0.2pourWindows/mx/TextTools"
index d4e79e67958ad172219b5fdbbe896349ab376eae..e8bcc6a95db19cd2b9b56cc3bdce86680ba6ce3b 100644 (file)
@@ -24,7 +24,7 @@ from widgets import Fenetre
 
 #
 __version__="$Name:  $"
-__Id__="$Id: compomacro.py,v 1.1.1.1 2002/03/26 09:08:45 eficas Exp $"
+__Id__="$Id: compomacro.py,v 1.2 2002/04/03 11:35:12 eficas Exp $"
 #
 
 class MACROPanel(panels.OngletPanel):
@@ -235,6 +235,7 @@ class MACROTreeItem(compooper.EtapeTreeItem):
       # item.object = MCSIMP, MCFACT, MCBLOC ou MCList 
       if item.object.isoblig() :
           self.appli.affiche_infos('Impossible de supprimer un mot-clé obligatoire ')
+         print "Impossible de supprimer un mot-clé obligatoire"
           return 0
       else :
           self.object.suppentite(item.object)
index 74f5254ea96babcde67d2a0d070171f2f8404c04..5fc08afb989f57e4e9fecb452366dd84635372fb 100644 (file)
@@ -39,7 +39,35 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem):
         Retourne 1 si l'objet pointé par self est un MCFact, 0 sinon
         """
         return 0
-    
+
+    def isMCList(self):
+        """
+        Retourne 1 si l'objet pointé par self est une MCList, 0 sinon
+        """
+        return 1
+       
+    def additem(self,obj,pos):
+        """
+       Ajoute un objet MCFACT à la MCList (self.object) à la position pos
+       """
+       self.object.init_modif()
+       obj.verif_existence_sd()
+       obj.reparent(self.object.parent)
+       self.object.insert(pos,obj)
+        item = self.make_objecttreeitem(self.appli, obj.nom + ":", obj)
+        return item  
+
+    def suppitem(self,item):
+        """
+       Retire un objet MCFACT de la MCList (self.object) 
+       """
+        self.object.init_modif()
+        self.object.remove(item.object)
+        # la liste peut être retournée vide !
+        message = "Mot-clé " + item.object.nom + " supprimé"
+        self.appli.affiche_infos(message)
+        return 1
+           
 import Accas
 treeitem = MCListTreeItem
 objet = Accas.MCList    
index 0cf43cb74ee1bab0ecb3527e961ed621842b89d2..b59d99416fde82a550dd6f1ef0cd4232c632b314 100644 (file)
@@ -220,6 +220,16 @@ class EtapeTreeItem(Objecttreeitem.ObjectTreeItem):
       commande_comment.jdc = commande_comment.parent = self.object.jdc
       return commande_comment
 
+  def replace_child(self,old_item,new_item):
+     """
+     Remplace old_item.object par new_item.object dans les fils de self.object
+     """
+     index = self.object.mc_liste.index(old_item.object)
+     self.object.init_modif()
+     self.object.mc_liste.remove(old_item.object)
+     self.object.mc_liste.insert(index,new_item.object)
+     self.object.fin_modif()
+     
 import Accas
 treeitem = EtapeTreeItem
 objet = Accas.ETAPE    
index 8338308aeecce7a4acaf109a3f37967a8275ae6c..123907f5dbd4d7a0c2c4eaa0bb5237e81b90f9cc 100644 (file)
@@ -152,7 +152,6 @@ class Panel(Frame) :
       if self.parent.modified == 'n' : self.parent.init_modif()
       pere = self.node.parent
       self.node.delete()
-      pere.select()
       
   def affiche(self):
       """ Force l'affichage des fenêtres en cours """
index 8b505029923bec0b64eb941413ba2abec84829c0..e328c1842f95f5a09d750f7291ce2e10aec32bf3 100644 (file)
@@ -5,7 +5,7 @@
 #              SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
 #              REDISTRIBUTION OF THIS FILE.
 # ======================================================================
-import os,sys,string,re,types
+import os,sys,string,re,types,traceback
 from Tkinter import *
 
 
@@ -14,7 +14,7 @@ import images
 
 #
 __version__="$Name:  $"
-__Id__="$Id: treewidget.py,v 1.2 2002/03/27 16:20:02 eficas Exp $"
+__Id__="$Id: treewidget.py,v 1.3 2002/04/03 11:35:12 eficas Exp $"
 #
 
 Fonte_Standard = fontes.standard
@@ -683,6 +683,7 @@ class Node :
                 print 'Erreur dans la destruction de ',self.item.get_nom(),' dans delete'
             nbnew = pere.get_nb_children()
         pere.redraw(nbnew-nbold)
+       pere.select()
 
     def copynode(self,node,pos) :
         """ node est le noeud à copier à la position pos de self ( = parent de node) """
@@ -697,15 +698,16 @@ class Node :
             try :
                 child.item.object.mc_liste = objet_copie.mc_liste
             except:
-                pass
+                traceback.print_exc()
     #--------------------------------------------------------------
     # Méthodes de vérification du contexte et de validité du noeud
     #--------------------------------------------------------------
-    def traite_mclist(self):
+    def traite_mclist_OLD(self):
         """ Dans le cas d'une MCList il faut vérifier qu'elle n'est pas vide
             ou réduite à un seul élément suite à une destruction
         """
         # self représente une MCList
+       print "on passe par traite_mclist ",len(self.item)
         if len(self.item) == 0 :
             # la liste est vide : il faut la supprimer
             self.delete()
@@ -716,6 +718,8 @@ class Node :
             noeud = self.children[0]
             if self.parent.delete_child(self):
                 self.parent.append_node_child(noeud.item,pos=index,verif='non')
+            else:
+               print "destruction de self impossible !"
             #if self.parent.delete_child(self):
             #    self.parent.copynode(self.children[0],index)
             #else :
@@ -723,6 +727,26 @@ class Node :
         else :
             return
 
+    def traite_mclist(self):
+        """ Dans le cas d'une MCList il faut vérifier qu'elle n'est pas vide
+            ou réduite à un seul élément suite à une destruction
+        """
+        # self représente une MCList
+        if len(self.item) == 0 :
+            # la liste est vide : il faut la supprimer
+            self.delete()
+        elif len(self.item) == 1:
+            # il ne reste plus qu'un élément dans la liste
+            # il faut supprimer la liste et créer directement l'objet
+            index = self.parent.children.index(self)
+            noeud = self.children[0]
+           noeud.parent = self.parent
+           self.parent.delete_node_child(self)
+            self.parent.item.replace_child(self.item,noeud.item)
+           self.parent.children.insert(index,noeud)
+        else :
+            return
+           
     def verif_all(self):
         self.verif_all_children()
             
index 64c3c7502d52ec687c68fbe082f2cf914dd11a19..21ec130df97f1d6c2b407df03b571aa0f3d383b0 100644 (file)
@@ -151,5 +151,6 @@ class COMMENTAIRE :
      """
      return None
 
-
+  def verif_existence_sd(self):
+     pass
 
index 7e18bc160d5c5a33a4b1dccfbab0831df4f41aab..250eae1d102f93c4a132f25f299daa6f41b98b39 100644 (file)
@@ -250,7 +250,8 @@ class PARAMETRE :
     """
     return []
 
-
+  def verif_existence_sd(self):
+     pass
 
 
 
index b0278b9421e1e0577055ab0c9b41dbae5f3dc462..0fcab2e6d2790916d91b58f206131a299de5cc6d 100644 (file)
@@ -160,6 +160,7 @@ class MCCOMPO(I_OBJECT.OBJECT):
       """
       self.init_modif()
       if type(name)==types.StringType :
+        # on est en mode création d'un motcle 
         if self.ispermis(name) == 0 : return 0
         objet=self.definition.entites[name](val=None,nom=name,parent=self)
         if hasattr(objet.definition,'position'):
@@ -168,7 +169,9 @@ class MCCOMPO(I_OBJECT.OBJECT):
           elif objet.definition.position == 'global_jdc' :
             self.append_mc_global_jdc(objet)
       else :
+        # dans ce cas on est en mode copie d'un motcle
         objet = name
+       objet.verif_existence_sd()
       # si un objet de même nom est déjà présent dans la liste
       # et si l'objet est répétable
       # il faut créer une MCList et remplacer l'objet de la liste
index db2e0552eaa7052848bdb6c9973235dab1a23e99..fc4afcf67cb224194193b4b1836c595ea7128582 100644 (file)
@@ -28,9 +28,13 @@ class MCList:
         return 0
 
   def isoblig(self):
-    for i in self.data:
-      if i.isoblig():return 1
-    return 0
+     """
+     Une MCList n'est jamais obligatoire (même si le MCFACT qu'elle représente l'est
+     """
+     return 0
+     #for i in self.data:
+     #  if i.isoblig():return 1
+     #return 0
 
   def liste_mc_presents(self):
     return []