]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
pour Map
authorPascale Noyret <pascale.noyret@edf.fr>
Thu, 3 Jun 2010 09:58:10 +0000 (09:58 +0000)
committerPascale Noyret <pascale.noyret@edf.fr>
Thu, 3 Jun 2010 09:58:10 +0000 (09:58 +0000)
17 files changed:
Editeur/icons/application.gif [new file with mode: 0644]
Editeur/icons/block_node.png [new file with mode: 0644]
Editeur/icons/map.ppm [new file with mode: 0644]
InterfaceQT4/editor.py
InterfaceQT4/monChoixMap.py
InterfaceQT4/qtCommun.py
InterfaceQT4/qtEficas.py
InterfaceQT4/readercata.py
InterfaceQT4/typeNode.py
InterfaceQT4/viewManager.py
UiQT4/desCommande.ui
convert/convert_s_poly_st_1.py [new file with mode: 0644]
convert/convert_s_scc_st_2.py [new file with mode: 0644]
generator/generator_map.py
generator/generator_map_OT.py [deleted file]
generator/generator_s_poly_st_1.py
generator/generator_s_scc_st_2.py [new file with mode: 0644]

diff --git a/Editeur/icons/application.gif b/Editeur/icons/application.gif
new file mode 100644 (file)
index 0000000..0b05d5c
Binary files /dev/null and b/Editeur/icons/application.gif differ
diff --git a/Editeur/icons/block_node.png b/Editeur/icons/block_node.png
new file mode 100644 (file)
index 0000000..94b97ba
Binary files /dev/null and b/Editeur/icons/block_node.png differ
diff --git a/Editeur/icons/map.ppm b/Editeur/icons/map.ppm
new file mode 100644 (file)
index 0000000..92deac8
Binary files /dev/null and b/Editeur/icons/map.ppm differ
index 4de0f0ae147910dfd20027b37e0d354c96d0a9e3..56253a095c81ccf72184c1c0e8c144b61a9eae41 100644 (file)
@@ -34,6 +34,7 @@ import browser
 import readercata
 import qtCommun
 
+DictExtensions= {"Map" : ".map"}
 
 
 
@@ -523,25 +524,50 @@ class JDCEditor(QSplitter):
       if generator.plugins.has_key(format):
          # Le generateur existe on l'utilise
          self.generator=generator.plugins[format]()
-         self.dicoRun=self.generator.generRUN(self.jdc,format='beautifie',config=self.appliEficas.CONFIGURATION)
-         if not self.generator.cr.estvide():            
-            self.affiche_infos("Erreur à la generation",Qt.red)
-            QMessageBox.critical( self, "Erreur a la generation","EFICAS ne sait pas convertir ce JDC")
-            return ""
-         for code in self.dicoRun.keys():
-              txt= apply(JDCEditor.__dict__[code],(self,))
-              if txt !="" :
-                 self.textePython=self.textePython+txt
+         self.textePython =self.generator.generRUN(self.jdc,format='beautifie',config=self.appliEficas.CONFIGURATION)
       if execution=="oui" :
          os.system(self.textePython)
       else:
          return self.textePython
+
+    #-----------------------------#
+    def runYACS(self,execution="oui"):
+    #-----------------------------#
+      format=self.appliEficas.format_fichier
+      self.textePython=""
+      if generator.plugins.has_key(format):
+         # Le generateur existe on l'utilise
+         self.generator=generator.plugins[format]()
+         self.textePython =self.generator.generRUNYACS(self.jdc,format='beautifie',config=self.appliEficas.CONFIGURATION)
+      if execution=="oui" :
+         print "il faut faire le run dans Salome"
+      else:
+         return self.textePython
+    
     
     #-----------------------------#
-    def saveRun(self):
+    def saveYACS(self):
     #-----------------------------#
-        texte=self.run(execution="non")
-        print texte
+        texte=self.runYACS(execution="non")
+        path=self.CONFIGURATION.savedir
+        fn = QFileDialog.getSaveFileName( self,
+             self.trUtf8("sauvegarde"), path,
+             self.trUtf8("JDC (*.py);;" "All Files (*)"),None,
+             QFileDialog.DontConfirmOverwrite)
+        if fn.isNull(): return 
+        ext = QFileInfo(fn).suffix()
+        if ext.isEmpty(): fn.append(".xml")
+
+        if QFileInfo(fn).exists():
+                abort = QMessageBox.warning(self,
+                       self.trUtf8("Sauvegarde du Fichier"),
+                       self.trUtf8("Le fichier <b>%1</b> existe deja.").arg(fn),
+                       self.trUtf8("&Ecraser"),
+                       self.trUtf8("&Abandonner"))
+                if abort == 1 :  return
+
+        fn = unicode(QDir.convertSeparators(fn))
+        self.writeFile( fn, txt = texte)
       
       
     #-----------------------------------------#e
@@ -578,7 +604,11 @@ class JDCEditor(QSplitter):
           self.appliEficas.CONFIGURATION.savedir=os.path.split(ulfile)[0]
 
           ext = QFileInfo(fn).suffix()
-          if ext.isEmpty(): fn.append(".comm")
+          if ext.isEmpty():
+             if DictExtensions.has_key(self.appli.code) :
+                fn.append(DictExtensions[self.appli.code])
+             else :
+                fn.append(".comm")
 
           if QFileInfo(fn).exists():
                 abort = QMessageBox.warning(self,
@@ -624,15 +654,11 @@ class JDCEditor(QSplitter):
               pass
 
             try : 
-            #if 1 :
                self.generator.writeCuve2DG()
-            #else :
             except :
                pass
 
-               
             try : 
-            #if 1 :
                self.tubePy=self.generator.getTubePy()
                fileTube = fn[:fn.rfind(".")] + '.py'
                if self.tubePy != '' :
index ab264ffb5f28a776eb29a3545271ba32788243de..701f06f1a7cf2fc9555aca8b15c3aa340ca173ca 100644 (file)
@@ -32,9 +32,9 @@ labels = {
 "s_oxides_st_1" : "Determination de l'allure de l'interface d'un oxyde donné \npour un niveau a determiner d'irradiation" ,
 "s_oxides_st_2" : "Estimation du champ mecanique dans une couche de zircone" ,
 "s_oxides_mt_1" : "Estimation du champ mecanique dans une couche de zircone \nprésentant des défauts et de l'énergie élastique relaxée",
-"c_scc_st_1"    : "Analyse morphologique et mécanique d'une couche d'oxydes",
-"c_scc_st_2"    : "Analyse statistique de données locales et expérimentales \nou numériques",
-"s_cc_st_3"     : "taux de couverture des joints de grains par des précipités",
+"s_scc_st_1"    : "Analyse morphologique et mécanique d'une couche d'oxydes",
+"s_scc_st_2"    : "Analyse statistique de données locales et expérimentales \nou numériques",
+"s_scc_st_3"     : "taux de couverture des joints de grains par des précipités",
 "s_poly_st_1"   : "Estimation numérique 3D de la diffusion effective des gaz dans les polymères chargés",
 
          }
@@ -42,9 +42,9 @@ labels = {
 dico={"oxides" : {"irradiation"            : "s_oxides_st_1",
                    "mecanique"             : "s_oxides_st_2",
                    "mecanique avec defaut" : "s_oxides_mt_1"},
-      "scc" : {"analyse morphologique" : "c_scc_st_1",
-               "analyse statistique"   : "c_scc_st_2",
-               "taux de couverture"    : "s_cc_st_3"},
+      "scc" : {"analyse morphologique" : "s_scc_st_1",
+               "analyse statistique"   : "s_scc_st_2",
+               "taux de couverture"    : "s_scc_st_3"},
       "concrete" : {},
       "polycristals" : {},
       "polymers" : {"numerique 3D" : "s_poly_st_1"},
index b8b3bacfdbcb7d3bb74edf23f2b4125faf2631a3..f1c41839a56b4cc7b7e52a625e831639d80e8708 100644 (file)
@@ -268,7 +268,35 @@ class QTPanelTBW3(QTPanel):
         self.LENomConcept.setText("")
         self.LENomConcept.setText(nomConcept)
         self.LENomConcept.setFocus()
+        if self.node.item.is_reentrant():
+           self.makeConceptPage_reentrant()
+        else :
+           self.listBoxASSD.close()
+
+  def makeConceptPage_reentrant(self):
+        self.bOk.close()
+        self.LENomConcept.close()
+        self.Label2.close()
+        self.Label3.close()
+        self.typeConcept.close()
+        self.LENomConcept.close()
+        self.Label1.setText(QtGui.QApplication.translate("DUnASSD", "<font size=\"+1\"><p align=\"center\">Structures de données à enrichir\n"
+" par l\'operateur courant :</p></font>", None, QtGui.QApplication.CodecForTr))
+        listeNomsSD = self.node.item.get_noms_sd_oper_reentrant()
+        for aSD in listeNomsSD:
+            self.listBoxASSD.addItem( aSD)
+        QObject.connect(self.listBoxASSD, SIGNAL("itemDoubleClicked(QListWidgetItem*)" ), self.ClicASSD )
+
         
+  def ClicASSD(self):
+        if self.listBoxASSD.currentItem()== None : return
+        val=self.listBoxASSD.currentItem().text()
+        nom=str(val)
+        nom = string.strip(nom)
+        test,mess = self.node.item.nomme_sd(nom)
+        if (test== 0):
+           self.editor.affiche_infos(mess,Qt.red)
+
   def LENomConceptReturnPressed(self):
         """
         Nomme le concept SD retourne par l'etape
index 849abee94dd1ac1bfe26720f07c46d27afde635f..c1827f9e600d4bb675761952835dbed6753a8e94 100644 (file)
@@ -94,6 +94,9 @@ class Appli(Ui_Eficas,QMainWindow):
         self.connect(self.actionTraduitV8V9,SIGNAL("activated()"),self.traductionV8V9)
 
 
+    def Map(self): 
+        self.MAP()
+
     def MAP(self): 
         self.actionExecution = QAction(self)
         icon6 = QIcon(self.RepIcon+"/compute.png")
@@ -103,12 +106,28 @@ class Appli(Ui_Eficas,QMainWindow):
         self.toolBar.addAction(self.actionExecution)
         self.actionExecution.setText(QApplication.translate("Eficas", "Execution", None, QApplication.UnicodeUTF8))
         self.connect(self.actionExecution,SIGNAL("activated()"),self.run)
+
         self.actionEnregistrer_Python = QAction(self)
         self.actionEnregistrer_Python.setObjectName("actionEnregistrer_Python")
         self.menuFichier.addAction(self.actionEnregistrer_Python)
         self.actionEnregistrer_Python.setText(QApplication.translate("Eficas", "Sauve Python", None,QApplication.UnicodeUTF8))
         self.connect(self.actionEnregistrer_Python,SIGNAL("activated()"),self.saveRun)
 
+        self.actionEnregistrerYACS = QAction(self)
+        self.actionEnregistrerYACS.setObjectName("actionEnregistrerYACS")
+        self.menuFichier.addAction(self.actionEnregistrerYACS)
+        self.actionEnregistrerYACS.setText(QApplication.translate("Eficas", "Sauve Schema YACS", None,QApplication.UnicodeUTF8))
+        self.connect(self.actionEnregistrerYACS,SIGNAL("activated()"),self.saveYACS)
+
+        self.actionExecutionYACS = QAction(self)
+        icon7 = QIcon(self.RepIcon+"/application.gif")
+        self.actionExecutionYACS.setIcon(icon7)
+        self.actionExecutionYACS.setObjectName("actionExecutionYACS")
+        self.menuJdC.addAction(self.actionExecutionYACS)
+        self.toolBar.addAction(self.actionExecutionYACS)
+        self.actionExecutionYACS.setText(QApplication.translate("Eficas", "Execution YACS", None, QApplication.UnicodeUTF8))
+        self.connect(self.actionExecutionYACS,SIGNAL("activated()"),self.runYACS)
+
     def ajoutIcones(self) :
         # Pour pallier les soucis de repertoire d icone
         icon = QIcon(self.RepIcon+"/New24.png")
@@ -350,6 +369,12 @@ class Appli(Ui_Eficas,QMainWindow):
     def saveRun(self):
         self.viewmanager.saveRun()
         
+    def runYACS(self):
+        self.viewmanager.runYACS()
+        
+    def saveYACS(self):
+        self.viewmanager.saveYACS()
+        
     def supprimer(self):
         self.viewmanager.handleSupprimer()
         
index 076b7225b2a03444057f4e7a0959e245a6960bad..6d01db18fa8a4710f8d991ad82f3a01876ab110f 100644 (file)
@@ -258,9 +258,10 @@ class READERCATA:
    def traite_clefs_documentaires(self):
       try:
         self.fic_cata_clef=os.path.splitext(self.fic_cata_c)[0]+'_clefs_docu'
+        print self.fic_cata_clef
         f=open(self.fic_cata_clef)
       except:
-        #print "Pas de fichier associé contenant des clefs documentaires"
+        print "Pas de fichier associé contenant des clefs documentaires"
         return
 
       dict_clef_docu={}
index 49f9c45834a6be0f3b14c11cfdaf03e03075e0a3..5d1fbe6d75527a3b94fd9175218e9c91a032b796 100644 (file)
@@ -41,6 +41,7 @@ class PopUpMenuNodeMinimal :
     def viewDoc(self):
         self.node=self.tree.currentItem()
         cle_doc = self.node.item.get_docu()
+        print self.node.item.get_docu
         if cle_doc == None :
             QMessageBox.information( self.editor, "Documentation Vide", \
                                     "Aucune documentation Aster n'est associée à ce noeud")
index 94f037bcfe8896ae2bb4690379541a42b89286bd..e99828f179a4ede2823e2262a60faebf734ec150 100644 (file)
@@ -85,6 +85,18 @@ class MyTabview:
        editor=self.dict_editors[index]
        editor.saveRun()
 
+   def runYACS(self):
+       index=self.myQtab.currentIndex()
+       if index < 0 : return
+       editor=self.dict_editors[index]
+       editor.runYACS()
+
+   def saveYACS(self):
+       index=self.myQtab.currentIndex()
+       if index < 0 : return
+       editor=self.dict_editors[index]
+       editor.saveYACS()
+
    def handleCloseAll(self):
        res=0
        self.appliEficas.sauveRecents()
index 72b3a67f2bf84931093f4fbabc104cc12109fb0f..1f615e559b327e06bcf99f8ddfa77ce7fb532679 100644 (file)
   <property name="windowTitle" >
    <string>DComm</string>
   </property>
-  <layout class="QGridLayout" name="gridLayout_3" >
-   <item row="1" column="0" >
-    <widget class="QLabel" name="Commentaire" >
-     <property name="maximumSize" >
-      <size>
-       <width>793</width>
-       <height>20</height>
-      </size>
-     </property>
-     <property name="frameShape" >
-      <enum>QFrame::NoFrame</enum>
-     </property>
-     <property name="frameShadow" >
-      <enum>QFrame::Plain</enum>
-     </property>
-     <property name="text" >
-      <string/>
-     </property>
-     <property name="wordWrap" >
-      <bool>false</bool>
-     </property>
-    </widget>
-   </item>
-   <item row="2" column="0" >
-    <layout class="QHBoxLayout" name="horizontalLayout" >
-     <item>
-      <spacer name="horizontalSpacer" >
-       <property name="orientation" >
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0" >
-        <size>
-         <width>263</width>
-         <height>27</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <widget class="QPushButton" name="bOk" >
-       <property name="sizePolicy" >
-        <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="minimumSize" >
-        <size>
-         <width>160</width>
-         <height>30</height>
-        </size>
-       </property>
-       <property name="maximumSize" >
-        <size>
-         <width>16777215</width>
-         <height>30</height>
-        </size>
-       </property>
-       <property name="toolTip" >
-        <string>validation de la saisie</string>
-       </property>
-       <property name="text" >
-        <string>&amp;Valider</string>
-       </property>
-       <property name="shortcut" >
-        <string>Shift+A, Alt+A, Alt+A, Alt+A</string>
-       </property>
-       <property name="autoDefault" >
-        <bool>true</bool>
-       </property>
-       <property name="default" >
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="horizontalSpacer_2" >
-       <property name="orientation" >
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0" >
-        <size>
-         <width>254</width>
-         <height>27</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
+  <layout class="QGridLayout" name="gridLayout_11" >
    <item row="0" column="0" >
     <widget class="QTabWidget" name="TWChoix" >
      <property name="currentIndex" >
-      <number>0</number>
+      <number>1</number>
      </property>
      <widget class="QWidget" name="MotClef" >
       <attribute name="title" >
          <property name="title" >
           <string>Concept</string>
          </property>
-         <layout class="QGridLayout" name="gridLayout_8" >
+         <layout class="QGridLayout" name="gridLayout_10" >
           <item row="0" column="0" >
-           <widget class="QSplitter" name="splitter" >
-            <property name="orientation" >
-             <enum>Qt::Horizontal</enum>
-            </property>
-            <widget class="QLabel" name="textLabel1_3" >
-             <property name="text" >
-              <string>&lt;u>Nom du concept :&lt;/u></string>
-             </property>
-             <property name="wordWrap" >
-              <bool>false</bool>
-             </property>
-            </widget>
-           </widget>
-          </item>
-          <item row="1" column="0" >
-           <layout class="QHBoxLayout" name="horizontalLayout_2" >
-            <item>
+           <layout class="QGridLayout" name="gridLayout_3" >
+            <item row="0" column="0" colspan="2" >
+             <widget class="QLabel" name="Label1" >
+              <property name="text" >
+               <string>&lt;u>Nom du concept :&lt;/u></string>
+              </property>
+              <property name="wordWrap" >
+               <bool>false</bool>
+              </property>
+             </widget>
+            </item>
+            <item row="1" column="0" >
              <widget class="QLineEdit" name="LENomConcept" >
               <property name="minimumSize" >
                <size>
               </property>
              </widget>
             </item>
-            <item>
+            <item row="1" column="1" >
              <spacer name="horizontalSpacer_3" >
               <property name="orientation" >
                <enum>Qt::Horizontal</enum>
             </item>
            </layout>
           </item>
-          <item row="2" column="0" >
-           <spacer name="verticalSpacer_3" >
-            <property name="orientation" >
-             <enum>Qt::Vertical</enum>
-            </property>
-            <property name="sizeHint" stdset="0" >
-             <size>
-              <width>20</width>
-              <height>51</height>
-             </size>
-            </property>
-           </spacer>
-          </item>
-          <item row="3" column="0" >
-           <layout class="QVBoxLayout" name="verticalLayout" >
-            <item>
-             <layout class="QGridLayout" name="gridLayout_7" >
-              <item row="0" column="0" >
-               <widget class="QLabel" name="textLabel1_3_2" >
-                <property name="text" >
-                 <string>&lt;u>Type du concept :&lt;/u></string>
-                </property>
-                <property name="wordWrap" >
-                 <bool>false</bool>
-                </property>
-               </widget>
-              </item>
-              <item row="1" column="0" >
-               <widget class="QLabel" name="textLabel3" >
-                <property name="text" >
-                 <string>L'opérateur retourne un concept de type :</string>
-                </property>
-                <property name="wordWrap" >
-                 <bool>false</bool>
-                </property>
-               </widget>
-              </item>
-              <item row="1" column="1" >
-               <widget class="QLabel" name="typeConcept" >
-                <property name="text" >
-                 <string>TypeDuConcept</string>
-                </property>
-                <property name="wordWrap" >
-                 <bool>false</bool>
-                </property>
-               </widget>
-              </item>
-             </layout>
+          <item row="1" column="0" >
+           <layout class="QGridLayout" name="gridLayout_8" >
+            <item row="0" column="0" >
+             <widget class="QListWidget" name="listBoxASSD" />
             </item>
-            <item>
+            <item row="1" column="0" >
              <spacer name="verticalSpacer" >
               <property name="orientation" >
                <enum>Qt::Vertical</enum>
               <property name="sizeHint" stdset="0" >
                <size>
                 <width>20</width>
-                <height>338</height>
+                <height>168</height>
                </size>
               </property>
              </spacer>
             </item>
            </layout>
           </item>
+          <item row="2" column="0" >
+           <layout class="QGridLayout" name="gridLayout_7" >
+            <item row="0" column="0" >
+             <widget class="QLabel" name="Label2" >
+              <property name="text" >
+               <string>&lt;u>Type du concept :&lt;/u></string>
+              </property>
+              <property name="wordWrap" >
+               <bool>false</bool>
+              </property>
+             </widget>
+            </item>
+            <item row="1" column="0" >
+             <widget class="QLabel" name="Label3" >
+              <property name="text" >
+               <string>L'opérateur retourne un concept de type :</string>
+              </property>
+              <property name="wordWrap" >
+               <bool>false</bool>
+              </property>
+             </widget>
+            </item>
+            <item row="1" column="1" >
+             <widget class="QLabel" name="typeConcept" >
+              <property name="text" >
+               <string>TypeDuConcept</string>
+              </property>
+              <property name="wordWrap" >
+               <bool>false</bool>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </item>
          </layout>
         </widget>
        </item>
      </widget>
     </widget>
    </item>
+   <item row="1" column="0" >
+    <widget class="QLabel" name="Commentaire" >
+     <property name="maximumSize" >
+      <size>
+       <width>793</width>
+       <height>20</height>
+      </size>
+     </property>
+     <property name="frameShape" >
+      <enum>QFrame::NoFrame</enum>
+     </property>
+     <property name="frameShadow" >
+      <enum>QFrame::Plain</enum>
+     </property>
+     <property name="text" >
+      <string/>
+     </property>
+     <property name="wordWrap" >
+      <bool>false</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="2" column="0" >
+    <layout class="QHBoxLayout" name="horizontalLayout" >
+     <item>
+      <spacer name="horizontalSpacer" >
+       <property name="orientation" >
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0" >
+        <size>
+         <width>263</width>
+         <height>27</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="QPushButton" name="bOk" >
+       <property name="sizePolicy" >
+        <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="minimumSize" >
+        <size>
+         <width>160</width>
+         <height>30</height>
+        </size>
+       </property>
+       <property name="maximumSize" >
+        <size>
+         <width>16777215</width>
+         <height>30</height>
+        </size>
+       </property>
+       <property name="toolTip" >
+        <string>validation de la saisie</string>
+       </property>
+       <property name="text" >
+        <string>&amp;Valider</string>
+       </property>
+       <property name="shortcut" >
+        <string>Shift+A, Alt+A, Alt+A, Alt+A</string>
+       </property>
+       <property name="autoDefault" >
+        <bool>true</bool>
+       </property>
+       <property name="default" >
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer_2" >
+       <property name="orientation" >
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0" >
+        <size>
+         <width>254</width>
+         <height>27</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
   </layout>
  </widget>
  <layoutdefault spacing="6" margin="11" />
diff --git a/convert/convert_s_poly_st_1.py b/convert/convert_s_poly_st_1.py
new file mode 100644 (file)
index 0000000..22d39ba
--- /dev/null
@@ -0,0 +1,39 @@
+# -*- coding: utf-8 -*-
+#            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.
+#
+#
+# ======================================================================
+"""
+"""
+
+import parseur_python
+from convert_python import *
+
+def entryPoint():
+   """
+       Retourne les informations nécessaires pour le chargeur de plugins
+       Ces informations sont retournées dans un dictionnaire
+   """
+   return {
+        # Le nom du plugin
+          'name' : 's_poly_st_1',
+        # La factory pour créer une instance du plugin
+          'factory' : PythonParser,
+          }
+
+
diff --git a/convert/convert_s_scc_st_2.py b/convert/convert_s_scc_st_2.py
new file mode 100644 (file)
index 0000000..8b634a5
--- /dev/null
@@ -0,0 +1,39 @@
+# -*- coding: utf-8 -*-
+#            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.
+#
+#
+# ======================================================================
+"""
+"""
+
+import parseur_python
+from convert_python import *
+
+def entryPoint():
+   """
+       Retourne les informations nécessaires pour le chargeur de plugins
+       Ces informations sont retournées dans un dictionnaire
+   """
+   return {
+        # Le nom du plugin
+          'name' : 's_scc_st_2',
+        # La factory pour créer une instance du plugin
+          'factory' : PythonParser,
+          }
+
+
index 854bc374750bd6e30fbc954ec17046c1e1c433cf..76646cf6deb491933498c3fc099afca81adaa369 100644 (file)
@@ -57,7 +57,6 @@ class MapGenerator(PythonGenerator):
       print 'generation dans generator_map'
       self.config=config
       self.dictMCVal={}
-      self.listeTemp=[]
       self.text=PythonGenerator.gener(self,obj,format)
       self.generePythonMap()
       return self.text
@@ -66,17 +65,27 @@ class MapGenerator(PythonGenerator):
       print 'generRUN dans generator_map'
       self.config=config
       self.dictMCVal={}
-      self.listeTemp=[]
-      self.text=PythonGenerator.gener(self,obj,format)
-      dicoRun={}
+      text=PythonGenerator.gener(self,obj,format)
+      self.texteExecution=""
       for code in self.dictMCVal.keys():
           if code in self.__class__.__dict__.keys():
-             listeTexte=apply(self.__class__.__dict__[code],(self,))
-             dicoRun[code]=listeTexte
-          else :
-             dicoRun[code]=""
-      return dicoRun
+             texteCode=apply(self.__class__.__dict__[code],(self,"oui"))
+             self.texteExecution=self.texteExecution+texteCode
+      return self.texteExecution
+
 
+   def generRUNYACS(self,obj,format='brut',config=None,):
+      print 'generRUNYACS dans generator_map'
+      self.config=config
+      self.dictMCVal={}
+      text=PythonGenerator.gener(self,obj,format)
+      self.texteExecution=""
+      for code in self.dictMCVal.keys():
+          if code in self.__class__.__dict__.keys():
+             codeYACS=str(code)+"YACS"
+             texteCode=apply(self.__class__.__dict__[codeYACS],(self,))
+             self.texteExecution=self.texteExecution+texteCode
+      return self.texteExecution
 
    def generePythonMap(self) :
       '''
@@ -87,7 +96,7 @@ class MapGenerator(PythonGenerator):
       '''
       for code in self.dictMCVal.keys():
           if code in self.__class__.__dict__.keys():
-             self.texte=apply(self.__class__.__dict__[code],(self,))
+             texte=apply(self.__class__.__dict__[code],(self,"non"))
 
    def generPROC_ETAPE(self,obj):
       #print "PN: generPROC_ETAPE dans generatorMap"
@@ -95,6 +104,15 @@ class MapGenerator(PythonGenerator):
       if not( self.dictMCVal.has_key(self.clefDico)):
          self.dictMCVal[self.clefDico]={}
          self.DictTemp=self.dictMCVal[self.clefDico]
+      else:
+         tempo=self.dictMCVal[self.clefDico]
+         self.DictTemp={}
+         import types
+         if type(tempo) == types.TupleType:
+            tempo.append(self.DictTemp)
+            self.dictMCVal[self.clefDico]=tempo
+         else:
+            self.dictMCVal[self.clefDico]=[tempo,self.DictTemp]
       s=PythonGenerator.generPROC_ETAPE(self,obj)
       return s
 
diff --git a/generator/generator_map_OT.py b/generator/generator_map_OT.py
deleted file mode 100644 (file)
index 73b5fd0..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-# -*- coding: utf-8 -*-
-#            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 le plugin generateur de fichier au format
-   SEP pour EFICAS.
-
-"""
-import traceback
-import types,string,re,os
-
-from generator_python import PythonGenerator
-
-
-CONFIGliste=()
-MOTCLEFListe=("_CODE_NOMCODE",)
-
-def entryPoint():
-   """
-      Retourne les informations necessaires pour le chargeur de plugins
-
-      Ces informations sont retournees dans un dictionnaire
-   """
-   return {
-        # Le nom du plugin
-          'name' : 'map_OT',
-        # La factory pour creer une instance du plugin
-          'factory' : MapGenerator,
-          }
-
-
-class MapGenerator(PythonGenerator):
-   """
-      Ce generateur parcourt un objet de type JDC et produit
-      un texte au format eficas et
-      un texte au format py
-
-   """
-   # Les extensions de fichier permis?
-   extensions=('.comm',)
-
-   def gener(self,obj,format='brut',config=None):
-      self.config=config
-      self.dictMCVal={}
-      self.text=PythonGenerator.gener(self,obj,format)
-      self.generePythonOT()
-      return self.text
-
-
-   def generePythonOT(self) :
-      '''
-         self.dictMCVal est un dictionnaire.
-         ce dictionnaire a pour clef la genealogie du MCSimp suivi de sa valeur
-
-      '''
-      f = file(self.config.repIni+"/schema-openturns-template.xml","r")
-      chaine = f.read()  
-      f.close()   
-      chaine2=self.remplaceCONFIG(chaine)
-      chaine=self.remplaceDICO(chaine2,MOTCLEFListe)
-      f=open("/tmp/nouveau_scema.xml",'wb')
-      f.write(chaine)
-      f.close()
-
-
-   def generMCSIMP(self,obj) :
-      """
-      Convertit un objet MCSIMP en texte python
-      Remplit le dictionnaire des MCSIMP si nous ne sommes ni dans une loi, ni dans une variable
-      """
-      s=PythonGenerator.generMCSIMP(self,obj)
-      clef=""
-      for i in obj.get_genealogie() :
-           clef=clef+"_"+i
-      self.dictMCVal[clef]=obj.valeur
-      return s
-
-
-   def  remplaceCONFIG(self,chaine) :
-       for mot in CONFIGliste :
-           rplact="%_"+mot+"%"
-           result=chaine.replace(rplact,self.config.__dict__[mot])
-           chaine=result
-       return chaine
-
-   def  remplaceDICO(self,chaine,dico) :
-       for mot in MOTCLEFListe :
-           rplact="%"+mot+"%"
-           try :
-              result=chaine.replace(rplact,str(self.dictMCVal[mot]))
-           except :
-              result=chaine
-           chaine=result
-       return chaine
-
index 5eab6344ba7e166b0fb1a59673d2c8db31171a72..bc1b191db8592e796e8262324012c341d155d214 100644 (file)
@@ -1,4 +1,4 @@
-# -*- coding: utf-8 -*-
+# -* coding: utf-8 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -84,8 +84,7 @@ class s_poly_st_1Generator(MapGenerator):
    """
    
 
-   def PYGMEE(self) :
-       print "Generation de PYGMEE"
+   def PYGMEE(self,execution) :
        dicoPygmee=self.dictMCVal["PYGMEE"]
        monFichier=self.config.PATH_PYGMEE+"/pygmee_input.txt"
 
@@ -97,22 +96,26 @@ class s_poly_st_1Generator(MapGenerator):
        chaine=self.remplaceDICO(chaine2,dicoPygmee)
 
        if  os.path.isfile(monFichier) :
-           #print "je detruis pygmee_input.txt"
+           print "je detruis pygmee_input.txt"
            commande="rm -rf " + monFichier
            os.system (commande)
        f=open(monFichier,'wb')
        f.write(chaine)
        f.close()
+       if execution=="non" : return ""
+
        if ('_PYGMEE_LANCEMENT' in dicoPygmee.keys()) and  dicoPygmee['_PYGMEE_LANCEMENT'] == 'oui':
-           commande="cd "+self.config.PATH_PYGMEE+";"
-           commande=commande + "python "+self.config.PATH_PYGMEE+"/pygmee_v1.py"
-           #print commande
-           os.system(commande)
+           commande="echo '__________________';\n"
+           commande=commande + "echo 'execution de PYGMEE';\n"
+           commande=commande + "cd "+self.config.PATH_PYGMEE+";\n"
+           commande=commande + "python "+self.config.PATH_PYGMEE+"/pygmee_v1.py;\n"
+           commande=commande + "echo 'fin execution de PYGMEE';\n"
+           commande=commande + "echo '_____________________';\n\n\n"
+           return commande
        else:
-          return ""
+           return ""
 
-   def BENHUR(self) :
-       print "Generation de BENHUR"
+   def BENHUR(self,execution) :
        dicoBenhur=self.dictMCVal["BENHUR"]
        if ("PYGMEE" in self.dictMCVal.keys()) and '_PYGMEE_TAILLE' in self.dictMCVal['PYGMEE']:
            dicoBenhur["_PYGMEE_TAILLE"]=self.dictMCVal["PYGMEE"]['_PYGMEE_TAILLE']
@@ -121,7 +124,7 @@ class s_poly_st_1Generator(MapGenerator):
            print "Attention la variable Taille_VER non definie"
        
        finesse=str(dicoBenhur["_BENHUR_FINESSE"])
-       nom_fichier_BHR=self.config.PATH_STUDY+"/"+self.config.NAME_SCHEME+"_benhur_"+finesse+".bhr"\r
+       nom_fichier_BHR=self.config.PATH_STUDY+"/"+self.config.NAME_SCHEME+"_benhur_"+finesse+".bhr"
        nom_BHR_Files=self.config.PATH_BENHUR+"/BHR_files.txt"
 
        #Lecture du fichier a trous
@@ -129,11 +132,13 @@ class s_poly_st_1Generator(MapGenerator):
        chaine = f.read()  
        f.close()   
        chaine2=self.remplaceCONFIG(chaine,CONFIGliste)
-       print "chaine2 =", chaine2
        chaine=self.remplaceDICO(chaine2,dicoBenhur)
-       print "chaine =", chaine
 
-       f=open(nom_fichier_BHR,'wb')
+       try :
+          f=open(nom_fichier_BHR,'wb')
+       except :
+          print "Pb de Generation de BENHUR"
+          return ""
        f.write(chaine)
        f.close()
 
@@ -142,15 +147,26 @@ class s_poly_st_1Generator(MapGenerator):
        f.write("\n\n\n")
        f.close()
 
+       if execution=="non" : return ""
        if ('_BENHUR_LANCEMENT' in dicoBenhur.keys()) and  dicoBenhur['_BENHUR_LANCEMENT'] == 'oui':
-           commande="cd "+self.config.PATH_BENHUR+";"
-           commande=commande + "./benhur"
-           print commande
-           os.system(commande)
+           commande="echo '__________________';\n"
+           commande=commande + "echo 'execution de BENHUR';\n"
+           commande=commande + "cd "+self.config.PATH_BENHUR+";\n"
+           commande=commande + "./benhur;\n"
+           commande=commande + "echo 'fin execution de BENHUR';\n"
+           commande=commande + "echo '________________________';\n\n\n"
+           return commande
        else:
           return ""
 
 
+   def BENHURYACS(self) :
+      print "dans BENHURYACS"
+      return ""
+
+   def PYGMEEYACS(self) :
+      print "dans PYGMEEYACS"
+      return ""
 
    def ASTER(self) :
       print "Generation de ASTER"
@@ -174,7 +190,6 @@ class s_poly_st_1Generator(MapGenerator):
          commande="cd "+self.config.PATH_MODULE+";"
          commande=commande + self.config.PATH_ASTER + "/as_run "+self.config.PATH_MODULE
          commande=commande + "/"+self.config.NAME_SCHEME+"/"+self.config.NAME_SCHEME+"_aster.export"
-         print commande
          os.system(commande)
       else:
          return ""
@@ -188,3 +203,6 @@ class s_poly_st_1Generator(MapGenerator):
          os.system(commande)
       else:
          return ""
+
+
+
diff --git a/generator/generator_s_scc_st_2.py b/generator/generator_s_scc_st_2.py
new file mode 100644 (file)
index 0000000..01dd7d9
--- /dev/null
@@ -0,0 +1,71 @@
+# -* coding: utf-8 -*-
+#            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 le plugin generateur de fichier au format
+   SEP pour EFICAS.
+
+"""
+import traceback
+import types,string,re,os
+
+from generator_map import MapGenerator
+
+#____________________________________________________________________________________
+# PYGMEEDict contient une equivalence entre le catalogue Map et les lignes generees
+# comme entete (commentaire ?) dans le fichier d'input de pygmee
+#
+
+CONFIGliste=('NAME_SCHEME', 'PATH_ASTER', 'PATH_BENHUR', 'PATH_MODULE', 'PATH_PYGMEE', 'PATH_STUDY', 'repIni')
+
+
+def entryPoint():
+   """
+      Retourne les informations necessaires pour le chargeur de plugins
+
+      Ces informations sont retournees dans un dictionnaire
+   """
+   return {
+        # Le nom du plugin
+          'name' : 's_scc_st_2',
+        # La factory pour creer une instance du plugin
+          'factory' : s_scc_st_2Generator,
+          }
+
+
+class s_scc_st_2Generator(MapGenerator):
+   """
+      Ce generateur parcourt un objet de type JDC et produit
+      un texte au format eficas et
+      un texte au format py
+
+   """
+   
+
+   def TABLEAU(self,execution):
+       dico=self.dictMCVal["TABLEAU"]
+       try :
+        a=dico['_TABLEAU_FICHIER']
+         commande='echo '+a+';'
+         return commande
+       except :
+         print "aie aie aie"
+       
+