# -*- coding: utf-8 -*-
-
+# Copyright (C) 2007-2017 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
+#
+
+from __future__ import absolute_import
import types
import traceback
-import compofact
-import browser
-import typeNode
+from . import compofact
+from . import browser
+from . import typeNode
+from Extensions.i18n import tr
from Editeur import Objecttreeitem
from Noyau.N_OBJECT import ErrorObj
-#import compoerror
class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):
- def getPanel(self):
- """
- """
- if self.item.isMCList() :
- if self.item.ajout_possible():
- from monMCListAjoutPanel import MonMCListAjoutPanel
- return MonMCListAjoutPanel(self,parent=self.editor)
- else :
- print "MCList"
- elif self.item.isMCFact() :
- from monMCFactPanel import MonMCFactPanel
- return MonMCFactPanel(self,parent=self.editor)
- else :
- print "MCList"
def createPopUpMenu(self):
typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self)
+ 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
+ # attention si l objet est une mclist on utilise bloc
+ if not (monObjet.isMCList()) :
+ 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)
+ else :
+ from InterfaceQT4.monWidgetBloc import MonWidgetBloc
+ widget=MonWidgetBloc(self,self.editor,parentQt,maDefinition,monObjet,self.niveau,maCommande)
+ return widget
- def doPaste(self,node_selected):
- objet_a_copier = self.item.get_copie_objet()
- child=node_selected.doPasteMCF(objet_a_copier)
- #print "doPaste",child
- return child
-
- def doPasteMCF(self,objet_a_copier):
- child=None
- # le noeud courant est une MCList
- if self.item.isMCList() :
- child = self.append_child(objet_a_copier,pos='first',retour='oui')
- # le noeud courant est un MCFACT
- elif self.item.isMCFact() :
- # le noeud selectionne est un MCFACT dans une MCList
- if self.parent.item.isMCList():
- child = self.parent.append_child(objet_a_copier,
- pos=self.item,
- retour='oui')
- # le noeud MCFACT selectionne n'est pas dans une MCList
- else:
- child = self.parent.append_child(objet_a_copier,retour='oui')
+ def doPaste(self,node_selected,pos):
+ objet_a_copier = self.item.getCopieObjet()
+ # before est un effet de bord heureux sur l index
+ child=self.appendBrother(objet_a_copier,'before')
+ if self.editor.fenetreCentraleAffichee : self.editor.fenetreCentraleAffichee.node.affichePanneau()
+ self.update_NodeLabelInBlack()
+ self.parent().buildChildren()
+ return child
- else:
- QMessageBox.information( self, "Copie impossible",
- "Vous ne pouvez coller le mot-clé facteur copié à ce niveau de l'arborescence !")
- self.editor.affiche_infos("Copie refusée")
- return child
class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem):
""" La classe MCListTreeItem joue le role d'un adaptateur pour les objets
du noyau Accas instances de la classe MCLIST.
- Elle adapte ces objets pour leur permettre d'etre intégrés en tant que
+ Elle adapte ces objets pour leur permettre d'etre integres en tant que
noeuds dans un arbre graphique (voir treewidget.py et ObjectTreeItem.py).
- Cette classe délègue les appels de méthode et les accès
- aux attributs à l'objet du noyau soit manuellement soit
+ Cette classe delegue les appels de methode et les acces
+ aux attributs a l'objet du noyau soit manuellement soit
automatiquement (voir classe Delegate et attribut object).
"""
itemNode=Node
def updateDelegate(self):
if len(self._object) > 1:
- self.setdelegate(self._object)
+ self.setDelegate(self._object)
else:
- self.setdelegate(self._object.data[0])
+ self.setDelegate(self._object.data[0])
def panel(self,jdcdisplay,pane,node):
""" Retourne une instance de l'objet panneau associe a l'item (self)
- Si la liste ne contient qu'un mot clé facteur, on utilise le panneau
+ Si la liste ne contient qu'un mot cle facteur, on utilise le panneau
FACTPanel.
Si la liste est plus longue on utilise le panneau MCLISTPanel.
"""
else:
return compofact.FACTPanel(jdcdisplay,pane,node)
- def IsExpandable(self):
+ def isExpandable(self):
if len(self._object) > 1:
- return Objecttreeitem.SequenceTreeItem.IsExpandable(self)
+ return Objecttreeitem.SequenceTreeItem.isExpandable(self)
else:
- return compofact.FACTTreeItem.IsExpandable(self)
+ return compofact.FACTTreeItem.isExpandable(self)
- def GetSubList(self):
+ def getSubList(self):
self.updateDelegate()
if len(self._object) <= 1:
self._object.data[0].alt_parent=self._object
- return compofact.FACTTreeItem.GetSubList(self)
+ return compofact.FACTTreeItem.getSubList(self)
liste=self._object.data
sublist=[None]*len(liste)
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=value
- item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, setfunction)
+ item = self.makeObjecttreeitem(self.appli, obj.nom + " : ", obj, setFunction)
sublist[pos]=item
#Attention : on ajoute une information supplementaire pour l'actualisation de
# la validite. L'attribut parent d'un MCFACT pointe sur le parent de la MCLISTE
self.sublist=sublist
return self.sublist
- 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 get_docu(self):
- """ Retourne la clef de doc de l'objet pointé par self """
- return self.object.get_docu()
+ def getDocu(self):
+ """ Retourne la clef de doc de l'objet pointe par self """
+ return self.object.getDocu()
- def iscopiable(self):
+ def isCopiable(self):
if len(self._object) > 1:
- return Objecttreeitem.SequenceTreeItem.iscopiable(self)
+ return Objecttreeitem.SequenceTreeItem.isCopiable(self)
else:
- return compofact.FACTTreeItem.iscopiable(self)
+ return compofact.FACTTreeItem.isCopiable(self)
def isMCFact(self):
"""
- Retourne 1 si l'objet pointé par self est un MCFact, 0 sinon
+ Retourne 1 si l'objet pointe par self est un MCFact, 0 sinon
"""
return len(self._object) <= 1
def isMCList(self):
"""
- Retourne 1 si l'objet pointé par self est une MCList, 0 sinon
+ Retourne 1 si l'objet pointe par self est une MCList, 0 sinon
"""
return len(self._object) > 1
- def get_copie_objet(self):
+ def getCopieObjet(self):
return self._object.data[0].copy()
- def additem(self,obj,pos):
- #print "compomclist.additem",obj,pos
+ def addItem(self,obj,pos):
+ #print "compomclist.addItem",obj,pos
if len(self._object) <= 1:
- return compofact.FACTTreeItem.additem(self,obj,pos)
+ return compofact.FACTTreeItem.addItem(self,obj,pos)
- o= self.object.addentite(obj,pos)
+ o= self.object.addEntite(obj,pos)
return o
- def suppitem(self,item):
+ def suppItem(self,item):
"""
Retire un objet MCFACT de la MCList (self.object)
"""
- #print "compomclist.suppitem",item
+ #print "compomclist.suppItem",item
obj=item.getObject()
if len(self._object) <= 1:
- return compofact.FACTTreeItem.suppitem(self,item)
+ return compofact.FACTTreeItem.suppItem(self,item)
- if self.object.suppentite(obj):
+ if self.object.suppEntite(obj):
if len(self._object) == 1: self.updateDelegate()
- message = "Mot-clef " + obj.nom + " supprimé"
- self.appli.affiche_infos(message)
- return 1
+ message = "Mot-clef " + obj.nom + " supprime"
+ return (1,message)
else:
- self.appli.affiche_infos('Impossible de supprimer ce mot-clef')
- return 0
+ return (0,tr('Impossible de supprimer ce mot-clef'))
import Accas
objet = Accas.MCList
-def treeitem(appli,labeltext,object,setfunction):
+def treeitem(appli,labeltext,object,setFunction):
""" Factory qui produit un objet treeitem adapte a un objet
Accas.MCList (attribut objet de ce module)
"""
- return MCListTreeItem(appli,labeltext,object,setfunction)
+ return MCListTreeItem(appli,labeltext,object,setFunction)