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
self.item = jdc_item
self.tree = self
self.editor = QWParent
- self.editor.fenetreAffichee=None
self.appliEficas = self.editor.appliEficas
self.childrenComplete=[]
self.childrenIssusDesBlocs=[]
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
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()
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()
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:
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=()):
# #------------------------------------------------------------------
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():
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
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()) :
# 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)
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)
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)
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
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):
"""
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
if jdc_item:
self.tree = browser.JDCTree( jdc_item, self )
+ self.jdc.aReafficher=False
self.appliEficas.construitMenu()
#--------------------------------#
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,
return ligne
+ #---------------------------#
+ def _newTELEMAC(self):
+ #---------------------------#
+ texte="INITIALIZATION();TIDE_PARAMETERS();INITIAL_STATE();NUMERICAL_PARAMETERS();PHYSICAL_PARAMETERS()"
+ return texte
+
+ #---------------------------#
+
#---------------------------#
def _newZCRACKS(self):
#---------------------------#
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
# 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()
+
self.RBValide.setIcon(icon)
def rendVisible(self):
+ print "je passe par rendVisible de FacultatifOuOptionnel"
self.editor.fenetreCentraleAffichee.scrollAreaCommandes.ensureWidgetVisible(self)
self.setFocus()
# ------------- #
def __init__(self):
- print "GereListe"
self.connecterSignaux()
def connecterSignaux(self):
def reaffiche(self,nodeAVoir=None):
- #print "dans reaffiche ________________________", nodeAVoir
+ print "dans reaffiche de groupe.py", nodeAVoir
self.parentQt.reaffiche(nodeAVoir)
def recalculeListeMC(self,listeMC):
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)
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):
def ChoixSaisi(self):
valeur=str(self.CBChoix.currentText().toLatin1())
SaisieValeur.LEValeurPressed(self,valeur)
- self.parentQt.reaffiche()
+ self.reaffiche()
#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("")
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)
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 :
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()
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)
"""
"""
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={}
def affiche(self,liste):
+ print "dans Optionnel ____ affiche", liste
self.show()
labeltext,fonte,couleur = self.parentMC.node.item.GetLabelText()
l=labeltext
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)
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)
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()
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)
if len(self.listeValeursCourantes) < min : return
self.node.item.set_valeur(self.listeValeursCourantes)
self.setValide()
+ self.reaffiche()
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()
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)
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
def ajoutCB(self,index,valeur=None):
+ print "ajoutCB ", index
nomCB="lineEditVal"+str(index)
if hasattr(self,nomCB) :
return
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
- 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
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
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):
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)
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):
def boutonTrueClic(self):
SaisieValeur.LEValeurPressed(self,True)
+ self.reaffiche()
def boutonFalseClic(self):
SaisieValeur.LEValeurPressed(self,False)
+ self.reaffiche()
return
valeur= self.getValeurComp()
self.politique.RecordValeur(valeur)
+ self.reaffiche()
self.parentQt.donneFocus()
def getValeurRI(self):
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
-
- 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
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("")):
# coding: utf-8
+# PNPNPNPN
from Accas import *
class DateJJMMAAAA:
<x>0</x>
<y>0</y>
<width>951</width>
- <height>104</height>
+ <height>101</height>
</rect>
</property>
<property name="sizePolicy">
<property name="windowTitle">
<string>Form</string>
</property>
- <layout class="QHBoxLayout" name="horizontalLayout_5">
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
<property name="spacing">
<number>0</number>
</property>
- <property name="leftMargin">
+ <property name="margin">
<number>0</number>
</property>
- <property name="topMargin">
- <number>2</number>
- </property>
- <property name="rightMargin">
- <number>0</number>
- </property>
- <property name="bottomMargin">
- <number>2</number>
- </property>
<item>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
</layout>
</item>
<item>
- <layout class="QVBoxLayout" name="verticalLayout">
- <property name="spacing">
- <number>0</number>
- </property>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_3">
- <item>
- <widget class="QRadioButton" name="radioButton_1">
- <property name="text">
- <string>RadioButton</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QRadioButton" name="radioButton_2">
- <property name="text">
- <string>RadioButton</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QRadioButton" name="radioButton_3">
- <property name="text">
- <string>RadioButton</string>
- </property>
- </widget>
- </item>
- </layout>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0">
+ <widget class="QRadioButton" name="radioButton_1">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>RadioButton</string>
+ </property>
+ </widget>
</item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_4">
- <item>
- <widget class="QRadioButton" name="radioButton_4">
- <property name="text">
- <string>RadioButton</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QRadioButton" name="radioButton_5">
- <property name="text">
- <string>RadioButton</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QRadioButton" name="radioButton_6">
- <property name="text">
- <string>RadioButton</string>
- </property>
- </widget>
- </item>
- </layout>
+ <item row="0" column="1">
+ <widget class="QRadioButton" name="radioButton_2">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>RadioButton</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2">
+ <widget class="QRadioButton" name="radioButton_3">
+ <property name="text">
+ <string>RadioButton</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QRadioButton" name="radioButton_4">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>RadioButton</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QRadioButton" name="radioButton_5">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>RadioButton</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2">
+ <widget class="QRadioButton" name="radioButton_6">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>RadioButton</string>
+ </property>
+ </widget>
</item>
</layout>
</item>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Maximum</enum>
+ </property>
<property name="sizeHint" stdset="0">
<size>
- <width>163</width>
+ <width>10</width>
<height>20</height>
</size>
</property>
</layout>
</item>
</layout>
+ <zorder>RBPoubelle</zorder>
</widget>
<customwidgets>
<customwidget>
<x>0</x>
<y>0</y>
<width>1031</width>
- <height>203</height>
+ <height>251</height>
</rect>
</property>
<property name="sizePolicy">
</item>
</layout>
</item>
+ <item>
+ <widget class="QLabel" name="labelDoc">
+ <property name="text">
+ <string>TextLabel</string>
+ </property>
+ </widget>
+ </item>
<item>
<widget class="QScrollArea" name="scrollAreaCommandes">
<property name="minimumSize">
<property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAsNeeded</enum>
</property>
+ <property name="horizontalScrollBarPolicy">
+ <enum>Qt::ScrollBarAsNeeded</enum>
+ </property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<x>0</x>
<y>0</y>
<width>1013</width>
- <height>117</height>
+ <height>135</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<x>0</x>
<y>0</y>
<width>710</width>
- <height>291</height>
+ <height>349</height>
</rect>
</property>
<property name="sizePolicy">
</widget>
</widget>
</item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_3">
- <item>
- <spacer name="horizontalSpacer_3">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QRadioButton" name="RBTous">
- <property name="text">
- <string>Tous les paramètres</string>
- </property>
- <property name="checked">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer_2">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout">
- <property name="spacing">
- <number>0</number>
- </property>
- <item>
- <widget class="QRadioButton" name="RBFiltre">
- <property name="text">
- <string>Paramètre du type de </string>
- </property>
- <property name="checked">
- <bool>false</bool>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="label">
- <property name="text">
- <string>mon mot</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer_4">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- </layout>
- </item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
- <height>36</height>
+ <height>20</height>
</size>
</property>
</spacer>
<x>0</x>
<y>0</y>
<width>826</width>
- <height>235</height>
+ <height>83</height>
</rect>
</property>
<property name="sizePolicy">
<property name="minimumSize">
<size>
<width>0</width>
- <height>180</height>
+ <height>60</height>
</size>
</property>
<property name="windowTitle">
</property>
<item>
<layout class="QVBoxLayout" name="verticalLayout_3">
+ <property name="spacing">
+ <number>0</number>
+ </property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
+ <property name="spacing">
+ <number>0</number>
+ </property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
</property>
</widget>
</item>
- <item>
- <widget class="QToolButton" name="RBPoubelle">
- <property name="minimumSize">
- <size>
- <width>21</width>
- <height>31</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>21</width>
- <height>31</height>
- </size>
- </property>
- <property name="styleSheet">
- <string notr="true">border : 0px</string>
- </property>
- <property name="text">
- <string>...</string>
- </property>
- <property name="icon">
- <iconset>
- <normaloff>../../../../../../home/A96028/Install_EficasV1/ArbreEficas/Editeur/icons/deleteRond.png</normaloff>../../../../../../home/A96028/Install_EficasV1/ArbreEficas/Editeur/icons/deleteRond.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>32</width>
- <height>32</height>
- </size>
- </property>
- </widget>
- </item>
</layout>
</item>
<item>
<rect>
<x>0</x>
<y>0</y>
- <width>381</width>
- <height>235</height>
+ <width>435</width>
+ <height>83</height>
</rect>
</property>
<property name="sizePolicy">
</sizepolicy>
</property>
<layout class="QVBoxLayout" name="CBLayout">
- <item>
- <spacer name="verticalSpacer_3">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
</layout>
</widget>
</widget>
</property>
<property name="sizeHint" stdset="0">
<size>
- <width>150</width>
+ <width>20</width>
<height>17</height>
</size>
</property>
</spacer>
</item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QToolButton" name="RBPoubelle">
+ <property name="minimumSize">
+ <size>
+ <width>21</width>
+ <height>31</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>21</width>
+ <height>31</height>
+ </size>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">border : 0px</string>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ <property name="icon">
+ <iconset>
+ <normaloff>../../../../../../home/A96028/Install_EficasV1/ArbreEficas/Editeur/icons/deleteRond.png</normaloff>../../../../../../home/A96028/Install_EficasV1/ArbreEficas/Editeur/icons/deleteRond.png</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>32</width>
+ <height>32</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
</layout>
<zorder>horizontalSpacer</zorder>
<zorder></zorder>
</property>
<property name="sizeHint" stdset="0">
<size>
- <width>70</width>
+ <width>71</width>
<height>20</height>
</size>
</property>
</property>
<property name="sizeHint" stdset="0">
<size>
- <width>200</width>
+ <width>79</width>
<height>17</height>
</size>
</property>
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
--- /dev/null
+# -*- 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
+
+