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]
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
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 :
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()
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):
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():
# 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:
# wait_geom
# wait_complex
# wait_reel
- # wait_shell
# wait_assd
# GetType
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
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':
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
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
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
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)
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)
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
+
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()
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()
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")
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,
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()
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,{})
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 :
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
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)
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
</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>
</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>
</property>
<property name="icon" >
<iconset>
- <normaloff>image240.gif</normaloff>image240.gif</iconset>
+ <normaloff>image240.png</normaloff>image240.png</iconset>
</property>
</widget>
</item>