class Node(browser.JDCNode):
- pass
+ def createPopUpMenu(self):
+ #menu
+ self.menu = QPopupMenu(self.tree)
+
+ #ss-menu Comment:
+ self.commentMenu = QPopupMenu( self.menu )
+ self.commentMenu.insertItem( 'it', self.commentIt )
+ self.commentMenu.insertItem( 'after', self.addCommentAfter )
+ self.commentMenu.insertItem( 'before', self.addCommentBefore )
+
+ #ss-menu Parameters:
+ self.parametersMenu = QPopupMenu( self.menu )
+ self.parametersMenu.insertItem( 'after', self.addParametersAfter )
+ self.parametersMenu.insertItem( 'before', self.addParametersBefore )
+
+ #item du menu
+ self.menu.insertItem( qApp.translate('Browser','Delete'), self.delete )
+ self.menu.insertItem( qApp.translate('Browser','Comment'), self.commentMenu ) # CS_pbruno todo activer/désactiver
+ self.menu.insertItem( qApp.translate('Browser','Uncomment'), self.unCommentIt ) # CS_pbruno todo activer/désactiver
+ self.menu.insertItem( qApp.translate('Browser','Parameters'), self.parametersMenu )
+
+ def addCommentAfter(self):
+ """
+ """
+ self.addComment()
+
+ def addCommentBefore(self):
+ """
+ """
+ self.addComment(False)
+
+ def addParametersAfter(self):
+ """
+ """
+ self.addParameters()
+
+ def addParametersBefore(self):
+ """
+ """
+ self.addParameters(False)
## def getPanel(self):
## """
## """
import convert
#
-__version__="$Name: V1_11_qt $"
-__Id__="$Id: compomacro.py,v 1.26 2006-12-15 16:00:21 cchris Exp $"
+__version__="$Name: $"
+__Id__="$Id: compomacro.py,v 1.1.2.1 2007-02-19 19:16:34 pbruno Exp $"
#
-
import browser
from qt import *
-
-class MACRONode(browser.JDCNode):
- pass
+class MACRONode(browser.JDCNode): pass
## def getPanel(self):
## """
## """
-## return MACROPanel( self, self.editor )
+## return MACROPanel( self, self.editor )
+
+
class MACROTreeItem(compooper.EtapeTreeItem):
""" Cette classe hérite d'une grande partie des comportements
## panel=MACROPanel
class INCLUDETreeItemBase(MACROTreeItem):
- rmenu_specs=[("View","makeView"),
- ("Edit","makeEdit"),
- ]
+## rmenu_specs=[("View","makeView"),
+## ("Edit","makeEdit"),
+## ]
- def __init__(self,appli, labeltext, object, setfunction):
+ def __init__(self,appli, labeltext, object, setfunction):
MACROTreeItem.__init__(self,appli, labeltext, object, setfunction)
def iscopiable(self):
"""
return 0
- def makeEdit(self,appli,node):
- #print "makeEdit",self.object,self.object.nom
- #print "makeEdit",self.object.jdc_aux,self.object.jdc_aux.nom
- #print "makeEdit",self.object.jdc_aux.context_ini
- if self.object.text_converted == 0:
- # Le texte du fichier inclus n'a pas pu etre converti par le module convert
- msg="Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n"
- msg=msg+self.object.text_error
- Fenetre(self,titre="Include non editable",texte=msg,wrap='none')
- return
-
- if not hasattr(self.object,"jdc_aux") or self.object.jdc_aux is None:
- #L'include n'est pas initialise
- self.object.build_include(None,"")
-
- # On cree un nouvel onglet dans le bureau
- appli.bureau.ShowJDC(self.object.jdc_aux,self.object.jdc_aux.nom,
- label_onglet=None,
- JDCDISPLAY=macrodisplay.MACRODISPLAY)
-
- def makeView(self,appli,node):
- if not hasattr(self.object,"jdc_aux") or self.object.jdc_aux is None:
- showerror("Include vide",
- "L'include doit etre correctement initialisé pour etre visualisé")
- return
-
- nom=self.object.nom
- if hasattr(self.object,'fichier_ini'):
- if self.object.fichier_ini is None:
- nom=nom+' '+"Fichier non défini"
- else:
- nom=nom+' '+self.object.fichier_ini
- macdisp=macrodisplay.makeMacroDisplay(appli,self,nom)
-
-
-
-class INCLUDENode(browser.JDCNode):
- pass
+## def makeEdit(self,appli,node):
+## #print "makeEdit",self.object,self.object.nom
+## #print "makeEdit",self.object.jdc_aux,self.object.jdc_aux.nom
+## #print "makeEdit",self.object.jdc_aux.context_ini
+## if self.object.text_converted == 0:
+## # Le texte du fichier inclus n'a pas pu etre converti par le module convert
+## msg="Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n"
+## msg=msg+self.object.text_error
+## Fenetre(self,titre="Include non editable",texte=msg,wrap='none')
+## return
+##
+## if not hasattr(self.object,"jdc_aux") or self.object.jdc_aux is None:
+## #L'include n'est pas initialise
+## self.object.build_include(None,"")
+##
+## # On cree un nouvel onglet dans le bureau
+## appli.bureau.ShowJDC(self.object.jdc_aux,self.object.jdc_aux.nom,
+## label_onglet=None,
+## JDCDISPLAY=macrodisplay.MACRODISPLAY)
+##
+## def makeView(self,appli,node):
+## if not hasattr(self.object,"jdc_aux") or self.object.jdc_aux is None:
+## showerror("Include vide",
+## "L'include doit etre correctement initialisé pour etre visualisé")
+## return
+##
+## nom=self.object.nom
+## if hasattr(self.object,'fichier_ini'):
+## if self.object.fichier_ini is None:
+## nom=nom+' '+"Fichier non défini"
+## else:
+## nom=nom+' '+self.object.fichier_ini
+## macdisp=macrodisplay.makeMacroDisplay(appli,self,nom)
+
+
+
+class INCLUDENode(browser.JDCNode):
## def getPanel(self):
## """
## """
-## return INCLUDEPanel( self, self.editor )
+## return INCLUDEPanel( self, self.editor )
+ def createPopUpMenu(self):
+ #menu
+ self.menu = QPopupMenu(self.tree)
+
+ #ss-menu Comment:
+ self.commentMenu = QPopupMenu( self.menu )
+ self.commentMenu.insertItem( 'it', self.commentIt )
+ self.commentMenu.insertItem( 'after', self.addCommentAfter )
+ self.commentMenu.insertItem( 'before', self.addCommentBefore )
+
+ #ss-menu Parameters:
+ self.parametersMenu = QPopupMenu( self.menu )
+ self.parametersMenu.insertItem( 'after', self.addParametersAfter )
+ self.parametersMenu.insertItem( 'before', self.addParametersBefore )
+
+ #item du menu
+ self.menu.insertItem( qApp.translate('Browser','Delete'), self.delete )
+ self.menu.insertItem( qApp.translate('Browser','Comment'), self.commentMenu ) # CS_pbruno todo activer/désactiver
+ self.menu.insertItem( qApp.translate('Browser','Uncomment'), self.unCommentIt ) # CS_pbruno todo activer/désactiver
+ self.menu.insertItem( qApp.translate('Browser','Parameters'), self.parametersMenu )
+ self.menu.insertItem( qApp.translate('Browser','Edit'), self.makeEdit )
+ self.menu.insertItem( qApp.translate('Browser','View'), self.makeView )
+
+ def addCommentAfter(self):
+ """
+ """
+ self.addComment()
+
+ def addCommentBefore(self):
+ """
+ """
+ self.addComment(False)
+
+ def addParametersAfter(self):
+ """
+ """
+ self.addParameters()
+
+ def addParametersBefore(self):
+ """
+ """
+ self.addParameters(False)
+
+ def makeEdit(self): #,appli,node
+ if self.item.object.text_converted == 0:
+ # Le texte du fichier inclus n'a pas pu etre converti par le module convert
+ msg="Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n"
+ msg=msg+self.item.object.text_error
+## Fenetre(self,titre="Include non editable",texte=msg,wrap='none') #CS_pbruno todo
+ return
+
+ if not hasattr(self.item.object,"jdc_aux") or self.item.object.jdc_aux is None:
+ #L'include n'est pas initialise
+ self.item.object.build_include(None,"")
+
+ # On cree un nouvel onglet dans le bureau
+## appli.bureau.ShowJDC( self.item.object.jdc_aux,
+## self.item.object.jdc_aux.nom,
+## label_onglet=None,
+## JDCDISPLAY=macrodisplay.MACRODISPLAY)
+ self.editor.vm.displayJDC( self.item.object.jdc_aux ) #, self.item.object.jdc_aux.nom )
+
+ def makeView(self):#,appli,node):
+ pass #CS_pbruno todo
+
class INCLUDETreeItem(INCLUDETreeItemBase):
itemNode=INCLUDENode
-class POURSUITETreeItem(INCLUDETreeItemBase):
- def makeEdit(self,appli,node):
- if self.object.text_converted == 0:
- # Le texte du fichier inclus n'a pas pu etre converti par le module convert
- msg="Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n"
- msg=msg+self.object.text_error
- Fenetre(self,titre="Poursuite non editable",texte=msg,wrap='none')
- return
-
- if not hasattr(self.object,"jdc_aux") or self.object.jdc_aux is None:
- #La poursuite n'est pas initialisee
- text="""DEBUT()
-FIN()"""
- self.object.build_poursuite(None,text)
-
- # On cree un nouvel onglet dans le bureau
- appli.bureau.ShowJDC(self.object.jdc_aux,self.object.jdc_aux.nom,
- label_onglet=None,
- JDCDISPLAY=macrodisplay.MACRODISPLAY)
-
- def makeView(self,appli,node):
- if not hasattr(self.object,"jdc_aux") or self.object.jdc_aux is None:
- showerror("Poursuite vide","Une POURSUITE doit etre correctement initialisée pour etre visualisée")
- return
- nom=self.object.nom
- if hasattr(self.object,'fichier_ini'):
- if self.object.fichier_ini is None:
- nom=nom+' '+"Fichier non défini"
- else:
- nom=nom+' '+self.object.fichier_ini
- macdisp=macrodisplay.makeMacroDisplay(appli,self,nom)
+
+class POURSUITENode(browser.JDCNode):
+## def getPanel(self):
+## """
+## """
+## return INCLUDEPanel( self, self.editor )
+ def createPopUpMenu(self):
+ #menu
+ self.menu = QPopupMenu(self.tree)
+
+ #ss-menu Comment:
+ self.commentMenu = QPopupMenu( self.menu )
+ self.commentMenu.insertItem( 'it', self.commentIt )
+ self.commentMenu.insertItem( 'after', self.addCommentAfter )
+ self.commentMenu.insertItem( 'before', self.addCommentBefore )
+
+ #ss-menu Parameters:
+ self.parametersMenu = QPopupMenu( self.menu )
+ self.parametersMenu.insertItem( 'after', self.addParametersAfter )
+ self.parametersMenu.insertItem( 'before', self.addParametersBefore )
+
+ #item du menu
+ self.menu.insertItem( qApp.translate('Browser','Delete'), self.delete )
+ self.menu.insertItem( qApp.translate('Browser','Comment'), self.commentMenu ) # CS_pbruno todo activer/désactiver
+ self.menu.insertItem( qApp.translate('Browser','Uncomment'), self.unCommentIt ) # CS_pbruno todo activer/désactiver
+ self.menu.insertItem( qApp.translate('Browser','Parameters'), self.parametersMenu )
+ self.menu.insertItem( qApp.translate('Browser','Edit'), self.makeEdit )
+ self.menu.insertItem( qApp.translate('Browser','View'), self.makeView )
+
+ def addCommentAfter(self):
+ """
+ """
+ self.addComment()
+
+ def addCommentBefore(self):
+ """
+ """
+ self.addComment(False)
+
+ def addParametersAfter(self):
+ """
+ """
+ self.addParameters()
+
+ def addParametersBefore(self):
+ """
+ """
+ self.addParameters(False)
+
+ def makeEdit(self): #,appli,node
+ if self.item.object.text_converted == 0:
+ # Le texte du fichier inclus n'a pas pu etre converti par le module convert
+ msg="Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n"
+ msg=msg+self.item.object.text_error
+## Fenetre(self,titre="Poursuite non editable",texte=msg,wrap='none') #CS_pbruno todo
+ return
+
+ if not hasattr(self.item.object,"jdc_aux") or self.item.object.jdc_aux is None:
+ #La poursuite n'est pas initialisee
+ text="""DEBUT()
+ FIN()"""
+ self.object.build_poursuite(None,text)
+
+ # On cree un nouvel onglet dans le bureau
+## appli.bureau.ShowJDC( self.item.object.jdc_aux,
+## self.item.object.jdc_aux.nom,
+## label_onglet=None,
+## JDCDISPLAY=macrodisplay.MACRODISPLAY)
+ self.editor.vm.displayJDC( self.item.object.jdc_aux ) #, self.item.object.jdc_aux.nom )
+
+ def makeView(self):#,appli,node):
+ pass #CS_pbruno todo
+
+
+
+class POURSUITETreeItem(INCLUDETreeItemBase):
+ itemNode=POURSUITENode
+## def makeEdit(self,appli,node):
+## if self.object.text_converted == 0:
+## # Le texte du fichier inclus n'a pas pu etre converti par le module convert
+## msg="Le fichier de commande n'a pas pu etre converti pour etre editable par Eficas\n\n"
+## msg=msg+self.object.text_error
+## Fenetre(self,titre="Poursuite non editable",texte=msg,wrap='none')
+## return
+##
+## if not hasattr(self.object,"jdc_aux") or self.object.jdc_aux is None:
+## #La poursuite n'est pas initialisee
+## text="""DEBUT()
+##FIN()"""
+## self.object.build_poursuite(None,text)
+##
+## # On cree un nouvel onglet dans le bureau
+## appli.bureau.ShowJDC(self.object.jdc_aux,self.object.jdc_aux.nom,
+## label_onglet=None,
+## JDCDISPLAY=macrodisplay.MACRODISPLAY)
+##
+## def makeView(self,appli,node):
+## if not hasattr(self.object,"jdc_aux") or self.object.jdc_aux is None:
+## showerror("Poursuite vide","Une POURSUITE doit etre correctement initialisée pour etre visualisée")
+## return
+## nom=self.object.nom
+## if hasattr(self.object,'fichier_ini'):
+## if self.object.fichier_ini is None:
+## nom=nom+' '+"Fichier non défini"
+## else:
+## nom=nom+' '+self.object.fichier_ini
+## macdisp=macrodisplay.makeMacroDisplay(appli,self,nom)
class INCLUDE_MATERIAUTreeItem(INCLUDETreeItemBase):
rmenu_specs=[("View","makeView"),
représentatif de self.object
"""
# Format de fichier utilisé
- format=self.appli.format_fichier
+ format=self.appli.format_fichier.get()
return self.object.get_objet_commentarise(format)
def get_objet_commentarise_BAK(self):
import prefs
import configuration
import panels
+
import afficheErreur
import visualisation
## VERSION_CODE = 'v8.2'
-
+class StringVar: #à cause de format_fichier (Tkinter.StringVar) appelé ailleur que ds l'Interface
+ def __init__(self):
+ self.val = ""
+ def set(self,str):
+ self.val = str
+ def get(self):
+ return self.val
+
class JDCEditor(QSplitter):
"""
Editeur de jdc
"""
- def __init__(self,fn,parent=None, editor = None):
+ def __init__(self,fn = None, jdc = None ,parent=None, editor = None):
QSplitter.__init__(self, parent,'')
+ print 5*'EDITOR fn->', fn
+ print 5*'EDITOR jdc->', jdc
# CS_pbruno compatiblity begin
self.top = None
self.code = prefs.code
self.version_code = VERSION_CODE
self.titre=VERSION_EFICAS + ' pour '+ self.code
self.dict_reels={}
- self.liste_simp_reel=[]
- #format=self.format_fichier.get() CS_pbruno gestion python
- self.format_fichier = 'python'
+ self.liste_simp_reel=[]
+ #self.format_fichier = Tkinter.StringVar()
+ self.format_fichier = StringVar()
+ self.format_fichier.set('python') #CS_pbruno gestion python uniquement
+
self.CONFIGURATION = configuration.CONFIGURATION
self.CONFIGStyle = configuration.CONFIGStyle
#self.appli = self
self.fileName = fn
self.fileInfo = None
self.lastModified = 0
- self.jdc = None
+ self.jdc = jdc
self.fichier=None
self.panel_courant=None
self.readercata = readercata.reader
- ###################################################
- if self.fileName is not None:
+ #------- construction du jdc --------------
+ jdc_item = None
+
+ if self.fileName is not None: # le fichier du jdc est fourni
self.fileInfo = QFileInfo(self.fileName)
self.fileInfo.setCaching(0)
if editor is None:
- self.readFile(self.fileName)
+ self.jdc = self.readFile(self.fileName)
+ print 20*'A'
else:
# clone the given editor
## self.setDocument(editor.document())
self.version_code = editor.version_code
self.titre = editor.titre
self.dict_reels = editor.dict_reels
- self.liste_simp_reel= editor.liste_simp_reel
+ self.liste_simp_reel= editor.liste_simp_reel
self.format_fichier = editor.format_fichier
self.CONFIGURATION = editor.CONFIGURATION
self.CONFIGStyle = editor.CONFIGStyle
self.jdc = editor.jdc
- self.lastModified = self.fileInfo.lastModified()
- elif editor is not None:
+ self.lastModified = self.fileInfo.lastModified()
+ elif editor is not None:
## self.setDocument(editor.document())
- self.jdc = editor.jdc
- else: #nouveau jdc
- self.jdc = self._newJDC()
-
-
-
-
+ self.jdc = editor.jdc
+ else:
+ if not self.jdc: #nouveau jdc
+ self.jdc = self._newJDC()
+
+ if self.jdc:
+ self.jdc.appli = self
+ txt_exception = None
+ if not jdc:
+ self.jdc.analyse()
+ txt_exception = self.jdc.cr.get_mess_exception()
+ if txt_exception:
+ # des exceptions ont été levées à la création du JDC
+ # --> on affiche les erreurs mais pas le JDC
+ print 'txt_exception ->',txt_exception
+ self.affiche_infos("Erreur fatale au chargement de %s" %fn)
+ qApp.restoreOverrideCursor()
+ monDialog=afficheErreur.afficheErreur(parent=self.parent,fl=Qt.WType_Dialog)
+ monDialog.texteErreur.setText(QString(txt_exception))
+ monDialog.show()
+ self.jdc = None
+ else:
+ comploader.charger_composants()
+ jdc_item=Objecttreeitem.make_objecttreeitem( self, "nom", self.jdc )
+ # dans le cas où le JDC est invalide, on affiche son CR
+ if not self.jdc.isvalid():
+ self.visuCR(mode='JDC')
+
#------- config widget --------------
- comploader.charger_composants()
+## comploader.charger_composants()
- if self.jdc:
- jdc_item=Objecttreeitem.make_objecttreeitem( self, "nom", self.jdc )
+ if jdc_item:
self.tree = browser.JDCTree( jdc_item, self )
self.connect(self.tree,SIGNAL('selectionChanged(QListViewItem *)'),self.updatePanel)
)
jdc.analyse()
return jdc
-
+
+
+ def get_source(self,file):
+ import convert
+ format=self.format_fichier.get()
+ # Il faut convertir le contenu du fichier en fonction du format
+ if convert.plugins.has_key(format):
+ # Le convertisseur existe on l'utilise
+ p=convert.plugins[format]()
+ p.readfile(file)
+ text=p.convert('execnoparseur')
+ if not p.cr.estvide():
+ self.affiche_infos("Erreur à la conversion")
+ #CS_pbruno todo
+## Fenetre(self,
+## titre="compte-rendu d'erreurs, EFICAS ne sait pas convertir ce fichier",
+## texte = str(p.cr)).wait()
+ return text
+ return text
+ else:
+ # Il n'existe pas c'est une erreur
+ self.affiche_infos("Type de fichier non reconnu")
+ showerror("Type de fichier non reconnu","EFICAS ne sait pas ouvrir ce type de fichier")
+ return None
+
+ def get_file(self,unite=None,fic_origine = ''):
+ ulfile = None
+ jdcText = ""
+
+ titre = ""
+
+ if unite :
+ titre = "Choix unite %d " %unite
+ texte = "Le fichier %s contient une commande INCLUDE \n" % fic_origine
+ texte = texte+'Donnez le nom du fichier correspondant\n à l unité logique %d' % unite
+ labeltexte = 'Fichier pour unite %d :' % unite
+ else:
+ titre = "Choix d'un fichier de poursuite"
+ texte = "Le fichier %s contient une commande %s\n" %(fic_origine,'POURSUITE')
+ texte = texte+'Donnez le nom du fichier dont vous \n voulez faire une poursuite'
+ labeltexte = 'Fichier à poursuivre :'
+
+ fn = QFileDialog.getOpenFileName( None,
+ "",
+ self,
+ None,
+ labeltexte )
+
+ print 'GETFILE', fn
+
+ if fn.isNull():
+ return
+
+ ulfile = os.path.abspath(unicode(fn))
+ # On utilise le convertisseur défini par format_fichier
+ print 'GETFILE', ulfile
+ source=self.get_source(ulfile)
+ if source:
+ # On a réussi à convertir le fichier self.ulfile
+ jdcText = source
+ else:
+ # Une erreur a été rencontrée
+ jdcText = ''
+
+## print 'GETFILE', ulfile
+## print 'GETFILE', jdcText
+
+ return ulfile, jdcText
+
+
def readFile(self, fn):
"""
Public slot to read the text from a file.
jdcName=os.path.basename(fn)
# Il faut convertir le contenu du fichier en fonction du format
- if convert.plugins.has_key( self.format_fichier ):
+ if convert.plugins.has_key( self.format_fichier.get() ):
# Le convertisseur existe on l'utilise
appli = self # CS_pbruno compatiblity parseur_python: self.appli.liste_simp_reel, self.appli.dict_reels
- p=convert.plugins[self.format_fichier]()
+ p=convert.plugins[self.format_fichier.get()]()
p.readfile(fn)
text=p.convert('exec',appli)
if not p.cr.estvide():
cata=self.readercata.cata,
cata_ord_dico=self.readercata.cata_ordonne_dico,
nom=jdcName,
- rep_mat=configuration.CONFIGURATION#self.CONFIGURATION.rep_mat
+ rep_mat=configuration.CONFIGURATION.rep_mat#self.CONFIGURATION.rep_mat
)
- jdc.analyse()
- txt= jdc.cr.get_mess_exception()
- self.jdc = jdc
- if txt:
- # PN attention reporter ici les tests pour batch / ou non
- # if self.appli.test == 0 :
- qApp.restoreOverrideCursor()
- monDialog=afficheErreur.afficheErreur(parent=self.parent,fl=Qt.WType_Dialog)
- monDialog.texteErreur.setText(QString(txt))
- monDialog.show()
- self.closeIt()
- else :
- self.jdc.appli = self
+## jdc.analyse()
+## txt_exception = jdc.cr.get_mess_exception()
+##
+## if txt_exception :
+## # des exceptions ont été levées à la création du JDC
+## # --> on affiche les erreurs mais pas le JDC
+## self.jdc = None
+## print 'txt_exception ->',txt_exception
+## self.affiche_infos("Erreur fatale au chargement de %s" %fn)
+## else:
+## # dans le cas où le JDC est invalide, on affiche son CR
+## if not jdc.isvalid():
+## self.visuCR(mode='JDC')
+## self.jdc=jdc
+## self.jdc.appli = self
+
# ------------------------------------------------------------------------------------
# charge le JDC fin
# ------------------------------------------------------------------------------------
- self.modified = False
- self.lastModified = self.fileInfo.lastModified()
- qApp.restoreOverrideCursor()
+## self.setModified(0)
+ self.modified = False
+
+ qApp.restoreOverrideCursor()
+
+ self.lastModified = self.fileInfo.lastModified()
+ return jdc
+
+ def visuCR(self,mode):
+ """
+ Méthode permettant l'affichage du rapport de validation
+ """
+ print 10 * 'visuCR'
+ print self.jdc.report()
+ print 10 * 'visuCR'
+## if mode == 'JDC':
+## if not hasattr(self,'JDC') : return
+## if self.JDC == None : return
+## titre="rapport de validation du jeu de commandes courant"
+## cr = self.JDC.report()
+## #self.update_jdc_courant()
+## elif mode == 'CATA':
+## from Noyau.N_CR import CR
+## cr = CR()
+## cr.debut = "Début rapport de validation du catalogue"
+## cr.fin = "Fin rapport de validation du catalogue"
+## titre="rapport de validation du catalogue"
+## if hasattr(self,'cata_ordonne_cr') :
+## cr.add(self.cata_ordonne_cr)
+## if hasattr(self,'cata_dev_ordonne_cr') :
+## cr.add(self.cata_dev_ordonne_cr)
+## for cata in self.cata:
+## if hasattr(cata,'JdC'):
+## cr.add(cata.JdC.report())
+## texte_cr = str(cr)
+## self.visu_texte_cr = Fenetre(self.appli,titre=titre,texte=texte_cr)
def handleRenamed(self, fn):
## CONNECTOR.Disconnect(self.JDCDisplay_courant.jdc,"close",self.onClose,(self.JDCDisplay_courant,))
## self.JDCDisplay_courant.supprime()
- self.jdc.supprime()
+ if self.jdc:
+ self.jdc.supprime()
## self.liste_JDCDisplay.remove(self.JDCDisplay_courant)
## # Active le mecanisme de selection du notebook (selectJDC)
## self.nb.delete(self.nb.getcurselection())
def affiche_infos(self,message):
- self.sb.message(message,2000)
+ self.sb.message(message)#,2000)
def updatePanel(self, jdcNode):
"""
self.appli=appli
self.parent=parent
self.code=self.appli.code
-## self.appli.format_fichier.set('python') #CS_pbruno tosee
- self.appli.format_fichier = 'python'
+ self.appli.format_fichier.set('python')
+## self.appli.format_fichier = 'python'
self.version_code=self.appli.version_code
self.fic_cata=None
self.OpenCata()
for cata in liste_cata_possibles:
if self.version_code == cata[1]:
self.fic_cata = cata[2]
-## self.appli.format_fichier.set(cata[3]) #CS_pbruno todo
- self.appli.format_fichier = cata[3]
+ self.appli.format_fichier.set(cata[3])
+## self.appli.format_fichier = cata[3]
elif len(liste_cata_possibles)==1:
self.fic_cata = liste_cata_possibles[0][2]
self.code = self.appli.CONFIGURATION.catalogues[0][0]
self.version_code = liste_cata_possibles[0][1]
-## self.appli.format_fichier.set(liste_cata_possibles[0][3]) #CS_pbruno todo
- self.appli.format_fichier = liste_cata_possibles[0][3]
+ self.appli.format_fichier.set(liste_cata_possibles[0][3])
+## self.appli.format_fichier = liste_cata_possibles[0][3]
else:
# plusieurs catalogues sont disponibles : il faut demander à l'utilisateur
# lequel il veut utiliser ...
version_cata = diag.strSelectedVersion
self.fic_cata = self.dico_catalogues[version_cata][2]
self.version_code = version_cata
- self.appli.format_fichier = self.dico_catalogues[version_cata][3]
+ ##self.appli.format_fichier = self.dico_catalogues[version_cata][3]
+ self.appli.format_fichier.set( self.dico_catalogues[version_cata][3] )
def chooseCata(self,txt):
version_cata = self.radiobutton.getcurselection()
self.fic_cata = self.dico_catalogues[version_cata][2]
self.version_code = version_cata
-## self.appli.format_fichier.set(self.dico_catalogues[version_cata][3]) #CS_pbruno tosee
- self.appli.format_fichier = self.dico_catalogues[version_cata][3]
+ self.appli.format_fichier.set(self.dico_catalogues[version_cata][3])
+## self.appli.format_fichier = self.dico_catalogues[version_cata][3]
self.fenetre_choix_cata.destroy()
else:
self.parent.destroy()
## Methods and slots that deal with file and window handling
##################################################################
- def handleOpen(self,prog=None):
- """
- Public slot to open a Python (or other) file.
-
- @param prog name of file to be opened (string or QString)
- """
- # Get the file name if one wasn't specified.
- if prog is None:
- # set the cwd of the dialog based on the following search criteria:
- # 1: Directory of currently active editor
- # 2: Directory of currently active Project
- # 3: CWD
- filter = self._getOpenFileFilter()
- prog = QFileDialog.getOpenFileName(self._getOpenStartDir(),
- self.fileFiltersString, self.ui, None, None, filter)
-
- if prog.isNull():
- return
-
- prog = normabspath(unicode(prog))
-
- # Open up the new file.
- self.handlePythonFile(prog)
+## def handleOpen(self,prog=None):
+## """
+## Public slot to open a Python (or other) file.
+##
+## @param prog name of file to be opened (string or QString)
+## """
+## # Get the file name if one wasn't specified.
+## if prog is None:
+## # set the cwd of the dialog based on the following search criteria:
+## # 1: Directory of currently active editor
+## # 2: Directory of currently active Project
+## # 3: CWD
+## filter = self._getOpenFileFilter()
+## prog = QFileDialog.getOpenFileName(self._getOpenStartDir(),
+## self.fileFiltersString, self.ui, None, None, filter)
+##
+## if prog.isNull():
+## return
+##
+## prog = normabspath(unicode(prog))
+##
+## # Open up the new file.
+## self.handlePythonFile(prog)
def checkDirty(self, editor):
"""
except IOError:
pass
- def displayPythonFile(self,fn,lineno=None):
+## def displayPythonFile(self,fn,lineno=None):
+## """
+## Public slot to display a file in an editor.
+##
+## @param fn name of file to be opened
+## @param lineno line number to place the cursor at
+## """
+## isPyFile = lineno and lineno < 0
+## newWin, editor = self.getEditor(fn, isPythonFile=isPyFile)
+##
+## if newWin:
+## self.handleModificationStatusChanged(editor.modified, editor)
+## self.checkActions(editor)
+##
+## if lineno is not None and lineno >= 0:
+## editor.ensureVisible(lineno)
+## editor.gotoLine(lineno)
+##
+## # insert filename into list of recently opened files
+## self.addToRecentList(fn)
+
+ def displayJDC(self,jdc):
"""
Public slot to display a file in an editor.
@param fn name of file to be opened
@param lineno line number to place the cursor at
- """
- isPyFile = lineno and lineno < 0
- newWin, editor = self.getEditor(fn, isPythonFile=isPyFile)
+ """
+ newWin, editor = self.getEditor(None, jdc)
if newWin:
self.handleModificationStatusChanged(editor.modified, editor)
self.checkActions(editor)
-
- if lineno is not None and lineno >= 0:
- editor.ensureVisible(lineno)
- editor.gotoLine(lineno)
# insert filename into list of recently opened files
- self.addToRecentList(fn)
+ self.addToRecentList(editor.getFileName())
+
+
def newEditorView(self, fn, caller):
"""
print 'newEditorView fn->',fn
print 'newEditorView caller.jdc->',caller.jdc
print 50*'+'
- editor = JDCEditor(fn,self, editor=caller)
+ editor = JDCEditor(fn, None, self, editor=caller)
self.editors.append(editor)
self.connect(editor, PYSIGNAL('modificationStatusChanged'),
self.handleModificationStatusChanged)
return filenames
- def getEditor(self, fn):
+ def getEditor(self, fn, jdc = None):
"""
Private method to return the editor displaying the given file.
break
else:
from editor import JDCEditor
- editor = JDCEditor(fn,self)
- #editor.setOpaqueResize()
- #editor = JDCEditor(fn,None,self)
- #editor = Editor(self.dbs,fn,self,isPythonFile=isPythonFile)
+ editor = JDCEditor(fn, jdc, self)
- self.editors.append(editor)
- self.connect(editor, PYSIGNAL('modificationStatusChanged'),
- self.handleModificationStatusChanged)
- self.connect(editor, PYSIGNAL('cursorChanged'), self.handleCursorChanged)
- self.connect(editor, PYSIGNAL('editorSaved'), self.handleEditorSaved)
- self.connect(editor, PYSIGNAL('breakpointToggled'), self.handleBreakpointToggled)
- self.connect(editor, PYSIGNAL('bookmarkToggled'), self.handleBookmarkToggled)
- self.connect(editor, PYSIGNAL('syntaxerrorToggled'), self.handleSyntaxErrorToggled)
- self.connect(editor, PYSIGNAL('autoCompletionAPIsAvailable'),
- self.handleEditoracAPIsAvailable)
- self.handleEditorOpened()
- self.emit(PYSIGNAL('editorOpened'), (fn,))
- newWin = 1
+ print 'GETEDITOR editor.jdc->', editor.jdc
+ if editor.jdc: # le fichier est bien un jdc
+ self.editors.append(editor)
+ self.connect(editor, PYSIGNAL('modificationStatusChanged'),
+ self.handleModificationStatusChanged)
+ self.connect(editor, PYSIGNAL('cursorChanged'), self.handleCursorChanged)
+ self.connect(editor, PYSIGNAL('editorSaved'), self.handleEditorSaved)
+ self.connect(editor, PYSIGNAL('breakpointToggled'), self.handleBreakpointToggled)
+ self.connect(editor, PYSIGNAL('bookmarkToggled'), self.handleBookmarkToggled)
+ self.connect(editor, PYSIGNAL('syntaxerrorToggled'), self.handleSyntaxErrorToggled)
+ self.connect(editor, PYSIGNAL('autoCompletionAPIsAvailable'),
+ self.handleEditoracAPIsAvailable)
+ self.handleEditorOpened()
+ self.emit(PYSIGNAL('editorOpened'), (fn,))
+ newWin = 1
+ else:
+ editor.closeIt()
if newWin:
+ print 'GETEDITOR addView'
self.addView(editor, fn)
- else:
+ elif editor.jdc:
+ print 'GETEDITOR showView'
self.showView(editor, fn)
return (newWin, editor)
Public slot to generate a new empty editor.
"""
from editor import JDCEditor
- editor = JDCEditor(None,self)
+ editor = JDCEditor(None,None,self)
self.editors.append(editor)
self.connect(editor, PYSIGNAL('modificationStatusChanged'),
## filter = self._getOpenFileFilter()
## fn = QFileDialog.getOpenFileName(self._getOpenStartDir(),
## self.fileFiltersString, self.ui, None, None, filter)
-
+
fn = QFileDialog.getOpenFileName(self._getOpenStartDir(),
- QString("*.comm") , self.ui, None, None, None)
+ self.trUtf8('JDC Files (*.comm);;''All Files (*)'), self.ui, None, None, None)
if fn.isNull():
return
self.handleModificationStatusChanged(editor.modified, editor)
self.checkActions(editor)
-
-
-## if lineno is not None and lineno >= 0:
-## editor.ensureVisible(lineno)
-## editor.gotoLine(lineno)
-
## # insert filename into list of recently opened files
self.addToRecentList(fn)