X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=Editeur%2FObjecttreeitem.py;h=8b6fbbd6835e944fa51ceb157ef6940b397aa041;hb=HEAD;hp=21c2408de15de784e23dc7f1b86999bb6063c242;hpb=5a28801efd8fd7e6487d1957dabac40b1f932cb4;p=tools%2Feficas.git diff --git a/Editeur/Objecttreeitem.py b/Editeur/Objecttreeitem.py index 21c2408d..8b6fbbd6 100644 --- a/Editeur/Objecttreeitem.py +++ b/Editeur/Objecttreeitem.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2007-2017 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 @@ -23,13 +23,11 @@ from __future__ import absolute_import from __future__ import print_function try : - from builtins import str - from builtins import range - from builtins import object + from builtins import str + from builtins import object except : - pass + pass import types,os,glob,imp,sys -from six.moves.reprlib import Repr from copy import copy,deepcopy # import du chargeur de composants @@ -37,8 +35,11 @@ from .comploader import makeObjecttreeitem from Ihm import CONNECTOR from Extensions.i18n import tr from Extensions.eficas_exception import EficasException -from six.moves import range +try : + from repr import Repr +except : + from reprlib import Repr myrepr = Repr() myrepr.maxstring = 100 myrepr.maxother = 100 @@ -143,9 +144,9 @@ class Delegate(object): class ObjectTreeItem(TreeItem,Delegate): - def __init__(self, appli, labeltext, object, setFunction=None): + def __init__(self, appliEficas, labeltext, object, setFunction=None): self.labeltext = labeltext - self.appli = appli + self.appliEficas = appliEficas # L'objet delegue est stocke dans l'attribut object # L'objet associe a l'item est stocke dans l'attribut _object # Il peut etre obtenu par appel a la methode getObject @@ -168,7 +169,7 @@ class ObjectTreeItem(TreeItem,Delegate): return self._object def connect(self,channel,callable,args): - """ Connecte la fonction callable (avec arguments args) a l'item self sur le + """ Connecte la fonction callable (avec arguments args) a l'item self sur le canal channel """ #print self,channel,callable,args @@ -180,18 +181,18 @@ class ObjectTreeItem(TreeItem,Delegate): Cree un item copie de self """ object = self._object.copy() - appli = copy(self.appli) + appliEficas = copy(self.appliEficas) labeltext = copy(self.labeltext) fonction = deepcopy(self.setFunction) - item = makeObjecttreeitem(appli,labeltext,object,fonction) + item = makeObjecttreeitem(appliEficas,labeltext,object,fonction) return item - + def isActif(self): if hasattr(self.object,'actif'): return self.object.actif else: return 1 - + def update(self,item): """ Met a jour l'item courant a partir d'un autre item passe en argument @@ -206,30 +207,30 @@ class ObjectTreeItem(TreeItem,Delegate): - la couleur du texte """ # None --> fonte et couleur par defaut - return self.labeltext,None,None + return tr(self.labeltext),None,None def getNature(self) : - """ + """ Retourne la nature de l'item et de l'objet - """ + """ return self.object.nature def getRegles(self): """ retourne les regles de l'objet pointe par self """ return self.object.getRegles() - + def getListeMcPresents(self): """ Retourne la liste des mots-cles fils de l'objet pointe par self """ return self.object.listeMcPresents() - + def getVal(self): """ Retourne le nom de la valeur de l'objet pointe par self dans le cas ou celle-ci est un objet (ASSD) """ return self.object.getVal() - + def get_definition(self): - """ - Retourne l'objet definition de l'objet pointe par self + """ + Retourne l'objet definition de l'objet pointe par self """ return self.object.definition @@ -248,7 +249,7 @@ class ObjectTreeItem(TreeItem,Delegate): d'une liste du type :ETAPE + MCFACT ou MCBLOC + ... """ return self.object.getListeMcOrdonneeBrute(liste,dico) - + def getGenealogie(self): """ Retourne la liste des noms des ascendants (noms de MCSIMP,MCFACT,MCBLOC ou ETAPE) @@ -278,7 +279,7 @@ class ObjectTreeItem(TreeItem,Delegate): l.append(nom) # l contient les anciens mots-cles + le nouveau dans l'ordre return l.index(nom_fils) - + def appendChild(self,name,pos=None): """ Permet d'ajouter un item fils a self @@ -288,12 +289,14 @@ class ObjectTreeItem(TreeItem,Delegate): elif pos == 'last': index = len(self.listeMcPresents()) elif type(pos) == int : - # la position est fixee + # la position est fixee index = pos - elif type(pos) == types.InstanceType: + #elif type(pos) == types.InstanceType: + elif type(pos) == object : # pos est un item. Il faut inserer name apres pos index = self.getIndex(pos) +1 - elif type(name) == types.InstanceType: + #elif type(name) == types.InstanceType: + elif type(name) == object : index = self.getIndexChild(name.nom) else: index = self.getIndexChild(name) @@ -317,7 +320,7 @@ class ObjectTreeItem(TreeItem,Delegate): def getCopieObjet(self): """ Retourne une copie de l'objet pointe par self """ return self.object.copy() - + def getPosition(self): """ Retourne la valeur de l'attribut position de l'objet pointe par self """ definition = self.get_definition() @@ -325,7 +328,7 @@ class ObjectTreeItem(TreeItem,Delegate): return getattr(definition,'position') except AttributeError: return 'local' - + def getNom(self): """ Retourne le nom de l'objet pointe par self """ return self.object.nom @@ -333,7 +336,7 @@ class ObjectTreeItem(TreeItem,Delegate): def getJdc(self): """ Retourne le jdc auquel appartient l'objet pointe par self """ return self.object.jdc - + def getValeur(self): """ Retourne la valeur de l'objet pointe par self """ return self.object.valeur @@ -351,7 +354,7 @@ class ObjectTreeItem(TreeItem,Delegate): raise EficasException("MESSAGE AU DEVELOPPEUR : il faut \ surcharger la methode getObjetCommentarise() \ pour la classe %s", self.__class__.__name__) - + def isValid(self): """ Retourne 1 si l'objet pointe par self est valide, 0 sinon""" return self.object.isValid() @@ -362,7 +365,7 @@ class ObjectTreeItem(TreeItem,Delegate): Par defaut retourne 0 """ return 0 - + def getMcPresents(self): """ Retourne le dictionnaire des mots-cles presents de l'objet pointe par self """ return self.object.dictMcPresents() @@ -384,10 +387,10 @@ class ObjectTreeItem(TreeItem,Delegate): def setValeur(self,new_valeur): """ Remplace la valeur de l'objet pointe par self par new_valeur """ return self.object.setValeur(new_valeur) - + def getText(self): return myrepr.repr(self.object) - + def getIconName(self): if not self.isExpandable(): return "python" @@ -401,14 +404,10 @@ class ObjectTreeItem(TreeItem,Delegate): self.setFunction(value) except: pass -# Modif de ma part CCar : je ne comprend pas a quoi ca sert -# ca parait meme incorrect - # else: - # self.object = value def isExpandable(self): return 1 - + def getSubList(self): keys = dir(self.object) sublist = [] @@ -418,7 +417,7 @@ class ObjectTreeItem(TreeItem,Delegate): except AttributeError: continue item = makeObjecttreeitem( - self.appli, + self.appliEficas, str(key) + " =", value, lambda value, key=key, object=self.object: @@ -432,12 +431,12 @@ class ObjectTreeItem(TreeItem,Delegate): (ex: macros POURSUITE et INCLUDE de Code_Aster), 0 SINON """ # return self.object.definition.fichier_ini - def makeObjecttreeitem(self,appli,labeltext, object, setFunction=None): + def makeObjecttreeitem(self,appliEficas,labeltext, object, setFunction=None): """ Cette methode, globale pour les objets de type item, permet de construire et de retourner un objet de type item associe a l'object passe en argument. """ - return makeObjecttreeitem(appli,labeltext,object,setFunction) + return makeObjecttreeitem(appliEficas,labeltext,object,setFunction) #def __del__(self): # print "__del__",self @@ -452,17 +451,17 @@ class SequenceTreeItem(ObjectTreeItem): def __len__(self) : return len(self._object) - + def keys(self): return list(range(len(self._object))) def getIconName(self): if self._object.isValid(): - return "ast-green-los" + return "ast-green-los" elif self._object.isOblig(): - return "ast-red-los" + return "ast-red-los" else: - return "ast-yel-los" + return "ast-yel-los" def ajoutPossible(self): return self._object.ajoutPossible() @@ -472,11 +471,11 @@ class SequenceTreeItem(ObjectTreeItem): return self._object.getIndex(child.getObject()) def getText(self): - return " " + return " " def addItem(self,obj,pos): self._object.insert(pos,obj) - item = self.makeObjecttreeitem(self.appli, obj.nom + ":", obj) + item = self.makeObjecttreeitem(self.appliEficas, obj.nom + ":", obj) return item def suppItem(self,item): @@ -484,7 +483,7 @@ class SequenceTreeItem(ObjectTreeItem): self._object.remove(item.getObject()) # la liste peut etre retournee vide ! message = "Mot-clef " + item.getObject().nom + " supprime" - self.appli.afficheInfos(message) + self.appliEficas.afficheInfos(message) return 1 except: return 0 @@ -496,18 +495,18 @@ class SequenceTreeItem(ObjectTreeItem): self.sublist=[] while(1): - old_obj=obj=None - for item in isublist: - old_obj=item.getObject() - if old_obj in liste:break - - for obj in iliste: - if obj is old_obj:break - # nouvel objet : on cree un nouvel item - def setFunction(value, object=obj): - object=value - it = self.makeObjecttreeitem(self.appli, obj.nom + " : ", obj, setFunction) - self.sublist.append(it) - if old_obj is None and obj is None:break - if old_obj is obj: self.sublist.append(item) + old_obj=obj=None + for item in isublist: + old_obj=item.getObject() + if old_obj in liste:break + + for obj in iliste: + if obj is old_obj:break + # nouvel objet : on cree un nouvel item + def setFunction(value, object=obj): + object=value + it = self.makeObjecttreeitem(self.appliEficas, obj.nom + " : ", obj, setFunction) + self.sublist.append(it) + if old_obj is None and obj is None:break + if old_obj is obj: self.sublist.append(item) return self.sublist