Salome HOME
bug sur un mesage dans une exception sur un validator (cf JPA)
[tools/eficas.git] / InterfaceQT4 / typeNode.py
index 07ca9cacee1fe7dc51e088ad9d02ae3234dc51d1..2e3e2de37d11ce06f9d8796a24fcd945e0044080 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2013   EDF R&D
+# Copyright (C) 2007-2021   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
 #
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
-from determine import monEnvQT5
-if monEnvQT5:
-    from PyQt5.QtWidgets import QAction, QMenu
-else :
-    from PyQt4.QtGui  import *
-    from PyQt4.QtCore import *
+from __future__ import absolute_import
+try :
+    from builtins import object
+except : pass
+
+from PyQt5.QtWidgets import QAction, QMenu, QMessageBox
 
 from Extensions.i18n import tr
 import types
 
-
-
 #---------------------------#
-class PopUpMenuRacine :
+class PopUpMenuRacine(object) :
 #---------------------------#
 
-
     def createPopUpMenu(self):
         #print "createPopUpMenu"
         self.ParamApres = QAction(tr('Parametre'),self.tree)
-        if monEnvQT5 :
-          self.ParamApres.triggered.connect(self.addParametersApres)
-        else :
-          self.tree.connect(self.ParamApres,SIGNAL("triggered()"),self.addParametersApres)
+        self.ParamApres.triggered.connect(self.addParametersApres)
         self.ParamApres.setStatusTip(tr("Insere un parametre"))
         self.menu = QMenu(self.tree)
         self.menu.addAction(self.ParamApres)
@@ -52,14 +46,13 @@ class PopUpMenuRacine :
         item.addParameters(True)
 
 #---------------------------#
-class PopUpMenuNodeMinimal :
+class PopUpMenuNodeMinimal(object) :
 #---------------------------#
 
     def createPopUpMenu(self):
-        #print "createPopUpMenu"
+        #print ("createPopUpMenu")
         #self.appliEficas.salome=True
-        if monEnvQT5 : self.createActions()
-        else :         self.createActionsQT4()
+        self.createActions()
         self.menu = QMenu(self.tree)
         #self.menu.setStyleSheet("background:rgb(235,235,235); QMenu::item:selected { background-color: red; }")
         #ne fonctionne pas --> la ligne de commentaire devient rouge
@@ -67,127 +60,92 @@ class PopUpMenuNodeMinimal :
         #items du menu
         self.menu.addAction(self.Supprime)
         if hasattr(self.appliEficas, 'mesScripts'):
-            if self.editor.code in  self.editor.appliEficas.mesScripts.keys() :
-               self.dict_commandes_mesScripts=self.appliEficas.mesScripts[self.editor.code].dict_commandes
-               if self.tree.currentItem().item.get_nom() in self.dict_commandes_mesScripts.keys() : 
-                   self.ajoutScript()
-    
-    def ajoutScript(self):
+            if self.editor.code in  self.editor.appliEficas.mesScripts :
+                self.dict_commandes_mesScripts=self.appliEficas.mesScripts[self.editor.code].dict_commandes
+                if self.tree.currentItem().item.getNom() in self.dict_commandes_mesScripts :
+                    self.ajoutScript()
 
+    def ajoutScript(self):
     # cochon mais je n arrive pas a faire mieux avec le mecanisme de plugin
+    # a revoir avec un menu et un connect sur le triggered sur le menu ?
         if hasattr(self.appliEficas, 'mesScripts'):
-            if self.editor.code in  self.editor.appliEficas.mesScripts.keys() :
-               self.dict_commandes_mesScripts=self.appliEficas.mesScripts[self.editor.code].dict_commandes
+            if self.editor.code in  self.editor.appliEficas.mesScripts :
+                self.dict_commandes_mesScripts=self.appliEficas.mesScripts[self.editor.code].dict_commandes
             else : return
-        listeCommandes=self.dict_commandes_mesScripts[self.tree.currentItem().item.get_nom()]
-        if type(listeCommandes) != types.TupleType: listeCommandes=(listeCommandes,)
+
+        from Extensions import jdc_include
+        if isinstance(self.item.jdc,jdc_include.JDC_INCLUDE) : return
+
+        listeCommandes=self.dict_commandes_mesScripts[self.tree.currentItem().item.getNom()]
+        if type(listeCommandes) != tuple: listeCommandes=(listeCommandes,)
         numero=0
         for commande in listeCommandes :
-           conditionSalome=commande[3]
-           if (self.appliEficas.salome == 0 and conditionSalome == True): return
-           label=commande[1]
-           tip=commande[5]
-           self.action=QAction(label,self.tree)
-           self.action.setStatusTip(tip)
-           if monEnvQT5 :
-              if numero==4: 
-                 self.action.triggered.connect(self.AppelleFonction4)
-              if numero==3: 
-                 self.action.triggered.connect(self.AppelleFonction3)
-                 numero=4
-              if numero==2: 
-                 self.action.triggered.connect(self.AppelleFonction2)
-                 numero=3
-              if numero==1: 
-                 self.action.triggered.connect(self.AppelleFonction1)
-                 numero=2
-              if numero==0: 
-                 self.action.triggered.connect(self.AppelleFonction0)
-                 numero=1
-           else:
-              if numero==4: 
-                 self.tree.connect(self.action,SIGNAL("triggered()"),self.AppelleFonction4)
-              if numero==3: 
-                 self.tree.connect(self.action,SIGNAL("triggered()"),self.AppelleFonction3)
-                 numero=4
-              if numero==2: 
-                 self.tree.connect(self.action,SIGNAL("triggered()"),self.AppelleFonction2)
-                 numero=3
-              if numero==1: 
-                 self.tree.connect(self.action,SIGNAL("triggered()"),self.AppelleFonction1)
-                 numero=2
-              if numero==0: 
-                 self.tree.connect(self.action,SIGNAL("triggered()"),self.AppelleFonction0)
-                 numero=1
-           self.menu.addAction(self.action)
-
-
-    def AppelleFonction0(self):
-        self.AppelleFonction(0)
-
-    def AppelleFonction1(self):
-        self.AppelleFonction(1)
-
-    def AppelleFonction2(self):
-        self.AppelleFonction(2)
-
-    def AppelleFonction3(self):
-        self.AppelleFonction(3)
-
-    def AppelleFonction4(self):
-        self.AppelleFonction(4)
-
-
-    def AppelleFonction(self,numero,nodeTraite=None):
+            conditionSalome=commande[3]
+            if (self.appliEficas.salome == 0 and conditionSalome == True): return
+            label=commande[1]
+            tip=commande[5]
+            self.action=QAction(label,self.tree)
+            self.action.setStatusTip(tip)
+            if numero==4: self.action.triggered.connect(self.appelleFonction4)
+            if numero==3: self.action.triggered.connect(self.appelleFonction3); numero=4
+            if numero==2: self.action.triggered.connect(self.appelleFonction2); numero=3
+            if numero==1: self.action.triggered.connect(self.appelleFonction1); numero=2
+            if numero==0: self.action.triggered.connect(self.appelleFonction0); numero=1
+            self.menu.addAction(self.action)
+
+
+    def appelleFonction0(self):
+        self.appelleFonction(0)
+
+    def appelleFonction1(self):
+        self.appelleFonction(1)
+
+    def appelleFonction2(self):
+        self.appelleFonction(2)
+
+    def appelleFonction3(self):
+        self.appelleFonction(3)
+
+    def appelleFonction4(self):
+        self.appelleFonction(4)
+
+    def appelleFonction(self,numero,nodeTraite=None):
         if nodeTraite==None : nodeTraite=self.tree.currentItem()
-        nomCmd=nodeTraite.item.get_nom()
+        nomCmd=nodeTraite.item.getNom()
         if hasattr(self.appliEficas, 'mesScripts'):
-            if self.editor.code in  self.editor.appliEficas.mesScripts.keys() :
-               self.dict_commandes_mesScripts=self.appliEficas.mesScripts[self.editor.code].dict_commandes
+            if self.editor.code in  self.editor.appliEficas.mesScripts :
+                self.dict_commandes_mesScripts=self.appliEficas.mesScripts[self.editor.code].dict_commandes
             else : return
         listeCommandes=self.dict_commandes_mesScripts[nomCmd]
         commande=listeCommandes[numero]
         conditionValid=commande[4]
-        if (self.tree.currentItem().item.isvalid() == 0 and conditionValid == True):
-                 QMessageBox.warning( None, 
-                             tr("item invalide"),
-                             tr("l item doit etre valide"),)
-                return
+
+
+        if (nodeTraite.item.isValid() == 0 and conditionValid == True):
+            QMessageBox.warning( None,
+                        tr("item invalide"),
+                        tr("l item doit etre valide"),)
+            return
         fonction=commande[0]
         listenomparam=commande[2]
         listeparam=[]
         for p in listenomparam:
             if hasattr(nodeTraite,p):
-               listeparam.append(getattr(nodeTraite,p))
+                listeparam.append(getattr(nodeTraite,p))
             if p=="self" : listeparam.append(self)
+
         try :
-        #if 1 :
-           fonction(listeparam,self.appliEficas)
+            res, commentaire= fonction(listeparam)
+            if not res :
+                QMessageBox.warning( None,
+                            tr("echec de la fonction"),
+                            tr(commentaire),)
+                return
         except :
-           fonction(listeparam)
-        
+            pass
 
 
-    def createActionsQT4(self):
-        self.CommApres = QAction(tr('apres'),self.tree)
-        self.tree.connect(self.CommApres,SIGNAL("triggered()"),self.addCommApres)
-        self.CommApres.setStatusTip(tr("Insere un commentaire apres la commande "))
-        self.CommAvant = QAction(tr('avant'),self.tree)
-        self.tree.connect(self.CommAvant,SIGNAL("triggered()"),self.addCommAvant)
-        self.CommAvant.setStatusTip(tr("Insere un commentaire avant la commande "))
 
-        self.ParamApres = QAction(tr('apres'),self.tree)
-        self.tree.connect(self.ParamApres,SIGNAL("triggered()"),self.addParametersApres)
-        self.ParamApres.setStatusTip(tr("Insere un parametre apres la commande "))
-        self.ParamAvant = QAction(tr('avant'),self.tree)
-        self.tree.connect(self.ParamAvant,SIGNAL("triggered()"),self.addParametersAvant)
-        self.ParamAvant.setStatusTip(tr("Insere un parametre avant la commande "))
-
-        self.Supprime = QAction(tr('Supprimer'),self.tree)
-        self.tree.connect(self.Supprime,SIGNAL("triggered()"),self.supprimeNoeud)
-        self.Supprime.setStatusTip(tr("supprime le mot clef "))
-        self.Documentation = QAction(tr('Documentation'),self.tree)
-        self.tree.connect(self.Documentation,SIGNAL("triggered()"),self.viewDoc)
 
     def createActions(self):
         self.CommApres = QAction(tr('apres'),self.tree)
@@ -217,34 +175,34 @@ class PopUpMenuNodeMinimal :
 
     def viewDoc(self):
         self.node=self.tree.currentItem()
-        cle_doc = self.node.item.get_docu()
+        cle_doc = self.node.item.getDocu()
         if cle_doc == None :
             QMessageBox.information( self.editor,tr( "Documentation Vide"), \
                                     tr("Aucune documentation n'est associee a ce noeud"))
             return
-        commande = self.editor.appliEficas.CONFIGURATION.exec_acrobat
+        commande = self.editor.appliEficas.maConfiguration.exec_acrobat
         try :
             f=open(commande,"rb")
         except :
-             texte=tr("impossible de trouver la commande  ") + commande
-             QMessageBox.information( self.editor, tr("Lecteur PDF"), texte)
-             return
+            texte=tr("impossible de trouver la commande  ") + commande
+            QMessageBox.information( self.editor, tr("Lecteur PDF"), texte)
+            return
         import os
         if cle_doc.startswith('http:'):
-           fichier = cle_doc
+            fichier = cle_doc
         else :
-            fichier = os.path.abspath(os.path.join(self.editor.CONFIGURATION.path_doc,
+            fichier = os.path.abspath(os.path.join(self.editor.maConfiguration.path_doc,
                                        cle_doc))
             try :
-               f=open(fichier,"rb")
+                f=open(fichier,"rb")
             except :
-               texte=tr("impossible d'ouvrir ") + fichier
-               QMessageBox.information( self.editor, tr("Documentation Vide"), texte)
-               return
+                texte=tr("impossible d'ouvrir ") + fichier
+                QMessageBox.information( self.editor, tr("Documentation Vide"), texte)
+                return
+
 
-       
         if os.name == 'nt':
-           os.spawnv(os.P_NOWAIT,commande,(commande,fichier,))
+            os.spawnv(os.P_NOWAIT,commande,(commande,fichier,))
         elif os.name == 'posix':
             script ="#!/usr/bin/sh \n%s %s&" %(commande,fichier)
             pid = os.system(script)
@@ -265,6 +223,10 @@ class PopUpMenuNodeMinimal :
         item= self.tree.currentItem()
         item.addComment(False)
 
+    def deplieCeNiveau(self):
+        item= self.tree.currentItem()
+        item.deplieCeNiveau()
+
 #--------------------------------------------#
 class PopUpMenuNodePartiel (PopUpMenuNodeMinimal):
 #---------------------------------------------#
@@ -275,7 +237,7 @@ class PopUpMenuNodePartiel (PopUpMenuNodeMinimal):
         self.commentMenu.addAction(self.CommApres)
         self.commentMenu.addAction(self.CommAvant)
         #ss-menu Parameters:
-        self.paramMenu =self.menu.addMenu(tr('Parametre')) 
+        self.paramMenu =self.menu.addMenu(tr('Parametre'))
         self.paramMenu.addAction(self.ParamApres)
         self.paramMenu.addAction(self.ParamAvant)
         self.menu.addAction(self.Documentation)
@@ -289,12 +251,12 @@ class PopUpMenuNode(PopUpMenuNodePartiel) :
     def createPopUpMenu(self):
         PopUpMenuNodePartiel.createPopUpMenu(self)
         self.Commente = QAction(tr('ce noeud'),self.tree)
-        self.Commente.triggered.connect(self.Commenter)
+        self.Commente.triggered.connect(self.commenter)
         self.Commente.setStatusTip(tr("commente le noeud "))
         self.commentMenu.addAction(self.Commente)
         self.menu.removeAction(self.Supprime)
         self.menu.addAction(self.Supprime)
 
-    def Commenter(self):
+    def commenter(self):
         item= self.tree.currentItem()
         item.commentIt()