X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=Editeur%2Fuiinfo.py;h=5ffe1af947222b22b9d9c2a6960025123969f3ab;hb=46610f0b08edf429e88c3715ee8b401c7440ef2c;hp=6ce7924dc8b361b30cecf689b6b1725fcd8a5133;hpb=16d5922e798b1254eb558678612711d72ed38b32;p=tools%2Feficas.git diff --git a/Editeur/uiinfo.py b/Editeur/uiinfo.py index 6ce7924d..5ffe1af9 100644 --- a/Editeur/uiinfo.py +++ b/Editeur/uiinfo.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2007-2013 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 @@ -18,36 +18,37 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # """ - Ce module sert à construire les structures de données porteuses - des informations liées aux groupes de commandes + Ce module sert a construire les structures de donnees porteuses + des informations liees aux groupes de commandes """ +from __future__ import absolute_import import types class UIINFO: - """ - Pour le moment la classe UIINFO ne sait traiter que des infos - portant sur la definition des groupes de commandes - Les autres informations sont ignorées - """ - def __init__(self,parent,groupes=None,**args): - """ - Initialiseur de la classe UIINFO. - Initialise a partir du dictionnaire UIinfo passé à - un objet ENTITE les attributs de la classe - """ - # L'attribut parent stocke le lien vers l'objet ENTITE relié à UIINFO - self.parent=parent - self.groupes=groupes - if groupes == None: - # L'entite n'a pas de groupe associé. On lui associe le groupe "DEFAUT" - self.groupes=("DEFAUT",) - if type(self.groupes) != types.TupleType: - self.groupes=(self.groupes,) + """ + Pour le moment la classe UIINFO ne sait traiter que des infos + portant sur la definition des groupes de commandes + Les autres informations sont ignorees + """ + def __init__(self,parent,groupes=None,**args): + """ + Initialiseur de la classe UIINFO. + Initialise a partir du dictionnaire UIinfo passe a + un objet ENTITE les attributs de la classe + """ + # L'attribut parent stocke le lien vers l'objet ENTITE relie a UIINFO + self.parent=parent + self.groupes=groupes + if groupes == None: + # L'entite n'a pas de groupe associe. On lui associe le groupe "DEFAUT" + self.groupes=("DEFAUT",) + if type(self.groupes) != tuple: + self.groupes=(self.groupes,) -def traite_commande(commande,niveau): +def traiteCommande(commande,niveau): """ Cette fonction cree l'attribut UI de l'objet commande - à partir des informations contenues dans UIinfo + a partir des informations contenues dans UIinfo """ uiinfo=commande.UIinfo or {} UI=UIINFO(commande,**uiinfo) @@ -59,55 +60,51 @@ def traite_commande(commande,niveau): #else: # On ajoute la commande dans tous les groupes specifies for grp in UI.groupes: - if not niveau.dict_groupes.has_key(grp): niveau.dict_groupes[grp]=[] + if not grp in niveau.dict_groupes: niveau.dict_groupes[grp]=[] niveau.dict_groupes[grp].append(commande.nom) -def traite_niveau(niveau): - if niveau.l_niveaux == (): - # Il n'y a pas de sous niveaux. niveau.entites ne contient que des commandes - niveau.dict_groupes={} - for oper in niveau.entites: - traite_commande(oper,niveau) - # A la fin les cles du dictionnaire dict_groupes donnent la liste des groupes - # sans doublon - niveau.liste_groupes=niveau.dict_groupes.keys() - # On ordonne les listes alphabétiquement - niveau.liste_groupes.sort() - for v in niveau.dict_groupes.values():v.sort() - #print niveau.liste_groupes - #print niveau.dict_groupes - else: - for niv in niveau.l_niveaux: - traite_niveau(niv) +def traiteNiveau(niveau): + if niveau.l_niveaux == (): + # Il n'y a pas de sous niveaux. niveau.entites ne contient que des commandes + niveau.dict_groupes={} + for oper in niveau.entites: + traiteCommande(oper,niveau) + # A la fin les cles du dictionnaire dict_groupes donnent la liste des groupes + # sans doublon + niveau.liste_groupes=list(niveau.dict_groupes.keys()) + # On ordonne les listes alphabetiquement + niveau.liste_groupes.sort() + for v in niveau.dict_groupes.values():v.sort() + #print niveau.liste_groupes + #print niveau.dict_groupes + else: + for niv in niveau.l_niveaux: + traiteNiveau(niv) def traite_UIinfo(cata): - """ - Cette fonction parcourt la liste des commandes d'un catalogue (cata) - construit les objets UIINFO à partir de l'attribut UIinfo de la commande - et construit la liste complète de tous les groupes présents - """ - #dict_groupes["CACHE"]=[] - #XXX Ne doit pas marcher avec les niveaux - if cata.JdC.l_niveaux == (): - # Il n'y a pas de niveaux - # On stocke la liste des groupes et leur contenu dans le JdC - # dans les attributs liste_groupes et dict_groupes - cata.JdC.dict_groupes={} - for commande in cata.JdC.commandes: - traite_commande(commande,cata.JdC) - # A la fin les cles du dictionnaire dict_groupes donnent la liste des groupes - # sans doublon - cata.JdC.liste_groupes=cata.JdC.dict_groupes.keys() - # On ordonne les listes alphabétiquement - cata.JdC.liste_groupes.sort() - for v in cata.JdC.dict_groupes.values():v.sort() - #print cata.JdC.liste_groupes - #print cata.JdC.dict_groupes - else: - # Le catalogue de commandes contient des définitions de niveau - for niv in cata.JdC.l_niveaux: - traite_niveau(niv) - - - - + """ + Cette fonction parcourt la liste des commandes d'un catalogue (cata) + construit les objets UIINFO a partir de l'attribut UIinfo de la commande + et construit la liste complete de tous les groupes presents + """ + #dict_groupes["CACHE"]=[] + #XXX Ne doit pas marcher avec les niveaux + if cata.JdC.l_niveaux == (): + # Il n'y a pas de niveaux + # On stocke la liste des groupes et leur contenu dans le JdC + # dans les attributs liste_groupes et dict_groupes + cata.JdC.dict_groupes={} + for commande in cata.JdC.commandes: + traiteCommande(commande,cata.JdC) + # A la fin les cles du dictionnaire dict_groupes donnent la liste des groupes + # sans doublon + cata.JdC.liste_groupes=list(cata.JdC.dict_groupes.keys()) + # On ordonne les listes alphabetiquement + cata.JdC.liste_groupes.sort() + for v in cata.JdC.dict_groupes.values():v.sort() + #print cata.JdC.liste_groupes + #print cata.JdC.dict_groupes + else: + # Le catalogue de commandes contient des definitions de niveau + for niv in cata.JdC.l_niveaux: + traiteNiveau(niv)