From: pascale.noyret Date: Mon, 2 Mar 2015 13:35:24 +0000 (+0100) Subject: Pour Adao X-Git-Tag: AdaoV0^0 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=e42af802800bdbd667895d8f81f06576d8490e49;p=tools%2Feficas.git Pour Adao --- diff --git a/Adao/qtDico.py b/Adao/qtDico.py index f388b743..8b79878c 100755 --- a/Adao/qtDico.py +++ b/Adao/qtDico.py @@ -30,6 +30,6 @@ __import__(name) from InterfaceQT4 import eficas_go -dico=eficas_go.lance_eficas_param(code=prefs.code,fichier="/local/noyret/Eficas_ASTER/adao.comm",version='V0',macro="ASSIMILATION_STUDY") +dico=eficas_go.lance_eficas_param(code=prefs.code,fichier="/local00/home/A96028/GitEficasTravail/eficas/Adao/kk.comm",version='V1',macro="ASSIMILATION_STUDY") print dico diff --git a/Editeur/icons/CatalogueFormulaire.png b/Editeur/icons/CatalogueFormulaire.png new file mode 100644 index 00000000..12cc06db Binary files /dev/null and b/Editeur/icons/CatalogueFormulaire.png differ diff --git a/Editeur/icons/MoinsBleu.png b/Editeur/icons/MoinsBleu.png new file mode 100644 index 00000000..84a93f6c Binary files /dev/null and b/Editeur/icons/MoinsBleu.png differ diff --git a/Editeur/icons/PlusBleu.png b/Editeur/icons/PlusBleu.png new file mode 100644 index 00000000..e64eea90 Binary files /dev/null and b/Editeur/icons/PlusBleu.png differ diff --git a/Editeur/icons/arrow_down.png b/Editeur/icons/arrow_down.png new file mode 100644 index 00000000..3b092725 Binary files /dev/null and b/Editeur/icons/arrow_down.png differ diff --git a/Editeur/icons/arrow_up.png b/Editeur/icons/arrow_up.png new file mode 100644 index 00000000..cd269094 Binary files /dev/null and b/Editeur/icons/arrow_up.png differ diff --git a/Editeur/icons/copy.png b/Editeur/icons/copy.png new file mode 100644 index 00000000..46702c3c Binary files /dev/null and b/Editeur/icons/copy.png differ diff --git a/Editeur/icons/cut.png b/Editeur/icons/cut.png new file mode 100644 index 00000000..0dae837f Binary files /dev/null and b/Editeur/icons/cut.png differ diff --git a/Editeur/icons/deleteRond.png b/Editeur/icons/deleteRond.png new file mode 100644 index 00000000..47fbb8f8 Binary files /dev/null and b/Editeur/icons/deleteRond.png differ diff --git a/Editeur/icons/deleteRondVide.png b/Editeur/icons/deleteRondVide.png new file mode 100644 index 00000000..4408404b Binary files /dev/null and b/Editeur/icons/deleteRondVide.png differ diff --git a/Editeur/icons/export_MAP.png b/Editeur/icons/export_MAP.png new file mode 100755 index 00000000..13b2d8d4 Binary files /dev/null and b/Editeur/icons/export_MAP.png differ diff --git a/Editeur/icons/eye.png b/Editeur/icons/eye.png new file mode 100644 index 00000000..83dd676e Binary files /dev/null and b/Editeur/icons/eye.png differ diff --git a/Editeur/icons/fichier.png b/Editeur/icons/fichier.png new file mode 100644 index 00000000..03305469 Binary files /dev/null and b/Editeur/icons/fichier.png differ diff --git a/Editeur/icons/flecheBasBleue.png b/Editeur/icons/flecheBasBleue.png new file mode 100644 index 00000000..d97a4a37 Binary files /dev/null and b/Editeur/icons/flecheBasBleue.png differ diff --git a/Editeur/icons/flecheHautBleue.png b/Editeur/icons/flecheHautBleue.png new file mode 100644 index 00000000..ab6f6574 Binary files /dev/null and b/Editeur/icons/flecheHautBleue.png differ diff --git a/Editeur/icons/flecheSalome.png b/Editeur/icons/flecheSalome.png new file mode 100644 index 00000000..c0562e33 Binary files /dev/null and b/Editeur/icons/flecheSalome.png differ diff --git a/Editeur/icons/graphics_view_zoom.png b/Editeur/icons/graphics_view_zoom.png new file mode 100644 index 00000000..386c966d Binary files /dev/null and b/Editeur/icons/graphics_view_zoom.png differ diff --git a/Editeur/icons/icon_salome.png b/Editeur/icons/icon_salome.png new file mode 100644 index 00000000..726776e5 Binary files /dev/null and b/Editeur/icons/icon_salome.png differ diff --git a/Editeur/icons/loopOff.png b/Editeur/icons/loopOff.png new file mode 100644 index 00000000..a318e1f5 Binary files /dev/null and b/Editeur/icons/loopOff.png differ diff --git a/Editeur/icons/new_file.png b/Editeur/icons/new_file.png new file mode 100644 index 00000000..ac540645 Binary files /dev/null and b/Editeur/icons/new_file.png differ diff --git a/Editeur/icons/options.png b/Editeur/icons/options.png new file mode 100644 index 00000000..d78df8d3 Binary files /dev/null and b/Editeur/icons/options.png differ diff --git a/Editeur/icons/ouvrir.png b/Editeur/icons/ouvrir.png new file mode 100644 index 00000000..fae23155 Binary files /dev/null and b/Editeur/icons/ouvrir.png differ diff --git a/Editeur/icons/parametres.png b/Editeur/icons/parametres.png new file mode 100644 index 00000000..213820b0 Binary files /dev/null and b/Editeur/icons/parametres.png differ diff --git a/Editeur/icons/paste.png b/Editeur/icons/paste.png new file mode 100644 index 00000000..f749568a Binary files /dev/null and b/Editeur/icons/paste.png differ diff --git a/Editeur/icons/point-interrogation.png b/Editeur/icons/point-interrogation.png new file mode 100644 index 00000000..957c5ac4 Binary files /dev/null and b/Editeur/icons/point-interrogation.png differ diff --git a/Editeur/icons/roue.png b/Editeur/icons/roue.png new file mode 100644 index 00000000..bcabda6d Binary files /dev/null and b/Editeur/icons/roue.png differ diff --git a/Editeur/icons/salomeLoupe.png b/Editeur/icons/salomeLoupe.png new file mode 100644 index 00000000..87022569 Binary files /dev/null and b/Editeur/icons/salomeLoupe.png differ diff --git a/Editeur/icons/save.png b/Editeur/icons/save.png new file mode 100644 index 00000000..f84dca6d Binary files /dev/null and b/Editeur/icons/save.png differ diff --git a/Editeur/icons/txt.png b/Editeur/icons/txt.png new file mode 100644 index 00000000..bdb26756 Binary files /dev/null and b/Editeur/icons/txt.png differ diff --git a/Editeur/icons/verre-loupe-icone-6087-64.png b/Editeur/icons/verre-loupe-icone-6087-64.png new file mode 100644 index 00000000..82a797fc Binary files /dev/null and b/Editeur/icons/verre-loupe-icone-6087-64.png differ diff --git a/Editeur/icons/visuFichier.png b/Editeur/icons/visuFichier.png new file mode 100644 index 00000000..d66e7a36 Binary files /dev/null and b/Editeur/icons/visuFichier.png differ diff --git a/InterfaceQT4/browser.py b/InterfaceQT4/browser.py index 01d0fd3b..c24ebfd3 100644 --- a/InterfaceQT4/browser.py +++ b/InterfaceQT4/browser.py @@ -44,7 +44,6 @@ class JDCTree( QTreeWidget ): self.item = jdc_item self.tree = self self.editor = QWParent - self.editor.fenetreAffichee=None self.appliEficas = self.editor.appliEficas self.childrenComplete=[] self.childrenIssusDesBlocs=[] @@ -53,7 +52,7 @@ class JDCTree( QTreeWidget ): self.itemCourrant=None self.connect(self, SIGNAL("itemClicked ( QTreeWidgetItem * ,int) "), self.handleOnItem) - self.connect(self, SIGNAL("itemDoubleClicked ( QTreeWidgetItem * ,int) "), self.handleDoubleClickedOnItem) + #self.connect(self, SIGNAL("itemDoubleClicked ( QTreeWidgetItem * ,int) "), self.handleDoubleClickedOnItem) #PNPNPN verifier dans quel cas on se trouve : affiche l arbre ou la commande self.node_selected=self.racine @@ -90,6 +89,7 @@ class JDCTree( QTreeWidget ): def handleOnItem(self,item,int): if (len(self.selectedIndexes())!=2): return self.itemCourrant=item + self.handleDoubleClickedOnItem(item,int) #try : if 1: fr = item.item.get_fr() @@ -99,6 +99,7 @@ class JDCTree( QTreeWidget ): pass def handleDoubleClickedOnItem(self,item,int): + print "je passe dans handleDoubleClickedOnItem" #if item.fenetre == None : # while not (hasattr (item,'getPanel2')) : item=item.treeParent # item.affichePanneau() @@ -213,10 +214,13 @@ class JDCNode(QTreeWidgetItem): ind=ind+1 #print "*********** fin build_children ",self.item, self.item.GetLabelText() + def chercheNoeudCorrespondant(self,objSimp): + sublist = self.item._GetSubList() + for node in self.childrenComplete: + if node.item.object==objSimp : return node + return None def affichePanneau(self) : - #print "dans affichePanneau", self.item.GetLabelText() - #if self.item.GetLabelText()[0]=='VCUT : ' : print y if self.item.isactif(): panel=self.getPanel2() else: @@ -404,6 +408,7 @@ class JDCNode(QTreeWidgetItem): toselect.affichePanneau() else : if self.treeParent.fenetre== None : return + print "J appelle reaffiche de browser apres delete" self.treeParent.fenetre.reaffiche(toselect) def deleteMultiple(self,liste=()): @@ -444,6 +449,7 @@ class JDCNode(QTreeWidgetItem): # #------------------------------------------------------------------ def onValid(self): + #print "onValid pour ", self.item.nom if hasattr(self,'fenetre') and self.fenetre: self.fenetre.setValide() if self.item.nom == "VARIABLE" and self.item.isvalid(): @@ -457,14 +463,19 @@ class JDCNode(QTreeWidgetItem): self.update_node_texte() def onAdd(self,object): - #print "___________________________ onAdd", object + #print "onAdd pour ", self.item.nom self.editor.init_modif() self.update_nodes() + print "dans onAdd" ,self.item + # PN -- non necessaire si item=jdc + if hasattr(self.item,'jdc'): self.item.jdc.aReafficher=True def onSupp(self,object): - #print "___________________________ onSupp", self.item, self.item.GetLabelText() + #print "onSupp pour ", self.item.nom self.editor.init_modif() self.update_nodes() + # PN -- non necessaire si item=jdc + if hasattr(self.item,'jdc'): self.item.jdc.aReafficher=True def detruit_les_noeuds_issus_de_blocs(self,bloc): from InterfaceQT4 import compobloc diff --git a/InterfaceQT4/compomclist.py b/InterfaceQT4/compomclist.py index cc8c8a8a..55666f9b 100644 --- a/InterfaceQT4/compomclist.py +++ b/InterfaceQT4/compomclist.py @@ -54,7 +54,7 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): monObjet=self.item.object monNom=self.item.nom maCommande=commande - print parentQt + #print parentQt if hasattr(parentQt,'niveau'): self.niveau=parentQt.niveau+1 else : self.niveau=1 if not (monObjet.isMCList()) : diff --git a/InterfaceQT4/composimp.py b/InterfaceQT4/composimp.py index d72a2498..e2230482 100644 --- a/InterfaceQT4/composimp.py +++ b/InterfaceQT4/composimp.py @@ -125,9 +125,11 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): # Gerer les matrices --> Actuellement pas dans ce type de panneau #print "____________________________", self.item.wait_tuple() + # Gestion d'une seule valeur (eventuellement un tuple ou un complexe) if maDefinition.max == 1 : + + # Listes de valeur discretes if maDefinition.into != [] and maDefinition.into != None: - # a revoir if len(maDefinition.into) < 4 : from monWidgetRadioButton import MonWidgetRadioButton widget=MonWidgetRadioButton(self,maDefinition,monNom,monObjet,parentQt,maCommande) @@ -141,13 +143,19 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): elif self.item.wait_bool() : from monWidgetSimpBool import MonWidgetSimpBool widget=MonWidgetSimpBool(self,maDefinition,monNom,monObjet,parentQt,maCommande) - elif self.item.wait_fichier(): from monWidgetSimpFichier import MonWidgetSimpFichier widget=MonWidgetSimpFichier(self,maDefinition,monNom,monObjet,parentQt,maCommande) + # PNPNPN - a faire + elif self.item.wait_date(): + from monWidgetDate import MonWidgetDate + widget=MonWidgetDate(self,maDefinition,monNom,monObjet,parentQt,maCommande) + elif self.item.wait_heure(): + from monWidgetHeure import MonWidgetHeure + widget=MonWidgetHeure(self,maDefinition,monNom,monObjet,parentQt,maCommande) + elif self.item.wait_tuple() : - # Pas fait if self.item.object.definition.type[0].ntuple == 2: from monWidgetSimpTuple2 import MonWidgetSimpTuple2 widget=MonWidgetSimpTuple2(self,maDefinition,monNom,monObjet,parentQt,maCommande) @@ -155,10 +163,10 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): from monWidgetSimpTuple3 import MonWidgetSimpTuple3 widget=MonWidgetSimpTuple3(self,maDefinition,monNom,monObjet,parentQt,maCommande) else : - print "Pas fait" + print "Pas de Tuple de longueur > 3" + print "Prevenir la maintenance " elif self.item.wait_complex(): - # Pas fait from monWidgetSimpComplexe import MonWidgetSimpComplexe widget=MonWidgetSimpComplexe(self,maDefinition,monNom,monObjet,parentQt,maCommande) @@ -173,21 +181,25 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): widget=MonWidgetSimpSalome(self,maDefinition,monNom,monObjet,parentQt,maCommande) elif self.item.wait_TXM(): - # Pas fait from monWidgetSimpTxt import MonWidgetSimpTxt widget=MonWidgetSimpTxt(self,maDefinition,monNom,monObjet,parentQt,maCommande) else : from monWidgetSimpBase import MonWidgetSimpBase widget=MonWidgetSimpBase(self,maDefinition,monNom,monObjet,parentQt,maCommande) + # Gestion des listes else : if maDefinition.into != [] and maDefinition.into != None: - #Pas encore traité - from monWidgetPlusieursInto import MonWidgetPlusieursInto - widget=MonWidgetPlusieursInto(self,maDefinition,monNom,monObjet,parentQt,maCommande) + if self.item.is_list_SansOrdreNiDoublon(): + from monWidgetPlusieursInto import MonWidgetPlusieursInto + widget=MonWidgetPlusieursInto(self,maDefinition,monNom,monObjet,parentQt,maCommande) + else : + from monWidgetPlusieursIntoOrdonne import MonWidgetPlusieursIntoOrdonne + widget=MonWidgetPlusieursIntoOrdonne(self,maDefinition,monNom,monObjet,parentQt,maCommande) else : from monWidgetPlusieursBase import MonWidgetPlusieursBase widget=MonWidgetPlusieursBase(self,maDefinition,monNom,monObjet,parentQt,maCommande) + self.widget=widget return widget @@ -239,6 +251,9 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): is_a_list= self.definition.validators.is_list() * is_a_list return is_a_list + def is_list_SansOrdreNiDoublon(self): + if self.definition.homo=="SansOrdreNiDoublon": return 1 + return 0 def has_into(self): """ @@ -520,6 +535,24 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): return 1 else: return 0 + + def wait_date(self): + """ Méthode booléenne qui retourne 1 si l'objet pointé par self + attend un réel, 0 sinon """ + if 'DateHHMMAAAA' in self.object.definition.type: + return 1 + else: + return 0 + + def wait_heure(self): + """ Méthode booléenne qui retourne 1 si l'objet pointé par self + attend un réel, 0 sinon """ + if 'HeureHHMMSS' in self.object.definition.type: + return 1 + else: + return 0 + + def wait_tuple(self): """ Méthode booléenne qui retourne 1 si l'objet pointé par self diff --git a/InterfaceQT4/editor.py b/InterfaceQT4/editor.py index 0835f14b..92f39b25 100644 --- a/InterfaceQT4/editor.py +++ b/InterfaceQT4/editor.py @@ -180,6 +180,7 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget): if jdc_item: self.tree = browser.JDCTree( jdc_item, self ) + self.jdc.aReafficher=False self.appliEficas.construitMenu() #--------------------------------# @@ -194,6 +195,7 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget): texte="" if self.code == "CARMELCND" : texte=self._newJDCCND() if self.code == "ZCRACKS" : texte=self._newZCRACKS() + if self.code == "TELEMAC" : texte=self._newTELEMAC() # texte=self.newTexteCND jdc=self.readercata.cata[0].JdC( procedure =texte, @@ -1162,6 +1164,14 @@ class JDCEditor(Ui_baseWidget,QtGui.QWidget): return ligne + #---------------------------# + def _newTELEMAC(self): + #---------------------------# + texte="INITIALIZATION();TIDE_PARAMETERS();INITIAL_STATE();NUMERICAL_PARAMETERS();PHYSICAL_PARAMETERS()" + return texte + + #---------------------------# + #---------------------------# def _newZCRACKS(self): #---------------------------# diff --git a/InterfaceQT4/feuille.py b/InterfaceQT4/feuille.py index 126b2f9a..8f90b305 100644 --- a/InterfaceQT4/feuille.py +++ b/InterfaceQT4/feuille.py @@ -38,6 +38,7 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel): def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande): #print "Feuille", monSimpDef,nom,objSimp + #print self QWidget.__init__(self,None) self.node=node self.node.fenetre=self @@ -171,3 +172,17 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel): # if self.monSimpDef.get_sug() != None and self.monSimpDef.get_sug() != "": info+="Valeur suggérée : "self.monSimpDef.get_sug() pass #self.editor.affiche_infos(info) + + def reaffiche(self): + print "dans reaffiche de feuille", self.nom + if self.editor.jdc.aReafficher==True : + print " j appelle le reaffiche de parentQt" + self.parentQt.reaffiche() + #PN PN PN pas satisfaisant + #nodeAVoir=self.parentQt.node.chercheNoeudCorrespondant(self.objSimp) + #print nodeAVoir.fenetre + #print "nodeAVoir.fenetre.isVisible()", nodeAVoir.fenetre.isVisible() + #if nodeAVoir.fenetre.isVisible() : return + #self.editor.fenetreCentraleAffichee.rendVisibleNoeud(nodeAVoir) + #nodeAVoir.fenetre.setFocus() + diff --git a/InterfaceQT4/gereIcones.py b/InterfaceQT4/gereIcones.py index 05378eb3..4d3285e1 100644 --- a/InterfaceQT4/gereIcones.py +++ b/InterfaceQT4/gereIcones.py @@ -102,6 +102,7 @@ class FacultatifOuOptionnel: self.RBValide.setIcon(icon) def rendVisible(self): + print "je passe par rendVisible de FacultatifOuOptionnel" self.editor.fenetreCentraleAffichee.scrollAreaCommandes.ensureWidgetVisible(self) self.setFocus() diff --git a/InterfaceQT4/gereListe.py b/InterfaceQT4/gereListe.py index 1645b1d0..3c135293 100644 --- a/InterfaceQT4/gereListe.py +++ b/InterfaceQT4/gereListe.py @@ -50,7 +50,6 @@ class GereListe: # ------------- # def __init__(self): - print "GereListe" self.connecterSignaux() def connecterSignaux(self): diff --git a/InterfaceQT4/groupe.py b/InterfaceQT4/groupe.py index 13de52b5..94e953dc 100644 --- a/InterfaceQT4/groupe.py +++ b/InterfaceQT4/groupe.py @@ -128,7 +128,7 @@ class Groupe(QtGui.QWidget,FacultatifOuOptionnel): def reaffiche(self,nodeAVoir=None): - #print "dans reaffiche ________________________", nodeAVoir + print "dans reaffiche de groupe.py", nodeAVoir self.parentQt.reaffiche(nodeAVoir) def recalculeListeMC(self,listeMC): @@ -167,15 +167,16 @@ class Groupe(QtGui.QWidget,FacultatifOuOptionnel): if firstNode==None : firstNode=nouveau if nouveau == None or nouveau == 0 : self.editor.affiche_infos(str('insertion impossible a cet endroit pour '+nom),Qt.red) + print firstNode + print firstNode.fenetre self.reaffiche(firstNode) - def Plie(self): self.node.setPlie() - self.reaffiche() + self.reaffiche(self.node) def Deplie(self): self.node.setDeplie() - self.reaffiche() + self.reaffiche(self.node) diff --git a/InterfaceQT4/monWidget4a6RadioButton.py b/InterfaceQT4/monWidget4a6RadioButton.py index db3145ed..20b93fef 100644 --- a/InterfaceQT4/monWidget4a6RadioButton.py +++ b/InterfaceQT4/monWidget4a6RadioButton.py @@ -32,7 +32,7 @@ from desWidget4a6RadioButton import Ui_Widget4a6RadioButton class MonWidget4a6RadioButton (Ui_Widget4a6RadioButton,MonWidgetRadioButtonCommun): def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande): - #print "dans le init de MonWidget4a6RadioButton" + #print "dans le init de MonWidget4a6RadioButton",self MonWidgetRadioButtonCommun.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande) def setMaxI(self): diff --git a/InterfaceQT4/monWidgetCB.py b/InterfaceQT4/monWidgetCB.py index 02d87dd4..3fb8f86e 100644 --- a/InterfaceQT4/monWidgetCB.py +++ b/InterfaceQT4/monWidgetCB.py @@ -66,4 +66,4 @@ class MonWidgetCB (Ui_WidgetCB,Feuille): def ChoixSaisi(self): valeur=str(self.CBChoix.currentText().toLatin1()) SaisieValeur.LEValeurPressed(self,valeur) - self.parentQt.reaffiche() + self.reaffiche() diff --git a/InterfaceQT4/monWidgetCommande.py b/InterfaceQT4/monWidgetCommande.py index 6b8bd691..a2555170 100644 --- a/InterfaceQT4/monWidgetCommande.py +++ b/InterfaceQT4/monWidgetCommande.py @@ -39,7 +39,9 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe): #print "MonWidgetCommande ", self self.listeAffichageWidget=[] self.inhibe=0 + self.ensure=0 Groupe.__init__(self,node,editor,None,etape.definition,etape,1,self) + self.labelDoc.setText(QString(etape.definition.fr)) if (etape.get_type_produit()==None): self.LENom.close() elif (hasattr (etape, 'sdnom')) and etape.sdnom != "sansnom" : self.LENom.setText(etape.sdnom) else : self.LENom.setText("") @@ -50,7 +52,6 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe): self.commandesLayout.addStretch() self.commandesLayout.focusInEvent=self.focusInEvent self.scrollAreaCommandes.focusInEvent=self.focusInEvent - #self.RBValide.focusInEvent=FacultatifOuOptionnel.focusInEvent if self.editor.code in ['MAP','Adao','CARMELCND'] : self.bCatalogue.close() else : self.connect(self.bCatalogue,SIGNAL("clicked()"), self.afficheCatalogue) self.connect(self.LENom,SIGNAL("returnPressed()"),self.nomChange) @@ -70,12 +71,14 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe): self.monOptionnel=MonWidgetOptionnel(self) self.editor.widgetOptionnel=self.monOptionnel self.editor.splitter.addWidget(self.monOptionnel) + print "dans init ", self.monOptionnel self.afficheOptionnel() def focusNextPrevChild(self, next): # on s assure que ce n est pas un chgt de fenetre - if self.editor.fenetreAffichee != self : return True + print "je passe dans focusNextPrevChild" + if self.editor.fenetreCentraleAffichee != self : return True try : i= self.listeAffichageWidget.index(self.focusWidget()) except : @@ -121,21 +124,47 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe): def afficheOptionnel(self): # N a pas de parentQt. doit donc etre redefini liste=self.ajouteMCOptionnelDesBlocs() + print "dans afficheOptionnel", self.monOptionnel self.monOptionnel.parentMC=self self.monOptionnel.affiche(liste) def focusInEvent(self,event): - #print "je mets a jour dans focusInEvent de monWidget Commande " + print "je mets a jour dans focusInEvent de monWidget Commande " if self.editor.code == "CARMELCND" : return #Pas de MC Optionnels pour Carmel self.afficheOptionnel() def reaffiche(self,nodeAVoir=None): + self.avantH=self.editor.fenetreCentraleAffichee.scrollAreaCommandes.horizontalScrollBar().sliderPosition() + self.avantV=self.editor.fenetreCentraleAffichee.scrollAreaCommandes.verticalScrollBar().sliderPosition() self.node.affichePanneau() + print "dans reaffiche de monWidgetCommande", self.avantH, self.avantV + QTimer.singleShot(1, self.recentre) if nodeAVoir != None: - f=nodeAVoir.fenetre - qApp.processEvents() - self.editor.fenetreCentraleAffichee.scrollAreaCommandes.ensureWidgetVisible(f) + self.f=nodeAVoir.fenetre + if self.f==None : + newNode=nodeAVoir.treeParent.chercheNoeudCorrespondant(nodeAVoir.item.object) + self.f = newNode.fenetre + print "dans reaffiche",self.f, nodeAVoir.item.nom + if self.f != None and self.f.isVisible() : return + if self.f != None : QTimer.singleShot(1, self.rendVisible) + + + def recentre(self): + qApp.processEvents() + s=self.editor.fenetreCentraleAffichee.scrollAreaCommandes + s.horizontalScrollBar().setSliderPosition(self.avantH) + s.verticalScrollBar().setSliderPosition(self.avantV) + + def rendVisibleNoeud(self,node): + self.f=node.fenetre + print "dans rendVisibleNoeud",self.f, node.item.nom + QTimer.singleShot(1, self.rendVisible) + + def rendVisible(self): + qApp.processEvents() + self.f.setFocus() + self.editor.fenetreCentraleAffichee.scrollAreaCommandes.ensureWidgetVisible(self.f) def afficheCatalogue(self): if self.editor.code != "CARMELCND" : self.monOptionnel.hide() diff --git a/InterfaceQT4/monWidgetOptionnel.py b/InterfaceQT4/monWidgetOptionnel.py index eaa6fce0..5ca0b75e 100644 --- a/InterfaceQT4/monWidgetOptionnel.py +++ b/InterfaceQT4/monWidgetOptionnel.py @@ -34,14 +34,14 @@ class monButtonCustom(QCheckBox): self.monOptionnel=monOptionnel def mouseDoubleClickEvent(self, event): - #print "dans mouseDoubleClickEvent" + print "dans mouseDoubleClickEvent" if self not in self.monOptionnel.dicoCb.keys() : return listeCheckedMC="+"+self.monOptionnel.dicoCb[self] self.monOptionnel.parentMC.ajoutMC(listeCheckedMC) self.setChecked(False) def mousePressEvent(self, event): - #print "dans mousePressEvent" + print "dans mousePressEvent" self.mousePressed=True if not( event.button() != Qt.RightButton) : return QCheckBox.mousePressEvent(self, event) @@ -51,7 +51,10 @@ class MonWidgetOptionnel (QWidget,Ui_WidgetOptionnel): """ """ def __init__(self,parentQt): - #print "dans init de monWidgetOptionnel ", parentQt, parentQt.node.item.nom + print "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" + print "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" + print "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk" + print "dans init de monWidgetOptionnel ", parentQt, parentQt.node.item.nom QWidget.__init__(self,None) self.setupUi(self) self.dicoCb={} @@ -66,6 +69,7 @@ class MonWidgetOptionnel (QWidget,Ui_WidgetOptionnel): def affiche(self,liste): + print "dans Optionnel ____ affiche", liste self.show() labeltext,fonte,couleur = self.parentMC.node.item.GetLabelText() l=labeltext @@ -80,12 +84,14 @@ class MonWidgetOptionnel (QWidget,Ui_WidgetOptionnel): self.GeneaLabel.setText(tr("Options pour \n") +texte) for cb in self.dicoCb.keys(): + #print 'je detruit', self.dicoCb[cb], cb cb.close() + #print self.commandesOptionnellesLayout.children() self.dicoCb={} - #print liste liste.reverse() for mot in liste : cb = monButtonCustom(QString(mot),self) + #print "j ajoute ", mot, cb self.dicoCb[cb]=mot self.commandesOptionnellesLayout.insertWidget(0,cb) @@ -104,5 +110,6 @@ class MonWidgetOptionnel (QWidget,Ui_WidgetOptionnel): for cb in self.dicoCb.keys(): if cb.isChecked() : maListe+="+"+str(cb.text()) if maListe=="":return + print "dans Optionnel __ ajout de ", maListe self.parentMC.ajoutMC(maListe) diff --git a/InterfaceQT4/monWidgetParam.py b/InterfaceQT4/monWidgetParam.py index da899ba1..9e0c8a12 100644 --- a/InterfaceQT4/monWidgetParam.py +++ b/InterfaceQT4/monWidgetParam.py @@ -53,9 +53,12 @@ class MonWidgetParam(Ui_desWidgetParam,QDialog): if val == "" or None : return if nom == "" or None : return print self.editor.tree - if len(self.editor.tree.selectedItems()) == 0 : itemAvant=self.editor.tree.racine - else : itemAvant=self.editor.tree.selectedItems()[0] - param=itemAvant.addParameters(True) + if len(self.editor.tree.selectedItems()) == 0 : + itemAvant=self.editor.tree.racine + param=itemAvant.addParameters(True) + else : + itemAvant=self.editor.tree.selectedItems()[0] + param=itemAvant.addParameters(False) param.item.set_nom(nom) param.item.set_valeur(val) param.update_node_texte() diff --git a/InterfaceQT4/monWidgetPlusieursBase.py b/InterfaceQT4/monWidgetPlusieursBase.py index 8f12ce0e..e1e6c6ec 100644 --- a/InterfaceQT4/monWidgetPlusieursBase.py +++ b/InterfaceQT4/monWidgetPlusieursBase.py @@ -146,6 +146,7 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe): self.listeValeursCourantes=self.listeValeursCourantes+listeRetour if len(self.listeValeursCourantes) > self.monSimpDef.min : self.node.item.set_valeur(self.listeValeursCourantes) + self.reaffiche() return None else : return(comm2+" "+comm) @@ -185,6 +186,7 @@ class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe): if len(self.listeValeursCourantes) < min : return self.node.item.set_valeur(self.listeValeursCourantes) self.setValide() + self.reaffiche() diff --git a/InterfaceQT4/monWidgetPlusieursInto.py b/InterfaceQT4/monWidgetPlusieursInto.py index 5002a4a2..08fd77f2 100644 --- a/InterfaceQT4/monWidgetPlusieursInto.py +++ b/InterfaceQT4/monWidgetPlusieursInto.py @@ -34,7 +34,7 @@ from gereListe import GereListe class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille): def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande): - #print "MonWidgetPlusieursInto", nom + print "MonWidgetPlusieursInto", nom, self self.index=1 Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande) self.listeValeursCourantes=self.node.item.GetListeValeurs() @@ -44,6 +44,12 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille): def setValeurs(self): self.listeValeursCourantes=self.node.item.GetListeValeurs() + #print "dans setValeurs" + #print self.node.item.definition.validators + #print self.monSimpDef.into + #if len(self.monSimpDef.into)*20 > 400 : self.setMinimumHeight(400) + #else : self.setMinimumHeight(len(self.monSimpDef.into)*30) + #self.adjustSize() if hasattr(self.node.item.definition.validators,'set_MCSimp'): obj=self.node.item.getObject() self.node.item.definition.validators.set_MCSimp(obj) @@ -53,9 +59,14 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille): if self.node.item.definition.validators.verif_item(item)==1: liste.append(item) self.listeAAfficher=self.node.item.get_liste_possible(liste) - print self.listeAAfficher + #print self.listeAAfficher + else: + self.listeAAfficher=self.node.item.get_liste_possible([]) else : self.listeAAfficher=self.monSimpDef.into + if len(self.listeAAfficher)*20 > 400 : self.setMinimumHeight(400) + else : self.setMinimumHeight(len(self.listeAAfficher)*30) + self.adjustSize() self.vScrollBar = self.scrollArea.verticalScrollBar() self.politique=PolitiquePlusieurs(self.node,self.editor) self.indexListe=1 @@ -72,6 +83,7 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille): def ajoutCB(self,index,valeur=None): + print "ajoutCB ", index nomCB="lineEditVal"+str(index) if hasattr(self,nomCB) : return @@ -109,10 +121,10 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille): return str(commentaire) def ajout1Valeur(self,valeur=None): - print "________________" - print self - print self.node - print self.node.item + #print "________________" + #print self + #print self.node + #print self.node.item if valeur == None : return liste,validite=SaisieValeur.TraiteLEValeur(self,str(valeur)) if validite == 0 : return @@ -131,9 +143,11 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille): - def changeValeur(self,etat): + def changeValeur(self): + self.listeValeursCourantesAvant=self.listeValeursCourantes self.listeValeursCourantes = [] - for i in range (1,len(self.monSimpDef.into)+1): + print "changeValeur ____________" , self.monSimpDef.into, len(self.monSimpDef.into) + for i in range (1,len(self.listeAAfficher)+1): nomLineEdit="lineEditVal"+str(i) courant=getattr(self,nomLineEdit) if not (courant.isChecked()):continue @@ -143,18 +157,17 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille): if (commentaire != None ): self.editor.affiche_infos(commentaire,Qt.red) courant.setText("") - if self.listeValeursCourantes == [] : - self.setValide() - return min,max = self.node.item.GetMinMax() - print (self.listeValeursCourantes),min + print 'kkkkkkkkkkkkkkkkk', (self.listeValeursCourantes),min,max if len(self.listeValeursCourantes) < min : - self.editor.affiche_infos(tr("Nombre minimal de valeurs : ") + str(min),Qt.red) + print "je passe dans le if 1" + self.editor.affiche_infos(tr("Nombre minimal de valeurs : ") + str(min),Qt.red) elif len(self.listeValeursCourantes) > max : - self.editor.affiche_infos(tr("Nombre maximal de valeurs : ") + str(max),Qt.red) + self.editor.affiche_infos(tr("Nombre maximal de valeurs : ") + str(max),Qt.red) + else : + self.editor.affiche_infos(tr("")) self.node.item.set_valeur(self.listeValeursCourantes) self.setValide() + self.reaffiche() - -# Avertissement quand on quitte le widget diff --git a/InterfaceQT4/monWidgetRadioButton.py b/InterfaceQT4/monWidgetRadioButton.py index 82a15583..9ce02e07 100644 --- a/InterfaceQT4/monWidgetRadioButton.py +++ b/InterfaceQT4/monWidgetRadioButton.py @@ -79,9 +79,9 @@ class MonWidgetRadioButtonCommun (Feuille): def boutonclic(self): for valeur in self.dict_bouton.keys(): if self.dict_bouton[valeur].isChecked(): - print "dans boutonclic is checked", valeur, type(valeur) + #print "dans boutonclic is checked", valeur, type(valeur) SaisieValeur.LEValeurPressed(self,valeur) - self.parentQt.reaffiche() + self.reaffiche() def keyPressEvent(self, event): @@ -102,10 +102,7 @@ class MonWidgetRadioButtonCommun (Feuille): aLeFocus=self.focusWidget() nom=aLeFocus.objectName()[12:] i=nom.toInt()[0]-1 - print i if i == 0 : i= len(self.monSimpDef.into) - print i - print "_______" nomBouton="radioButton_"+str(i) courant=getattr(self,nomBouton) courant.setFocus(True) @@ -113,6 +110,7 @@ class MonWidgetRadioButtonCommun (Feuille): class MonWidgetRadioButton (Ui_WidgetRadioButton,MonWidgetRadioButtonCommun): def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande): + #print "MonWidgetRadioButton ", self MonWidgetRadioButtonCommun.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande) def setMaxI(self): diff --git a/InterfaceQT4/monWidgetSimpBool.py b/InterfaceQT4/monWidgetSimpBool.py index 0cbb381b..278b8e1a 100644 --- a/InterfaceQT4/monWidgetSimpBool.py +++ b/InterfaceQT4/monWidgetSimpBool.py @@ -50,7 +50,9 @@ class MonWidgetSimpBool (Ui_WidgetSimpBool,Feuille): def boutonTrueClic(self): SaisieValeur.LEValeurPressed(self,True) + self.reaffiche() def boutonFalseClic(self): SaisieValeur.LEValeurPressed(self,False) + self.reaffiche() diff --git a/InterfaceQT4/monWidgetSimpComplexe.py b/InterfaceQT4/monWidgetSimpComplexe.py index fe7c54b8..64ccda81 100644 --- a/InterfaceQT4/monWidgetSimpComplexe.py +++ b/InterfaceQT4/monWidgetSimpComplexe.py @@ -142,6 +142,7 @@ class MonWidgetSimpComplexe (Ui_WidgetSimpComplexe,Feuille): return valeur= self.getValeurComp() self.politique.RecordValeur(valeur) + self.reaffiche() self.parentQt.donneFocus() def getValeurRI(self): diff --git a/InterfaceQT4/monWidgetSimpTxt.py b/InterfaceQT4/monWidgetSimpTxt.py index b740289a..40231104 100644 --- a/InterfaceQT4/monWidgetSimpTxt.py +++ b/InterfaceQT4/monWidgetSimpTxt.py @@ -34,9 +34,5 @@ class MonWidgetSimpTxt (Ui_WidgetSimpTxt,MonWidgetSimpBase): def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande): MonWidgetSimpBase.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande) - # deja fait dans MonWidgetSimpBase - #self.maCommande.listeAffichageWidget.append(self.lineEditVal) - print self.lineEditVal - diff --git a/Noyau/N_SIMP.py b/Noyau/N_SIMP.py index 21ee6345..9858af0b 100644 --- a/Noyau/N_SIMP.py +++ b/Noyau/N_SIMP.py @@ -59,13 +59,13 @@ class SIMP(N_ENTITE.ENTITE): - defaut : valeur par défaut - min : nombre minimal de valeurs - max : nombre maximal de valeurs - - homo : ? + - homo : homogene (toutes les valeurs d une liste sont de meme type) - ang : doc - position : si global, le mot-clé peut-être lu n'importe où dans la commande - val_min : valeur minimale autorisée - val_max : valeur maximale autorisée - docu : ? - - sug : ? + - sug : suggere """ N_ENTITE.ENTITE.__init__(self, validators) # Initialisation des attributs diff --git a/Noyau/N_VALIDATOR.py b/Noyau/N_VALIDATOR.py index caa8e99f..741887a8 100644 --- a/Noyau/N_VALIDATOR.py +++ b/Noyau/N_VALIDATOR.py @@ -162,7 +162,7 @@ class TypeProtocol(PProtocol): return obj else: raise ValError( - ufmt(_tr((u"%s n'est pas un fichier valide")), repr(obj))) + ufmt(_(tr(u"%s n'est pas un fichier valide")), repr(obj))) elif type_permis == 'FichierNoAbs': import os if (len(typ) > 2 and typ[2] == "Sauvegarde") or isinstance(obj, type("")): diff --git a/Telemac/Telemac_Cata.py b/Telemac/Telemac_Cata.py index 9dcbe35a..1269626c 100644 --- a/Telemac/Telemac_Cata.py +++ b/Telemac/Telemac_Cata.py @@ -1,4 +1,5 @@ # coding: utf-8 +# PNPNPNPN from Accas import * class DateJJMMAAAA: diff --git a/UiQT4/desWidget4a6RadioButton.ui b/UiQT4/desWidget4a6RadioButton.ui index 6927e614..2fcf0fbb 100644 --- a/UiQT4/desWidget4a6RadioButton.ui +++ b/UiQT4/desWidget4a6RadioButton.ui @@ -7,7 +7,7 @@ 0 0 951 - 104 + 101 @@ -31,22 +31,13 @@ Form - + 0 - + 0 - - 2 - - - 0 - - - 2 - @@ -161,59 +152,78 @@ - - - 0 - - - - - - - RadioButton - - - - - - - RadioButton - - - - - - - RadioButton - - - - + + + + + + 0 + 0 + + + + RadioButton + + - - - - - - RadioButton - - - - - - - RadioButton - - - - - - - RadioButton - - - - + + + + + 0 + 0 + + + + RadioButton + + + + + + + RadioButton + + + + + + + + 0 + 0 + + + + RadioButton + + + + + + + + 0 + 0 + + + + RadioButton + + + + + + + + 0 + 0 + + + + RadioButton + + @@ -224,9 +234,12 @@ Qt::Horizontal + + QSizePolicy::Maximum + - 163 + 10 20 @@ -300,6 +313,7 @@ + RBPoubelle diff --git a/UiQT4/desWidgetCommande.ui b/UiQT4/desWidgetCommande.ui index acddf932..82f4039a 100644 --- a/UiQT4/desWidgetCommande.ui +++ b/UiQT4/desWidgetCommande.ui @@ -7,7 +7,7 @@ 0 0 1031 - 203 + 251 @@ -486,6 +486,13 @@ border-radius : 12px + + + + TextLabel + + + @@ -506,6 +513,9 @@ border-radius : 12px Qt::ScrollBarAsNeeded + + Qt::ScrollBarAsNeeded + true @@ -515,7 +525,7 @@ border-radius : 12px 0 0 1013 - 117 + 135 diff --git a/UiQT4/desWidgetParam.ui b/UiQT4/desWidgetParam.ui index 84c7f93f..ad5a8f85 100644 --- a/UiQT4/desWidgetParam.ui +++ b/UiQT4/desWidgetParam.ui @@ -34,7 +34,7 @@ 0 0 710 - 291 + 349 @@ -87,92 +87,18 @@ background-color: rgb(247,247,247); - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Tous les paramètres - - - true - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - 0 - - - - - Paramètre du type de - - - false - - - - - - - mon mot - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Qt::Vertical + + QSizePolicy::Fixed + 20 - 36 + 20 diff --git a/UiQT4/desWidgetPlusieursInto.ui b/UiQT4/desWidgetPlusieursInto.ui index dee582f9..d6db9bda 100644 --- a/UiQT4/desWidgetPlusieursInto.ui +++ b/UiQT4/desWidgetPlusieursInto.ui @@ -7,7 +7,7 @@ 0 0 826 - 235 + 83 @@ -19,7 +19,7 @@ 0 - 180 + 60 @@ -34,8 +34,14 @@ + + 0 + + + 0 + @@ -89,38 +95,6 @@ - - - - - 21 - 31 - - - - - 21 - 31 - - - - border : 0px - - - ... - - - - ../../../../../../home/A96028/Install_EficasV1/ArbreEficas/Editeur/icons/deleteRond.png../../../../../../home/A96028/Install_EficasV1/ArbreEficas/Editeur/icons/deleteRond.png - - - - 32 - 32 - - - - @@ -196,8 +170,8 @@ 0 0 - 381 - 235 + 435 + 83 @@ -207,19 +181,12 @@ - - - - Qt::Vertical - - - - 20 - 40 - - - - + + 0 + + + 0 + @@ -234,12 +201,61 @@ - 150 + 20 17 + + + + + + + 21 + 31 + + + + + 21 + 31 + + + + border : 0px + + + ... + + + + ../../../../../../home/A96028/Install_EficasV1/ArbreEficas/Editeur/icons/deleteRond.png../../../../../../home/A96028/Install_EficasV1/ArbreEficas/Editeur/icons/deleteRond.png + + + + 32 + 32 + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + horizontalSpacer diff --git a/UiQT4/desWidgetSimpFichier.ui b/UiQT4/desWidgetSimpFichier.ui index 588a7c50..5b88c9ff 100644 --- a/UiQT4/desWidgetSimpFichier.ui +++ b/UiQT4/desWidgetSimpFichier.ui @@ -160,7 +160,7 @@ border:0px; - 70 + 71 20 diff --git a/UiQT4/desWidgetSimpTxt.ui b/UiQT4/desWidgetSimpTxt.ui index dbcf0bec..49747ffb 100644 --- a/UiQT4/desWidgetSimpTxt.ui +++ b/UiQT4/desWidgetSimpTxt.ui @@ -166,7 +166,7 @@ border:0px; - 200 + 79 17 diff --git a/UiQT4/makefile b/UiQT4/makefile index 186c99bd..35c86347 100644 --- a/UiQT4/makefile +++ b/UiQT4/makefile @@ -10,7 +10,7 @@ PY_FILES = desSelectVal.py desViewTexte.py desChoixCommandes.py desWidgetComman desWidgetSimpBool.py desWidgetSimpComplexe.py desWidgetSimpTuple.py myMain.py \ desChoixCata.py desWidgetPlusieursInto.py desBaseWidget.py desWidgetOptionnel.py \ desWidgetSimpFichier.py desWidgetSimpTxt.py desRecherche.py desWidgetCommentaire.py\ - desWidgetTuple2.py desWidgetTuple3.py desWidgetParam.py + desWidgetTuple2.py desWidgetTuple3.py desWidgetParam.py desWidgetHeure.py desWidgetDate.py QM_FILES=eficas_en.qm diff --git a/generator/generator_dicoImbrique.py b/generator/generator_dicoImbrique.py new file mode 100644 index 00000000..010eb18d --- /dev/null +++ b/generator/generator_dicoImbrique.py @@ -0,0 +1,96 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library 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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +"""Ce module contient le plugin generateur de fichier au format Code_Carmel3D pour EFICAS. +""" + +import traceback +import types,string,re,os +from Extensions.i18n import tr +from generator_python import PythonGenerator + +def entryPoint(): + """ + Retourne les informations necessaires pour le chargeur de plugins + Ces informations sont retournees dans un dictionnaire + """ + return { + # Le nom du plugin + 'name' : 'dicoImbrique', + # La factory pour creer une instance du plugin + 'factory' : DicoImbriqueGenerator, + } + + +class DicoImbriqueGenerator(PythonGenerator): + """ + Ce generateur parcourt un objet de type JDC et produit + un texte au format eficas et + un texte au format dictionnaire + + """ + # Les extensions de fichier permis? + extensions=('.comm',) + +#---------------------------------------------------------------------------------------- + def gener(self,obj,format='brut',config=None): + + self.initDico() + + # Cette instruction genere le contenu du fichier de commandes (persistance) + self.text=PythonGenerator.gener(self,obj,format) + return self.text + + +#---------------------------------------------------------------------------------------- +# initialisations +#---------------------------------------------------------------------------------------- + + def initDico(self) : + + self.Dico={} + + +#---------------------------------------------------------------------------------------- +# ecriture +#---------------------------------------------------------------------------------------- + + def writeDefault(self,fn) : + print "je passe par writeDefault" + fileDico = fn[:fn.rfind(".")] + '.py' + f = open( str(fileDico), 'wb') + f.write( str(self.Dico) ) + f.close() + +#---------------------------------------------------------------------------------------- +# analyse de chaque noeud de l'arbre +#---------------------------------------------------------------------------------------- + + def generMCSIMP(self,obj) : + """recuperation de l objet MCSIMP""" + s=PythonGenerator.generMCSIMP(self,obj) + liste=obj.get_genealogie() + dicoCourant=self.Dico + for i in liste [0:-1]: + if not(dicoCourant.has_key(i)) : dicoCourant[i]={} + dicoCourant=dicoCourant[i] + dicoCourant[liste[-1]]=obj.valeur + return s + +