+# -*- coding: utf-8 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
from repr import Repr
from copy import copy,deepcopy
+# import du chargeur de composants
+from comploader import gettreeitem,make_objecttreeitem
+import treewidget
+
myrepr = Repr()
myrepr.maxstring = 100
myrepr.maxother = 100
is used.
"""
+ # itemNode est une factory qui doit retourner un objet de la classe Node
+ # ou dérivé de cette classe.
+ # Le widget arbre utilisera cet objet comme noeud associé au tree item.
+ # Par defaut, utilise la classe Node de base
+ # La signature de la factory est la suivante :
+ # itemNode(treeOrNode,item,command,rmenu)
+ # ou treeOrNode est le noeud parent, item est l'item associé
+ # command est une fonction python appelée sur sélection graphique
+ # du noeud et rmenu est une fonction python appelée sur click droit sur le noeud
+ itemNode=treewidget.Node
def __init__(self):
"""Constructor. Do whatever you need to do."""
self.labeltext = labeltext
self.appli = appli
Delegate.__init__(self,object)
- #self.object = object
+ # On cache l'objet initial (pour destruction eventuelle
+ # ultérieure)
+ self._object = object
self.setfunction = setfunction
self.expandable = 1
self.init()
def init(self):
return
+ def getObject(self):
+ return self._object
+
def copy(self):
"""
Crée un item copie de self
"""
- object = self.object.copy()
+ object = self._object.copy()
appli = copy(self.appli)
labeltext = copy(self.labeltext)
fonction = deepcopy(self.setfunction)
# None --> fonte et couleur par défaut
return self.labeltext,None,None
- #def get_attribut(self,nom_attribut) :
- # """
- # Retourne l'attribut de nom nom_attribut de l'objet sur lequel
- # pointe self s'il existe, None sinon
- # """
- # return self.object.get_attribut(nom_attribut)
-
def get_nature(self) :
"""
Retourne la nature de l'item et de l'objet
def get_jdc(self):
""" Retourne le jdc auquel appartient l'objet pointé par self """
return self.object.jdc
- #return self.object.get_attribut('jdc')
def get_valeur(self):
""" Retourne la valeur de l'objet pointé par self """
représentatif de self.object
--> à surcharger par les différents items
"""
+ raise Exception("MESSAGE AU DEVELOPPEUR : il faut surcharger la methode get_objet_commentarise() pour la classe "+self.__class__.__name__)
pass
def isvalid(self):
"""
return 0
- def isMCList(self):
- """ Retourne 1 si l'objet pointé par self est une MClist, 0 sinon"""
- #if isinstance(self.object,MCList) :
- if self.object.__class__.__name__ == 'MCList':
- return 1
- else :
- return 0
-
- def isCommande(self):
- """
- Retourne 1 si l'objet pointé par self est une Commande, 0 sinon
- """
- return 0
-
- def isJdc(self):
- """
- Retourne 1 si l'objet pointé par self est un JDC, 0 sinon
- """
- return 0
-
- def isMCFact(self):
- """
- Retourne 1 si l'objet pointé par self est un MCFact, 0 sinon
- """
- return 0
-
def get_mc_presents(self):
""" Retourne le dictionnaire des mots-clés présents de l'objet pointé par self """
return self.object.dict_mc_presents()
""" Retourne la clé de doc de l'objet pointé par self """
return self.object.get_docu()
- def set_valeur(self,new_valeur,evaluation='oui'):
+ def set_valeur(self,new_valeur):
""" Remplace la valeur de l'objet pointé par self par new_valeur """
- return self.object.set_valeur(new_valeur,evaluation=evaluation)
+ return self.object.set_valeur(new_valeur)
def GetText(self):
return myrepr.repr(self.object)
class SequenceTreeItem(ObjectTreeItem):
def IsExpandable(self):
- return len(self.object) > 0
+ return len(self._object) > 0
def __len__(self) :
- return len(self.object)
+ return len(self._object)
def keys(self):
- return range(len(self.object))
+ return range(len(self._object))
def GetIconName(self):
- if self.object.isvalid():
+ 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 ajout_possible(self):
- return self.object.ajout_possible()
+ return self._object.ajout_possible()
def get_index(self,child):
""" Retourne le numéro de child dans la liste des enfants de self """
- return self.object.get_index(child.object)
+ return self._object.get_index(child.getObject())
def GetText(self):
return " "
def additem(self,obj,pos):
- # XXX Passer par addentite de MCList ???
- self.object.insert(pos,obj)
+ self._object.insert(pos,obj)
item = self.make_objecttreeitem(self.appli, obj.nom + ":", obj)
return item
def suppitem(self,item):
- if not self.object.isMCList():return 1
try :
- self.object.remove(item.object)
+ self._object.remove(item.getObject())
# la liste peut être retournée vide !
- message = "Mot-clé " + item.object.nom + " supprimé"
+ message = "Mot-clé " + item.getObject().nom + " supprimé"
self.appli.affiche_infos(message)
return 1
except:
def GetSubList(self):
sublist = []
- for obj in self.object.data:
+ for obj in self._object.data:
def setfunction(value, object=obj):
object = value
item = make_objecttreeitem(self.appli, obj.nom + ":", obj, setfunction)
sublist.append(item)
return sublist
-
-def gettreeitem(object):
- """
- Cette fonction retourne la classe item associée à l'objet object.
- Cette classe item dépend bien sûr de la nature de object, d'où
- l'interrogation du dictionnaire composants
- """
- if type(object) == types.InstanceType:
- # On cherche d abord dans les composants (plugins)
- try:
- return composants[object.__class__]
- except:
- # On cherche une eventuelle classe heritee (aleatoire car sans ordre)
- for e in composants.keys():
- if isinstance(object,e):return composants[e]
- # On n'a rien trouve dans les composants
- return ObjectTreeItem
-
-def charger_composants():
- """
- Cette fonction a pour but de charger tous les modules composants graphiques
- (fichiers compo*.py dans le même répertoire que ce module )
- et de remplir le dictionnaire composants utilisé par make_objecttreeitem
- """
- composants={}
- repertoire=os.path.dirname(__file__)
- listfich=glob.glob(os.path.join(repertoire, "compo*.py"))
- for fichier in listfich:
- m= os.path.basename(fichier)[:-3]
- module=__import__(m,globals(),locals())
- composants[module.objet]=module.treeitem
- return composants
-
-def make_objecttreeitem(appli,labeltext, object, setfunction=None):
- """
- Cette fonction permet de construire et de retourner un objet
- de type item associé à l'object passé en argument.
- """
- c = gettreeitem(object)
- return c(appli,labeltext, object, setfunction)
-
-# Dictionnaire {object : item} permettant d'associer un item à un object
-# Ce dictionnaire est renseigné par la méthode charger_composants
-composants = charger_composants()
-