# On verifie que l'ajout d'objet est autorise
if self.ispermis(objet) == 0:
- self.jdc.appli.affiche_alerte("L'objet %s ne peut être un fils de %s" %(objet.nom,
+ self.jdc.appli.affiche_alerte("Erreur","L'objet %s ne peut être un fils de %s" %(objet.nom,
self.nom))
self.fin_modif()
return 0
# on cree une liste d'objets. Dans le cas contraire,
# on emet un message d'erreur.
if not old_obj.isrepetable():
- self.jdc.appli.affiche_alerte("L'objet %s ne peut pas être répété" %objet.nom)
+ self.jdc.appli.affiche_alerte("Erreur","L'objet %s ne peut pas être répété" %objet.nom)
self.fin_modif()
return 0
else:
raise "traitement non prevu"
if not self.ajout_possible():
- self.jdc.appli.affiche_alerte("L'objet %s ne peut pas être ajouté" % obj.nom)
+ self.jdc.appli.affiche_alerte("Erreur","L'objet %s ne peut pas être ajouté" % obj.nom)
return None
if self.nom != obj.nom:
def valideMatrice(self,cr):
if self.monType.methodeCalculTaille != None :
apply (MCSIMP.__dict__[self.monType.methodeCalculTaille],(self,))
- #try :
- if 1 :
+ try :
+ #if 1 :
ok=0
if len(self.valeur) == self.monType.nbLigs:
ok=1
if ok:
self.set_valid(1)
return 1
- #except :
- else :
+ except :
+ #else :
pass
if cr == 'oui' :
self.cr.fatal("La matrice n est pas une matrice "+str(self.monType.nbLigs)+","+str(self.monType.nbCols))
return 0
def NbDeVariables(self):
- listeVariables=self.jdc.get_variables()
+ listeVariables=self.jdc.get_variables(self.etape)
self.monType.nbLigs=len(listeVariables)
self.monType.nbCols=len(listeVariables)
self.setMinimumSize(QSize(600,505))
self.setColumnWidth(0,300)
+ self.itemCourrant=None
self.connect(self, SIGNAL("itemClicked ( QTreeWidgetItem * ,int) "), self.handleOnItem)
self.racine=self.item.itemNode(self,self.item)
def handleOnItem(self,item,int):
item.affichePanneau()
+ self.itemCourrant=item
try :
fr = item.item.get_fr()
if self.editor:
self.existeMenu=1
self.item.connect("valid",self.onValid,())
- self.item.connect("supp" ,self.onAdd,())
- self.item.connect("add" ,self.onSupp,())
+ self.item.connect("supp" ,self.onSupp,())
+ self.item.connect("add" ,self.onAdd,())
def build_children(self,posInsertion=10000):
obj=self.item.additem(name,index) #CS_pbruno emet le signal 'add'
if obj is None:obj=0
if obj == 0:return 0
- self.build_children(index)
child=self.children[index]
child.affichePanneau()
return child
"""
Methode externe pour la destruction de l'objet associe au noeud
"""
+ print "je passe la"
self.editor.init_modif()
index = self.treeParent.children.index(self) - 1
if index < 0 : index =0
#
# #------------------------------------------------------------------
def onValid(self):
+ #print "NODE onValid", self.item.GetLabelText()
+ #import traceback
+ #print traceback.print_stack()
self.editor.init_modif()
self.update_node_valid()
self.update_node_label()
def onAdd(self,object):
#print "NODE onAdd", self.item.GetLabelText()
+ #import traceback
+ #print traceback.print_stack()
self.editor.init_modif()
self.update_nodes()
def onSupp(self,object):
- #print "NODE onSupp", self.item.GetLabelText()
+ print "NODE onSupp", self.item.GetLabelText()
self.editor.init_modif()
self.update_nodes()
self.setText(1, value)
def update_nodes(self):
- #print 'NODE update_nodes', self.item.GetLabelText()
+ print 'NODE update_nodes', self.item.GetLabelText()
self.build_children()
+
+ def update_valid(self) :
+ """Cette methode a pour but de mettre a jour la validite du noeud
+ et de propager la demande de mise a jour a son parent
+ """
+ print "NODE update_valid", self.item.GetLabelText()
+ self.update_node_valid()
+ try :
+ self.treeParent.update_valid()
+ except:
+ pass
def update_texte(self):
""" Met a jour les noms des SD et valeurs des mots-cles """
for child in self.children:
if child.isHidden() == false : child.update_texte()
-
+
+ def doPaste(self,node_selected):
+ """
+ Déclenche la copie de l'objet item avec pour cible
+ l'objet passé en argument : node_selected
+ """
+ #print 'je passe dans doPaste'
+ objet_a_copier = self.item.get_copie_objet()
+ child=node_selected.doPasteCommande(objet_a_copier)
+ return child
+
def doPasteCommande(self,objet_a_copier):
"""
Réalise la copie de l'objet passé en argument qui est nécessairement
une commande
"""
- child = self.append_brother(objet_a_copier)
+ #print 'je passe dans doPasteCommande'
+ try :
+ child = self.append_brother(objet_a_copier)
+ except :
+ pass
return child
def doPasteMCF(self,objet_a_copier):
Réalise la copie de l'objet passé en argument (objet_a_copier)
Il s'agit forcément d'un mot clé facteur
"""
- child = self.append_child(objet_a_copier,pos='first')
+ #print 'je passe dans doPasteMCF'
+ child = self.append_child(objet_a_copier,pos='first',retour='oui')
return child
+
if __name__=='__main__':
from PyQt4 import *
from PyQt4.QtGui import *
debComm=self.item.GetText()
self.setText(1,debComm)
- def doPaste(self,node_selected):
- return None
class COMMTreeItem(Objecttreeitem.ObjectTreeItem):
def createPopUpMenu(self):
typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self)
- def doPaste(self,node_selected):
- objetACopier = self.item.get_copie_objet()
- child=node_selected.doPasteMCF(objetACopier)
- return child
-
- def doPasteMCF(self,objetACopier):
- child = self.parent.append_child(objetACopier,
- pos=self.item,
- retour='oui')
- return child
-
class FACTTreeItem(Objecttreeitem.ObjectTreeItem):
itemNode=Node
typeNode.PopUpMenuNode.createPopUpMenu(self)
- def doPaste(self,node_selected):
- """
- Déclenche la copie de l'objet item avec pour cible
- l'objet passé en argument : node_selected
- """
- objet_a_copier = self.item.get_copie_objet()
- child=node_selected.doPasteCommande(objet_a_copier)
- return child
-
-
class FORMULETreeItem(compooper.EtapeTreeItem):
"""
Classe servant a définir l'item porté par le noeud de l'arbre d'EFICAS
Ce nom dépend de la validité de l'objet
"""
if self.object.isactif():
- self.object.state="modified"
if self.object.isvalid():
return "ast-green-square"
else:
from monRacinePanel import MonRacinePanel
return MonRacinePanel(self,parent=self.editor)
- def doPasteCommande(self,objet_a_copier):
- """
- Réalise la copie de l'objet passé en argument qui est nécessairement
- une commande
- """
- child = self.append_child(objet_a_copier,pos='first',retour='oui')
- return child
class JDCTreeItem(Objecttreeitem.ObjectTreeItem):
class MACRONode(browser.JDCNode,typeNode.PopUpMenuNode):
def getPanel(self):
- print "MACRONode MACRONode"
from monMacroPanel import MonMacroPanel
return MonMacroPanel (self,parent=self.editor )
def createPopUpMenu(self):
typeNode.PopUpMenuNode.createPopUpMenu(self)
+ #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):
# """ Cette classe hérite d'une grande partie des comportements
typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self)
- def doPaste(self,node_selected):
- objet_a_copier = self.item.get_copie_objet()
- child=node_selected.doPasteMCF(objet_a_copier)
+ #def doPaste(self,node_selected):
+ # objet_a_copier = self.item.get_copie_objet()
+ # child=node_selected.doPasteMCF(objet_a_copier)
#print "doPaste",child
- return child
+ # return child
- def doPasteMCF(self,objet_a_copier):
- child=None
+ #def doPasteMCF(self,objet_a_copier):
+ # child=None
# le noeud courant est une MCList
- if self.item.isMCList() :
- child = self.append_child(objet_a_copier,pos='first',retour='oui')
+ # if self.item.isMCList() :
+ # child = self.append_child(objet_a_copier,pos='first',retour='oui')
# le noeud courant est un MCFACT
- elif self.item.isMCFact() :
+ # elif self.item.isMCFact() :
# le noeud selectionne est un MCFACT dans une MCList
- if self.parent.item.isMCList():
- child = self.parent.append_child(objet_a_copier,
- pos=self.item,
- retour='oui')
+ # if self.parent.item.isMCList():
+ # child = self.parent.append_child(objet_a_copier, pos=self.item, retour='oui')
# le noeud MCFACT selectionne n'est pas dans une MCList
- else:
- child = self.parent.append_child(objet_a_copier,retour='oui')
+ # else:
+ # child = self.parent.append_child(objet_a_copier,retour='oui')
- else:
- QMessageBox.information( self, "Copie impossible",
- "Vous ne pouvez coller le mot-clé facteur copié à ce niveau de l'arborescence !")
- self.editor.affiche_infos("Copie refusée")
+ # else:
+ # QMessageBox.information( self, "Copie impossible",
+ # "Vous ne pouvez coller le mot-clé facteur copié à ce niveau de l'arborescence !")
+ # self.editor.affiche_infos("Copie refusée")
- return child
+ # return child
class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem):
""" La classe MCListTreeItem joue le role d'un adaptateur pour les objets
def createPopUpMenu(self):
typeNode.PopUpMenuNode.createPopUpMenu(self)
if ("AFFE_CARA_ELEM" in self.item.get_genealogie()) and self.editor.salome:
- self.menu.insertItem( 'View3D', self.view3D )
+ self.ViewElt = QAction('View3D',self.tree)
+ self.tree.connect(self.ViewElt,SIGNAL("activated()"),self.view3D)
+ self.ViewElt.setStatusTip("affiche dans Geom les elements de structure")
+ self.menu.addAction(self.ViewElt)
+ if self.item.isvalid() :
+ self.ViewElt.setEnabled(1)
+ else:
+ self.ViewElt.setEnabled(0)
if self.item.get_nom() == "DISTRIBUTION" :
self.Graphe = QAction('Graphique',self.tree)
self.tree.connect(self.Graphe,SIGNAL("activated()"),self.viewPng)
else:
self.Graphe.setEnabled(0)
- def doPaste(self,node_selected):
- """
- Déclenche la copie de l'objet item avec pour cible
- l'objet passé en argument : node_selected
- """
- objet_a_copier = self.item.get_copie_objet()
- child=node_selected.doPasteCommande(objet_a_copier)
- return child
-
- def doPasteCommande(self,objet_a_copier):
- """
- Réalise la copie de l'objet passé en argument qui est nécessairement
- une commande
- """
- parent=self.parent
- #child = parent.item.append_child(objet_a_copier,self.item.getObject())
- child = self.append_brother(objet_a_copier)
- #if child is None:return 0
- return child
-
- def doPasteMCF(self,objet_a_copier):
- """
- Réalise la copie de l'objet passé en argument (objet_a_copier)
- Il s'agit forcément d'un mot clé facteur
- """
- child = self.append_child(objet_a_copier,pos='first',retour='oui')
- return child
-
def view3D(self) :
from Editeur import TroisDPal
- troisD=TroisDPal.TroisDPilote(self.item,self.editor.parent.appliEficas)
+ troisD=TroisDPal.TroisDPilote(self.item,self.editor.appliEficas)
troisD.envoievisu()
def viewPng(self) :
if copie == 0 : return
+ #---------------------#
+ def handleSupprimer(self):
+ #---------------------#
+ #print "handleSupprimer"
+ self.chercheNoeudSelectionne()
+ self.node_selected.delete()
+
#---------------------#
def handleEditCut(self):
#---------------------#
"""
Stocke dans Eficas.noeud_a_editer le noeud à couper
"""
+ #print "handleEditCut"
self.chercheNoeudSelectionne()
self.QWParent.edit="couper"
self.QWParent.noeud_a_editer = self.node_selected
"""
Stocke dans Eficas.noeud_a_editer le noeud a copier
"""
+ #print "handleEditCut"
self.chercheNoeudSelectionne()
self.QWParent.edit="copier"
self.QWParent.noeud_a_editer = self.node_selected
Lance la copie de l'objet place dans self.QWParent.noeud_a_editer
Ne permet que la copie d'objets de type Commande ou MCF
"""
+ #print "handleEditPaste"
self.chercheNoeudSelectionne()
try :
index_noeud_a_couper=self.QWParent.noeud_a_editer.treeParent.children.index(self.QWParent.noeud_a_editer)
except:
traceback.print_exc()
QMessageBox.information( self,
- "Copie impossible",
- "L'action de coller apres un tel objet n'est pas permise")
+ "Copie refusee",
+ "Copie refusee pour ce type d objet a cet endroit")
+ self.message = ''
+ self.affiche_infos("Copie refusée")
return
if child == 0 or child == None:
- QMessageBox.critical( self, "Copie refusee", "Copie refusee pour ce type d objet", self.message)
+ QMessageBox.critical( self, "Copie refusee",'Copie refusee pour ce type d objet')
self.message = ''
self.affiche_infos("Copie refusée")
return
#-----------------------------------------#
def cherche_Groupes(self):
- liste=self.get_text_JDC("GroupMA")
- return liste
+ listeMA,listeNO=self.get_text_JDC("GroupMA")
+ return listeMA,listeNO
#-----------------------------------------#
#-----------------------------------------#
QTPanelTBW2.__init__(self,node,parent)
self.RemplitPanel()
self.connecterSignaux()
+ self.textCommentaire.setFocus()
def connecterSignaux(self) :
self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListBoxItem*)"),self.LBNouvCommandeClicked)
def NbDeVariables(self):
jdc=self.node.item.object.jdc
etape=self.node.item.object.etape
- self.listeVariables=jdc.get_variables()
+ self.listeVariables=jdc.get_variables(etape)
if self.listeVariables == [] :
QMessageBox.critical( self, "Mauvaise Commande ", "Aucune variable connue")
return
def initialValeur(self):
liste=self.node.item.get_valeur()
- if (len(liste)) != self.nbLigs :
+ if (len(liste)) != self.nbLigs :
QMessageBox.critical( self, "Mauvaise dimension de matrice", "le nombre de ligne n est pas egal a " + str(self.nbLigs))
for i in range(self.nbLigs):
inter=liste[i]
QTPanelTBW2.__init__(self,node,parent)
self.InitLEs()
self.connecterSignaux()
+ self.lineEditNom.setFocus()
def connecterSignaux(self) :
self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListBoxItem*)"),self.LBNouvCommandeClicked)
def Ajout1Valeur(self,valeur=None):
+ if valeur == None :
+ valeur=str(self.LEValeur.text())
+
liste,validite=SaisieValeur.TraiteLEValeur(self,valeur)
if validite == 0 : return
if liste ==[] : return
l1=self.listeValeursCourantes[:index]
l3=self.listeValeursCourantes[index:]
for valeur in listeRetour:
- self.LBValeurs.insertItem(index,QString(str(valeur)))
+ val=self.politique.GetValeurTexte(valeur)
+ self.LBValeurs.insertItem(index,val)
item=self.LBValeurs.item(index)
item.setSelected(1)
self.LBValeurs.setCurrentItem(item)
def BImportPressed(self):
init=QString( self.editor.CONFIGURATION.savedir)
fn = QFileDialog.getOpenFileName(self.node.appliEficas,
- self.node.appliEficas.trUtf8('Fichier de données'),
+ #self.node.appliEficas.trUtf8('Fichier de données'),
+ QApplication.translate('Eficas','Fichier de donnees',None, QApplication.UnicodeUTF8),
init,
self.trUtf8('All Files (*)',))
if fn == None : return
self.LEReel.setText(str(x1))
self.LEImag.setText(str(x2))
if typ_cplx == "RI" :
- self.RBRI.setDown(1)
+ self.RBRI.setChecked(1)
else :
- self.RBMP.setDown(1)
+ self.RBMP.setChecked(1)
def LEcompRPressed(self) :
return valeurTexte
def AjoutDsDictReel(self,texteValeur):
- try :
+ #try :
if "R" in self.node.item.object.definition.type:
if str(texteValeur)[0] != "'":
clef=eval(texteValeur)
self.parent.appliEficas.dict_reels[self.node.item.object.etape] = {}
self.parent.appliEficas.dict_reels[self.node.item.object.etape][clef]=texteValeur
- except:
+ #except:
#else :
#print "pb ds try de AjoutDsDictReel"
- pass
+ # pass
def AjoutDsDictReelEtape(self):
try:
def BOkPressed(self):
""" Impossible d utiliser les vrais labels avec designer ?? """
label=self.TWChoix.tabText(self.TWChoix.currentIndex())
- print label
if label==QString("Nouvelle Commande"):
self.DefCmd()
if label==QString("Nommer Concept"):
liste_mc=self.node.item.get_liste_mc_ordonnee(genea,jdc.cata_ordonne_dico)
for aMc in liste_mc:
self.LBMCPermis.addItem( aMc)
+ if len(liste_mc) !=0:
+ self.LBMCPermis.setCurrentItem(self.LBMCPermis.item(0))
def DefMC(self,item):
self.NbRecherches = 0
if racine == 1 :
self.AppelleBuildLBRegles()
+ self.LEFiltre.setFocus()
else :
self.connect(self.TWChoix, SIGNAL("currentChanged(QWidget *)"), self.handleCurrentChanged)
+
def handleCurrentChanged(self):
try :
+ label=self.TWChoix.tabText(self.TWChoix.currentIndex())
+ if label==QString("Nouvelle Commande"):
self.LEFiltre.setFocus()
+ if label==QString("Nommer Concept"):
+ self.LENomConcept.setFocus()
+ if label==QString("Définition Formule"):
+ self.LENomFormule.setFocus()
+ if label==QString("Valeur Parametre"):
+ self.lineEditNom.setFocus()
+ if label==QString("Fichier Include"):
+ self.LENomFichier.setFocus()
+ if label==QString("Ajouter Mot-Clef"):
+ self.LBMCPermis.setCurrentItem(self.LBMCPermis.item(0))
except :
- pass
+ pass
def BuildLBNouvCommande(self):
else :
self.editor.mode_nouv_commande="groupe"
self.BuildLBNouvCommande()
+ self.LEFiltre.setFocus()
def DefCmd(self):
if self.LBNouvCommande.currentItem()== 0 : return
self.typeConcept.setText(type_sd)
self.LENomConcept.setText("")
self.LENomConcept.setText(nomConcept)
+ self.LENomConcept.setFocus()
def LENomConceptReturnPressed(self):
"""
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.actionRapport_de_Validation,SIGNAL("activated()"),self.jdcRapport)
self.connect(self.actionFichier_Source,SIGNAL("activated()"),self.jdcFichierSource)
def editPaste(self):
self.viewmanager.handleEditPaste()
+ def supprimer(self):
+ self.viewmanager.handleSupprimer()
+
def jdcFichierSource(self):
self.viewmanager.handleViewJdcFichierSource()
self.LBValeurs.clear()
listeValeurs=self.node.item.GetListeValeurs()
for valeur in listeValeurs:
- self.LBValeurs.addItem(str(valeur))
+ try :
+ val=self.politique.GetValeurTexte(valeur)
+ except :
+ val=valeur
+ self.LBValeurs.addItem(val)
if listeValeurs != None and listeValeurs != [] :
self.LBValeurs.setCurrentRow(len(listeValeurs) - 1)
if len(lChoix) == 1 :
self.listBoxVal.setCurrentRow(0)
self.listBoxVal.item(0).setSelected(1)
+ self.bOk.setFocus()
def ClicASSD(self):
if self.listBoxASSD.currentItem()== None : return
elif type(valeur) == types.StringType:
listeValeurs=valeur.split(',')
else:
- listeValeurs.append(valeur)
+ listeValeurs.append(valeurBrute)
return listeValeurs,1
if cle_doc == None :
QMessageBox.information( self.editor, "Documentation Vide", \
"Aucune documentation Aster n'est associée à ce noeud")
- return
+ return
#cle_doc = string.replace(cle_doc,'.','')
#cle_doc = string.replace(cle_doc,'-','')
#print dir(self)
texte="impossible de trouver la commande " + commande
QMessageBox.information( self.editor, "Lecteur PDF", texte)
return
- nom_fichier = cle_doc+".pdf"
+ nom_fichier = cle_doc
+ import os
fichier = os.path.abspath(os.path.join(self.editor.CONFIGURATION.path_doc,
nom_fichier))
try :
editor=self.dict_editors[index]
editor.handleEditPaste()
+ def handleSupprimer(self):
+ index=self.myQtab.currentIndex()
+ editor=self.dict_editors[index]
+ editor.handleSupprimer()
+
def newEditor(self,include=0):
maPage=self.getEditor()
<addaction name="actionCouper" />
<addaction name="actionCopier" />
<addaction name="actionColler" />
+ <addaction name="actionSupprimer" />
</widget>
<widget class="QMenu" name="menuJdC" >
<property name="title" >
<string>Version</string>
</property>
</action>
+ <action name="actionSupprimer" >
+ <property name="text" >
+ <string>Supprimer</string>
+ </property>
+ </action>
</widget>
<resources/>
<connections/>
def __init__(self):
PythonGenerator.__init__(self)
- self.liste=[]
+ self.listeMA=[]
+ self.listeNO=[]
def gener(self,obj,format='brut'):
self.liste=[]
self.text=PythonGenerator.gener(self,obj,'brut')
- return self.liste
+ return self.listeMA,self.listeNO
def generMCSIMP(self,obj) :
- if 'grma' in repr(obj.definition.type) or 'grno' in repr(obj.definition.type) :
- self.liste.append(obj.valeur)
+ if 'grma' in repr(obj.definition.type) :
+ self.listeMA.append(obj.valeur)
+ if 'grno' in repr(obj.definition.type) :
+ self.listeNO.append(obj.valeur)
s=PythonGenerator.generMCSIMP(self,obj)
return s