Salome HOME
CCAR: correction d'un probleme de mise a jour de contexte lors d'une insertion
[tools/eficas.git] / Noyau / N_CR.py
index 9c511aa1924cb33a5e8751850a49ef029d7a5f64..addfe661f88b76f05a920bc62def2ce3a58a8658 100644 (file)
@@ -1,3 +1,26 @@
+#@ MODIF N_CR Noyau  DATE 14/09/2004   AUTEUR MCOURTOI M.COURTOIS 
+# -*- coding: iso-8859-1 -*-
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
+# (AT YOUR OPTION) ANY LATER VERSION.                                 
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+#                                                                       
+#                                                                       
+# ======================================================================
+
+
 """ Ce module contient la classe compte-rendu de validation
 """
 
@@ -99,14 +122,14 @@ class CR :
 
    def __str__(self):
       """
-        Retourne une chaîne de caractères décorée et représentative de self
+        Retourne une chaine de caractères décorée et représentative de self
       """
       s=''
       self.beautifie_messages()
-      s=s+string.join(self.crok_belle)
-      s=s+string.join(self.crwarn_belle)
-      s=s+string.join(self.crfatal_belle)
-      s=s+string.join(self.crexception_belle)
+      s=s+string.join(self.crok_belle,'')
+      s=s+string.join(self.crwarn_belle,'')
+      s=s+string.join(self.crfatal_belle,'')
+      s=s+string.join(self.crexception_belle,'')
       for subcr in self.subcr:
          if self.verbeux == 'oui':
             s=s+str(subcr)+'\n'
@@ -121,7 +144,7 @@ class CR :
 
    def report(self,decalage = 2):
       """
-        Retourne une chaîne de caractères non encadrée mais représentative de self
+        Retourne une chaine de caractères non encadrée mais représentative de self
       """
       s=''
       # on stocke dans s les messages de premier niveau
@@ -145,7 +168,7 @@ class CR :
 
    def get_mess_fatal(self):
       """
-          Retourne une chaîne de caractères contenant les messages de 
+          Retourne une chaine de caractères contenant les messages de 
           la liste crfatal (du dernier au premier)
       """
       self.crfatal.reverse()
@@ -157,7 +180,7 @@ class CR :
 
    def get_mess_exception(self):
       """
-          Retourne une chaîne de caractères contenant les messages 
+          Retourne une chaine de caractères contenant les messages 
           de la liste crexception (du dernier au premier)
       """
       self.crexception.reverse()
@@ -170,9 +193,9 @@ class CR :
 
 
 
-def justify_text(texte='',cesure=50):
+def justify_text_old(texte='',cesure=50):
   """
-      Prend la chaîne de caractères 'texte' et la retourne avec un retour chariot
+      Prend la chaine de caractères 'texte' et la retourne avec un retour chariot
       tous les 'cesure' caractères s'il y a lieu (le retour chariot est placé dans un blanc
       et non au milieu d'un mot
   """
@@ -199,15 +222,62 @@ def justify_text(texte='',cesure=50):
     texte_justifie = texte_justifie + string.strip(new_text) + '\n'
   return texte_justifie[0:-1]
 
-def encadre_message(texte,motif):
+def encadre_message_old(texte,motif):
   """ 
-     Retourne la chaîne de caractères texte entourée d'un cadre formés
+     Retourne la chaine de caractères texte entourée d'un cadre formés
+     d'éléments 'motif'
+  """
+  texte = justify_text(texte,cesure=80)
+  lignes = string.split(texte,'\n')
+  longueur = 0
+  for ligne in lignes :
+    if len(ligne)> longueur : longueur = len(ligne)
+  longueur = longueur + 4
+  txt = motif*longueur+'\n'
+  for ligne in lignes :
+    txt = txt + motif + ' '+ligne+' '*(longueur-len(motif+ligne)-2)+motif+'\n'
+  txt = txt + motif*longueur+'\n'
+  return txt
+
+
+
+
+separateurs=(' ',',','/')
+def split(ligne,cesure):
+       ligne= string.rstrip(ligne)
+       if len(ligne) <= cesure :
+          return ligne
+       else:
+          coupure=cesure
+          while ligne[coupure] not in separateurs and coupure > 0:
+             coupure = coupure - 1
+          if coupure == 0:
+             # Il faut augmenter la cesure
+             coupure =cesure
+             while ligne[coupure] not in separateurs and coupure < len(ligne)-1 :
+                coupure = coupure + 1
+          if coupure == len(ligne)-1:
+             return ligne
+          else:
+             return ligne[:coupure+1]+ '\n' + split(ligne[coupure+1:],cesure)
+
+def justify_text(texte='',cesure=50):
+       texte = string.strip(texte)
+       liste_lignes = string.split(texte,'\n')
+       l=[split(l,cesure) for l in liste_lignes]
+       texte_justifie=string.join(l,'\n')
+       return texte_justifie
+
+def encadre_message(texte,motif):
+  """
+     Retourne la chaine de caractères texte entourée d'un cadre formés
      d'éléments 'motif'
   """
   texte = justify_text(texte,cesure=80)
   lignes = string.split(texte,'\n')
   longueur = 0
   for ligne in lignes :
+    ligne=string.rstrip(ligne)
     if len(ligne)> longueur : longueur = len(ligne)
   longueur = longueur + 4
   txt = motif*longueur+'\n'