]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
PSEN
authorpascale.noyret <pascale.noyret@edf.fr>
Thu, 30 Jul 2015 09:38:19 +0000 (11:38 +0200)
committerpascale.noyret <pascale.noyret@edf.fr>
Thu, 30 Jul 2015 09:38:19 +0000 (11:38 +0200)
23 files changed:
InterfaceQT4/browser.py
InterfaceQT4/compocomm.py
InterfaceQT4/compomacro.py
InterfaceQT4/compooper.py
InterfaceQT4/composimp.py
InterfaceQT4/configuration.py
InterfaceQT4/gereListe.py
InterfaceQT4/monChoixCommande.py
InterfaceQT4/monWidgetPlusieursBase.py
InterfaceQT4/monWidgetPlusieursInto.py
InterfaceQT4/monWidgetSimpBase.py
InterfaceQT4/politiquesValidation.py
InterfaceQT4/qtEficas.py
InterfaceQT4/readercata.py
InterfaceQT4/typeNode.py
PSEN_Eficas/ExtractGeneratorandLoadList.py
PSEN_Eficas/opsPSEN.py
UiQT4/desBaseWidget.ui
UiQT4/desWidgetCB.ui
UiQT4/desWidgetPlusieursBase.ui
UiQT4/desWidgetPlusieursInto.ui
UiQT4/makefile
convert/parseur_python.py

index 0b31bc2739b94ea150ce9055b25526b0db699fd9..ae530c3cf1624c5e47b637d3b683e7c005094c54 100644 (file)
@@ -419,6 +419,10 @@ class JDCNode(QTreeWidgetItem):
         Methode externe
         """
         self.editor.init_modif()
+
+        verifiePosition=self.verifiePosition(name,pos)
+        if not verifiePosition : return 0
+        
         index = self.treeParent.children.index(self)
         if   pos == 'before': index = index
         elif pos == 'after': index = index +1
@@ -427,6 +431,40 @@ class JDCNode(QTreeWidgetItem):
             return 0
         return self.treeParent.append_child(name,pos=index,plier=plier)
 
+    def verifiePosition(self,name,pos):
+        from InterfaceQT4 import compojdc
+        if not (isinstance(self.treeParent, compojdc.Node)) : return True
+        if name not in self.editor.Classement_Commandes_Ds_Arbre : return True
+        indexName=self.editor.Classement_Commandes_Ds_Arbre.index(name)
+
+        etapes=self.item.jdc.etapes
+        if etapes == [] : return True
+
+        indexOu=etapes.index(self.item.object)
+        if pos=="after" : indexOu = indexOu+1
+        print self.editor.Classement_Commandes_Ds_Arbre
+        print indexOu
+        print indexName
+        print name
+        print etapes
+        for e in etapes[:indexOu] :
+            nom=e.nom
+            if nom not in self.editor.Classement_Commandes_Ds_Arbre : continue
+            indexEtape=self.editor.Classement_Commandes_Ds_Arbre.index(nom)
+            if indexEtape > indexName :
+               comment=tr('le mot clef ')+name+tr(' doit etre insere avant ')+nom
+               QMessageBox.information( None,tr('insertion impossible'),comment, )
+               return False
+        for e in etapes[indexOu:] :
+            nom=e.nom
+            if nom not in self.editor.Classement_Commandes_Ds_Arbre : continue
+            indexEtape=self.editor.Classement_Commandes_Ds_Arbre.index(nom)
+            if indexEtape < indexName :
+               comment=tr('le mot clef ')+name+tr(' doit etre insere apres ')+nom
+               QMessageBox.information( None,tr('insertion impossible'),comment, )
+               return False
+        return True
+
     def append_child(self,name,pos=None,plier=False):
         """
            Methode pour ajouter un objet fils a l'objet associe au noeud self.
index d3e15102ab5ab44915cd604573cd71b3d75109ac..cff5e26ac570b18acc7b25da97a099df293aaefb 100644 (file)
@@ -39,7 +39,7 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel):
     def createPopUpMenu(self):
         typeNode.PopUpMenuNodePartiel.createPopUpMenu(self)
         self.Decommente = QAction(tr("Decommenter"),self.tree)
-        self.tree.connect(self.Decommente,SIGNAL("activated()"),self.Decommenter)
+        self.tree.connect(self.Decommente,SIGNAL("triggered()"),self.Decommenter)
         self.Decommente.setStatusTip(tr("Decommente la commande "))
 
         if hasattr(self.item,'uncomment'):
index 12849ab0ec85dcc5369b7154e67e0ab01fc1fb43..2d8e030a15d298ffc8b1295db4155c94e17e7024 100644 (file)
@@ -47,7 +47,7 @@ class MACRONode(browser.JDCNode,typeNode.PopUpMenuNode):
       typeNode.PopUpMenuNode.createPopUpMenu(self)
       if ("AFFE_CARA_ELEM" in self.item.get_genealogie()) and self.editor.salome:
            self.ViewElt = QAction(tr('View3D'),self.tree)
-           self.tree.connect(self.ViewElt,SIGNAL("activated()"),self.view3D)
+           self.tree.connect(self.ViewElt,SIGNAL("triggered()"),self.view3D)
            self.ViewElt.setStatusTip(tr("affiche dans Geom les elements de structure"))
            self.menu.addAction(self.ViewElt)
            if self.item.isvalid() :
@@ -61,11 +61,6 @@ class MACRONode(browser.JDCNode,typeNode.PopUpMenuNode):
         troisD.envoievisu()
 
         
-    #def doPaste(self,node_selected):
-    #    print 'je suis la'
-    #    objetACopier = self.item.get_copie_objet()
-    #    child=self.append_brother(objetACopier)
-    #    return child
 
     
 class MACROTreeItem(compooper.EtapeTreeItem):
index a895160c714f454750f5193c44116490258b0bb0..595843c12b40aea92581120c8d5a4ad2728b2e6c 100644 (file)
@@ -72,7 +72,7 @@ class Node(browser.JDCNode, typeNode.PopUpMenuNode):
         typeNode.PopUpMenuNode.createPopUpMenu(self)
         if ("AFFE_CARA_ELEM" in self.item.get_genealogie()) and self.editor.salome: 
            self.ViewElt = QAction(tr('View3D'),self.tree)
-           self.tree.connect(self.ViewElt,SIGNAL("activated()"),self.view3D)
+           self.tree.connect(self.ViewElt,SIGNAL("triggered()"),self.view3D)
            self.ViewElt.setStatusTip(tr("affiche dans Geom les elements de structure"))
            self.menu.addAction(self.ViewElt)
            if self.item.isvalid() :
@@ -81,7 +81,7 @@ class Node(browser.JDCNode, typeNode.PopUpMenuNode):
              self.ViewElt.setEnabled(0)
         if  self.item.get_nom() == "DISTRIBUTION" :
            self.Graphe = QAction(tr('Graphique'),self.tree)
-           self.tree.connect(self.Graphe,SIGNAL("activated()"),self.viewPng)
+           self.tree.connect(self.Graphe,SIGNAL("triggered()"),self.viewPng)
            self.Graphe.setStatusTip(tr("affiche la distribution "))
            self.menu.addAction(self.Graphe)
            if self.item.isvalid() :
index 802a188d129d34565ef0f5a0cfaf9b24e79787c5..c82c28d4bd657a8fd5e0b6f27e6c36a750451860 100644 (file)
@@ -224,6 +224,16 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):
           if self.item.wait_assd() and self.item.is_list_SansOrdreNiDoublon():
                from monWidgetPlusieursInto import MonWidgetPlusieursInto
                widget=MonWidgetPlusieursInto(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+          elif self.item.wait_tuple() :
+            if self.item.object.definition.type[0].ntuple == 2:
+               from monWidgetPlusieursTuple2 import MonWidgetPlusieursTuple2
+               widget=MonWidgetPlusieursTuple2(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+          #  elif self.item.object.definition.type[0].ntuple == 3 :
+          #     from monWidgetSimpTuple3 import MonWidgetSimpTuple3
+          #     widget=MonWidgetSimpTuple3(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+            else :
+               print "Pas de Tuple de longueur > 3"
+               print "Prevenir la maintenance "
           elif self.item.has_into():
             if self.item.is_list_SansOrdreNiDoublon():
                from monWidgetPlusieursInto import MonWidgetPlusieursInto
index ff2f4aad0560147506655fa218c8c97ad84e9147..c4e1ef7d8433d68f54bb01fb37f77d6b044f24cb 100644 (file)
@@ -51,7 +51,11 @@ class CONFIG_BASE:
       else           : self.name="editeur.ini"\r
       self.rep_mat = None\r
       self.repIni  = repIni\r
-      self.rep_user   = os.path.join(os.environ['HOME'],'.config/Eficas',appli.code)\r
+      if sys.platform[0:5]=="linux" :\r
+              self.rep_user   = os.path.join(os.environ['HOME'],'.config/Eficas',appli.code)\r
+      else :\r
+              self.rep_user   = os.path.join('C:/','.config/Eficas',appli.code)\r
+\r
      \r
 \r
       self.setValeursParDefaut()\r
index 11a43dbd107289ad165fa959e50fa2d94137c391..4383448f377615f137ce2078389c0a16d51826ba 100644 (file)
@@ -35,21 +35,43 @@ class LECustom(QLineEdit):
         """
         Constructor
         """
-        QMainWindow.__init__(self,parent)
+        QLineEdit.__init__(self,parent)
         self.parentQt=parentQt
         self.num=i
+        self.dansUnTuple=False
 
  def focusInEvent(self,event):
-     print "dans focusInEvent de LECustom"
+     #print "dans focusInEvent de LECustom"
      self.parentQt.LineEditEnCours=self
      self.parentQt.NumLineEditEnCours=self.num
-     self.setFrame(True)
+     self.setStyleSheet("border: 2px solid gray")
      QLineEdit.focusInEvent(self,event)
 
  def focusOutEvent(self,event):
-     self.setFrame(False)
+     #print "dans focusOutEvent de LECustom"
+     self.setStyleSheet("border: 0px")
+     if self.dansUnTuple    : self.setStyleSheet("background:rgb(235,235,235); border: 0px;")
+     elif self.num % 2 == 1 : self.setStyleSheet("background:rgb(210,210,210)")
+     else                   : self.setStyleSheet("background:rgb(235,235,235)")
      QLineEdit.focusOutEvent(self,event)
 
+ def clean(self):
+     self.setText("")
+
+ def getValeur(self):
+     return self.text()
+
+ def setValeur(self,valeur):
+     self.setText(valeur)
+
+# --------------------------- #
+class LECustomTuple(LECustom):
+# --------------------------- #
+ def __init__(self,parent):
+   #  index sera mis a jour par TupleCustom
+   parentQt=parent.parent().parent().parent()
+   LECustom. __init__(self,parent,parentQt,0)
+
 # ---------------------------- #
 class MonLabelListeClic(QLabel):
 # ---------------------------- #
@@ -115,21 +137,21 @@ class GereListe:
    def moinsPushed(self):
        # on supprime le dernier
        if self.NumLineEditEnCours==self.indexDernierLabel : 
-          nomLineEdit=self.nomLine+str(aRemonter)
+          nomLineEdit=self.nomLine+str(self.indexDernierLabel)
           courant=getattr(self,nomLineEdit)
-          courant.setText("")
+          courant.clean()
        else :
          for i in range (self.NumLineEditEnCours, self.indexDernierLabel):
              aRemonter=i+1
              nomLineEdit=self.nomLine+str(aRemonter)
              courant=getattr(self,nomLineEdit)
-             valeurARemonter=courant.text()
+             valeurARemonter=courant.getValeur()
              nomLineEdit=self.nomLine+str(i)
              courant=getattr(self,nomLineEdit)
-             courant.setText(valeurARemonter)
+             courant.setValeur(valeurARemonter)
          nomLineEdit=self.nomLine+str(self.indexDernierLabel)
          courant=getattr(self,nomLineEdit)
-         courant.setText("")
+         courant.clean()
        self.changeValeur(changeDePlace=False,oblige=True)
        self.setValide()
 
@@ -138,17 +160,20 @@ class GereListe:
           self.editor.affiche_infos('nb max de valeurs : '+str(self.monSimpDef.max)+' atteint')
           return
        self.ajoutLineEdit()
+       self.descendLesLignes()
+
+   def descendLesLignes(self):
        if self.NumLineEditEnCours==self.indexDernierLabel : return
        nomLineEdit=self.nomLine+str(self.NumLineEditEnCours+1)
        courant=getattr(self,nomLineEdit)
-       valeurADescendre=courant.text()
-       courant.setText("")
+       valeurADescendre=courant.getValeur()
+       courant.clean()
        for i in range (self.NumLineEditEnCours+1, self.indexDernierLabel):
              aDescendre=i+1
              nomLineEdit=self.nomLine+str(aDescendre)
              courant=getattr(self,nomLineEdit)
-             valeurAGarder=courant.text()
-             courant.setText(valeurADescendre)
+             valeurAGarder=courant.getValeur()
+             courant.setValeur(valeurADescendre)
              valeurADescendre=valeurAGarder
        self.changeValeur(changeDePlace=False)
        self.scrollArea.ensureWidgetVisible(self.LineEditEnCours)
index 674ceaeb6b77c9e0b314ce8a2a5b76d26a8e3dd5..a6ac039f7a473a9501e55247628bb4c1466d3d58 100644 (file)
@@ -103,6 +103,7 @@ class MonChoixCommande(Ui_ChoixCommandes,QtGui.QWidget):
          plier=self.editor.afficheCommandesPliees
          if nodeCourrant==self.node : nouveau=self.node.append_child(self.name,'first',plier)
          else : nouveau=nodeCourrant.append_brother(self.name,plier=plier)
+      if nouveau == 0 : return # on n a pas insere le noeud
       nouveau.setDeplie()
       #if self.editor.afficheApresInsert==True : nouveau.plieToutEtReaffiche()
       if self.editor.afficheApresInsert == True :
@@ -112,7 +113,6 @@ class MonChoixCommande(Ui_ChoixCommandes,QtGui.QWidget):
            nouveau.fenetre.donnePremier()
            #nouveau.deplieToutEtReaffiche()
       else :
-           print "je passe la"
            self.node.setSelected(False)
            nouveau.setSelected(True)
            self.node.tree.setCurrentItem(nouveau)
index 3026b3cfd885e9f75de6f45fc3754bf0b9e6b160..a43800ab0e7f70d6f47c04509c1b5efe33514fe1 100644 (file)
@@ -42,6 +42,7 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe):
         self.nomLine="lineEditVal"
         self.inInit=True
         self.indexDernierLabel=0
+        self.NumLineEditEnCours=0
         self.listeAffichageWidget=[]
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         GereListe.__init__(self)
@@ -63,7 +64,6 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe):
 
 
   def setValeurs(self):
-       print "je passe dans SetValeur"
        self.vScrollBar = self.scrollArea.verticalScrollBar()
        self.politique=PolitiquePlusieurs(self.node,self.editor)
        # construction du min de valeur a entrer
index d5bdabf7e50334dd89828171e40a3f03f6905975..5678b5a8997ad183aa691fe433045f8338f65193 100644 (file)
@@ -29,7 +29,7 @@ from feuille                import Feuille
 from desWidgetPlusieursInto import Ui_WidgetPlusieursInto 
 from politiquesValidation   import PolitiquePlusieurs
 from qtSaisie               import SaisieValeur
-from gereListe              import GereListe
+#from gereListe              import GereListe
 
 class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille):
 
@@ -39,6 +39,7 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille):
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.listeValeursCourantes=self.node.item.GetListeValeurs()
         self.parentQt.commandesLayout.insertWidget(-1,self)
+        self.connect(self.CBCheck, SIGNAL('stateChanged(int)'),self.change)
         # try except si la liste des possibles est vide
         # prevoir qqchose
         try :
@@ -47,12 +48,21 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille):
           pass
 
 
+  def change(self,int):
+       if self.CBCheck.isChecked() : 
+          for i in range(len(self.listeAAfficher)):
+              nomCB="lineEditVal"+str(i+1)
+              courant=getattr(self,nomCB)
+              courant.setChecked(True)
+       else :
+          min,max = self.node.item.GetMinMax()
+          for i in range(len(self.listeAAfficher)):
+              nomCB="lineEditVal"+str(i+1)
+              courant=getattr(self,nomCB)
+              courant.setChecked(False)
+
   def setValeurs(self):
        self.listeValeursCourantes=self.node.item.GetListeValeurs()
-       #print self.monSimpDef.into
-       #if len(self.monSimpDef.into)*20 > 400 : self.setMinimumHeight(400)
-       #else : self.setMinimumHeight(len(self.monSimpDef.into)*30)
-       #self.adjustSize()
        if hasattr(self.node.item.definition.validators,'set_MCSimp'):
             obj=self.node.item.getObject()
             self.node.item.definition.validators.set_MCSimp(obj)
@@ -173,6 +183,7 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille):
          self.editor.affiche_infos(tr("Nombre maximal de valeurs : ") + str(max),Qt.red)
       else :
          self.editor.affiche_infos(tr(""))
+      if self.listeValeursCourantes== [] : self.listeValeursCourantes=None
       self.node.item.set_valeur(self.listeValeursCourantes)
       self.setValide()
       self.reaffiche()
index caf27e0183a4e8f9b4ce80c5b2ec44134c8f81c5..c431983c48f6b695269b8adfca8b1ed0e79fb611 100644 (file)
@@ -35,7 +35,7 @@ class MonWidgetSimpBase (Ui_WidgetSimpBase,Feuille):
 
   def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-        print "MonWidgetSimpBase", nom
+        #print "MonWidgetSimpBase", nom
         self.parentQt.commandesLayout.insertWidget(-1,self)
         self.setFocusPolicy(Qt.StrongFocus)
         self.connect(self.lineEditVal,SIGNAL("returnPressed()"),self.LEValeurPressed)
index 6daaf273a981e762d47a064721511acb453025a6..b7c3a48f06bf507256e76c48a0efd4507adbcb52 100644 (file)
@@ -232,7 +232,7 @@ class PolitiquePlusieurs(Validation):
 
          return valide,commentaire,commentaire2,listeRetour
 
-  def AjoutTuple(self,valeurTuple,index,listecourante):
+  def AjoutTuple(self,valeurTuple,listecourante):
          listeRetour=[]
          commentaire="Nouvelle valeur acceptee"
          commentaire2=""
@@ -257,10 +257,5 @@ class PolitiquePlusieurs(Validation):
          if not encorevalide :
             commentaire2=self.node.item.info_erreur_liste()
             return valide,commentaire,commentaire2,listeRetour
-         #min,max = self.node.item.GetMinMax()
-         #if len(listecourante)  >= max :
-         #   commentaire="La liste a deja atteint le nombre maximum d'elements,ajout refuse"
-         #   valide=0
-         #   return valide,commentaire,commentaire2,listeRetour
          listeRetour.append(valeurTuple)
          return valide,commentaire,commentaire2,listeRetour
index fb9cf98eec033163f6ec2dd36a63135b44b631bf..22d9627cd2dbff21ad81ea041584e7ad0e7e6eec 100644 (file)
@@ -137,8 +137,8 @@ class Appli(Ui_Eficas,QMainWindow):
             if hasattr(self,intituleAction):
               action=getattr(self,intituleAction)
               self.toolBar.removeAction(action)
-        if self.code in Appli.__dict__.keys():
-          listeTexte=apply(Appli.__dict__[self.code],(self,))
+        if self.code.upper() in Appli.__dict__.keys():
+          listeTexte=apply(Appli.__dict__[self.code.upper()],(self,))
 
     def initAides(self):
         #print "je passe la"
@@ -169,7 +169,7 @@ class Appli(Ui_Eficas,QMainWindow):
         if not(self.actionExecution in self.toolBar.actions()):
            self.toolBar.addAction(self.actionExecution)
         self.actionExecution.setText(QApplication.translate("Eficas", "Execution ", None, QApplication.UnicodeUTF8))
-        self.connect(self.actionExecution,SIGNAL("activated()"),self.run)
+        self.connect(self.actionExecution,SIGNAL("triggered()"),self.run)
 
     def ajoutSauveExecution(self):
         self.actionSaveRun = QAction(self)
@@ -180,7 +180,7 @@ class Appli(Ui_Eficas,QMainWindow):
         if not(self.actionSaveRun in self.toolBar.actions()):
            self.toolBar.addAction(self.actionSaveRun)
         self.actionSaveRun.setText(QApplication.translate("Eficas", "Save Run", None, QApplication.UnicodeUTF8))
-        self.connect(self.actionSaveRun,SIGNAL("activated()"),self.saveRun)
+        self.connect(self.actionSaveRun,SIGNAL("triggered()"),self.saveRun)
 
     def griserActionsStructures(self):
         self.actionCouper.setEnabled(False)
@@ -246,6 +246,9 @@ class Appli(Ui_Eficas,QMainWindow):
         self.menuOptions.addAction(self.actionParametres_Eficas)
         self.menuOptions.setTitle(tr("Options"))
 
+    def PSEN(self):
+        self.ajoutExecution()
+        self.ajoutSauveExecution()
 
     def ChercheGrpMesh(self):
         Msg,listeGroup=self.ChercheGrpMeshInSalome()
@@ -255,12 +258,18 @@ class Appli(Ui_Eficas,QMainWindow):
            print "il faut gerer les erreurs"
 
     def ChercheGrpMaille(self):
-        Msg,listeGroup=self.ChercheGrpMailleInSalome()
+        # Normalement la variable self.salome permet de savoir si on est ou non dans Salome
+        try:
+            Msg,listeGroup=self.ChercheGrpMailleInSalome() # recherche dans Salomé
+            #Msg = None; listeGroup = None # recherche manuelle, i.e., sans Salomé si ligne précédente commentée
+        except:
+            raise ValueError('Salome non ouvert')
         if Msg == None :
            self.viewmanager.handleAjoutGroup(listeGroup)
         else :
            print "il faut gerer les erreurs"
 
+
     def ChercheGrp(self):
         #Msg,listeGroup=self.ChercheGrpMailleInSalome()
         #if Msg == None :
@@ -291,33 +300,33 @@ class Appli(Ui_Eficas,QMainWindow):
     def connecterSignaux(self) :
         self.connect(self.recentMenu,SIGNAL('aboutToShow()'),self.handleShowRecentMenu)
 
-        self.connect(self.action_Nouveau,SIGNAL("activated()"),self.fileNew)
-        self.connect(self.actionNouvel_Include,SIGNAL("activated()"),self.NewInclude)
-        self.connect(self.action_Ouvrir,SIGNAL("activated()"),self.fileOpen)
-        self.connect(self.actionEnregistrer,SIGNAL("activated()"),self.fileSave)
-        self.connect(self.actionEnregistrer_sous,SIGNAL("activated()"),self.fileSaveAs)
-        self.connect(self.actionFermer,SIGNAL("activated()"),self.fileClose)
-        self.connect(self.actionFermer_tout,SIGNAL("activated()"),self.fileCloseAll)
-        self.connect(self.actionQuitter,SIGNAL("activated()"),self.fileExit)
+        self.connect(self.action_Nouveau,SIGNAL("triggered()"),self.fileNew)
+        self.connect(self.actionNouvel_Include,SIGNAL("triggered()"),self.NewInclude)
+        self.connect(self.action_Ouvrir,SIGNAL("triggered()"),self.fileOpen)
+        self.connect(self.actionEnregistrer,SIGNAL("triggered()"),self.fileSave)
+        self.connect(self.actionEnregistrer_sous,SIGNAL("triggered()"),self.fileSaveAs)
+        self.connect(self.actionFermer,SIGNAL("triggered()"),self.fileClose)
+        self.connect(self.actionFermer_tout,SIGNAL("triggered()"),self.fileCloseAll)
+        self.connect(self.actionQuitter,SIGNAL("triggered()"),self.fileExit)
 
-        self.connect(self.actionEficas,SIGNAL("activated()"),self.aidePPal)
-        self.connect(self.actionVersion,SIGNAL("activated()"),self.version)
-        self.connect(self.actionParametres,SIGNAL("activated()"),self.gestionParam)
+        self.connect(self.actionEficas,SIGNAL("triggered()"),self.aidePPal)
+        self.connect(self.actionVersion,SIGNAL("triggered()"),self.version)
+        self.connect(self.actionParametres,SIGNAL("triggered()"),self.gestionParam)
 
-        self.connect(self.actionCouper,SIGNAL("activated()"),self.editCut)
-        self.connect(self.actionCopier,SIGNAL("activated()"),self.editCopy)
-        self.connect(self.actionColler,SIGNAL("activated()"),self.editPaste)
-        self.connect(self.actionSupprimer,SIGNAL("activated()"),self.supprimer)
-        self.connect(self.actionRechercher,SIGNAL("activated()"),self.rechercher)
-        self.connect(self.actionDeplier_replier,SIGNAL("activated()"),self.Deplier)
+        self.connect(self.actionCouper,SIGNAL("triggered()"),self.editCut)
+        self.connect(self.actionCopier,SIGNAL("triggered()"),self.editCopy)
+        self.connect(self.actionColler,SIGNAL("triggered()"),self.editPaste)
+        self.connect(self.actionSupprimer,SIGNAL("triggered()"),self.supprimer)
+        self.connect(self.actionRechercher,SIGNAL("triggered()"),self.rechercher)
+        self.connect(self.actionDeplier_replier,SIGNAL("triggered()"),self.Deplier)
 
-        self.connect(self.actionRapport_de_Validation,SIGNAL("activated()"),self.jdcRapport)
-        self.connect(self.actionFichier_Source,SIGNAL("activated()"),self.jdcFichierSource)
-        self.connect(self.actionFichier_Resultat,SIGNAL("activated()"),self.visuJdcPy)
+        self.connect(self.actionRapport_de_Validation,SIGNAL("triggered()"),self.jdcRapport)
+        self.connect(self.actionFichier_Source,SIGNAL("triggered()"),self.jdcFichierSource)
+        self.connect(self.actionFichier_Resultat,SIGNAL("triggered()"),self.visuJdcPy)
 
 
-        #self.connect(self.helpIndexAction,SIGNAL("activated()"),self.helpIndex)
-        #self.connect(self.helpContentsAction,SIGNAL("activated()"),self.helpContents)
+        #self.connect(self.helpIndexAction,SIGNAL("triggered()"),self.helpIndex)
+        #self.connect(self.helpContentsAction,SIGNAL("triggered()"),self.helpContents)
 
         # Pour Aster
         self.actionTraduitV9V10 = QAction(self)
@@ -332,28 +341,28 @@ class Appli(Ui_Eficas,QMainWindow):
         self.actionSauveLigne = QAction(self)
         self.actionSauveLigne.setText(tr("Sauve Format Ligne"))
 
-        self.connect(self.actionParametres_Eficas,SIGNAL("activated()"),self.optionEditeur)
-        self.connect(self.actionLecteur_Pdf,SIGNAL("activated()"),self.optionPdf)
-        self.connect(self.actionTraduitV9V10,SIGNAL("activated()"),self.traductionV9V10)
-        self.connect(self.actionTraduitV10V11,SIGNAL("activated()"),self.traductionV10V11)
-        self.connect(self.actionTraduitV11V12,SIGNAL("activated()"),self.traductionV11V12)
-        self.connect(self.actionSauveLigne,SIGNAL("activated()"),self.sauveLigne)
+        self.connect(self.actionParametres_Eficas,SIGNAL("triggered()"),self.optionEditeur)
+        self.connect(self.actionLecteur_Pdf,SIGNAL("triggered()"),self.optionPdf)
+        self.connect(self.actionTraduitV9V10,SIGNAL("triggered()"),self.traductionV9V10)
+        self.connect(self.actionTraduitV10V11,SIGNAL("triggered()"),self.traductionV10V11)
+        self.connect(self.actionTraduitV11V12,SIGNAL("triggered()"),self.traductionV11V12)
+        self.connect(self.actionSauveLigne,SIGNAL("triggered()"),self.sauveLigne)
 
 
         # Pour Carmel
         self.actionChercheGrpMaille = QAction(self)
         self.actionChercheGrpMaille.setText(tr("Acquiert Groupe Maille"))
-        self.connect(self.actionChercheGrpMaille,SIGNAL("activated()"),self.ChercheGrpMaille)
+        self.connect(self.actionChercheGrpMaille,SIGNAL("triggered()"),self.ChercheGrpMaille)
 
         # Pour CarmelCND
         self.actionChercheGrp = QAction(self)
         self.actionChercheGrp.setText(tr("Accquisition Groupe Maille"))
-        self.connect(self.actionChercheGrp,SIGNAL("activated()"),self.ChercheGrp)
+        self.connect(self.actionChercheGrp,SIGNAL("triggered()"),self.ChercheGrp)
 
         # Pour Aide
         self.actionCode = QAction(self)
         self.actionCode.setText(tr("Specificites Maille"))
-        self.connect(self.actionCode,SIGNAL("activated()"),self.aideCode)
+        self.connect(self.actionCode,SIGNAL("triggered()"),self.aideCode)
 
     def Deplier(self):
         self.viewmanager.handleDeplier()
@@ -407,7 +416,10 @@ class Appli(Ui_Eficas,QMainWindow):
        self.recent =  QStringList()
        try :
        #if 1 :
-           rep=os.path.join(os.environ['HOME'],'.config/Eficas',self.code)
+           if sys.platform[0:5]=="linux" :
+              rep=os.path.join(os.environ['HOME'],'.config/Eficas',self.code)
+           else :
+              rep=os.path.join('C:/','.config/Eficas',self.code)
            monFichier=rep+"/listefichiers_"+self.code
            index=0
            f=open(monFichier)
index b0f63f57c857ce5f0cff5fed46879666ee792977..62f418e6c9c1ac9d00bff0d45df4854b51ab3402 100644 (file)
@@ -158,6 +158,10 @@ class READERCATA:
       if self.mode_nouv_commande== "initial" : self.Retrouve_Ordre_Cata_Standard()
       if hasattr(self.cata, 'Ordre_Des_Commandes') : self.Ordre_Des_Commandes=self.cata.Ordre_Des_Commandes
       else : self.Ordre_Des_Commandes=None
+      
+      if hasattr(self.cata, 'Classement_Commandes_Ds_Arbre') : 
+             self.Classement_Commandes_Ds_Arbre=self.cata.Classement_Commandes_Ds_Arbre
+      else : self.Classement_Commandes_Ds_Arbre=()
       #print self.cata.Ordre_Des_Commandes
 
       #
index 8d6674429f4e346016d7fe3c38fe7a07b3b876e8..c21b19f17f3eb472ab8dd682b4cff5b6160c2804 100644 (file)
@@ -33,10 +33,11 @@ class PopUpMenuRacine :
     def createPopUpMenu(self):
         print "createPopUpMenu"
         self.ParamApres = QAction(tr('Parametre'),self.tree)
-        self.tree.connect(self.ParamApres,SIGNAL("activated()"),self.addParametersApres)
+        self.tree.connect(self.ParamApres,SIGNAL("triggered()"),self.addParametersApres)
         self.ParamApres.setStatusTip(tr("Insere un parametre"))
         self.menu = QMenu(self.tree)
         self.menu.addAction(self.ParamApres)
+        self.menu.setStyleSheet("background:rgb(220,220,220); ")
 
 
     def addParametersApres(self):
@@ -52,6 +53,9 @@ class PopUpMenuNodeMinimal :
         #self.appliEficas.salome=True
         self.createActions()
         self.menu = QMenu(self.tree)
+        #self.menu.setStyleSheet("background:rgb(235,235,235); QMenu::item:selected { background-color: red; }")
+        #ne fonctionne pas --> la ligne de commentaire devient rouge
+        self.menu.setStyleSheet("background:rgb(220,220,220); ")
         #items du menu
         self.menu.addAction(self.Supprime)
         if hasattr(self.appliEficas, 'mesScripts'):
@@ -71,18 +75,18 @@ class PopUpMenuNodeMinimal :
            self.action=QAction(label,self.tree)
            self.action.setStatusTip(tip)
            if numero==4: 
-              self.tree.connect(self.action,SIGNAL("activated()"),self.AppelleFonction4)
+              self.tree.connect(self.action,SIGNAL("triggered()"),self.AppelleFonction4)
            if numero==3: 
-              self.tree.connect(self.action,SIGNAL("activated()"),self.AppelleFonction3)
+              self.tree.connect(self.action,SIGNAL("triggered()"),self.AppelleFonction3)
               numero=4
            if numero==2: 
-              self.tree.connect(self.action,SIGNAL("activated()"),self.AppelleFonction2)
+              self.tree.connect(self.action,SIGNAL("triggered()"),self.AppelleFonction2)
               numero=3
            if numero==1: 
-              self.tree.connect(self.action,SIGNAL("activated()"),self.AppelleFonction1)
+              self.tree.connect(self.action,SIGNAL("triggered()"),self.AppelleFonction1)
               numero=2
            if numero==0: 
-              self.tree.connect(self.action,SIGNAL("activated()"),self.AppelleFonction0)
+              self.tree.connect(self.action,SIGNAL("triggered()"),self.AppelleFonction0)
               numero=1
            self.menu.addAction(self.action)
 
@@ -128,24 +132,24 @@ class PopUpMenuNodeMinimal :
 
     def createActions(self):
         self.CommApres = QAction(tr('apres'),self.tree)
-        self.tree.connect(self.CommApres,SIGNAL("activated()"),self.addCommApres)
+        self.tree.connect(self.CommApres,SIGNAL("triggered()"),self.addCommApres)
         self.CommApres.setStatusTip(tr("Insere un commentaire apres la commande "))
         self.CommAvant = QAction(tr('avant'),self.tree)
-        self.tree.connect(self.CommAvant,SIGNAL("activated()"),self.addCommAvant)
+        self.tree.connect(self.CommAvant,SIGNAL("triggered()"),self.addCommAvant)
         self.CommAvant.setStatusTip(tr("Insere un commentaire avant la commande "))
 
         self.ParamApres = QAction(tr('apres'),self.tree)
-        self.tree.connect(self.ParamApres,SIGNAL("activated()"),self.addParametersApres)
+        self.tree.connect(self.ParamApres,SIGNAL("triggered()"),self.addParametersApres)
         self.ParamApres.setStatusTip(tr("Insere un parametre apres la commande "))
         self.ParamAvant = QAction(tr('avant'),self.tree)
-        self.tree.connect(self.ParamAvant,SIGNAL("activated()"),self.addParametersAvant)
+        self.tree.connect(self.ParamAvant,SIGNAL("triggered()"),self.addParametersAvant)
         self.ParamAvant.setStatusTip(tr("Insere un parametre avant la commande "))
 
         self.Supprime = QAction(tr('Supprimer'),self.tree)
-        self.tree.connect(self.Supprime,SIGNAL("activated()"),self.supprimeNoeud)
+        self.tree.connect(self.Supprime,SIGNAL("triggered()"),self.supprimeNoeud)
         self.Supprime.setStatusTip(tr("supprime le mot clef "))
         self.Documentation = QAction(tr('Documentation'),self.tree)
-        self.tree.connect(self.Documentation,SIGNAL("activated()"),self.viewDoc)
+        self.tree.connect(self.Documentation,SIGNAL("triggered()"),self.viewDoc)
         self.Documentation.setStatusTip(tr("documentation sur la commande "))
 
     def supprimeNoeud(self):
@@ -226,7 +230,7 @@ class PopUpMenuNode(PopUpMenuNodePartiel) :
     def createPopUpMenu(self):
         PopUpMenuNodePartiel.createPopUpMenu(self)
         self.Commente = QAction(tr('ce noeud'),self.tree)
-        self.tree.connect(self.Commente,SIGNAL("activated()"),self.Commenter)
+        self.tree.connect(self.Commente,SIGNAL("triggered()"),self.Commenter)
         self.Commente.setStatusTip(tr("commente le noeud "))
         self.commentMenu.addAction(self.Commente)
         self.menu.removeAction(self.Supprime)
index e30826d04310f1255e23ede150df40469b1cd8ed..08f45480371dc8c8cd6f51b922de73247d87be29 100755 (executable)
@@ -1,5 +1,4 @@
-NetworkFile = r"C:\Users\J15773\Documents\GTDosier\PSENdocs\Victoria\JAMAIQUE\2030Conv_HFP2.sav"\r
-\r
+NetworkFile = r"C:\Users\J15773\Documents\GTDosier\PSENdocs\Victoria ALL - EFICAS PSEN\Data\2030Conv_HFP2.sav"\r
 PSSE_PATH = "C:/Program Files/PTI/PSSE33/PSSBIN" #emplacement de PSSE\r
 \r
 def ExtractGeneratorandLoadList(NetworkFile,PSSE_PATH):\r
@@ -7,6 +6,8 @@ def ExtractGeneratorandLoadList(NetworkFile,PSSE_PATH):
     import os\r
     import sys\r
 \r
+    print NetworkFile\r
+    print PSSE_PATH\r
     sys.path.append(PSSE_PATH)\r
     os.environ['PATH'] +=  ';' + PSSE_PATH + ';'\r
 \r
index 894cb715ab5d1cadfdbce2210157f3ec9f33545d..1d859343828102b7dde62a05e5065bedd9378536 100755 (executable)
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 
-import re
-#from ExtractGeneratorandLoadList import ExtractGeneratorandLoadList
-from ExtractGeneratorandLoadList import ExtractGeneratorandLoadList2
+#from ExtractGeneratorLoadLineandTransfoDico import ExtractGeneratorLoadLineandTransfoDico
+from ExtractGeneratorLoadLineandTransfoDico import ExtractGeneratorLoadLineandTransfoDico2
 
-def INCLUDE(self,chemin_psse,fichier_sav,**args):
+def INCLUDE(self,PSSE_path,sav_file,**args):
    """ 
        Fonction sd_prod pour la macro INCLUDE
    """
    
-   print "INCLUDE", self
    reevalue=0
    if hasattr(self,'fichier_ini'):
        reevalue=1
-       if self.fichier_ini == fichier_sav : return
+       if self.fichier_ini == sav_file : return
        if hasattr(self,'old_context_fichier_init' ):
          for concept in self.old_context_fichier_init.values():
              self.jdc.delete_concept(concept)
@@ -40,7 +38,7 @@ def INCLUDE(self,chemin_psse,fichier_sav,**args):
          self.reevalue_sd_jdc()
          self.jdc.reset_context()
 
-   self.fichier_ini=fichier_sav
+   self.fichier_ini=sav_file
    self.contexte_fichier_init = {}
    self.fichier_unite = 999
    self.fichier_err = None
@@ -48,9 +46,10 @@ def INCLUDE(self,chemin_psse,fichier_sav,**args):
     
    unite = 999
 
-   pattern_debut_ligne = re.compile(r'^[0-9].*')
-   try:
-     MachineListOrigin,LoadListOrigin= ExtractGeneratorandLoadList2(fichier_sav,chemin_psse)
+   try :
+   #if 1:
+     MachineDico,LoadDico,LineDico,TransfoDico = ExtractGeneratorLoadLineandTransfoDico2(sav_file,PSSE_path)
+   #else :
    except :
      if self.jdc.appli is not None:
         self.jdc.appli.affiche_alerte("Error", 'An error happened in ExtractGeneratorandLoadList execution ')
@@ -60,40 +59,17 @@ def INCLUDE(self,chemin_psse,fichier_sav,**args):
         self.fichier_err = str(exc)
         self.contexte_fichier_init = {}
 
-   MachineList=[]
-   LoadList=[]
-   BusBarList=[]
-   for m in MachineListOrigin:
-       if m in LoadListOrigin : BusBarList.append(m)
-       else : MachineList.append(m)
+   for nom in MachineDico.keys():
+      self.fichier_text += "%s=MONGENER(ID='%s',);\n" % (nom, 'a')
 
-   for m in LoadListOrigin:
-       if m not in MachineListOrigin : LoadList.append(m)
+   for nom in LoadDico.keys():
+      self.fichier_text += "%s=MACHARGE(ID='%s',);\n" % (nom, 'a')
+      
+   for nom in LineDico.keys():
+      self.fichier_text += "%s=MALIGNE(ID='%s',);\n" % (nom,'a')
 
-   for m in MachineList:
-         nouv=m[0].replace(' ','_')
-         nouveau=nouv.replace('.','_')
-         nom = nouveau+"__"+str(m[1])
-         if pattern_debut_ligne.match(nom): nom='_'+nom
-         id  = str(m[3])
-         self.fichier_text += "%s=MONGENER(ID='%s',);\n" % (nom, id)
-
-   for m in BusBarList:
-         nouv=m[0].replace(' ','_')
-         nouveau=nouv.replace('.','_')
-         nom = nouveau+"__"+str(m[1])
-         if pattern_debut_ligne.match(nom): nom='_'+nom
-         id  = str(m[3])
-         self.fichier_text += "%s=MONBUSBAR(ID='%s',);\n" % (nom, id)
-
-   for m in LoadList:
-         nouv=m[0].replace(' ','_')
-         nouveau=nouv.replace('.','_')
-         nom = nouveau+"__"+str(m[1])
-         if pattern_debut_ligne.match(nom): nom='_'+nom
-         if pattern_debut_ligne.match(nom): print 'match'
-         id  = str(m[3])
-         self.fichier_text += "%s=MACHARGE(ID='%s',);\n" % (nom, id)
+   for nom in TransfoDico.keys():
+      self.fichier_text += "%s=MONTRANSFO(ID='%s',);\n" % (nom,'a')
 
    import Extensions.jdc_include
    self.JdC_aux = Extensions.jdc_include.JDC_CATA_INCLUDE(code='PSEN', execmodul=None)
@@ -101,6 +77,10 @@ def INCLUDE(self,chemin_psse,fichier_sav,**args):
    self.old_context_fichier_init = self.contexte_fichier_init
    self.parent.record_unit(unite, self)
 
+   self.jdc.MachineDico=MachineDico
+   self.jdc.LoadDico=LoadDico
+   self.jdc.LineDico=LineDico
+   self.jdc.TransfoDico=TransfoDico
 
 def INCLUDE_context(self,d):
    """ 
index a44c7fa39290c3c3fbcb27ebcc9170cf37ed5f0c..b9aabfd4fd2557c112fe2e470bca0e039cf6d998 100644 (file)
@@ -42,7 +42,9 @@
      </property>
      <widget class="QWidget" name="widgetTree" native="true">
       <property name="styleSheet">
-       <string notr="true">background:rgb(247,247,247)</string>
+       <string notr="true">background:rgb(247,247,247);
+
+</string>
       </property>
       <layout class="QVBoxLayout" name="verticalLayout_2">
        <property name="margin">
index b15d99e5ce75c17c14b88d389356dfb8518a0ce0..8ed1be928635a0dff0eb3dcb1548d2c6f938bfbc 100644 (file)
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>739</width>
-    <height>60</height>
+    <height>62</height>
    </rect>
   </property>
   <property name="sizePolicy">
@@ -42,7 +42,7 @@
     <number>0</number>
    </property>
    <property name="topMargin">
-    <number>1</number>
+    <number>2</number>
    </property>
    <property name="rightMargin">
     <number>0</number>
@@ -220,7 +220,7 @@ QComboBox:on {
 </string>
          </property>
          <property name="maxVisibleItems">
-          <number>7</number>
+          <number>100</number>
          </property>
          <property name="frame">
           <bool>false</bool>
index bdbdfee0960a12e24fcad9cd68683396916cd9b3..20c44b4917c9c55abc701da2fa2a0301fe70a3c7 100644 (file)
@@ -45,7 +45,7 @@ border: 1px solid gray;
     <number>0</number>
    </property>
    <property name="bottomMargin">
-    <number>0</number>
+    <number>5</number>
    </property>
    <item>
     <layout class="QVBoxLayout" name="verticalLayout_3">
@@ -167,6 +167,9 @@ border: 1px solid gray;
    </item>
    <item>
     <layout class="QVBoxLayout" name="verticalLayout_2">
+     <property name="spacing">
+      <number>0</number>
+     </property>
      <item>
       <widget class="QScrollArea" name="scrollArea">
        <property name="sizePolicy">
@@ -211,7 +214,7 @@ border: 1px solid gray;
           <x>0</x>
           <y>0</y>
           <width>546</width>
-          <height>175</height>
+          <height>194</height>
          </rect>
         </property>
         <property name="sizePolicy">
@@ -222,7 +225,7 @@ border: 1px solid gray;
         </property>
         <layout class="QVBoxLayout" name="verticalLayoutLE">
          <property name="spacing">
-          <number>1</number>
+          <number>2</number>
          </property>
          <property name="leftMargin">
           <number>2</number>
@@ -259,6 +262,9 @@ border: 1px solid gray;
         <enum>QFrame::Box</enum>
        </property>
        <layout class="QHBoxLayout" name="horizontalLayout_6">
+        <property name="margin">
+         <number>0</number>
+        </property>
         <item>
          <spacer name="horizontalSpacer_5">
           <property name="orientation">
@@ -310,7 +316,9 @@ border: 1px solid gray;
              <string>...</string>
             </property>
             <property name="icon">
-             <iconset theme="go-up"/>
+             <iconset theme="go-up">
+              <normaloff/>
+             </iconset>
             </property>
             <property name="iconSize">
              <size>
@@ -347,7 +355,9 @@ border: 1px solid gray;
              <string>...</string>
             </property>
             <property name="icon">
-             <iconset theme="go-down"/>
+             <iconset theme="go-down">
+              <normaloff/>
+             </iconset>
             </property>
             <property name="iconSize">
              <size>
@@ -637,7 +647,9 @@ border: 1px solid gray;
           <string>...</string>
          </property>
          <property name="icon">
-          <iconset theme="text-x-generic"/>
+          <iconset theme="text-x-generic">
+           <normaloff/>
+          </iconset>
          </property>
          <property name="iconSize">
           <size>
index 0478b3225c626cef105adeffcc417075d0433380..ce9b3b8d98077751e0ed5f62b04330bc6ae4fb67 100644 (file)
        </property>
       </widget>
      </item>
+     <item>
+      <widget class="QCheckBox" name="CBCheck">
+       <property name="text">
+        <string/>
+       </property>
+       <property name="checked">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
      <item>
       <spacer name="verticalSpacer_2">
        <property name="orientation">
index 15e0c3af9f9d55d10e9c4f46f0b7c4667d7ccd31..9ddd2e5ed082c6cc663a1605d5f2b101271312d1 100644 (file)
@@ -12,7 +12,7 @@ PY_FILES = desSelectVal.py desViewTexte.py  desChoixCommandes.py desWidgetComman
         desWidgetSimpFichier.py desWidgetSimpTxt.py desRecherche.py desWidgetCommentaire.py\
        desWidgetTuple2.py desWidgetTuple3.py desWidgetCreeParam.py desWidgetParam.py desWidgetHeure.py desWidgetDate.py\
         desWidgetVide.py desWidgetInformation.py desVisu.py desSelectVal.py desWidgetUniqueSDCO.py desWidgetSDCOInto.py\
-        desWidgetMatrice.py
+        desWidgetMatrice.py desWidgetPlusieursTuple.py Tuple2.py Tuple3.py
 
 
 QM_FILES=eficas_en.qm 
index b6d1a49d90ac75a0738bf8a447565f5dac7a8cd3..ba49c2e806c382ec39fbe8a71daddd83390aa949 100644 (file)
@@ -26,7 +26,13 @@ stringsAndCommentsRE =  \
       re.compile(u"(\"\"\".*?\"\"\"|'''.*?'''|\"[^\"]*\"|\'[^\']*\'|#.*?\n)", re.DOTALL)
 allchars = string.maketrans(u"", "")
 allcharsExceptNewline = allchars[: allchars.index('\n')]+allchars[allchars.index('\n')+1:]
-allcharsExceptNewlineTranstable = string.maketrans(allcharsExceptNewline, '*'*len(allcharsExceptNewline))
+if sys.platform[0:5]=="linux" :
+   allcharsExceptNewlineTranstable = string.maketrans(allcharsExceptNewline, '*'*len(allcharsExceptNewline))
+elif sys.platform[0:3]=="win" :
+   allcharsExceptNewlineTranstable = dict((ord(char), u'*') for char in allcharsExceptNewline)#string.maketrans(allcharsExceptNewline, '*'*len(allcharsExceptNewline))
+else :
+   allcharsExceptNewlineTranstable = string.maketrans(allcharsExceptNewline, '*'*len(allcharsExceptNewline))
+   print 'Plateforme non geree'
 
 def maskStringsAndComments(src):
     """Masque tous les caracteres de src contenus dans des commentaires ou des strings multilignes (triples
@@ -40,12 +46,14 @@ def maskStringsAndComments(src):
     for i in xrange(1, len(allstrings), 2):
         if allstrings[i].startswith(u"'''")or allstrings[i].startswith('"""'):
             allstrings[i] = allstrings[i][:3]+ \
-                           allstrings[i][3:-3].translate(allcharsExceptNewlineTranstable)+ \
-                           allstrings[i][-3:]
+                            allstrings[i][3:-3].translate(allcharsExceptNewlineTranstable)+ \
+                            allstrings[i][-3:]
         else:
+            test= allstrings[i][1:-1].translate(allcharsExceptNewlineTranstable)
+            #test +\
             allstrings[i] = allstrings[i][0]+ \
-                           allstrings[i][1:-1].translate(allcharsExceptNewlineTranstable)+ \
-                           allstrings[i][-1]
+                            allstrings[i][1:-1].translate(allcharsExceptNewlineTranstable)+ \
+                            allstrings[i][-1]
 
     return "".join(allstrings)
 
@@ -119,8 +127,8 @@ def construit_genea(texte,liste_mc):
 
 
 class ENTITE_JDC :
-    """Classe de base pour tous les objets créés lors de la conversion
-       Tout objet dérivé est enregistré auprès de son pere a sa création
+    """Classe de base pour tous les objets créés lors de la conversion
+       Tout objet dérivé est enregistré auprès de son pere a sa création
     """
     def __init__(self,pere):
         self.texte = ''
@@ -143,8 +151,8 @@ class COMMENTAIRE(ENTITE_JDC):
 
     def __str__(self):
         """
-        Retourne une chaine de caractères représentants self
-        sous une forme interprétable par EFICAS
+        Retourne une chaine de caractères représentants self
+        sous une forme interprétable par EFICAS
         """
         t=repr(self.texte)
         return "COMMENTAIRE(u"+t+")\n"
@@ -160,8 +168,8 @@ class COMMENTAIRE(ENTITE_JDC):
         if texte[0] == '#':
             self.texte = self.texte+texte[1:]
         else:
-            # le dièse n'est pas sur le premier caractere
-            amont,aval = string.split(texte,'#',1) # on découpe suivant la première occurrence de #
+            # le dièse n'est pas sur le premier caractere
+            amont,aval = string.split(texte,'#',1) # on découpe suivant la première occurrence de #
             self.texte = self.texte +amont + aval
         
 class COMMANDE(ENTITE_JDC):
@@ -174,12 +182,12 @@ class COMMANDE(ENTITE_JDC):
         
     def get_nb_par(self):
         """
-        Retourne la différence entre le nombre de parenthèses ouvrantes
-        et le nombre de parenthèses fermantes présentes dans self.texte
-        Peut donc retourner un entier négatif
+        Retourne la différence entre le nombre de parenthèses ouvrantes
+        et le nombre de parenthèses fermantes présentes dans self.texte
+        Peut donc retourner un entier négatif
         """
         # faire attention aux commentaires contenus dans self.texte
-        # qui peuvent eux-memes contenir des parenthèses !!!!
+        # qui peuvent eux-memes contenir des parenthèses !!!!
         l_lignes = string.split(self.texte,'\n')
         nb = 0
         for ligne in l_lignes:
@@ -200,7 +208,7 @@ class AFFECTATION(ENTITE_JDC):
         
     def __str__(self):
         """
-        Retourne une expression de l'affectation compréhensible par ACCAS
+        Retourne une expression de l'affectation compréhensible par ACCAS
         et exploitable par EFICAS
         """
         nom,valeur = string.split(self.texte,'=',1)
@@ -221,7 +229,7 @@ class COMMANDE_COMMENTARISEE(ENTITE_JDC):
 
     def __str__(self):
         """
-        Retourne une expression de la commande commentarisée compréhensible par ACCAS
+        Retourne une expression de la commande commentarisée compréhensible par ACCAS
         et exploitable par EFICAS
         """
         return "COMMANDE_COMM(texte="+repr(self.texte)+")\n"
@@ -238,7 +246,7 @@ class AFFECTATION_EVAL(ENTITE_JDC):
         
     def __str__(self):
         """
-        Retourne une expression du paramètre EVAL compréhensible par ACCAS
+        Retourne une expression du paramètre EVAL compréhensible par ACCAS
         et exploitable par EFICAS
         """
         nom,valeur = string.split(self.texte,'=',1)
@@ -249,8 +257,8 @@ class AFFECTATION_EVAL(ENTITE_JDC):
         
 class PARSEUR_PYTHON:
     """
-    Cette classe sert a générer un objet PARSEUR_PYTHON qui réalise l'analyse d'un texte 
-    représentant un JDC Python en distinguant :
+    Cette classe sert a générer un objet PARSEUR_PYTHON qui réalise l'analyse d'un texte 
+    représentant un JDC Python en distinguant :
       - les commentaires inter commandes
       - les affectations
       - les commandes
@@ -267,12 +275,12 @@ class PARSEUR_PYTHON:
 
     def is_affectation(self,texte):
         """
-        Méthode booléenne qui retourne 1 si le texte est celui d'une affectation dans un jeu de commandes
+        Méthode booléenne qui retourne 1 si le texte est celui d'une affectation dans un jeu de commandes
         Aster, 0 sinon
         """
         if '=' not in texte : return 0
         if self.pattern_commande.match(texte):
-            # cas d'une procédure ...
+            # cas d'une procédure ...
             return 0
         amont,aval = string.split(texte,'=',1)
         aval = string.strip(aval)
@@ -289,12 +297,12 @@ class PARSEUR_PYTHON:
 
     def is_eval(self,texte):
         """
-        Méthode booléenne qui retourne 1 si le texte est celui d'une affectation de type EVAL
+        Méthode booléenne qui retourne 1 si le texte est celui d'une affectation de type EVAL
         dans un jeu de commandes Aster, 0 sinon
         """
         if '=' not in texte : return 0
         if self.pattern_commande.match(texte):
-            # cas d'une procédure ...
+            # cas d'une procédure ...
             return 0
         amont,aval = string.split(texte,'=',1)
         aval = string.strip(aval)
@@ -306,11 +314,11 @@ class PARSEUR_PYTHON:
             
     def is_commande(self,texte):
         """
-        Méthode booléenne qui retourne 1 si le texte est celui d'une commande dans un jeu de commandes
+        Méthode booléenne qui retourne 1 si le texte est celui d'une commande dans un jeu de commandes
         Aster, 0 sinon
         """
         if self.pattern_commande.match(texte):
-            # cas d'une procédure ...
+            # cas d'une procédure ...
             return 1
         # A ce stade il faut avoir un OPER ou une MACRO, bref un '=' !
         if '=' not in texte : return 0
@@ -326,7 +334,7 @@ class PARSEUR_PYTHON:
     def analyse(self):
         """
         Eclate la chaine self.texte en self.l_objets une liste lignes d'instructions
-        et de commentaires (parmi lesquels des instructions "commentarisées").
+        et de commentaires (parmi lesquels des instructions "commentarisées").
         """
         l_lignes = string.split(self.texte,'\n')
         commentaire_courant             = None
@@ -371,24 +379,24 @@ class PARSEUR_PYTHON:
                 continue
 
             if pattern_2comments.match(ligne):
-                #on a trouvé une commande commentarisée : double commentaire sans rien devant a part des blancs
+                #on a trouvé une commande commentarisée : double commentaire sans rien devant a part des blancs
                 if commentaire_courant:
                     #Si un commentaire ordinaire est en cours on le termine
                     commentaire_courant = None
 
                 if commande_courante :
-                    # on a un objet commentarisé a l'intérieur d'une commande
-                    # --> non traité pour l'instant : on l'ajoute simplement a la commande courante comme
+                    # on a un objet commentarisé a l'intérieur d'une commande
+                    # --> non traité pour l'instant : on l'ajoute simplement a la commande courante comme
                     # un commentaire ordinaire
                     commande_courante.append_text(ligne)
                 elif commande_commentarisee_courante :
                     # commande_commentarisee en cours : on ajoute la ligne
                     commande_commentarisee_courante.append_text(ligne)
-                    # on a 2 commandes commentarisées de suite
+                    # on a 2 commandes commentarisées de suite
                     if pattern_finComments.match(ligne) :
                        commande_commentarisee_courante = None
                 else:
-                    # debut de commande commentarisée : on crée un objet commande_commentarisee_courante
+                    # debut de commande commentarisée : on crée un objet commande_commentarisee_courante
                     commande_commentarisee_courante = COMMANDE_COMMENTARISEE(self)
                     commande_commentarisee_courante.append_text(ligne)
 
@@ -402,29 +410,29 @@ class PARSEUR_PYTHON:
                     commande_commentarisee_courante = None
 
                 if commande_courante :
-                    # il s'agit d'un commentaire a l'intérieur d'une commande --> on ne fait rien de special
+                    # il s'agit d'un commentaire a l'intérieur d'une commande --> on ne fait rien de special
                     #on l'ajoute au texte de la commande 
                     commande_courante.append_text(ligne)
                 elif commentaire_courant :
-                    # il s'agit de la nième ligne d'un commentaire entre deux commandes
+                    # il s'agit de la nième ligne d'un commentaire entre deux commandes
                     # --> on ajoute cette ligne au commentaire courant
                     commentaire_courant.append_text(ligne)
                 else :
                     # il s'agit d'un nouveau commentaire entre deux commandes
-                    # --> on le crée et il devient le commentaire courant
+                    # --> on le crée et il devient le commentaire courant
                     commentaire_courant = COMMENTAIRE(self)
                     commentaire_courant.append_text(ligne)
 
                 #on passe a la ligne suivante
                 continue
 
-            # la ligne contient des données autre qu'un éventuel commentaire
+            # la ligne contient des données autre qu'un éventuel commentaire
             if commentaire_courant :
-                # on clot un éventuel commentaire courant
+                # on clot un éventuel commentaire courant
                 commentaire_courant = None
 
             if commande_commentarisee_courante :
-                # on clot une éventuelle commande commentarisee courante
+                # on clot une éventuelle commande commentarisee courante
                 commande_commentarisee_courante = None
 
             if commande_courante :
@@ -433,7 +441,7 @@ class PARSEUR_PYTHON:
                 if not linecontinueRE.search(line) \
                    and (hangingBraces == emptyHangingBraces) \
                    and not hangingComments:
-                    #la commande est terminé
+                    #la commande est terminé
                     #print "fin de commande"
                     self.analyse_reel(commande_courante.texte)
                     commande_courante = None
@@ -447,7 +455,7 @@ class PARSEUR_PYTHON:
                 if not linecontinueRE.search(line) \
                    and (hangingBraces == emptyHangingBraces) \
                    and not hangingComments:
-                    #L'affectation est terminée
+                    #L'affectation est terminée
                     affectation_courante=None
                 #on passe a la ligne suivante
                 continue
@@ -488,7 +496,7 @@ class PARSEUR_PYTHON:
                 if not linecontinueRE.search(line) \
                    and (hangingBraces == emptyHangingBraces) \
                    and not hangingComments:
-                    #L'affectation est terminée
+                    #L'affectation est terminée
                     affectation_courante=None
                 #on passe a la ligne suivante
                 continue
@@ -498,11 +506,11 @@ class PARSEUR_PYTHON:
                 affectation_courante = None
                 commande_courante = COMMANDE(self)
                 commande_courante.append_text(ligne)
-                #si la commande est complète, on la termine
+                #si la commande est complète, on la termine
                 if not linecontinueRE.search(line) \
                    and (hangingBraces == emptyHangingBraces) \
                    and not hangingComments:
-                    #la commande est terminé
+                    #la commande est terminé
                     #print "fin de commande"
                     self.analyse_reel(commande_courante.texte)
                     commande_courante = None
@@ -511,7 +519,7 @@ class PARSEUR_PYTHON:
 
     def enleve (self,texte) :
         """Supprime de texte tous les caracteres blancs, fins de ligne, tabulations
-           Le nouveau texte est retourné
+           Le nouveau texte est retourné
         """
         i=0
         chaine=""
@@ -588,7 +596,7 @@ class PARSEUR_PYTHON:
                              except :
                                   pass
                        mot=""
-               # ou de ( imbriqueés
+               # ou de ( imbriqueés
                  else :
                     #cas du mocle facteur simple ou 
                     mot=""