]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
*** empty log message ***
authorPascale Noyret <pascale.noyret@edf.fr>
Tue, 3 Feb 2009 16:28:47 +0000 (16:28 +0000)
committerPascale Noyret <pascale.noyret@edf.fr>
Tue, 3 Feb 2009 16:28:47 +0000 (16:28 +0000)
18 files changed:
Editeur/comploader.py
Editeur/icons/ast-green-los.gif
Editeur/icons/ast-green-square.gif
Editeur/import_code.py
Editeur/listePatrons.py
InterfaceQT4/browser.py
InterfaceQT4/composimp.py
InterfaceQT4/editor.py
InterfaceQT4/monFonctionPanel.py
InterfaceQT4/monParamPanel.py
InterfaceQT4/monPlusieursBasePanel.py
InterfaceQT4/monSelectVal.py
InterfaceQT4/politiquesValidation.py
InterfaceQT4/qtEficas.py
InterfaceQT4/qtSaisie.py
UiQT4/desPlusieursBase.ui
UiQT4/desPlusieursInto.ui
UiQT4/desUniqueBase.ui

index b20bfa9f2b95c1870d7dbfe2c740f4f5a588ef5e..e75d492e2db5ac586e3d578ebe776a107cc06f40 100644 (file)
@@ -49,8 +49,8 @@ def charger_composants(Ihm="TK"):
        repertoire=reper+"/../InterfaceTK"
        package="InterfaceTK"
     else :
-       repertoire=reper+"/../InterfaceQT"
-       package="InterfaceQT"
+       repertoire=reper+"/../InterfaceQT4"
+       package="InterfaceQT4"
     listfich=glob.glob(os.path.join(repertoire, "compo*.py"))
     for fichier in listfich:
         m= os.path.basename(fichier)[:-3]
index 0c9dbd020c77449eb2288a05326135e159cbf00f..44847265685a67735e84927fe539ee20526c0843 100755 (executable)
Binary files a/Editeur/icons/ast-green-los.gif and b/Editeur/icons/ast-green-los.gif differ
index 04ad5adc4adadb413cc45851249fe95640896478..22bbac0072afbb5a80a44d0f02933d083bb9843a 100755 (executable)
Binary files a/Editeur/icons/ast-green-square.gif and b/Editeur/icons/ast-green-square.gif differ
index 3d34eaa677d1bca46d63280c557c790d74c6149f..004d34565d99372c44b4a99e8532fc96aaaa92c7 100644 (file)
@@ -29,8 +29,8 @@ import prefs
 
 INSTALLDIR=prefs.INSTALLDIR
 sys.path.append(INSTALLDIR)
-sys.path.append(INSTALLDIR+"/Ui")
-sys.path.append(INSTALLDIR+"/InterfaceQT")
+sys.path.append(INSTALLDIR+"/UiQT4")
+sys.path.append(INSTALLDIR+"/InterfaceQT4")
 sys.path.append(INSTALLDIR+"/Editeur")
 
 # Ce chemin permet d'importer les modules Noyau et Validation
index d6dbe89bedf81a02ee1fdf760eb6a30b0e77bbe1..f6a8a97732107542a6dbac21b76dc965f8f649f8 100644 (file)
@@ -3,7 +3,9 @@ import re
 
 sous_menus={"ASTER" : {0:{"3D":"3D.comm"},1:{"poutre":"pou.comm"},2:{"salome":"salome.comm"},3:{"divers":"comm"}},
            "OPENTURNS_STUDY" : {0:{"Anne":"Std.comm"}},
-            "OPENTURNS_WRAPPER" : {0:{"Anne":"wrapper_exemple.comm"}}
+            "OPENTURNS_WRAPPER" : {0:{"Anne":"wrapper_exemple.comm"}},
+           "HOMARD" : {},
+           "CUVE2DG" : {}
            }
 
 class listePatrons :
index dc260e10a71c1d28b94a401ab25e9263313961a2..f742185a8ac4dbb616e3b35548bccba6cfbf7484 100644 (file)
@@ -101,7 +101,8 @@ class JDCNode(QTreeWidgetItem):
         mesColonnes <<  name << value
         QTreeWidgetItem.__init__(self,treeParent,mesColonnes)
 
-        monIcone = QIcon("/home/noyret/Install_Eficas/EficasV1/InterfaceQT4/icons/" +self.item.GetIconName() + ".gif")
+        RepIcon=QString(self.appliEficas.RepIcon)
+        monIcone = QIcon(RepIcon+"/" +self.item.GetIconName() + ".png")
         self.setIcon(0,monIcone)
         self.children = []
         self.build_children()
@@ -312,7 +313,8 @@ class JDCNode(QTreeWidgetItem):
            Elle appelle isvalid
         """
         #print 'NODE update_node_valid', self.item.GetLabelText()
-        monIcone = QIcon("/home/noyret/Install_Eficas/EficasV1/InterfaceQT4/icons/" +self.item.GetIconName() + ".gif")
+        RepIcon=QString(self.appliEficas.RepIcon)
+        monIcone = QIcon(RepIcon+"/" +self.item.GetIconName() + ".png")
         self.setIcon(0,monIcone)
 
     def update_node_label(self):
index d1422bf5af062de41d04db858dbb72f6355c2c55..20c8d20ab831621d7fa3f8910ca39baa65990bf1 100644 (file)
@@ -17,13 +17,6 @@ class Node(browser.JDCNode):
         klass = None 
         
         # Attention l ordre des if est important        
-        if self.item.wait_shell():
-            # l'objet attend un shell
-            # a priori jamais
-            print "Pb : Panneau Shell attendu"
-            print "Pb : Prevenir la maintenance"
-            klass = None #CS_pbruno todo
-            return None
 
         # l'objet prend sa (ses) valeur(s) dans un ensemble discret de valeurs
         if self.item.has_into():
@@ -39,7 +32,10 @@ class Node(browser.JDCNode):
             # on attend une liste de valeurs 
             if self.item.is_list() :
                 # on attend une liste de SD
-                if self.item.wait_assd():
+                if self.item.wait_tuple() :
+                    from monFonctionPanel import MonFonctionPanel
+                    klass = MonFonctionPanel
+                elif self.item.wait_assd():
                     from monPlusieursASSDPanel import MonPlusieursASSDPanel 
                     klass = MonPlusieursASSDPanel
                 else:
@@ -389,7 +385,6 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
   # wait_geom
   # wait_complex
   # wait_reel
-  # wait_shell
   # wait_assd
   # GetType
 
@@ -424,13 +419,13 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
       else:
           return 0
         
-  def wait_shell(self):
+  def wait_tuple(self):
       """ Méthode booléenne qui retourne 1 si l'objet pointé par self
       attend un shell, 0 sinon """
-      if 'shell' in self.object.definition.type:
-          return 1
-      else:
-          return 0
+      for ss_type in self.object.definition.type:
+          if repr(ss_type).find('Tuple') != -1 :
+             return 1
+      return 0
 
   def wait_assd(self):
       """Méthode booléenne qui retourne 1 si l'objet pointé par self
index 7ab8dc62797164419a18aa4d11aa7f948a1af16e..77d6d821c76b2898d4085b25e47408051fb0cfe5 100644 (file)
@@ -561,6 +561,20 @@ class JDCEditor(QSplitter):
             except :
                pass
 
+            try : 
+             
+            #if 1 :
+               file_homard = fn[:fn.rfind(".")] + '.conf_homard'
+               self.jdc_homard=self.generator.get_homard()
+               f=open(file_homard,'w')
+               for ligne in self.jdc_homard:
+                  f.write(ligne)
+                  f.write('\n')
+               f.close()
+            except :
+            #else :
+               pass
+
 #            if self.salome : 
 #               self.QWParent.appli.addJdcInSalome( self.fichier)
 #               if self.code == 'ASTER':
index 4dba067e9e7c9b27b18bbd7e859c67e80f108c04..999587cb637294121821492dc0ac6fa2e6af243b 100644 (file)
@@ -43,6 +43,14 @@ class MonFonctionPanel(MonPlusieursBasePanel):
         MonPlusieursBasePanel.__init__(self,node,parent,name,fl)
 
   def SetNbValeurs(self):
+        self.nbValeurs = 1
+        if self.node.item.wait_tuple()== 1 :
+           for a in self.node.item.definition.type :
+               try :
+                   self.nbValeurs = a.ntuple
+                   break
+               except :
+                   pass
         genea=self.node.item.get_genealogie()
         if "VALE" in genea:
             self.nbValeurs=2
@@ -56,29 +64,34 @@ class MonFonctionPanel(MonPlusieursBasePanel):
         if (len(liste)% self.nbValeurs != 0):
             message="La cardinalité n'est pas correcte, la dernière valeur est ignorée"
             #self.Commentaire.setText(QString(commentaire)) 
-            self.editor.affiche_infos(commentaire)
-        for i in range(len(liste)/ self.nbValeurs) :
-            if (self.nbValeurs==2):
-              t=(liste[i*self.nbValeurs], liste[i*self.nbValeurs+1])
-            else:
-              t=(liste[i*self.nbValeurs], liste[i*self.nbValeurs+1], liste[i*self.nbValeurs+2])
+            self.editor.affiche_infos(message)
+        i=0
+        while ( i < (len(liste) - self.nbValeurs + 1)) :
+            t=tuple(liste[i:i+self.nbValeurs])
             l_valeurs.append(t)
+            i=i+self.nbValeurs
         return l_valeurs
 
   def BuildLBValeurs(self):
         self.LBValeurs.clear()
         listeValeurs=self.node.item.GetListeValeurs()
-        for valeur in self.DecoupeListeValeurs(listeValeurs):
-               if (self.nbValeurs==2):
-                    str_valeur=str(valeur[0])+","+str(valeur[1])
-               else:
-                    str_valeur=str(valeur[0])+","+str(valeur[1])+","+str(valeur[2])
-               self.LBValeurs.addItem(str_valeur)
+        if self.node.item.wait_tuple()== 1 :
+             listeATraiter=listeValeurs
+        else : 
+              listeATraiter=self.DecoupeListeValeurs(listeValeurs)
+        for valeur in listeATraiter:
+            str_valeur=str(valeur)
+            self.LBValeurs.addItem(str_valeur)
 
   def  Ajout1Valeur(self,liste=[]):
         # Pour être appele a partir du Panel Importer (donc plusieurs fois par AjouterNValeur)
         if liste == [] :
-           liste,validite=SaisieValeur.TraiteLEValeur(self)
+           if self.node.item.wait_tuple()== 1 :
+              liste=SaisieValeur.TraiteLEValeurTuple(self)
+              if liste == [''] : return
+              validite=1
+           else :
+              liste,validite=SaisieValeur.TraiteLEValeur(self)
         else :
            validite=1
         if validite == 0 : return
@@ -93,6 +106,9 @@ class MonFonctionPanel(MonPlusieursBasePanel):
             self.editor.affiche_infos(commentaire)
             return
 
+        if self.node.item.wait_tuple()== 1 :
+              liste2=tuple(liste)
+              liste=liste2
         index=self.LBValeurs.currentRow()
         if ((self.LBValeurs.isItemSelected(self.LBValeurs.item(index )) == 0) and (index > 0 )):
            index=0
@@ -104,7 +120,10 @@ class MonFonctionPanel(MonPlusieursBasePanel):
         listeVal=[]
         for valeur in self.listeValeursCourantes :
                 listeVal.append(valeur)
-        validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index,listeVal)
+        if self.node.item.wait_tuple()== 1 :
+             validite,comm,comm2,listeRetour=self.politique.AjoutTuple(liste,index,listeVal)
+        else :
+             validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index,listeVal)
         self.Commentaire.setText(comm2)
         if not validite :
                 self.editor.affiche_infos(comm)
@@ -112,11 +131,13 @@ class MonFonctionPanel(MonPlusieursBasePanel):
            self.LEValeur.setText(QString(""))
            l1=self.listeValeursCourantes[:indexListe]
            l3=self.listeValeursCourantes[indexListe:]
-           for valeur in  self.DecoupeListeValeurs(listeRetour) :
-               if (self.nbValeurs==2):
-                    str_valeur=str(valeur[0])+","+str(valeur[1])
-               else:
-                    str_valeur=str(valeur[0])+","+str(valeur[1])+","+str(valeur[2])
+           if self.node.item.wait_tuple()== 1 :
+             listeATraiter=listeRetour
+           else : 
+              listeATraiter=self.DecoupeListeValeurs(listeRetour)
+           for valeur in  listeATraiter :
+               str_valeur=str(valeur)
+               print str_valeur
                self.LBValeurs.insertItem(index,str_valeur)
                item=self.LBValeurs.item(index)
                item.setSelected(1)
@@ -135,21 +156,24 @@ class MonFonctionPanel(MonPlusieursBasePanel):
         for vals in listeDecoupee :
             self.Ajout1Valeur(vals)
            
-
   def Sup1Valeur(self):
         index=self.LBValeurs.currentRow()
         if index == None : return
         self.LBValeurs.takeItem(index)
         listeVal=[]
+        indexInterdit=[]
+        for i in range(self.nbValeurs):
+            indexAOter=index*self.nbValeurs + i
+            indexInterdit.append(indexAOter)
+        if self.node.item.wait_tuple()== 1 :
+           indexInterdit=[index]
+
         i=0
         for valeur in self.listeValeursCourantes :
-                if self.nbValeurs == 2 :
-                   if (i != index*2 and i != index*2+1 ) : listeVal.append(valeur)
-                elif self.nbValeurs == 3 :
-                   if (i != index*3 and i != index*3+1 and i != index*3 +2) : listeVal.append(valeur)
-                else :
-                   print "aiiiiiiiiiiiiiiiiiieeee"
-                i = i+1
+            if not (i in indexInterdit) : 
+                listeVal.append(valeur)
+            i = i+1
         self.listeValeursCourantes=listeVal
         listeValeurs=self.listeValeursCourantes
 
+      
index ccc25e7a99af02cde82905812a46918940223b51..a205431f630c96e3270e9d691c5f6ff24bad3b3e 100644 (file)
@@ -96,7 +96,6 @@ class MonParamPanel(DParam,QTPanelTBW2,QTPanel):
         self.node.item.set_nom(nom)
         self.node.item.set_valeur(val)
         self.node.update_texte()
-        self.node.update_valid()
         self.editor.init_modif()
         self.InitLEs()
 
index 6dd3588a1c9fb02189c57a6586a2ba09e0375e45..adef3c01d44d5e525c9d8c623b784f53bebc0133 100644 (file)
@@ -80,7 +80,6 @@ class MonPlusieursBasePanel(DPlusBase,QTPanel,SaisieValeur):
   def detruitBouton(self):
         mc = self.node.item.get_definition()
         type = mc.type[0]
-        print self.editor.salome
         if not(('grma' in repr(type)) or ('grno' in repr(type))) or not(self.editor.salome) :
            self.BSalome.close()
            self.BView2D.close()
@@ -95,7 +94,7 @@ class MonPlusieursBasePanel(DPlusBase,QTPanel,SaisieValeur):
   def BOkPourListePressed(self):
         self.editor.init_modif()
         if self.listeValeursCourantes == [] :
-           self.editor.affiche_infos("Pas de validation d un groupe vide")
+           self.editor.affiche_infos("Aucune Valeur")
            return
         self.node.item.set_valeur(self.listeValeursCourantes)
        self.editor.affiche_infos("Valeur Acceptée")
@@ -155,6 +154,11 @@ class MonPlusieursBasePanel(DPlusBase,QTPanel,SaisieValeur):
            self.listeValeursCourantes=l1+listeRetour+l3
           self.editor.affiche_infos("Valeurs Ajoutées")
 
+  def AjoutNValeur(self,liste) :
+      for val in liste :
+        print val
+       self.Ajout1Valeur(val)
+
   def BImportPressed(self):
         init=QString( self.editor.CONFIGURATION.savedir)
         fn = QFileDialog.getOpenFileName(self.node.appliEficas, 
index 24e8839747a18a053ed23f4fd77bf44cc00de140..421682a3f6d32a62d0bcaa6cc292d7bfd6271b96 100644 (file)
@@ -56,6 +56,7 @@ class MonSelectVal(DSelVal):
         self.connect(self.BImportTout,SIGNAL("clicked()"),self.BImportToutPressed)
 
   def readVal(self):
+        if self.file == "" : return
         f = open(self.file, "rb")
         self.texte = f.read()
         f.close()
@@ -92,6 +93,7 @@ class MonSelectVal(DSelVal):
         liste1=self.textTraite.split(self.separateur)
         liste=[]
         for val in liste1 :
+          if val != '' and val != ' ' and val != self.separateur :
             val=str(val)
             try :
               val=eval(val,{})
index a976f9717be6a707f34d5723d8da1b989f225c05..47a8b5e9cb788d4bd745e45263e9cdb62247846c 100644 (file)
@@ -120,8 +120,6 @@ class PolitiquePlusieurs:
          commentaire="Nouvelle valeur acceptée"
          commentaire2=""
          valide=1
-         if listevaleur==None: return
-         if listevaleur=="": return
          if not( type(listevaleur)  in (types.ListType,types.TupleType)) :
             listevaleur=tuple(listevaleur)
          for valeur in listevaleur :
@@ -158,3 +156,37 @@ class PolitiquePlusieurs:
              listeRetour.append(valeur)
 
          return valide,commentaire,commentaire2,listeRetour
+
+  def AjoutTuple(self,valeurTuple,index,listecourante):
+         listeRetour=[]
+         commentaire="Nouvelle valeur acceptée"
+         commentaire2=""
+         valide=1
+         if valeurTuple==None: return
+         if valeurTuple==['']: return
+         # On teste le type de la valeur
+         valide=self.node.item.valide_item(valeurTuple)
+         if not valide :
+            try :
+                valeur,valide=self.node.item.eval_valeur(valeur)
+                valide,commentaire = self.node.item.object.verif_type(valeur)
+            except :
+                pass
+         if not valide:
+            commentaire="Valeur "+str(valeur)+ " incorrecte : ajout à la liste refusé"
+            commentaire2=self.node.item.info_erreur_item()
+            return valide,commentaire,commentaire2,listeRetour
+
+         # On valide la liste obtenue
+         encorevalide=self.node.item.valide_liste_partielle(valeurTuple,listecourante)
+         if not encorevalide :
+            commentaire2=self.node.item.info_erreur_liste()
+            # On traite le cas ou la liste n est pas valide pour un pb de cardinalite
+            min,max = self.node.item.GetMinMax()
+            if len(listecourante) + 1 >= max :
+               commentaire="La liste a déjà atteint le nombre maximum d'éléments,ajout refusé"
+               return valide,commentaire,commentaire2,listeRetour
+         listecourante.insert(index,valeurTuple)
+         index=index+1
+         listeRetour.append(valeurTuple)
+         return valide,commentaire,commentaire2,listeRetour
index 54921093cc1261e2608a467f276d39f97b9fc1fc..b79ae3380f0e83458ef730b66a56e5bbc4ccf99b 100644 (file)
@@ -29,6 +29,7 @@ class Appli(Ui_Eficas,QMainWindow):
 
         import prefs
         self.REPINI=prefs.REPINI
+        self.RepIcon=prefs.INSTALLDIR+"/UiQT4/icons"
         import configuration
         self.CONFIGURATION = configuration.make_config(self,prefs.REPINI)
         self.CONFIGStyle = configuration.make_config_style(self,prefs.REPINI)
index c0fd8a43694696918f85a5c24929fc471c705db7..be089958ae4db09c730202941cb72d3aa3f0888e 100644 (file)
@@ -109,6 +109,18 @@ class SaisieValeur:
             self.editor.affiche_infos(commentaire)
 
 
+  def TraiteLEValeurTuple(self) :
+        listeValeurs=[]
+        valeurBrute=str(self.LEValeur.text())
+        listeValeursSplit=valeurBrute.split(',')
+        for val in listeValeursSplit :
+            try :
+               valeur=eval(val,{})        
+            except :
+               valeur=val
+            listeValeurs.append(valeur)
+        return listeValeurs
+
   def TraiteLEValeur(self,valeurTraitee=None) :
         # lit la chaine entree dans le line edit
         # et la tranforme en chaine de valeurs
index 6ad5312903f31d26a91ce7a4a267d3ad047c22d2..261d4a8d14c5e2de2482a408af69797c011d242c 100644 (file)
          </property>
          <property name="icon" >
           <iconset>
-           <normaloff>../../EficasV1/Editeur/icons/arrow_left.gif</normaloff>../../EficasV1/Editeur/icons/arrow_left.gif</iconset>
+           <normaloff>../Editeur/icons/arrow_left.png</normaloff>../Editeur/icons/arrow_left.png</iconset>
          </property>
         </widget>
        </item>
          </property>
          <property name="icon" >
           <iconset>
-           <normaloff>image240.gif</normaloff>image240.gif</iconset>
+           <normaloff>image240.png</normaloff>image240.png</iconset>
          </property>
         </widget>
        </item>
          </property>
          <property name="icon" >
           <iconset>
-           <normaloff>../../EficasV1/Editeur/icons/arrow_right.gif</normaloff>../../EficasV1/Editeur/icons/arrow_right.gif</iconset>
+           <normaloff>../../EficasV1/Editeur/icons/arrow_right.png</normaloff>../../EficasV1/Editeur/icons/arrow_right.png</iconset>
          </property>
         </widget>
        </item>
             <bool>true</bool>
            </property>
            <property name="default" >
-            <bool>true</bool>
+            <bool>false</bool>
            </property>
           </widget>
          </item>
index 9fa87f7d8bcad2a1642b1198d0ce7372e8f503c9..d4e63a469f95d99429365057c3cb3a6a48d0d913 100644 (file)
                </property>
                <property name="icon" >
                 <iconset>
-                 <normaloff>../../EficasV1/Editeur/icons/arrow_left.gif</normaloff>../../EficasV1/Editeur/icons/arrow_left.gif</iconset>
+                 <normaloff>../Editeur/icons/arrow_left.png</normaloff>../Editeur/icons/arrow_left.png</iconset>
                </property>
               </widget>
              </item>
                </property>
                <property name="icon" >
                 <iconset>
-                 <normaloff>../Editeur/icons/arrow_right.gif</normaloff>../Editeur/icons/arrow_right.gif</iconset>
+                 <normaloff>../Editeur/icons/arrow_right.png</normaloff>../Editeur/icons/arrow_right.png</iconset>
                </property>
               </widget>
              </item>
index c089a5ff821c1dd4c4c683263f4b316518e28f95..2fac4097ac2cce1bc39521e365c25dd45c04d141 100644 (file)
          </property>
          <property name="icon" >
           <iconset>
-           <normaloff>image240.gif</normaloff>image240.gif</iconset>
+           <normaloff>image240.png</normaloff>image240.png</iconset>
          </property>
         </widget>
        </item>