Salome HOME
Merge V9 dans Master
[tools/eficas.git] / InterfaceQT4 / compofact.py
index 0e03618aae3d1c35d15310cddc59f63de2c5b4ae..8a9d66fbb5ca01237a6d6650abb814060fa72c63 100644 (file)
@@ -1,41 +1,57 @@
 # -*- coding: utf-8 -*-
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
+# Copyright (C) 2007-2017   EDF R&D
 #
-# THIS PROGRAM 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
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+# 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.
 #
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# 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
 #
-# ======================================================================
 
-from PyQt4 import *
-from PyQt4.QtGui  import *
-from PyQt4.QtCore import *
-import browser
-import typeNode
+from __future__ import absolute_import
+from InterfaceQT4 import browser
+from InterfaceQT4 import typeNode
+from Extensions.i18n import tr
 
 
 from Editeur import Objecttreeitem
+import six
+import traceback
 
 
 class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel):
-    def getPanel(self):
-        """
-        """
-        from monMCFactPanel import MonMCFactPanel
-        return MonMCFactPanel(self,parent=self.editor)
-        
+
+    def getPanelGroupe(self,parentQt,commande,insertIn=-1):
+        maDefinition=self.item.get_definition()
+        monObjet=self.item.object
+        monNom=self.item.nom
+        maCommande=commande
+        if hasattr(parentQt,'niveau'): self.niveau=parentQt.niveau+1
+        else : self.niveau=1
+        #if  hasattr(self,'plie') :print self.item.nom, self.plie
+        #if maDefinition.fenetreIhm == 'Tableau':
+        #   from InterfaceQt4.monWidgetFact import MonWidgetFactTableau
+        #   widget=MonWidgetFactTableau(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
+        #elif  hasattr(self,'plie') and self.plie==True : 
+        if  hasattr(self,'plie') and self.plie==True : 
+           from InterfaceQT4.monWidgetFactPlie import MonWidgetFactPlie
+           widget=MonWidgetFactPlie(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande,insertIn)
+        else:
+           from InterfaceQT4.monWidgetFact import MonWidgetFact
+           widget=MonWidgetFact(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande,insertIn)
+        return widget
+
+
     def createPopUpMenu(self):
         typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self)
 
@@ -43,44 +59,46 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel):
 class FACTTreeItem(Objecttreeitem.ObjectTreeItem):
   itemNode=Node
   
-  def IsExpandable(self):
+  def isExpandable(self):
     return 1
 
-  def GetText(self):
+  def getText(self):
       return  ''
 
-  def GetLabelText(self):
+  def getLabelText(self):
       """ Retourne 3 valeurs :
-        - le texte à afficher dans le noeud représentant l'item
+        - le texte à afficher dans le noeud representant l'item
         - la fonte dans laquelle afficher ce texte
         - la couleur du texte
       """
-      # None --> fonte et couleur par défaut
-      return self.object.getlabeltext(),None,None
+      # None --> fonte et couleur par defaut
+      if not(hasattr(self.object,'getLabelText')): return self.object.nom,None,None
+      return self.object.getLabelText(),None,None
 
-  def isvalid(self):
-    return self.object.isvalid()
+  def isValid(self):
+    return self.object.isValid()
 
-  def iscopiable(self):
+  def isCopiable(self):
     return 1
 
-  def GetIconName(self):
-    if self.object.isvalid():
+  def getIconName(self):
+    if self.object.isValid():
       return "ast-green-los"
-    elif self.object.isoblig():
+    elif self.object.isOblig():
       return "ast-red-los"
     else:
       return "ast-yel-los"
 
-  def keys(self):
-    keys=self.object.mc_dict.keys()
-    return keys
+  #PNPN ????
+  #def keys(self):
+  #  keys=self.object.mc_dict
+  #  return keys
 
-  def GetSubList(self):
+  def getSubList(self):
       """
          Reactualise la liste des items fils stockes dans self.sublist
       """
-      liste=self.object.mc_liste
+      liste=self.object.mcListe
       sublist=[None]*len(liste)
       # suppression des items lies aux objets disparus
       for item in self.sublist:
@@ -95,20 +113,20 @@ class FACTTreeItem(Objecttreeitem.ObjectTreeItem):
       for obj in liste:
          if sublist[pos] is None:
             # nouvel objet : on cree un nouvel item
-            def setfunction(value, object=obj):
+            def setFunction(value, object=obj):
                 object.setval(value)
-            item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, setfunction)
+            item = self.makeObjecttreeitem(self.appli, obj.nom + " : ", obj, setFunction)
             sublist[pos]=item
          pos=pos+1
 
       self.sublist=sublist
       return self.sublist
 
-  def additem(self,name,pos):
-    objet = self.object.addentite(name,pos)
+  def addItem(self,name,pos):
+    objet = self.object.addEntite(name,pos)
     return objet
 
-  def suppitem(self,item) :
+  def suppItem(self,item) :
       """ 
          Cette methode a pour fonction de supprimer l'item passee en argument
          des fils de l'item FACT qui est son pere
@@ -116,17 +134,14 @@ class FACTTreeItem(Objecttreeitem.ObjectTreeItem):
            - item.getObject() = MCSIMP ou MCBLOC 
       """
       itemobject=item.getObject()
-      if itemobject.isoblig() :
-         self.appli.affiche_infos('Impossible de supprimer un mot-clé obligatoire ',Qt.red)
-         return 0
-
-      if self.object.suppentite(itemobject):
-         message = "Mot-clé " + itemobject.nom + " supprimé"
-         self.appli.affiche_infos(message)
-         return 1
+      if itemobject.isOblig() :
+         return (0, tr('Impossible de supprimer un mot-cle obligatoire '))
+
+      if self.object.suppEntite(itemobject):
+         message = tr("Mot-cle %s supprime")+ six.text_type(itemobject.nom)
+         return (1, message)
       else:
-         self.appli.affiche_infos('Pb interne : impossible de supprimer ce mot-clé',Qt.red)
-         return 0
+         return (0,tr('Pb interne : impossible de supprimer ce mot-cle'))
 
 import Accas
 objet = Accas.MCFACT