X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=Editeur%2Fcomploader.py;h=9c823dfdfa1fd28944f68095997af456a5057828;hb=707191267222e680b5ace6edf6e4afa00acdb2d3;hp=c5a7c8466100efeaa141041f24f5b8bc7198f992;hpb=2446a0c7137fa3418368ec577194a6d00e54ed65;p=tools%2Feficas.git diff --git a/Editeur/comploader.py b/Editeur/comploader.py index c5a7c846..9c823dfd 100644 --- a/Editeur/comploader.py +++ b/Editeur/comploader.py @@ -1,23 +1,22 @@ # -*- 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 # -# ====================================================================== """ Module de chargement des composants et de mapping des objets du noyau Accas vers les items d'EFICAS @@ -29,33 +28,41 @@ - gettreeitem(object) -> type d'item : fonction qui retourne un type d'item correspondant au type de l'objet noyau fourni. - make_objecttreeitem(appli,labeltext, object, setfunction=None) -> item : fonction qui retourne un item - correspondant à l'objet noyau fourni. + correspondant a l'objet noyau fourni. """ -# import généraux +# import generaux +from __future__ import absolute_import import os,glob,types -# Dictionnaire {object : item} permettant d'associer un item à un object -# Ce dictionnaire est renseigné par la méthode charger_composants +# Dictionnaire {object : item} permettant d'associer un item a un object +# Ce dictionnaire est renseigne par la methode charger_composants composants = {} -def charger_composants(): +def charger_composants(Ihm="QT"): """ 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 + (fichiers compo*.py dans le meme repertoire que ce module ) + et de remplir le dictionnaire composants utilise par make_objecttreeitem """ - repertoire=os.path.dirname(__file__) + reper=os.path.dirname(__file__) + if Ihm == "TK" : + repertoire=reper+"/../InterfaceTK" + package="InterfaceTK" + else : + repertoire=reper+"/../InterfaceQT4" + package="InterfaceQT4" listfich=glob.glob(os.path.join(repertoire, "compo*.py")) for fichier in listfich: m= os.path.basename(fichier)[:-3] - module=__import__(m,globals(),locals()) + module=__import__(package,globals(),locals(),[m]) + module = getattr(module, m) composants[module.objet]=module.treeitem return composants 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ù + Cette fonction retourne la classe item associee a l'objet object. + Cette classe item depend bien sur de la nature de object, d'ou l'interrogation du dictionnaire composants """ # Si la definition de l'objet a un attribut itemeditor, il indique @@ -73,7 +80,7 @@ def gettreeitem(object): pass # Puis une eventuelle classe heritee (aleatoire car sans ordre) - for e in composants.keys(): + for e in list(composants.keys()): if e and isinstance(object,e): itemtype= composants[e] return itemtype @@ -85,8 +92,9 @@ def gettreeitem(object): 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. + de type item associe a l'object passe en argument. """ c = gettreeitem(object) + #print appli,labeltext, object, setfunction return c(appli,labeltext, object, setfunction)