]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
fin du tableau a 2 ou 3 colonnes pour MT
authorpascale.noyret <pascale.noyret@edf.fr>
Mon, 19 Feb 2018 13:53:45 +0000 (14:53 +0100)
committerpascale.noyret <pascale.noyret@edf.fr>
Mon, 19 Feb 2018 13:53:45 +0000 (14:53 +0100)
23 files changed:
Efi2Xsd/Model Efficas (1.1) v7 ext.xsd [deleted file]
Efi2Xsd/Model Efficas (1.1) v7.xsd [deleted file]
Efi2Xsd/ModeleEficas/Model Efficas (1.1) v7 ext.xsd [new file with mode: 0755]
Efi2Xsd/ModeleEficas/Model Efficas (1.1) v7.xsd [new file with mode: 0755]
Extensions/commentaire.py
Ihm/I_MACRO_ETAPE.py
InterfaceQT4/compomclist.py
InterfaceQT4/composimp.py
InterfaceQT4/editor.py
InterfaceQT4/editorSsIhm.py
InterfaceQT4/monWidgetPlusieursTuple2.py
InterfaceQT4/monWidgetSimpTuple.py
InterfaceQT4/monWidgetSimpTuple2.py
InterfaceQT4/monWidgetTableau.py [new file with mode: 0644]
InterfaceQT4/readercata.py
InterfaceQT4/readercataXML.py
UiQT5/CMakeLists.txt
UiQT5/Tuple3.ui
UiQT5/commandeTableau.ui [deleted file]
UiQT5/desWidgetNiveauFact.ui
UiQT5/desWidgetPlusieursTuple.ui
UiQT5/desWidgetTableau.ui [new file with mode: 0644]
UiQT5/makefile

diff --git a/Efi2Xsd/Model Efficas (1.1) v7 ext.xsd b/Efi2Xsd/Model Efficas (1.1) v7 ext.xsd
deleted file mode 100755 (executable)
index 0b53186..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!-- edited with XMLSpy v2015 rel. 4 (http://www.altova.com) by USER1 (EDF-DSP) -->\r
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" xmlns="http://chercheurs.edf.com/logiciels/efficas" xmlns:efficas="http://chercheurs.edf.com/logiciels/efficas" xmlns:altova="http://www.altova.com/xml-schema-extensions" targetNamespace="http://chercheurs.edf.com/logiciels/efficas" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0" vc:minVersion="1.1">\r
-       <!--<xs:import  schemaLocation="./Model Efficas (1.1)  v5.xsd" namespace="http://chercheurs.edf.com/logiciels/efficas"/>\r
--->\r
-       <xs:override schemaLocation="./Model Efficas (1.1)  v7.xsd">\r
-               <xs:attribute name="attribut" type="AT_attribut"/>\r
-               <xs:simpleType name="AT_attribut">\r
-                       <xs:restriction base="xs:string">\r
-                               <xs:enumeration value="n"/>\r
-                               <xs:enumeration value="o"/>\r
-                       </xs:restriction>\r
-               </xs:simpleType>\r
-               <!--            <xs:complexType name="essai">\r
-                       <xs:sequence>\r
-                               <xs:element ref="valeurDef" minOccurs="0"/>\r
-                       </xs:sequence>\r
-                       <xs:attribute ref="attribut" default="n"/>\r
-               </xs:complexType>\r
--->\r
-               <xs:complexType name="T_SIMP">\r
-                       <xs:sequence>\r
-                               <xs:element ref="doc" minOccurs="0"/>\r
-                               <xs:element ref="portee" minOccurs="0">\r
-                                       <xs:annotation>\r
-                                               <xs:documentation>La portée pouurait devenir un attribut de SIMP. Une autre solution consisterait a créer un SIMPG pour distinguer les @nom uniques des SIMP a portée globale des autres.</xs:documentation>\r
-                                       </xs:annotation>\r
-                               </xs:element>\r
-                               <xs:element ref="valeurDef" minOccurs="0"/>\r
-                               <xs:element ref="valeurSugg" minOccurs="0"/>\r
-                               <xs:element ref="plageValeur" minOccurs="0"/>\r
-                               <xs:element ref="typeAttendu"/>\r
-                               <xs:element ref="validators" minOccurs="0"/>\r
-                       </xs:sequence>\r
-                       <xs:attribute ref="nom" use="required"/>\r
-                       <xs:attribute ref="statut" default="o"/>\r
-                       <xs:attribute ref="min_occurs" default="1"/>\r
-                       <xs:attribute ref="max_occurs" default="1">\r
-                               <xs:annotation>\r
-                                       <xs:documentation>La valeur -1 equivaut à oo</xs:documentation>\r
-                               </xs:annotation>\r
-                       </xs:attribute>\r
-                       <xs:attribute name="attribut" default="n">\r
-                               <xs:simpleType>\r
-                                       <xs:restriction base="xs:string">\r
-                                               <xs:enumeration value="n"/>\r
-                                               <xs:enumeration value="o"/>\r
-                                       </xs:restriction>\r
-                               </xs:simpleType>\r
-                       </xs:attribute>\r
-                       <!-- Les deux lignes suivantes ne fonctionnent pas car il faut que la cible référencée soit déjà définie dans le fichier importé ? -->\r
-                       <!--            <xs:attribute  default="n"  ref="attribut"/>-->\r
-                       <!--            <xs:attribute  default="n"  name="attribut" type="AT_attribut" />-->\r
-               </xs:complexType>\r
-       </xs:override>\r
-</xs:schema>\r
diff --git a/Efi2Xsd/Model Efficas (1.1) v7.xsd b/Efi2Xsd/Model Efficas (1.1) v7.xsd
deleted file mode 100755 (executable)
index 0f1838f..0000000
+++ /dev/null
@@ -1,731 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!-- édité avec XMLSpy v2018 sp1 (http://www.altova.com) par Fayolle (EDF R&D) -->\r
-<!-- edited with XMLSpy v2015 rel. 4 (http://www.altova.com) by USER1 (EDF-DSP) -->\r
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" xmlns="http://chercheurs.edf.com/logiciels/efficas" xmlns:efficas="http://chercheurs.edf.com/logiciels/efficas" xmlns:altova="http://www.altova.com/xml-schema-extensions" targetNamespace="http://chercheurs.edf.com/logiciels/efficas" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0" vc:minVersion="1.1">\r
-       <xs:element name="doc" type="T_doc"/>\r
-       <xs:element name="cata" type="T_cata"/>\r
-       <xs:element name="regles" type="T_regles"/>\r
-       <xs:element name="typeCree" type="T_classe_utilisateur"/>\r
-       <xs:element name="valeurDef" type="T_typeAttendu"/>\r
-       <xs:element name="valeurSugg" type="T_typeAttendu"/>\r
-       <xs:element name="fonction_utilisateur" type="T_fonction_python"/>\r
-       <xs:element name="commandes" type="T_commandes">\r
-               <!-- La contrainte suivante fonctionne -->\r
-               <xs:unique name="Uniq_Command">\r
-                       <xs:selector xpath="*"/>\r
-                       <xs:field xpath="@efficas:nom"/>\r
-               </xs:unique>\r
-       </xs:element>\r
-       <xs:element name="validators" type="T_validators"/>\r
-       <xs:element name="plageValeur" type="T_plageValeur"/>\r
-       <xs:element name="typeAttendu" type="T_name"/>\r
-       <xs:element name="classeUtilisateurName" type="T_classe_utilisateur_username" abstract="true" substitutionGroup="typeAttendu"/>\r
-       <xs:element name="SIMP" type="T_SIMP"/>\r
-       <xs:element name="portee" type="T_portee" default="None"/>\r
-       <xs:element name="condition" type="T_fonction_python"/>\r
-       <xs:element name="borne_sup" type="T_typeAttendu"/>\r
-       <xs:element name="borne_inf" type="T_typeAttendu"/>\r
-       <!--    <xs:element name="into" type="T_into"/>-->\r
-       <xs:element name="into" type="T_into"/>\r
-       <!--    <xs:element name="into_plus_fonction" type="T_into" abstract="true" substitutionGroup="into"/>-->\r
-       <xs:attribute name="nom" type="AT_nom"/>\r
-       <xs:attribute name="ag" type="AT_ag"/>\r
-       <xs:attribute name="fr" type="xs:string"/>\r
-       <xs:attribute name="ang" type="xs:string"/>\r
-       <xs:attribute name="docu" type="AT_docu"/>\r
-       <xs:attribute name="valeur_sugg" type="AT_valeur_sugg"/>\r
-       <xs:attribute name="statut" type="AT_statut" default="o"/>\r
-       <xs:attribute name="max_occurs" type="AT_max_occurs"/>\r
-       <xs:attribute name="min_occurs" type="AT_min_occurs"/>\r
-       <xs:attribute name="subroutine" type="AT_subroutine" default="None"/>\r
-       <xs:complexType name="T_doc">\r
-               <xs:attribute ref="fr" use="optional"/>\r
-               <xs:attribute ref="ang"/>\r
-               <xs:attribute ref="docu"/>\r
-       </xs:complexType>\r
-       <xs:complexType name="T_cata">\r
-               <xs:sequence>\r
-                       <xs:element ref="commandes" minOccurs="0" maxOccurs="unbounded"/>\r
-               </xs:sequence>\r
-       </xs:complexType>\r
-       <xs:complexType name="T_commandes">\r
-               <xs:choice minOccurs="0" maxOccurs="unbounded">\r
-                       <xs:element ref="OPER"/>\r
-                       <xs:element ref="PROC"/>\r
-               </xs:choice>\r
-       </xs:complexType>\r
-       <xs:complexType name="T_Cardinalite"/>\r
-       <xs:complexType name="T_plageValeur">\r
-               <xs:choice>\r
-                       <xs:sequence>\r
-                               <xs:element ref="borne_sup" minOccurs="0"/>\r
-                               <xs:element ref="borne_inf" minOccurs="0"/>\r
-                       </xs:sequence>\r
-                       <xs:element ref="into"/>\r
-               </xs:choice>\r
-       </xs:complexType>\r
-       <xs:complexType name="T_Accas_Common">\r
-               <xs:sequence>\r
-                       <xs:element ref="regles" minOccurs="0"/>\r
-                       <xs:element ref="doc" minOccurs="0"/>\r
-                       <xs:choice maxOccurs="unbounded">\r
-                               <xs:element ref="BLOC"/>\r
-                               <xs:element ref="FACT"/>\r
-                               <xs:element ref="SIMP"/>\r
-                       </xs:choice>\r
-               </xs:sequence>\r
-               <xs:attribute ref="nom" use="required"/>\r
-       </xs:complexType>\r
-       <xs:element name="OPER" type="T_OPER">\r
-               <!-- La contrainte fonctionne uniquement si l'on n'oublie pas le prefix dans l'expression du selector !  -->\r
-               <!-- aucun nom identique ne doit apparaître dans les sous élements d'un même niveau dans OPER ou PROC    -->\r
-               <xs:key name="Key_Name_In_Oper">\r
-                       <xs:annotation>\r
-                               <xs:documentation>SIMP devrait être selectionné que si .//SIMP[portee='Global']</xs:documentation>\r
-                       </xs:annotation>\r
-                       <xs:selector xpath="./efficas:BLOC |./efficas:FACT|./efficas:SIMP"/>\r
-                       <xs:field xpath="@efficas:nom"/>\r
-               </xs:key>\r
-               <xs:keyref name="Oper_Ref_A_Name_In_Exclus" refer="Key_Name_In_Oper">\r
-                       <xs:selector xpath="./efficas:regles/efficas:EXCLUS"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:keyref>\r
-               <xs:unique name="Oper_Uniq_Name_In_Exclus">\r
-                       <xs:selector xpath="./efficas:regles/efficas:EXCLUS"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:unique>\r
-               <xs:keyref name="Oper_Ref_A_Name_In_A_Classer" refer="Key_Name_In_Oper">\r
-                       <xs:selector xpath="./efficas:regles/efficas:A_CLASSER/efficas:p1 | ./efficas:regles/efficas:A_CLASSER/efficas:p2"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:keyref>\r
-               <xs:unique name="Oper_Uniq_Name_In_A_Classer">\r
-                       <xs:selector xpath="./efficas:regles/efficas:A_CLASSER/efficas:p1 | ./efficas:regles/efficas:A_CLASSER/efficas:p2"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:unique>\r
-               <xs:keyref name="Oper_Ref_A_Name_In_Au_Moins_Un" refer="Key_Name_In_Oper">\r
-                       <xs:selector xpath="./efficas:regles/efficas:AU_MOINS_UN"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:keyref>\r
-               <xs:unique name="Oper_Uniq_Name_In_Au_Moins_Un">\r
-                       <xs:selector xpath="./efficas:regles/efficas:AU_MOINS_UN"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:unique>\r
-               <xs:keyref name="Oper_Ref_A_Name_In_Au_Plus_Un" refer="Key_Name_In_Oper">\r
-                       <xs:selector xpath="./efficas:regles/efficas:AU_PLUS_UN"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:keyref>\r
-               <xs:unique name="Oper_Uniq_Name_In_Au_Plus_Un">\r
-                       <xs:selector xpath="./efficas:regles/efficas:AU_PLUS_UN"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:unique>\r
-               <xs:keyref name="Oper_Ref_A_Name_In_Ensemble" refer="Key_Name_In_Oper">\r
-                       <xs:selector xpath="./efficas:regles/efficas:ENSEMBLE"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:keyref>\r
-               <xs:unique name="Oper_Uniq_Name_In_Ensemble">\r
-                       <xs:selector xpath="./efficas:regles/efficas:ENSEMBLE"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:unique>\r
-               <xs:keyref name="Oper_Ref_A_Name_In_Present_Absent" refer="Key_Name_In_Oper">\r
-                       <xs:selector xpath="./efficas:regles/efficas:PRESENT_ABSENT"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:keyref>\r
-               <xs:unique name="Oper_Uniq_Name_In_Present_Absent">\r
-                       <xs:selector xpath="./efficas:regles/efficas:PRESENT_ABSENT"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:unique>\r
-               <xs:keyref name="Oper_Ref_A_Name_In_Present_Present" refer="Key_Name_In_Oper">\r
-                       <xs:selector xpath="./efficas:regles/efficas:PRESENT_PRESENT"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:keyref>\r
-               <xs:unique name="Oper_Uniq_Name_In_Present_Present">\r
-                       <xs:selector xpath="./efficas:regles/efficas:PRESENT_PRESENT"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:unique>\r
-               <xs:keyref name="Oper_Ref_A_Name_In_Un_Parmi" refer="Key_Name_In_Oper">\r
-                       <xs:selector xpath="./efficas:regles/efficas:UN_PARMI"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:keyref>\r
-               <xs:unique name="Oper_Uniq_Name_In_Un_Parmi">\r
-                       <xs:selector xpath="./efficas:regles/efficas:UN_PARMI"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:unique>\r
-       </xs:element>\r
-       <xs:complexType name="T_OPER">\r
-               <xs:complexContent>\r
-                       <xs:extension base="T_Accas_Common">\r
-                               <xs:sequence>\r
-                                       <xs:element ref="typeCree"/>\r
-                               </xs:sequence>\r
-                               <xs:attribute ref="subroutine"/>\r
-                       </xs:extension>\r
-               </xs:complexContent>\r
-       </xs:complexType>\r
-       <xs:element name="PROC" type="T_PROC">\r
-               <!-- La contrainte fonctionne pour toutes les PROC adjacentes et devrait être par PROC -->\r
-               <xs:key name="Key_Name_In_Proc">\r
-                       <xs:annotation>\r
-                               <xs:documentation>SIMP devrait être selectionné que si .//SIMP[portee='Global']</xs:documentation>\r
-                       </xs:annotation>\r
-                       <xs:selector xpath="./efficas:BLOC | ./efficas:FACT| ./efficas:SIMP"/>\r
-                       <xs:field xpath="@efficas:nom"/>\r
-               </xs:key>\r
-               <xs:keyref name="Proc_Ref_A_Name_In_Exclus" refer="Key_Name_In_Proc">\r
-                       <xs:selector xpath="./efficas:regles/efficas:EXCLUS"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:keyref>\r
-               <xs:unique name="Proc_Uniq_Name_In_Exclus">\r
-                       <xs:selector xpath="./efficas:regles/efficas:EXCLUS"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:unique>\r
-               <xs:keyref name="Proc_Ref_A_Name_In_A_Classer" refer="Key_Name_In_Proc">\r
-                       <xs:selector xpath="./efficas:regles/efficas:A_CLASSER/efficas:p1 | ./efficas:regles/efficas:A_CLASSER/efficas:p2"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:keyref>\r
-               <xs:unique name="Proc_Uniq_Name_In_A_Classer">\r
-                       <xs:selector xpath="./efficas:regles/efficas:A_CLASSER/efficas:p1 | ./efficas:regles/efficas:A_CLASSER/efficas:p2"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:unique>\r
-               <xs:keyref name="Proc_Ref_A_Name_In_Au_Moins_Un" refer="Key_Name_In_Proc">\r
-                       <xs:selector xpath="./efficas:regles/efficas:AU_MOINS_UN"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:keyref>\r
-               <xs:unique name="Proc_Uniq_Name_In_Au_Moins_Un">\r
-                       <xs:selector xpath="./efficas:regles/efficas:AU_MOINS_UN"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:unique>\r
-               <xs:keyref name="Proc_Ref_A_Name_In_Au_Plus_Un" refer="Key_Name_In_Proc">\r
-                       <xs:selector xpath="./efficas:regles/efficas:AU_PLUS_UN"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:keyref>\r
-               <xs:unique name="Proc_Uniq_Name_In_Au_Plus_Un">\r
-                       <xs:selector xpath="./efficas:regles/efficas:AU_PLUS_UN"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:unique>\r
-               <xs:keyref name="Proc_Ref_A_Name_In_Ensemble" refer="Key_Name_In_Proc">\r
-                       <xs:selector xpath="./efficas:regles/efficas:ENSEMBLE"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:keyref>\r
-               <xs:unique name="Proc_Uniq_Name_In_Ensemble">\r
-                       <xs:selector xpath="./efficas:regles/efficas:ENSEMBLE"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:unique>\r
-               <xs:keyref name="Proc_Ref_A_Name_In_Present_Absent" refer="Key_Name_In_Proc">\r
-                       <xs:selector xpath="./efficas:regles/efficas:PRESENT_ABSENT"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:keyref>\r
-               <xs:unique name="Proc_Uniq_Name_In_Present_Absent">\r
-                       <xs:selector xpath="./efficas:regles/efficas:PRESENT_ABSENT"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:unique>\r
-               <xs:keyref name="Proc_Ref_A_Name_In_Present_Present" refer="Key_Name_In_Proc">\r
-                       <xs:selector xpath="./efficas:regles/efficas:PRESENT_PRESENT"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:keyref>\r
-               <xs:unique name="Proc_Uniq_Name_In_Present_Present">\r
-                       <xs:selector xpath="./efficas:regles/efficas:PRESENT_PRESENT"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:unique>\r
-               <xs:keyref name="Ref_A_Name_In_Un_Parmi" refer="Key_Name_In_Proc">\r
-                       <xs:selector xpath="./efficas:regles/efficas:UN_PARMI"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:keyref>\r
-               <xs:unique name="Proc_Uniq_Name_In_Un_Parmi">\r
-                       <xs:selector xpath="./efficas:regles/efficas:UN_PARMI"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:unique>\r
-       </xs:element>\r
-       <xs:complexType name="T_PROC">\r
-               <xs:complexContent>\r
-                       <xs:extension base="T_Accas_Common">\r
-                               <xs:attribute ref="subroutine"/>\r
-                       </xs:extension>\r
-               </xs:complexContent>\r
-       </xs:complexType>\r
-       <xs:element name="FACT" type="T_FACT">\r
-               <!-- La contrainte fonctionne uniquement si l'on n'oublie pas le prefix dans l'expression du selector !  -->\r
-               <!-- aucun nom identique ne doit apparaître dans les sous élements d'un même niveau de FACT              -->\r
-               <xs:key name="Key_Name_In_Fact">\r
-                       <xs:annotation>\r
-                               <xs:documentation>SIMP devrait être selectionné que si .//SIMP[portee='Global']</xs:documentation>\r
-                       </xs:annotation>\r
-                       <xs:selector xpath="./efficas:BLOC |./efficas:FACT|./efficas:SIMP"/>\r
-                       <xs:field xpath="@efficas:nom"/>\r
-               </xs:key>\r
-               <xs:keyref name="Ref_A_Name_In_Fact" refer="Key_Name_In_Fact">\r
-                       <xs:selector xpath="./efficas:regles/efficas:EXCLUS"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:keyref>\r
-       </xs:element>\r
-       <!-- Définition par restriction -->\r
-       <!--    <xs:complexType name="T_FACT">\r
-               <xs:complexContent>\r
-                       <xs:restriction base="T_Accas_Common">\r
-                               <xs:sequence>\r
-                                       <xs:element ref="regles" minOccurs="0"/>\r
-                                       <xs:element ref="doc" minOccurs="0"/>\r
-                                       <xs:choice maxOccurs="unbounded">\r
-                                               <xs:element ref="BLOC"/>\r
-                                               <xs:element ref="FACT"/>\r
-                                               <xs:element ref="SIMP"/>\r
-                                       </xs:choice>\r
-                               </xs:sequence>\r
-                       </xs:restriction>\r
-               </xs:complexContent>\r
-       </xs:complexType>-->\r
-       <xs:complexType name="T_FACT">\r
-               <xs:complexContent>\r
-                       <xs:extension base="T_Accas_Common">\r
-                               <xs:attribute ref="statut"/>\r
-                               <xs:attribute ref="min_occurs" default="1"/>\r
-                               <xs:attribute ref="max_occurs" default="1">\r
-                                       <xs:annotation>\r
-                                               <xs:documentation>La valeur -1 equivaut à oo</xs:documentation>\r
-                                       </xs:annotation>\r
-                               </xs:attribute>\r
-                       </xs:extension>\r
-                       <!--                            <xs:assert test=".[exists(@efficas:max_occurs) and exists(@efficas:min_occurs) and @efficas:max_occurs  gt @efficas:min_occurs]"/>\r
--->\r
-                       <!--<xs:assert test="if (.[exists(@efficas:max_occurs)] and .[exists(@efficas:min_occurs)] ) then (@efficas:max_occurs  gt @efficas:min_occurs) or @efficas:max_occurs = -1 else true" altova:message="Erreur max_occurs  > min_occurs "/>-->\r
-               </xs:complexContent>\r
-       </xs:complexType>\r
-       <xs:simpleType name="T_fonction_python">\r
-               <xs:restriction base="xs:string"/>\r
-       </xs:simpleType>\r
-       <xs:element name="BLOC" type="T_BLOC">\r
-               <xs:key name="Key_Name_In_Bloc">\r
-                       <xs:annotation>\r
-                               <xs:documentation>SIMP devrait être selectionné que si .//SIMP[portee='Global']</xs:documentation>\r
-                       </xs:annotation>\r
-                       <xs:selector xpath="./efficas:BLOC |./efficas:FACT|./efficas:SIMP"/>\r
-                       <xs:field xpath="@efficas:nom"/>\r
-               </xs:key>\r
-               <xs:keyref name="Ref_A_Name_In_Bloc" refer="Key_Name_In_Bloc">\r
-                       <xs:selector xpath="./efficas:regles/efficas:EXCLUS"/>\r
-                       <xs:field xpath="."/>\r
-               </xs:keyref>\r
-       </xs:element>\r
-       <xs:complexType name="T_BLOC">\r
-               <xs:complexContent>\r
-                       <xs:extension base="T_Accas_Common">\r
-                               <xs:sequence>\r
-                                       <xs:element ref="condition"/>\r
-                               </xs:sequence>\r
-                       </xs:extension>\r
-               </xs:complexContent>\r
-       </xs:complexType>\r
-       <xs:complexType name="T_SIMP">\r
-               <xs:sequence>\r
-                       <xs:element ref="doc" minOccurs="0"/>\r
-                       <xs:element ref="portee" minOccurs="0">\r
-                               <xs:annotation>\r
-                                       <xs:documentation>La portée pouurait devenir un attribut de SIMP. Une autre solution consisterait a créer un SIMPG pour distinguer les @nom uniques des SIMP a portée globale des autres.</xs:documentation>\r
-                               </xs:annotation>\r
-                       </xs:element>\r
-                       <xs:element ref="valeurDef" minOccurs="0"/>\r
-                       <xs:element ref="valeurSugg" minOccurs="0"/>\r
-                       <xs:element ref="plageValeur" minOccurs="0"/>\r
-                       <xs:element ref="typeAttendu"/>\r
-                       <xs:element ref="validators" minOccurs="0"/>\r
-               </xs:sequence>\r
-               <xs:attribute ref="nom" use="required"/>\r
-               <xs:attribute ref="statut" default="o"/>\r
-               <xs:attribute ref="min_occurs" default="1"/>\r
-               <xs:attribute ref="max_occurs" default="1">\r
-                       <xs:annotation>\r
-                               <xs:documentation>La valeur -1 equivaut à oo</xs:documentation>\r
-                       </xs:annotation>\r
-               </xs:attribute>\r
-       </xs:complexType>\r
-       <xs:simpleType name="AT_statut">\r
-               <xs:restriction base="xs:string">\r
-                       <xs:enumeration value="f"/>\r
-                       <xs:enumeration value="o"/>\r
-               </xs:restriction>\r
-       </xs:simpleType>\r
-       <!--<xs:simpleType name="T_repetable">\r
-               <xs:restriction base="xs:string">\r
-                       <xs:enumeration value="n"/>\r
-                       <xs:enumeration value="o"/>\r
-               </xs:restriction>\r
-       </xs:simpleType>-->\r
-       <xs:simpleType name="T_portee">\r
-               <xs:restriction base="xs:string">\r
-                       <xs:enumeration value="None"/>\r
-                       <xs:enumeration value="Global"/>\r
-               </xs:restriction>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="AT_max_occurs">\r
-               <xs:restriction base="xs:long">\r
-                       <xs:minInclusive value="-1"/>\r
-               </xs:restriction>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="AT_min_occurs">\r
-               <xs:restriction base="xs:long">\r
-                       <xs:minExclusive value="0"/>\r
-               </xs:restriction>\r
-       </xs:simpleType>\r
-       <!-- Comparable -->\r
-       <!--    <xs:simpleType name="AT_borne_sup">\r
-       <xs:atomic base="xs:double"/>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="AT_borne_inf">\r
-               <xs:restriction base="xs:double"/>\r
-       </xs:simpleType>\r
--->\r
-       <xs:simpleType name="AT_ag">\r
-               <xs:restriction base="xs:string">\r
-                       <xs:enumeration value="No comment"/>\r
-               </xs:restriction>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="AT_docu">\r
-               <xs:annotation>\r
-                       <xs:documentation>Référence une position dans un fichier maître contenant une liste de références à des pages de documentations</xs:documentation>\r
-               </xs:annotation>\r
-               <xs:restriction base="xs:string"/>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="AT_valeur_sugg">\r
-               <xs:restriction base="xs:string"/>\r
-       </xs:simpleType>\r
-       <!-- TODO: Exclure mots clés python|efficas -->\r
-       <xs:simpleType name="AT_nom">\r
-               <xs:restriction base="xs:string">\r
-                       <xs:pattern value="([A-Z]|[a-z]|_)([A-Z]|[a-z]|_|[0-9])*"/>\r
-               </xs:restriction>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_predicat1">\r
-               <xs:list itemType="AT_nom"/>\r
-               <!-- TODO: Supprimer la liste -->\r
-       </xs:simpleType>\r
-       <xs:complexType name="T_predicat2">\r
-               <xs:sequence>\r
-                       <xs:element name="p1" type="T_predicat1" minOccurs="1"/>\r
-                       <xs:element name="p2" type="AT_nom" minOccurs="1"/>\r
-               </xs:sequence>\r
-               <!-- TODO: Supprimer la séquence -->\r
-       </xs:complexType>\r
-       <xs:element name="A_CLASSER" type="T_predicat2"/>\r
-       <xs:element name="AU_MOINS_UN" type="T_predicat1"/>\r
-       <xs:element name="AU_PLUS_UN" type="T_predicat1"/>\r
-       <xs:element name="ENSEMBLE" type="T_predicat1"/>\r
-       <xs:element name="EXCLUS" type="T_predicat1"/>\r
-       <xs:element name="PRESENT_ABSENT" type="T_predicat1"/>\r
-       <xs:element name="PRESENT_PRESENT" type="T_predicat1"/>\r
-       <xs:element name="UN_PARMI" type="T_predicat1"/>\r
-       <xs:group name="predicat">\r
-               <xs:choice>\r
-                       <xs:element ref="A_CLASSER"/>\r
-                       <xs:element ref="AU_MOINS_UN"/>\r
-                       <xs:element ref="AU_PLUS_UN"/>\r
-                       <xs:element ref="ENSEMBLE"/>\r
-                       <xs:element ref="EXCLUS"/>\r
-                       <xs:element ref="PRESENT_ABSENT"/>\r
-                       <xs:element ref="PRESENT_PRESENT"/>\r
-                       <xs:element ref="UN_PARMI"/>\r
-               </xs:choice>\r
-       </xs:group>\r
-       <xs:complexType name="T_regles">\r
-               <xs:sequence maxOccurs="unbounded">\r
-                       <xs:group ref="predicat"/>\r
-               </xs:sequence>\r
-       </xs:complexType>\r
-       <!--    <xs:simpleType name="T_typeCree">\r
-               <xs:restriction base="T_classe_utilisateur"/>\r
-       </xs:simpleType>\r
--->\r
-       <xs:simpleType name="AT_subroutine">\r
-               <xs:restriction base="AT_nom"/>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_validators">\r
-               <xs:restriction base="xs:string">\r
-                       <xs:enumeration value="NoRepeat"/>\r
-                       <xs:enumeration value="OnlyStr"/>\r
-                       <xs:enumeration value="VerifExiste"/>\r
-                       <xs:enumeration value="VerifTypeTuple"/>\r
-               </xs:restriction>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_Bool">\r
-               <xs:restriction base="xs:boolean"/>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_list_Bool">\r
-               <xs:list itemType="T_Bool"/>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_I">\r
-               <xs:restriction base="xs:int"/>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_list_I">\r
-               <xs:list itemType="T_I"/>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_R">\r
-               <xs:restriction base="xs:double"/>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_list_R">\r
-               <xs:list itemType="T_R"/>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_TXM">\r
-               <xs:restriction base="AT_nom"/>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_list_TXM">\r
-               <xs:list itemType="T_TXM"/>\r
-       </xs:simpleType>\r
-       <!--fonctionne mais ne permet pas de créer une liste de liste -->\r
-       <xs:simpleType name="T_C">\r
-               <xs:restriction>\r
-                       <xs:simpleType>\r
-                               <xs:list itemType="xs:double"/>\r
-                       </xs:simpleType>\r
-                       <xs:minLength value="2"/>\r
-                       <xs:maxLength value="2"/>\r
-               </xs:restriction>\r
-       </xs:simpleType>\r
-       <!-- Ajouter une contrainte : taille pair -->\r
-       <!-- Il n'est pas possible de définir des listes de listes -->\r
-       <xs:simpleType name="T_list_C">\r
-               <xs:list itemType="xs:double"/>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_name_base">\r
-               <xs:restriction base="AT_nom"/>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_simple_name">\r
-               <xs:restriction base="T_name_base">\r
-                       <xs:enumeration value="Fichier"/>\r
-                       <xs:enumeration value="Repertoire"/>\r
-                       <xs:enumeration value="TXM"/>\r
-                       <xs:enumeration value="I"/>\r
-                       <xs:enumeration value="R"/>\r
-                       <xs:enumeration value="C"/>\r
-                       <xs:enumeration value="Bool"/>\r
-                       <xs:enumeration value="grma"/>\r
-                       <xs:enumeration value="grno"/>\r
-                       <xs:enumeration value="SalomeEntry"/>\r
-               </xs:restriction>\r
-       </xs:simpleType>\r
-       <!-- On ne peut pas rendre abstrait un simpleType && \r
-          Il n'est pas possible de dériver par restriction un simplecontent d'un type complex qui\r
-          lui peut être abstrait.\r
-    -->\r
-       <xs:simpleType name="T_classe_utilisateur_name">\r
-               <xs:restriction base="T_name">\r
-                       <xs:enumeration value="T_classe_utilisateur"/>\r
-               </xs:restriction>\r
-       </xs:simpleType>\r
-       <xs:complexType name="T_classe_utilisateur_username">\r
-               <xs:simpleContent>\r
-                       <xs:extension base="T_classe_utilisateur_name">\r
-                               <xs:attribute ref="nom" use="required"/>\r
-                       </xs:extension>\r
-               </xs:simpleContent>\r
-       </xs:complexType>\r
-       <xs:simpleType name="T_name">\r
-               <xs:union memberTypes="T_simple_name">\r
-                       <xs:simpleType>\r
-                               <xs:restriction base="AT_nom">\r
-                                       <xs:enumeration value="T_Matrice_double"/>\r
-                                       <xs:enumeration value="T_Matrice_Symetrique_double"/>\r
-                                       <xs:enumeration value="T_tuple"/>\r
-                                       <xs:enumeration value="T_classe_utilisateur"/>\r
-                               </xs:restriction>\r
-                       </xs:simpleType>\r
-               </xs:union>\r
-       </xs:simpleType>\r
-       <xs:complexType name="T_grma"/>\r
-       <xs:complexType name="T_grno"/>\r
-       <xs:complexType name="T_SalomeEntry"/>\r
-       <xs:complexType name="T_Fichier"/>\r
-       <!--    <xs:complexType name="T_Repertoire"/>-->\r
-       <xs:simpleType name="T_Repertoire">\r
-               <xs:list>\r
-                       <xs:simpleType>\r
-                               <xs:restriction base="xs:string">\r
-                                       <xs:whiteSpace value="preserve"/>\r
-                               </xs:restriction>\r
-                       </xs:simpleType>\r
-               </xs:list>\r
-       </xs:simpleType>\r
-       <xs:simpleType name="T_simple">\r
-               <xs:union memberTypes="T_I T_list_I T_R T_list_R T_C T_list_C T_TXM T_list_TXM T_Bool T_list_Bool T_Repertoire"/>\r
-       </xs:simpleType>\r
-       <!--    <xs:complexType name="T_TXM"/>-->\r
-       <!--    <xs:simpleType name="T_simple">\r
-               <xs:restriction base="xs:string">\r
-                       <xs:enumeration value="Fichier"/>\r
-                       <xs:enumeration value="Repertoire"/>\r
-                       <xs:enumeration value="TXM"/>\r
-                       <xs:enumeration value="I"/>\r
-                       <xs:enumeration value="R"/>\r
-                       <xs:enumeration value="C"/>\r
-                       <xs:enumeration value="Bool"/>\r
-                       <xs:enumeration value="grma"/>\r
-                       <xs:enumeration value="grno"/>\r
-                       <xs:enumeration value="SalomeEntry"/>\r
-               </xs:restriction>\r
-       </xs:simpleType>\r
--->\r
-       <xs:simpleType name="T_list_double">\r
-               <xs:list itemType="xs:double"/>\r
-       </xs:simpleType>\r
-       <!-- Possibilité d'utiliser un type paramétré ? -->\r
-       <xs:complexType name="T_Matrice_double">\r
-               <xs:simpleContent>\r
-                       <xs:extension base="T_list_double">\r
-                               <xs:attribute name="n" type="xs:integer" use="required"/>\r
-                               <xs:attribute name="m" type="xs:integer" use="required"/>\r
-                       </xs:extension>\r
-               </xs:simpleContent>\r
-       </xs:complexType>\r
-       <!-- Faire l'exercice de dériver de T_Matrice_double -->\r
-       <xs:complexType name="T_Matrice_Symetrique_double">\r
-               <xs:simpleContent>\r
-                       <xs:extension base="T_list_double">\r
-                               <xs:attribute name="n" type="xs:int" use="required"/>\r
-                       </xs:extension>\r
-               </xs:simpleContent>\r
-       </xs:complexType>\r
-       <!-- Une liste est aussi un type simple ! -->\r
-       <!--    <xs:simpleType name="T_list_anySimpleType">\r
-               <xs:list itemType="xs:anySimpleType"/>\r
-       </xs:simpleType>\r
--->\r
-       <!-- Le fait de ne pas déclarer une liste risque d'être problématique pour le parsing : A voir-->\r
-       <xs:complexType name="T_tuple">\r
-               <xs:simpleContent>\r
-                       <xs:extension base="xs:anySimpleType">\r
-                               <xs:attribute name="n" type="xs:int" use="required"/>\r
-                       </xs:extension>\r
-               </xs:simpleContent>\r
-       </xs:complexType>\r
-       <xs:simpleType name="T_classe_utilisateur">\r
-               <xs:restriction base="AT_nom"/>\r
-       </xs:simpleType>\r
-       <xs:element name="typesimple" type="T_simple"/>\r
-       <xs:element name="matrice_double" type="T_Matrice_double"/>\r
-       <xs:element name="matrice_symetrique_double" type="T_Matrice_Symetrique_double"/>\r
-       <xs:element name="tuple" type="T_tuple"/>\r
-       <xs:element name="classe_utilisateur" type="T_classe_utilisateur"/>\r
-       <!-- Essai -->\r
-       <!--    <xs:group name="T_Attendu_group1">\r
-               <xs:choice>\r
-                       <xs:element ref="typesimple"/>\r
-                       <xs:element ref="matrice_double"/>\r
-                       <xs:element ref="matrice_symetrique_double"/>\r
-                       <xs:element ref="tuple"/>\r
-                       <xs:element ref="classe_utilisateur"/>\r
-               </xs:choice>\r
-       </xs:group>\r
-\r
-       <xs:group name="T_Attendu_group2">\r
-               <xs:choice>\r
-                       <xs:element ref="typesimple"/>\r
-                       <xs:element ref="matrice_double"/>\r
-                       <xs:element ref="matrice_symetrique_double"/>\r
-                       <xs:element ref="tuple"/>\r
-                       <xs:element ref="classe_utilisateur"/>\r
-                       <xs:element ref="fonction_utilisateur" minOccurs="1" maxOccurs="unbounded"/>\r
-               </xs:choice>\r
-       </xs:group>\r
-\r
-       <xs:complexType name="T_typeAttendu">\r
-               <xs:group ref="T_Attendu_group1"/>\r
-       </xs:complexType>\r
-       -->\r
-       <!-- Faire plutot un groupe de substitution pour ne pas croiser les choix -->\r
-       <!--\r
-       <xs:complexType name="T_into">\r
-         <xs:group ref="T_Attendu_group2"/>\r
-       </xs:complexType>\r
-       -->\r
-       <xs:complexType name="T_into">\r
-               <xs:choice>\r
-                       <!--                    <xs:element ref="typesimple" type="T_Base"/>-->\r
-                       <xs:element ref="typesimple" minOccurs="0" maxOccurs="1"/>\r
-                       <xs:element ref="matrice_double" minOccurs="0" maxOccurs="1"/>\r
-                       <xs:element ref="matrice_symetrique_double" minOccurs="0" maxOccurs="1"/>\r
-                       <xs:element ref="tuple" minOccurs="0" maxOccurs="1"/>\r
-                       <xs:element ref="classe_utilisateur" minOccurs="0" maxOccurs="1"/>\r
-                       <xs:element ref="fonction_utilisateur" minOccurs="0" maxOccurs="1"/>\r
-               </xs:choice>\r
-       </xs:complexType>\r
-       <xs:complexType name="T_typeAttendu">\r
-               <xs:complexContent>\r
-                       <xs:restriction base="T_into">\r
-                               <xs:choice>\r
-                                       <xs:element ref="typesimple" minOccurs="0" maxOccurs="1"/>\r
-                                       <xs:element ref="matrice_double" minOccurs="0" maxOccurs="1"/>\r
-                                       <xs:element ref="matrice_symetrique_double" minOccurs="0" maxOccurs="1"/>\r
-                                       <xs:element ref="tuple" minOccurs="0" maxOccurs="1"/>\r
-                                       <xs:element ref="classe_utilisateur" minOccurs="0" maxOccurs="1"/>\r
-                               </xs:choice>\r
-                       </xs:restriction>\r
-               </xs:complexContent>\r
-       </xs:complexType>\r
-</xs:schema>\r
-<!-- Catalogue EFFICAS équivalent\r
-\r
-# coding: utf-8\r
-from Accas import *\r
-\r
-class carte   (ASSD) : pass\r
-class maille   (ASSD) : pass\r
-class carte_flux_r   (carte):pass\r
-\r
-class NOM_CHAM_INTO:\r
-    def __call__(self, *l_typ_cham, **kwargs):\r
-        return tuple(('A','B','C'))\r
-C_NOM_CHAM_INTO = NOM_CHAM_INTO()\r
-\r
-JdC = JDC_CATA(code='MAP',\r
-               execmodul=None,\r
-               regles=ENSEMBLE('E1','E2','E3')\r
-               )\r
-\r
-CREECARTE = OPER(nom="CREECARTE",op=None, sd_prod=carte, UNITE=SIMP(statut='f',typ='I',defaut=21),);\r
-\r
-CREECARTEFLUX = OPER(nom="CREECARTEFLUX",op=None, sd_prod=carte_flux_r,\r
-                   NOMFLUX=SIMP(statut='o',typ='TXM',defaut='monFlux'),\r
-                );\r
-\r
-CREEMAILLE = OPER(nom="CREEMAILLE",op=None, sd_prod=maille,\r
-                NOEUDS=SIMP(statut='o',typ='I',defaut=(1,2),min=2,max=2)\r
-              );\r
-\r
-E1=PROC(nom="E1",\r
-        op=None,\r
-        regles    = (EXCLUS('ETAT_INIT','RESULTAT',),),\r
-        ETAT_INIT = FACT(statut='f', max='**',\r
-                         GROUP_MA_1=SIMP(statut='o',typ='I',validators=NoRepeat(),max='**'),\r
-                         GROUP_NO_2=SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),\r
-                    ),\r
-\r
-        RESULTAT  = FACT(statut='f',\r
-                         DEPL=SIMP(statut='o', typ='R',  validators=NoRepeat()),\r
-                         VITE=SIMP(statut='f', typ='R',  validators=NoRepeat()),\r
-                         ACCE=SIMP(statut='f', typ='R',  validators=NoRepeat()),\r
-                    ), \r
-        );\r
-\r
-E2=PROC(nom="E2", op=None,\r
-        regles   = (UN_PARMI('CONCEPT','CHAINE','TOUT' ),),\r
-        CONCEPT  = FACT(statut='f',max='**',\r
-                   NOM = SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'),\r
-                   ),\r
-        CHAINE   = SIMP(statut='f',typ='TXM'),\r
-        POSITION = SIMP(statut='f',typ='I',defaut=1),\r
-        TOUT     = SIMP(statut='f',typ='TXM',into=("OUI",) ),\r
-        );\r
-\r
-E3=PROC(nom="E3",op=None,\r
-        DEFORMATION = SIMP(statut='f',typ='TXM',defaut="PETIT",\r
-                           into=("PETIT","PETIT_REAC","GROT_GDEP","SIMO_MIEHE","GDEF_HYPO_ELAS","GDEF_LOG")),\r
-        b_blocIn    = BLOC(condition = "DEFORMATION in ('PETIT','PETIT_REAC','GROT_GDEP')",\r
-             ITER_INTE_PAS = SIMP(statut='f',typ='I',defaut= 0 ),\r
-             ALGO_INTE     = SIMP(statut='f',typ='TXM',into=("ANALYTIQUE", "SECANTE", "DEKKER", "NEWTON_1D","BRENT",),),\r
-             CARTE        = SIMP(statut='f',typ=carte,),\r
-             b_carte       = BLOC(condition= "(AsType(CARTE) != carte_flux_r)",\r
-                             CONTRAINTE = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',\r
-                                          fr="Options pour le calcul de contraintes et efforts generalises",\r
-                                           into=C_NOM_CHAM_INTO(phenomene='CONTRAINTE',categorie='lin'),)\r
-                             ),\r
-                      ),  \r
-       );\r
-\r
--->\r
diff --git a/Efi2Xsd/ModeleEficas/Model Efficas (1.1) v7 ext.xsd b/Efi2Xsd/ModeleEficas/Model Efficas (1.1) v7 ext.xsd
new file mode 100755 (executable)
index 0000000..0b53186
--- /dev/null
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!-- edited with XMLSpy v2015 rel. 4 (http://www.altova.com) by USER1 (EDF-DSP) -->\r
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" xmlns="http://chercheurs.edf.com/logiciels/efficas" xmlns:efficas="http://chercheurs.edf.com/logiciels/efficas" xmlns:altova="http://www.altova.com/xml-schema-extensions" targetNamespace="http://chercheurs.edf.com/logiciels/efficas" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0" vc:minVersion="1.1">\r
+       <!--<xs:import  schemaLocation="./Model Efficas (1.1)  v5.xsd" namespace="http://chercheurs.edf.com/logiciels/efficas"/>\r
+-->\r
+       <xs:override schemaLocation="./Model Efficas (1.1)  v7.xsd">\r
+               <xs:attribute name="attribut" type="AT_attribut"/>\r
+               <xs:simpleType name="AT_attribut">\r
+                       <xs:restriction base="xs:string">\r
+                               <xs:enumeration value="n"/>\r
+                               <xs:enumeration value="o"/>\r
+                       </xs:restriction>\r
+               </xs:simpleType>\r
+               <!--            <xs:complexType name="essai">\r
+                       <xs:sequence>\r
+                               <xs:element ref="valeurDef" minOccurs="0"/>\r
+                       </xs:sequence>\r
+                       <xs:attribute ref="attribut" default="n"/>\r
+               </xs:complexType>\r
+-->\r
+               <xs:complexType name="T_SIMP">\r
+                       <xs:sequence>\r
+                               <xs:element ref="doc" minOccurs="0"/>\r
+                               <xs:element ref="portee" minOccurs="0">\r
+                                       <xs:annotation>\r
+                                               <xs:documentation>La portée pouurait devenir un attribut de SIMP. Une autre solution consisterait a créer un SIMPG pour distinguer les @nom uniques des SIMP a portée globale des autres.</xs:documentation>\r
+                                       </xs:annotation>\r
+                               </xs:element>\r
+                               <xs:element ref="valeurDef" minOccurs="0"/>\r
+                               <xs:element ref="valeurSugg" minOccurs="0"/>\r
+                               <xs:element ref="plageValeur" minOccurs="0"/>\r
+                               <xs:element ref="typeAttendu"/>\r
+                               <xs:element ref="validators" minOccurs="0"/>\r
+                       </xs:sequence>\r
+                       <xs:attribute ref="nom" use="required"/>\r
+                       <xs:attribute ref="statut" default="o"/>\r
+                       <xs:attribute ref="min_occurs" default="1"/>\r
+                       <xs:attribute ref="max_occurs" default="1">\r
+                               <xs:annotation>\r
+                                       <xs:documentation>La valeur -1 equivaut à oo</xs:documentation>\r
+                               </xs:annotation>\r
+                       </xs:attribute>\r
+                       <xs:attribute name="attribut" default="n">\r
+                               <xs:simpleType>\r
+                                       <xs:restriction base="xs:string">\r
+                                               <xs:enumeration value="n"/>\r
+                                               <xs:enumeration value="o"/>\r
+                                       </xs:restriction>\r
+                               </xs:simpleType>\r
+                       </xs:attribute>\r
+                       <!-- Les deux lignes suivantes ne fonctionnent pas car il faut que la cible référencée soit déjà définie dans le fichier importé ? -->\r
+                       <!--            <xs:attribute  default="n"  ref="attribut"/>-->\r
+                       <!--            <xs:attribute  default="n"  name="attribut" type="AT_attribut" />-->\r
+               </xs:complexType>\r
+       </xs:override>\r
+</xs:schema>\r
diff --git a/Efi2Xsd/ModeleEficas/Model Efficas (1.1) v7.xsd b/Efi2Xsd/ModeleEficas/Model Efficas (1.1) v7.xsd
new file mode 100755 (executable)
index 0000000..0f1838f
--- /dev/null
@@ -0,0 +1,731 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!-- édité avec XMLSpy v2018 sp1 (http://www.altova.com) par Fayolle (EDF R&D) -->\r
+<!-- edited with XMLSpy v2015 rel. 4 (http://www.altova.com) by USER1 (EDF-DSP) -->\r
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" xmlns="http://chercheurs.edf.com/logiciels/efficas" xmlns:efficas="http://chercheurs.edf.com/logiciels/efficas" xmlns:altova="http://www.altova.com/xml-schema-extensions" targetNamespace="http://chercheurs.edf.com/logiciels/efficas" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0" vc:minVersion="1.1">\r
+       <xs:element name="doc" type="T_doc"/>\r
+       <xs:element name="cata" type="T_cata"/>\r
+       <xs:element name="regles" type="T_regles"/>\r
+       <xs:element name="typeCree" type="T_classe_utilisateur"/>\r
+       <xs:element name="valeurDef" type="T_typeAttendu"/>\r
+       <xs:element name="valeurSugg" type="T_typeAttendu"/>\r
+       <xs:element name="fonction_utilisateur" type="T_fonction_python"/>\r
+       <xs:element name="commandes" type="T_commandes">\r
+               <!-- La contrainte suivante fonctionne -->\r
+               <xs:unique name="Uniq_Command">\r
+                       <xs:selector xpath="*"/>\r
+                       <xs:field xpath="@efficas:nom"/>\r
+               </xs:unique>\r
+       </xs:element>\r
+       <xs:element name="validators" type="T_validators"/>\r
+       <xs:element name="plageValeur" type="T_plageValeur"/>\r
+       <xs:element name="typeAttendu" type="T_name"/>\r
+       <xs:element name="classeUtilisateurName" type="T_classe_utilisateur_username" abstract="true" substitutionGroup="typeAttendu"/>\r
+       <xs:element name="SIMP" type="T_SIMP"/>\r
+       <xs:element name="portee" type="T_portee" default="None"/>\r
+       <xs:element name="condition" type="T_fonction_python"/>\r
+       <xs:element name="borne_sup" type="T_typeAttendu"/>\r
+       <xs:element name="borne_inf" type="T_typeAttendu"/>\r
+       <!--    <xs:element name="into" type="T_into"/>-->\r
+       <xs:element name="into" type="T_into"/>\r
+       <!--    <xs:element name="into_plus_fonction" type="T_into" abstract="true" substitutionGroup="into"/>-->\r
+       <xs:attribute name="nom" type="AT_nom"/>\r
+       <xs:attribute name="ag" type="AT_ag"/>\r
+       <xs:attribute name="fr" type="xs:string"/>\r
+       <xs:attribute name="ang" type="xs:string"/>\r
+       <xs:attribute name="docu" type="AT_docu"/>\r
+       <xs:attribute name="valeur_sugg" type="AT_valeur_sugg"/>\r
+       <xs:attribute name="statut" type="AT_statut" default="o"/>\r
+       <xs:attribute name="max_occurs" type="AT_max_occurs"/>\r
+       <xs:attribute name="min_occurs" type="AT_min_occurs"/>\r
+       <xs:attribute name="subroutine" type="AT_subroutine" default="None"/>\r
+       <xs:complexType name="T_doc">\r
+               <xs:attribute ref="fr" use="optional"/>\r
+               <xs:attribute ref="ang"/>\r
+               <xs:attribute ref="docu"/>\r
+       </xs:complexType>\r
+       <xs:complexType name="T_cata">\r
+               <xs:sequence>\r
+                       <xs:element ref="commandes" minOccurs="0" maxOccurs="unbounded"/>\r
+               </xs:sequence>\r
+       </xs:complexType>\r
+       <xs:complexType name="T_commandes">\r
+               <xs:choice minOccurs="0" maxOccurs="unbounded">\r
+                       <xs:element ref="OPER"/>\r
+                       <xs:element ref="PROC"/>\r
+               </xs:choice>\r
+       </xs:complexType>\r
+       <xs:complexType name="T_Cardinalite"/>\r
+       <xs:complexType name="T_plageValeur">\r
+               <xs:choice>\r
+                       <xs:sequence>\r
+                               <xs:element ref="borne_sup" minOccurs="0"/>\r
+                               <xs:element ref="borne_inf" minOccurs="0"/>\r
+                       </xs:sequence>\r
+                       <xs:element ref="into"/>\r
+               </xs:choice>\r
+       </xs:complexType>\r
+       <xs:complexType name="T_Accas_Common">\r
+               <xs:sequence>\r
+                       <xs:element ref="regles" minOccurs="0"/>\r
+                       <xs:element ref="doc" minOccurs="0"/>\r
+                       <xs:choice maxOccurs="unbounded">\r
+                               <xs:element ref="BLOC"/>\r
+                               <xs:element ref="FACT"/>\r
+                               <xs:element ref="SIMP"/>\r
+                       </xs:choice>\r
+               </xs:sequence>\r
+               <xs:attribute ref="nom" use="required"/>\r
+       </xs:complexType>\r
+       <xs:element name="OPER" type="T_OPER">\r
+               <!-- La contrainte fonctionne uniquement si l'on n'oublie pas le prefix dans l'expression du selector !  -->\r
+               <!-- aucun nom identique ne doit apparaître dans les sous élements d'un même niveau dans OPER ou PROC    -->\r
+               <xs:key name="Key_Name_In_Oper">\r
+                       <xs:annotation>\r
+                               <xs:documentation>SIMP devrait être selectionné que si .//SIMP[portee='Global']</xs:documentation>\r
+                       </xs:annotation>\r
+                       <xs:selector xpath="./efficas:BLOC |./efficas:FACT|./efficas:SIMP"/>\r
+                       <xs:field xpath="@efficas:nom"/>\r
+               </xs:key>\r
+               <xs:keyref name="Oper_Ref_A_Name_In_Exclus" refer="Key_Name_In_Oper">\r
+                       <xs:selector xpath="./efficas:regles/efficas:EXCLUS"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Oper_Uniq_Name_In_Exclus">\r
+                       <xs:selector xpath="./efficas:regles/efficas:EXCLUS"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Oper_Ref_A_Name_In_A_Classer" refer="Key_Name_In_Oper">\r
+                       <xs:selector xpath="./efficas:regles/efficas:A_CLASSER/efficas:p1 | ./efficas:regles/efficas:A_CLASSER/efficas:p2"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Oper_Uniq_Name_In_A_Classer">\r
+                       <xs:selector xpath="./efficas:regles/efficas:A_CLASSER/efficas:p1 | ./efficas:regles/efficas:A_CLASSER/efficas:p2"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Oper_Ref_A_Name_In_Au_Moins_Un" refer="Key_Name_In_Oper">\r
+                       <xs:selector xpath="./efficas:regles/efficas:AU_MOINS_UN"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Oper_Uniq_Name_In_Au_Moins_Un">\r
+                       <xs:selector xpath="./efficas:regles/efficas:AU_MOINS_UN"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Oper_Ref_A_Name_In_Au_Plus_Un" refer="Key_Name_In_Oper">\r
+                       <xs:selector xpath="./efficas:regles/efficas:AU_PLUS_UN"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Oper_Uniq_Name_In_Au_Plus_Un">\r
+                       <xs:selector xpath="./efficas:regles/efficas:AU_PLUS_UN"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Oper_Ref_A_Name_In_Ensemble" refer="Key_Name_In_Oper">\r
+                       <xs:selector xpath="./efficas:regles/efficas:ENSEMBLE"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Oper_Uniq_Name_In_Ensemble">\r
+                       <xs:selector xpath="./efficas:regles/efficas:ENSEMBLE"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Oper_Ref_A_Name_In_Present_Absent" refer="Key_Name_In_Oper">\r
+                       <xs:selector xpath="./efficas:regles/efficas:PRESENT_ABSENT"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Oper_Uniq_Name_In_Present_Absent">\r
+                       <xs:selector xpath="./efficas:regles/efficas:PRESENT_ABSENT"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Oper_Ref_A_Name_In_Present_Present" refer="Key_Name_In_Oper">\r
+                       <xs:selector xpath="./efficas:regles/efficas:PRESENT_PRESENT"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Oper_Uniq_Name_In_Present_Present">\r
+                       <xs:selector xpath="./efficas:regles/efficas:PRESENT_PRESENT"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Oper_Ref_A_Name_In_Un_Parmi" refer="Key_Name_In_Oper">\r
+                       <xs:selector xpath="./efficas:regles/efficas:UN_PARMI"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Oper_Uniq_Name_In_Un_Parmi">\r
+                       <xs:selector xpath="./efficas:regles/efficas:UN_PARMI"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+       </xs:element>\r
+       <xs:complexType name="T_OPER">\r
+               <xs:complexContent>\r
+                       <xs:extension base="T_Accas_Common">\r
+                               <xs:sequence>\r
+                                       <xs:element ref="typeCree"/>\r
+                               </xs:sequence>\r
+                               <xs:attribute ref="subroutine"/>\r
+                       </xs:extension>\r
+               </xs:complexContent>\r
+       </xs:complexType>\r
+       <xs:element name="PROC" type="T_PROC">\r
+               <!-- La contrainte fonctionne pour toutes les PROC adjacentes et devrait être par PROC -->\r
+               <xs:key name="Key_Name_In_Proc">\r
+                       <xs:annotation>\r
+                               <xs:documentation>SIMP devrait être selectionné que si .//SIMP[portee='Global']</xs:documentation>\r
+                       </xs:annotation>\r
+                       <xs:selector xpath="./efficas:BLOC | ./efficas:FACT| ./efficas:SIMP"/>\r
+                       <xs:field xpath="@efficas:nom"/>\r
+               </xs:key>\r
+               <xs:keyref name="Proc_Ref_A_Name_In_Exclus" refer="Key_Name_In_Proc">\r
+                       <xs:selector xpath="./efficas:regles/efficas:EXCLUS"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Proc_Uniq_Name_In_Exclus">\r
+                       <xs:selector xpath="./efficas:regles/efficas:EXCLUS"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Proc_Ref_A_Name_In_A_Classer" refer="Key_Name_In_Proc">\r
+                       <xs:selector xpath="./efficas:regles/efficas:A_CLASSER/efficas:p1 | ./efficas:regles/efficas:A_CLASSER/efficas:p2"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Proc_Uniq_Name_In_A_Classer">\r
+                       <xs:selector xpath="./efficas:regles/efficas:A_CLASSER/efficas:p1 | ./efficas:regles/efficas:A_CLASSER/efficas:p2"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Proc_Ref_A_Name_In_Au_Moins_Un" refer="Key_Name_In_Proc">\r
+                       <xs:selector xpath="./efficas:regles/efficas:AU_MOINS_UN"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Proc_Uniq_Name_In_Au_Moins_Un">\r
+                       <xs:selector xpath="./efficas:regles/efficas:AU_MOINS_UN"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Proc_Ref_A_Name_In_Au_Plus_Un" refer="Key_Name_In_Proc">\r
+                       <xs:selector xpath="./efficas:regles/efficas:AU_PLUS_UN"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Proc_Uniq_Name_In_Au_Plus_Un">\r
+                       <xs:selector xpath="./efficas:regles/efficas:AU_PLUS_UN"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Proc_Ref_A_Name_In_Ensemble" refer="Key_Name_In_Proc">\r
+                       <xs:selector xpath="./efficas:regles/efficas:ENSEMBLE"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Proc_Uniq_Name_In_Ensemble">\r
+                       <xs:selector xpath="./efficas:regles/efficas:ENSEMBLE"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Proc_Ref_A_Name_In_Present_Absent" refer="Key_Name_In_Proc">\r
+                       <xs:selector xpath="./efficas:regles/efficas:PRESENT_ABSENT"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Proc_Uniq_Name_In_Present_Absent">\r
+                       <xs:selector xpath="./efficas:regles/efficas:PRESENT_ABSENT"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Proc_Ref_A_Name_In_Present_Present" refer="Key_Name_In_Proc">\r
+                       <xs:selector xpath="./efficas:regles/efficas:PRESENT_PRESENT"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Proc_Uniq_Name_In_Present_Present">\r
+                       <xs:selector xpath="./efficas:regles/efficas:PRESENT_PRESENT"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+               <xs:keyref name="Ref_A_Name_In_Un_Parmi" refer="Key_Name_In_Proc">\r
+                       <xs:selector xpath="./efficas:regles/efficas:UN_PARMI"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+               <xs:unique name="Proc_Uniq_Name_In_Un_Parmi">\r
+                       <xs:selector xpath="./efficas:regles/efficas:UN_PARMI"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:unique>\r
+       </xs:element>\r
+       <xs:complexType name="T_PROC">\r
+               <xs:complexContent>\r
+                       <xs:extension base="T_Accas_Common">\r
+                               <xs:attribute ref="subroutine"/>\r
+                       </xs:extension>\r
+               </xs:complexContent>\r
+       </xs:complexType>\r
+       <xs:element name="FACT" type="T_FACT">\r
+               <!-- La contrainte fonctionne uniquement si l'on n'oublie pas le prefix dans l'expression du selector !  -->\r
+               <!-- aucun nom identique ne doit apparaître dans les sous élements d'un même niveau de FACT              -->\r
+               <xs:key name="Key_Name_In_Fact">\r
+                       <xs:annotation>\r
+                               <xs:documentation>SIMP devrait être selectionné que si .//SIMP[portee='Global']</xs:documentation>\r
+                       </xs:annotation>\r
+                       <xs:selector xpath="./efficas:BLOC |./efficas:FACT|./efficas:SIMP"/>\r
+                       <xs:field xpath="@efficas:nom"/>\r
+               </xs:key>\r
+               <xs:keyref name="Ref_A_Name_In_Fact" refer="Key_Name_In_Fact">\r
+                       <xs:selector xpath="./efficas:regles/efficas:EXCLUS"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+       </xs:element>\r
+       <!-- Définition par restriction -->\r
+       <!--    <xs:complexType name="T_FACT">\r
+               <xs:complexContent>\r
+                       <xs:restriction base="T_Accas_Common">\r
+                               <xs:sequence>\r
+                                       <xs:element ref="regles" minOccurs="0"/>\r
+                                       <xs:element ref="doc" minOccurs="0"/>\r
+                                       <xs:choice maxOccurs="unbounded">\r
+                                               <xs:element ref="BLOC"/>\r
+                                               <xs:element ref="FACT"/>\r
+                                               <xs:element ref="SIMP"/>\r
+                                       </xs:choice>\r
+                               </xs:sequence>\r
+                       </xs:restriction>\r
+               </xs:complexContent>\r
+       </xs:complexType>-->\r
+       <xs:complexType name="T_FACT">\r
+               <xs:complexContent>\r
+                       <xs:extension base="T_Accas_Common">\r
+                               <xs:attribute ref="statut"/>\r
+                               <xs:attribute ref="min_occurs" default="1"/>\r
+                               <xs:attribute ref="max_occurs" default="1">\r
+                                       <xs:annotation>\r
+                                               <xs:documentation>La valeur -1 equivaut à oo</xs:documentation>\r
+                                       </xs:annotation>\r
+                               </xs:attribute>\r
+                       </xs:extension>\r
+                       <!--                            <xs:assert test=".[exists(@efficas:max_occurs) and exists(@efficas:min_occurs) and @efficas:max_occurs  gt @efficas:min_occurs]"/>\r
+-->\r
+                       <!--<xs:assert test="if (.[exists(@efficas:max_occurs)] and .[exists(@efficas:min_occurs)] ) then (@efficas:max_occurs  gt @efficas:min_occurs) or @efficas:max_occurs = -1 else true" altova:message="Erreur max_occurs  > min_occurs "/>-->\r
+               </xs:complexContent>\r
+       </xs:complexType>\r
+       <xs:simpleType name="T_fonction_python">\r
+               <xs:restriction base="xs:string"/>\r
+       </xs:simpleType>\r
+       <xs:element name="BLOC" type="T_BLOC">\r
+               <xs:key name="Key_Name_In_Bloc">\r
+                       <xs:annotation>\r
+                               <xs:documentation>SIMP devrait être selectionné que si .//SIMP[portee='Global']</xs:documentation>\r
+                       </xs:annotation>\r
+                       <xs:selector xpath="./efficas:BLOC |./efficas:FACT|./efficas:SIMP"/>\r
+                       <xs:field xpath="@efficas:nom"/>\r
+               </xs:key>\r
+               <xs:keyref name="Ref_A_Name_In_Bloc" refer="Key_Name_In_Bloc">\r
+                       <xs:selector xpath="./efficas:regles/efficas:EXCLUS"/>\r
+                       <xs:field xpath="."/>\r
+               </xs:keyref>\r
+       </xs:element>\r
+       <xs:complexType name="T_BLOC">\r
+               <xs:complexContent>\r
+                       <xs:extension base="T_Accas_Common">\r
+                               <xs:sequence>\r
+                                       <xs:element ref="condition"/>\r
+                               </xs:sequence>\r
+                       </xs:extension>\r
+               </xs:complexContent>\r
+       </xs:complexType>\r
+       <xs:complexType name="T_SIMP">\r
+               <xs:sequence>\r
+                       <xs:element ref="doc" minOccurs="0"/>\r
+                       <xs:element ref="portee" minOccurs="0">\r
+                               <xs:annotation>\r
+                                       <xs:documentation>La portée pouurait devenir un attribut de SIMP. Une autre solution consisterait a créer un SIMPG pour distinguer les @nom uniques des SIMP a portée globale des autres.</xs:documentation>\r
+                               </xs:annotation>\r
+                       </xs:element>\r
+                       <xs:element ref="valeurDef" minOccurs="0"/>\r
+                       <xs:element ref="valeurSugg" minOccurs="0"/>\r
+                       <xs:element ref="plageValeur" minOccurs="0"/>\r
+                       <xs:element ref="typeAttendu"/>\r
+                       <xs:element ref="validators" minOccurs="0"/>\r
+               </xs:sequence>\r
+               <xs:attribute ref="nom" use="required"/>\r
+               <xs:attribute ref="statut" default="o"/>\r
+               <xs:attribute ref="min_occurs" default="1"/>\r
+               <xs:attribute ref="max_occurs" default="1">\r
+                       <xs:annotation>\r
+                               <xs:documentation>La valeur -1 equivaut à oo</xs:documentation>\r
+                       </xs:annotation>\r
+               </xs:attribute>\r
+       </xs:complexType>\r
+       <xs:simpleType name="AT_statut">\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="f"/>\r
+                       <xs:enumeration value="o"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <!--<xs:simpleType name="T_repetable">\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="n"/>\r
+                       <xs:enumeration value="o"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>-->\r
+       <xs:simpleType name="T_portee">\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="None"/>\r
+                       <xs:enumeration value="Global"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="AT_max_occurs">\r
+               <xs:restriction base="xs:long">\r
+                       <xs:minInclusive value="-1"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="AT_min_occurs">\r
+               <xs:restriction base="xs:long">\r
+                       <xs:minExclusive value="0"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <!-- Comparable -->\r
+       <!--    <xs:simpleType name="AT_borne_sup">\r
+       <xs:atomic base="xs:double"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="AT_borne_inf">\r
+               <xs:restriction base="xs:double"/>\r
+       </xs:simpleType>\r
+-->\r
+       <xs:simpleType name="AT_ag">\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="No comment"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="AT_docu">\r
+               <xs:annotation>\r
+                       <xs:documentation>Référence une position dans un fichier maître contenant une liste de références à des pages de documentations</xs:documentation>\r
+               </xs:annotation>\r
+               <xs:restriction base="xs:string"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="AT_valeur_sugg">\r
+               <xs:restriction base="xs:string"/>\r
+       </xs:simpleType>\r
+       <!-- TODO: Exclure mots clés python|efficas -->\r
+       <xs:simpleType name="AT_nom">\r
+               <xs:restriction base="xs:string">\r
+                       <xs:pattern value="([A-Z]|[a-z]|_)([A-Z]|[a-z]|_|[0-9])*"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_predicat1">\r
+               <xs:list itemType="AT_nom"/>\r
+               <!-- TODO: Supprimer la liste -->\r
+       </xs:simpleType>\r
+       <xs:complexType name="T_predicat2">\r
+               <xs:sequence>\r
+                       <xs:element name="p1" type="T_predicat1" minOccurs="1"/>\r
+                       <xs:element name="p2" type="AT_nom" minOccurs="1"/>\r
+               </xs:sequence>\r
+               <!-- TODO: Supprimer la séquence -->\r
+       </xs:complexType>\r
+       <xs:element name="A_CLASSER" type="T_predicat2"/>\r
+       <xs:element name="AU_MOINS_UN" type="T_predicat1"/>\r
+       <xs:element name="AU_PLUS_UN" type="T_predicat1"/>\r
+       <xs:element name="ENSEMBLE" type="T_predicat1"/>\r
+       <xs:element name="EXCLUS" type="T_predicat1"/>\r
+       <xs:element name="PRESENT_ABSENT" type="T_predicat1"/>\r
+       <xs:element name="PRESENT_PRESENT" type="T_predicat1"/>\r
+       <xs:element name="UN_PARMI" type="T_predicat1"/>\r
+       <xs:group name="predicat">\r
+               <xs:choice>\r
+                       <xs:element ref="A_CLASSER"/>\r
+                       <xs:element ref="AU_MOINS_UN"/>\r
+                       <xs:element ref="AU_PLUS_UN"/>\r
+                       <xs:element ref="ENSEMBLE"/>\r
+                       <xs:element ref="EXCLUS"/>\r
+                       <xs:element ref="PRESENT_ABSENT"/>\r
+                       <xs:element ref="PRESENT_PRESENT"/>\r
+                       <xs:element ref="UN_PARMI"/>\r
+               </xs:choice>\r
+       </xs:group>\r
+       <xs:complexType name="T_regles">\r
+               <xs:sequence maxOccurs="unbounded">\r
+                       <xs:group ref="predicat"/>\r
+               </xs:sequence>\r
+       </xs:complexType>\r
+       <!--    <xs:simpleType name="T_typeCree">\r
+               <xs:restriction base="T_classe_utilisateur"/>\r
+       </xs:simpleType>\r
+-->\r
+       <xs:simpleType name="AT_subroutine">\r
+               <xs:restriction base="AT_nom"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_validators">\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="NoRepeat"/>\r
+                       <xs:enumeration value="OnlyStr"/>\r
+                       <xs:enumeration value="VerifExiste"/>\r
+                       <xs:enumeration value="VerifTypeTuple"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_Bool">\r
+               <xs:restriction base="xs:boolean"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_list_Bool">\r
+               <xs:list itemType="T_Bool"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_I">\r
+               <xs:restriction base="xs:int"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_list_I">\r
+               <xs:list itemType="T_I"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_R">\r
+               <xs:restriction base="xs:double"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_list_R">\r
+               <xs:list itemType="T_R"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_TXM">\r
+               <xs:restriction base="AT_nom"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_list_TXM">\r
+               <xs:list itemType="T_TXM"/>\r
+       </xs:simpleType>\r
+       <!--fonctionne mais ne permet pas de créer une liste de liste -->\r
+       <xs:simpleType name="T_C">\r
+               <xs:restriction>\r
+                       <xs:simpleType>\r
+                               <xs:list itemType="xs:double"/>\r
+                       </xs:simpleType>\r
+                       <xs:minLength value="2"/>\r
+                       <xs:maxLength value="2"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <!-- Ajouter une contrainte : taille pair -->\r
+       <!-- Il n'est pas possible de définir des listes de listes -->\r
+       <xs:simpleType name="T_list_C">\r
+               <xs:list itemType="xs:double"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_name_base">\r
+               <xs:restriction base="AT_nom"/>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_simple_name">\r
+               <xs:restriction base="T_name_base">\r
+                       <xs:enumeration value="Fichier"/>\r
+                       <xs:enumeration value="Repertoire"/>\r
+                       <xs:enumeration value="TXM"/>\r
+                       <xs:enumeration value="I"/>\r
+                       <xs:enumeration value="R"/>\r
+                       <xs:enumeration value="C"/>\r
+                       <xs:enumeration value="Bool"/>\r
+                       <xs:enumeration value="grma"/>\r
+                       <xs:enumeration value="grno"/>\r
+                       <xs:enumeration value="SalomeEntry"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <!-- On ne peut pas rendre abstrait un simpleType && \r
+          Il n'est pas possible de dériver par restriction un simplecontent d'un type complex qui\r
+          lui peut être abstrait.\r
+    -->\r
+       <xs:simpleType name="T_classe_utilisateur_name">\r
+               <xs:restriction base="T_name">\r
+                       <xs:enumeration value="T_classe_utilisateur"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+       <xs:complexType name="T_classe_utilisateur_username">\r
+               <xs:simpleContent>\r
+                       <xs:extension base="T_classe_utilisateur_name">\r
+                               <xs:attribute ref="nom" use="required"/>\r
+                       </xs:extension>\r
+               </xs:simpleContent>\r
+       </xs:complexType>\r
+       <xs:simpleType name="T_name">\r
+               <xs:union memberTypes="T_simple_name">\r
+                       <xs:simpleType>\r
+                               <xs:restriction base="AT_nom">\r
+                                       <xs:enumeration value="T_Matrice_double"/>\r
+                                       <xs:enumeration value="T_Matrice_Symetrique_double"/>\r
+                                       <xs:enumeration value="T_tuple"/>\r
+                                       <xs:enumeration value="T_classe_utilisateur"/>\r
+                               </xs:restriction>\r
+                       </xs:simpleType>\r
+               </xs:union>\r
+       </xs:simpleType>\r
+       <xs:complexType name="T_grma"/>\r
+       <xs:complexType name="T_grno"/>\r
+       <xs:complexType name="T_SalomeEntry"/>\r
+       <xs:complexType name="T_Fichier"/>\r
+       <!--    <xs:complexType name="T_Repertoire"/>-->\r
+       <xs:simpleType name="T_Repertoire">\r
+               <xs:list>\r
+                       <xs:simpleType>\r
+                               <xs:restriction base="xs:string">\r
+                                       <xs:whiteSpace value="preserve"/>\r
+                               </xs:restriction>\r
+                       </xs:simpleType>\r
+               </xs:list>\r
+       </xs:simpleType>\r
+       <xs:simpleType name="T_simple">\r
+               <xs:union memberTypes="T_I T_list_I T_R T_list_R T_C T_list_C T_TXM T_list_TXM T_Bool T_list_Bool T_Repertoire"/>\r
+       </xs:simpleType>\r
+       <!--    <xs:complexType name="T_TXM"/>-->\r
+       <!--    <xs:simpleType name="T_simple">\r
+               <xs:restriction base="xs:string">\r
+                       <xs:enumeration value="Fichier"/>\r
+                       <xs:enumeration value="Repertoire"/>\r
+                       <xs:enumeration value="TXM"/>\r
+                       <xs:enumeration value="I"/>\r
+                       <xs:enumeration value="R"/>\r
+                       <xs:enumeration value="C"/>\r
+                       <xs:enumeration value="Bool"/>\r
+                       <xs:enumeration value="grma"/>\r
+                       <xs:enumeration value="grno"/>\r
+                       <xs:enumeration value="SalomeEntry"/>\r
+               </xs:restriction>\r
+       </xs:simpleType>\r
+-->\r
+       <xs:simpleType name="T_list_double">\r
+               <xs:list itemType="xs:double"/>\r
+       </xs:simpleType>\r
+       <!-- Possibilité d'utiliser un type paramétré ? -->\r
+       <xs:complexType name="T_Matrice_double">\r
+               <xs:simpleContent>\r
+                       <xs:extension base="T_list_double">\r
+                               <xs:attribute name="n" type="xs:integer" use="required"/>\r
+                               <xs:attribute name="m" type="xs:integer" use="required"/>\r
+                       </xs:extension>\r
+               </xs:simpleContent>\r
+       </xs:complexType>\r
+       <!-- Faire l'exercice de dériver de T_Matrice_double -->\r
+       <xs:complexType name="T_Matrice_Symetrique_double">\r
+               <xs:simpleContent>\r
+                       <xs:extension base="T_list_double">\r
+                               <xs:attribute name="n" type="xs:int" use="required"/>\r
+                       </xs:extension>\r
+               </xs:simpleContent>\r
+       </xs:complexType>\r
+       <!-- Une liste est aussi un type simple ! -->\r
+       <!--    <xs:simpleType name="T_list_anySimpleType">\r
+               <xs:list itemType="xs:anySimpleType"/>\r
+       </xs:simpleType>\r
+-->\r
+       <!-- Le fait de ne pas déclarer une liste risque d'être problématique pour le parsing : A voir-->\r
+       <xs:complexType name="T_tuple">\r
+               <xs:simpleContent>\r
+                       <xs:extension base="xs:anySimpleType">\r
+                               <xs:attribute name="n" type="xs:int" use="required"/>\r
+                       </xs:extension>\r
+               </xs:simpleContent>\r
+       </xs:complexType>\r
+       <xs:simpleType name="T_classe_utilisateur">\r
+               <xs:restriction base="AT_nom"/>\r
+       </xs:simpleType>\r
+       <xs:element name="typesimple" type="T_simple"/>\r
+       <xs:element name="matrice_double" type="T_Matrice_double"/>\r
+       <xs:element name="matrice_symetrique_double" type="T_Matrice_Symetrique_double"/>\r
+       <xs:element name="tuple" type="T_tuple"/>\r
+       <xs:element name="classe_utilisateur" type="T_classe_utilisateur"/>\r
+       <!-- Essai -->\r
+       <!--    <xs:group name="T_Attendu_group1">\r
+               <xs:choice>\r
+                       <xs:element ref="typesimple"/>\r
+                       <xs:element ref="matrice_double"/>\r
+                       <xs:element ref="matrice_symetrique_double"/>\r
+                       <xs:element ref="tuple"/>\r
+                       <xs:element ref="classe_utilisateur"/>\r
+               </xs:choice>\r
+       </xs:group>\r
+\r
+       <xs:group name="T_Attendu_group2">\r
+               <xs:choice>\r
+                       <xs:element ref="typesimple"/>\r
+                       <xs:element ref="matrice_double"/>\r
+                       <xs:element ref="matrice_symetrique_double"/>\r
+                       <xs:element ref="tuple"/>\r
+                       <xs:element ref="classe_utilisateur"/>\r
+                       <xs:element ref="fonction_utilisateur" minOccurs="1" maxOccurs="unbounded"/>\r
+               </xs:choice>\r
+       </xs:group>\r
+\r
+       <xs:complexType name="T_typeAttendu">\r
+               <xs:group ref="T_Attendu_group1"/>\r
+       </xs:complexType>\r
+       -->\r
+       <!-- Faire plutot un groupe de substitution pour ne pas croiser les choix -->\r
+       <!--\r
+       <xs:complexType name="T_into">\r
+         <xs:group ref="T_Attendu_group2"/>\r
+       </xs:complexType>\r
+       -->\r
+       <xs:complexType name="T_into">\r
+               <xs:choice>\r
+                       <!--                    <xs:element ref="typesimple" type="T_Base"/>-->\r
+                       <xs:element ref="typesimple" minOccurs="0" maxOccurs="1"/>\r
+                       <xs:element ref="matrice_double" minOccurs="0" maxOccurs="1"/>\r
+                       <xs:element ref="matrice_symetrique_double" minOccurs="0" maxOccurs="1"/>\r
+                       <xs:element ref="tuple" minOccurs="0" maxOccurs="1"/>\r
+                       <xs:element ref="classe_utilisateur" minOccurs="0" maxOccurs="1"/>\r
+                       <xs:element ref="fonction_utilisateur" minOccurs="0" maxOccurs="1"/>\r
+               </xs:choice>\r
+       </xs:complexType>\r
+       <xs:complexType name="T_typeAttendu">\r
+               <xs:complexContent>\r
+                       <xs:restriction base="T_into">\r
+                               <xs:choice>\r
+                                       <xs:element ref="typesimple" minOccurs="0" maxOccurs="1"/>\r
+                                       <xs:element ref="matrice_double" minOccurs="0" maxOccurs="1"/>\r
+                                       <xs:element ref="matrice_symetrique_double" minOccurs="0" maxOccurs="1"/>\r
+                                       <xs:element ref="tuple" minOccurs="0" maxOccurs="1"/>\r
+                                       <xs:element ref="classe_utilisateur" minOccurs="0" maxOccurs="1"/>\r
+                               </xs:choice>\r
+                       </xs:restriction>\r
+               </xs:complexContent>\r
+       </xs:complexType>\r
+</xs:schema>\r
+<!-- Catalogue EFFICAS équivalent\r
+\r
+# coding: utf-8\r
+from Accas import *\r
+\r
+class carte   (ASSD) : pass\r
+class maille   (ASSD) : pass\r
+class carte_flux_r   (carte):pass\r
+\r
+class NOM_CHAM_INTO:\r
+    def __call__(self, *l_typ_cham, **kwargs):\r
+        return tuple(('A','B','C'))\r
+C_NOM_CHAM_INTO = NOM_CHAM_INTO()\r
+\r
+JdC = JDC_CATA(code='MAP',\r
+               execmodul=None,\r
+               regles=ENSEMBLE('E1','E2','E3')\r
+               )\r
+\r
+CREECARTE = OPER(nom="CREECARTE",op=None, sd_prod=carte, UNITE=SIMP(statut='f',typ='I',defaut=21),);\r
+\r
+CREECARTEFLUX = OPER(nom="CREECARTEFLUX",op=None, sd_prod=carte_flux_r,\r
+                   NOMFLUX=SIMP(statut='o',typ='TXM',defaut='monFlux'),\r
+                );\r
+\r
+CREEMAILLE = OPER(nom="CREEMAILLE",op=None, sd_prod=maille,\r
+                NOEUDS=SIMP(statut='o',typ='I',defaut=(1,2),min=2,max=2)\r
+              );\r
+\r
+E1=PROC(nom="E1",\r
+        op=None,\r
+        regles    = (EXCLUS('ETAT_INIT','RESULTAT',),),\r
+        ETAT_INIT = FACT(statut='f', max='**',\r
+                         GROUP_MA_1=SIMP(statut='o',typ='I',validators=NoRepeat(),max='**'),\r
+                         GROUP_NO_2=SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),\r
+                    ),\r
+\r
+        RESULTAT  = FACT(statut='f',\r
+                         DEPL=SIMP(statut='o', typ='R',  validators=NoRepeat()),\r
+                         VITE=SIMP(statut='f', typ='R',  validators=NoRepeat()),\r
+                         ACCE=SIMP(statut='f', typ='R',  validators=NoRepeat()),\r
+                    ), \r
+        );\r
+\r
+E2=PROC(nom="E2", op=None,\r
+        regles   = (UN_PARMI('CONCEPT','CHAINE','TOUT' ),),\r
+        CONCEPT  = FACT(statut='f',max='**',\r
+                   NOM = SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'),\r
+                   ),\r
+        CHAINE   = SIMP(statut='f',typ='TXM'),\r
+        POSITION = SIMP(statut='f',typ='I',defaut=1),\r
+        TOUT     = SIMP(statut='f',typ='TXM',into=("OUI",) ),\r
+        );\r
+\r
+E3=PROC(nom="E3",op=None,\r
+        DEFORMATION = SIMP(statut='f',typ='TXM',defaut="PETIT",\r
+                           into=("PETIT","PETIT_REAC","GROT_GDEP","SIMO_MIEHE","GDEF_HYPO_ELAS","GDEF_LOG")),\r
+        b_blocIn    = BLOC(condition = "DEFORMATION in ('PETIT','PETIT_REAC','GROT_GDEP')",\r
+             ITER_INTE_PAS = SIMP(statut='f',typ='I',defaut= 0 ),\r
+             ALGO_INTE     = SIMP(statut='f',typ='TXM',into=("ANALYTIQUE", "SECANTE", "DEKKER", "NEWTON_1D","BRENT",),),\r
+             CARTE        = SIMP(statut='f',typ=carte,),\r
+             b_carte       = BLOC(condition= "(AsType(CARTE) != carte_flux_r)",\r
+                             CONTRAINTE = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',\r
+                                          fr="Options pour le calcul de contraintes et efforts generalises",\r
+                                           into=C_NOM_CHAM_INTO(phenomene='CONTRAINTE',categorie='lin'),)\r
+                             ),\r
+                      ),  \r
+       );\r
+\r
+-->\r
index 41dfb39a7a3477ba4ce580c26a02ebcabffea007..5decbe1fba5612df74838c97875e6043ab8e147f 100644 (file)
@@ -50,6 +50,7 @@ class COMMENTAIRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT) :
     self.actif=1
     self.state="unchanged"
     self.register()
+    self.fenetreIhm=None
 
   def register(self):
     """ 
index fbb2e8fe6881bbb8e91c7800b5453dad59d27bc5..dce4ee9997e97af68dadb55b06f70af2cc1235ee 100644 (file)
@@ -29,13 +29,12 @@ import traceback,types
 # Modules Eficas
 from Extensions.i18n import tr
 from Extensions.eficas_exception import EficasException
-from . import I_ETAPE
-from . import I_ENTITE
-from . import I_OBJECT
+from Ihm  import I_ETAPE
+from Ihm import I_ENTITE
+from Ihm import I_OBJECT
 import Noyau
 from Noyau.N_ASSD import ASSD
 from Noyau import N__F
-import convert
 from Extensions import param2
 
 # import rajoutes suite a l'ajout de buildSd --> a resorber
index 47f9e487431d96661f19a7b60a7b5cd19631a414..7035e14b9374596f6a4af444ffdfaf085ad2f1f6 100644 (file)
@@ -83,9 +83,6 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem):
     def init(self):
         # Si l'objet Accas (MCList) a moins d'un mot cle facteur
         # on utilise directement ce mot cle facteur comme delegue
-        print ('je suis dans init de MCListTreeItem')
-        #import traceback
-        #traceback.print_stack()
         self.updateDelegate()
 
     def updateDelegate(self):
@@ -100,7 +97,6 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem):
             FACTPanel.
             Si la liste est plus longue on utilise le panneau MCLISTPanel.
         """
-        print ('je suis dans panel de MCListTreeItem')
         if len(self._object) > 1:
            return MCLISTPanel(jdcdisplay,pane,node)
         elif isinstance(self._object.data[0],ErrorObj):
index 2e83209e04e2d97fe7ee570b48b3672b31f82864..3223fa57c1c14124032fee4a85a98ac13811766e 100644 (file)
@@ -80,7 +80,10 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):
             from InterfaceQT4.monWidgetCBIntoSug import MonWidgetCBIntoSug
             widget=MonWidgetCBIntoSug(self,maDefinition,monNom,monObjet,parentQt,maCommande)
           elif  maDefinition.into != [] and maDefinition.into != None:
-            if len(monInto) < 4 :
+            if maDefinition.fenetreIhm=='menuDeroulant' :
+              from InterfaceQT4.monWidgetCB import MonWidgetCB
+              widget=MonWidgetCB(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+            elif len(monInto) < 4 :
               from InterfaceQT4.monWidgetRadioButton import MonWidgetRadioButton
               widget=MonWidgetRadioButton(self,maDefinition,monNom,monObjet,parentQt,maCommande)
             elif len(monInto) < 7 :
@@ -184,7 +187,7 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):
                   widget=MonWidgetPlusieursPlieASSD(self,maDefinition,monNom,monObjet,parentQt,maCommande)
           elif self.item.waitTuple() :
             if self.item.object.definition.fenetreIhm == 'Tableau' :
-               from InterfaceQT4.monWidgetPlusieursTuple2 import MonWidgetTableau
+               from InterfaceQT4.monWidgetTableau import MonWidgetTableau
                widget=MonWidgetTableau(self,maDefinition,monNom,monObjet,parentQt,maCommande)
             elif self.item.object.definition.type[0].ntuple == 2:
                from InterfaceQT4.monWidgetPlusieursTuple2 import MonWidgetPlusieursTuple2
index 09f922b6dc4e6e7f272cddce85c1972858853d9d..970e359f36f87b3eefb464cdd1cca5bad9f0d6b2 100755 (executable)
@@ -37,7 +37,6 @@ from PyQt5.QtCore    import QProcess, QFileInfo, QTimer, Qt, QDir, QSize
 import traceback
 
 # Modules Eficas
-import convert, generator
 from Extensions.i18n import tr
 
 from Editeur        import session
@@ -119,6 +118,14 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
 
         self.Commandes_Ordre_Catalogue =self.readercata.Commandes_Ordre_Catalogue
 
+        if self.appliEficas.readercata.demandeCatalogue==True  :
+           nomFichierTranslation='translatorFichier'+'_'+str(self.appliEficas.readercata.versionCode)
+           if hasattr(self.appliEficas.maConfiguration,nomFichierTranslation) :
+              translatorFichier=getattr(self.appliEficas.maConfiguration,nomFichierTranslation)
+              from Extensions import localisation
+              localisation.localise(None,self.appliEficas.langue,translatorFichier=translatorFichier)
+
+
         if self.jdc_item and self.appliEficas.ssIhm==False :
             self.tree = browser.JDCTree( self.jdc_item,  self )
         self.appliEficas.construitMenu()
@@ -847,8 +854,8 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget):
             self.generator.writeDefault(fn)
         elif self.code=="TELEMAC" and hasattr(self.generator, "writeDefault"):
             msgBox = QMessageBox(None)
-            msgBox.setWindowTitle(tr("Fichier Cas invalide"))
-            msgBox.setText(tr("Le fichier cas est invalide"))
+            msgBox.setWindowTitle(tr("Fichier .cas invalide / incomplet"))
+            msgBox.setText(tr("Le fichier .cas est invalide / incomplet"))
             msgBox.addButton(tr("&Sauvegarder"),1)
             msgBox.addButton(tr("&Quitter sans sauvegarder"),0)
             msgBox.addButton(tr("&Annuler"),2)
index e4b162ae61dedfbcf7b63bc19b81907ef5af6f4c..71578674f7f09bf6ce439be2722b4059b2316f89 100755 (executable)
@@ -82,13 +82,11 @@ class JDCEditorSsIhm :
         self.version_code = session.d_env.cata
 
 
-        if not hasattr ( self.appliEficas, 'readercata') or  self.appliEficas.multi==True:
+        if not hasattr ( self.appliEficas, 'readercata') or self.appliEficas.readercata.demandeCatalogue==True or self.appliEficas.multi==True:
            if self.maConfiguration.typeDeCata == 'XML' :
               from InterfaceQT4   import readercataXML as readercata
            else :
               from InterfaceQT4   import readercata
-           print (self.maConfiguration.typeDeCata)
-           print (readercata)
            self.readercata  = readercata.READERCATA( self, self.appliEficas )
            self.appliEficas.readercata=self.readercata
            self.readercata.dumpToXml()
index 36ebed455eba0fc9c2c4f2786476ef2389882e8c..10052d4f67041b57d7b4d149c87d58605bc080ed 100644 (file)
@@ -26,7 +26,6 @@ import types,os
 from InterfaceQT4.feuille                  import Feuille
 from InterfaceQT4.monWidgetPlusieursTuple  import MonWidgetPlusieursTuple 
 from desWidgetPlusieursTuple               import Ui_WidgetPlusieursTuple
-from desWidgetTableau                      import Ui_WidgetTableau
 
 
 class MonWidgetPlusieursTuple2 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple):
@@ -35,13 +34,4 @@ class MonWidgetPlusieursTuple2 (Ui_WidgetPlusieursTuple,MonWidgetPlusieursTuple)
         self.nbValeurs=2
         MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
       
-class MonWidgetTableau (Ui_WidgetTableau,MonWidgetPlusieursTuple):
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-        self.nbValeurs=len(monSimpDef.homo)
-        MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
-        self.resize(self.width(),1800)
-
-  def ajoutLineEdit(self,valeur=None,inInit=False):
-      hauteurAvant=(self.frame.height())
-      MonWidgetPlusieursTuple.ajoutLineEdit(self,valeur,inInit)
 
index 3c8c7bc91f82b3b0d76abb5da530d770fc2ef489..0764c2458f63f95f0f669a5757c30c05d5ac83f9 100644 (file)
@@ -32,9 +32,9 @@ from PyQt5.QtCore import Qt
 # Modules Eficas
 from Extensions.i18n import tr
 
-from .feuille               import Feuille
-from .politiquesValidation  import PolitiqueUnique
-from .qtSaisie              import SaisieValeur
+from InterfaceQT4.feuille               import Feuille
+from InterfaceQT4.politiquesValidation  import PolitiqueUnique
+from InterfaceQT4.qtSaisie              import SaisieValeur
 
 
 class MonWidgetSimpTuple(Feuille):
index 0d74bcaf627fcd84f8baa30f2edaf0be1aabad78..4440639d2eb5d63c8f8a060eaeea9a58e47eec52 100644 (file)
@@ -26,8 +26,8 @@ import types,os
 #from PyQt4.QtCore import *
 from Extensions.i18n import tr
 
-from .feuille               import Feuille
-from .monWidgetSimpTuple    import MonWidgetSimpTuple 
+from InterfaceQT4.feuille               import Feuille
+from InterfaceQT4.monWidgetSimpTuple    import MonWidgetSimpTuple 
 from desWidgetTuple2       import Ui_WidgetTuple2 
 
 
diff --git a/InterfaceQT4/monWidgetTableau.py b/InterfaceQT4/monWidgetTableau.py
new file mode 100644 (file)
index 0000000..5a0bc06
--- /dev/null
@@ -0,0 +1,73 @@
+# -*- 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
+#
+# Modules Python
+from __future__ import absolute_import
+import types,os
+
+# Modules Eficas
+
+from PyQt5.QtWidgets import QLabel, QSizePolicy, QSpacerItem
+from PyQt5.QtCore    import QSize
+
+from InterfaceQT4.feuille                  import Feuille
+from InterfaceQT4.monWidgetPlusieursTuple  import MonWidgetPlusieursTuple 
+from desWidgetPlusieursTuple               import Ui_WidgetPlusieursTuple
+from desWidgetTableau                      import Ui_WidgetTableau
+
+maxLen=3
+
+
+class MonWidgetTableau (Ui_WidgetTableau,MonWidgetPlusieursTuple):
+  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+        self.nbValeurs=len(monSimpDef.homo)
+        MonWidgetPlusieursTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
+
+        sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+
+        for i in range(len(monSimpDef.homo)):
+            nomCol='LECol'+str(i+1)
+            objCol=QLabel(self)
+            objCol.setMinimumSize(QSize(80, 25))
+            objCol.setText(monSimpDef.homo[i])
+            self.LATitre.addWidget(objCol)
+            setattr(self,nomCol,objCol)
+            spacerItem = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+            self.LATitre.addItem(spacerItem)
+
+
+
+#            monObjTitreCol=getattr(self,nomCol)
+#            monObjTitreCol.setText(monSimpDef.homo[i])
+            
+#        for i in range(maxLen-len(monSimpDef.homo)):
+#            index=i+len(monSimpDef.homo)+1
+#            nomCol='LECol'+str(index)
+#            monObjTitreCol=getattr(self,nomCol)
+#            monObjTitreCol.close()
+            
+        self.resize(self.width(),1800)
+
+  def ajoutLineEdit(self,valeur=None,inInit=False):
+      hauteurAvant=(self.frame.height())
+      MonWidgetPlusieursTuple.ajoutLineEdit(self,valeur,inInit)
+
index ccb66f9f09c2e0d001a0a2bb7e65bd496f857027..bbae501f96a708acb12c335a02b637b5e2588ca9 100644 (file)
@@ -45,7 +45,7 @@ import analyse_catalogue
 import analyse_catalogue_initial
 import autre_analyse_cata
 import uiinfo
-from .monChoixCata import MonChoixCata
+from InterfaceQT4.monChoixCata import MonChoixCata
 from Extensions.i18n import tr
 from Extensions.eficas_exception import EficasException
 
@@ -59,6 +59,7 @@ class READERCATA(object):
       self.QWParent=QWParent
       self.appliEficas=self.QWParent.appliEficas
       self.VERSION_EFICAS=self.appliEficas.VERSION_EFICAS
+      self.demandeCatalogue=False
       self.code=self.appliEficas.code
       self.ssCode=self.appliEficas.ssCode
       self.appliEficas.format_fichier='python'
@@ -137,6 +138,7 @@ class READERCATA(object):
               # plusieurs catalogues sont disponibles : il faut demander a l'utilisateur
               # lequel il veut utiliser ...
               self.askChoixCatalogue(cata_choice_list)
+              self.demandeCatalogue=True
 
       if self.fic_cata == None :
           if self.appliEficas.salome == 0 :
@@ -168,6 +170,11 @@ class READERCATA(object):
       if hasattr(self.cata, 'Classement_Commandes_Ds_Arbre') : 
              self.Classement_Commandes_Ds_Arbre=self.cata.Classement_Commandes_Ds_Arbre
       else : self.Classement_Commandes_Ds_Arbre=()
+      if hasattr(self.cata,'enum'):
+         _temp= __import__(self.cata.enum,globals(), locals(), ['DicoEnumCasFrToEnumCasEn', 'TelemacdicoEn'], 0)
+         self.DicoEnumCasFrToEnumCasEn = _temp.DicoEnumCasFrToEnumCasEn
+         self.TelemacdicoEn = _temp.TelemacdicoEn
+        
       #print self.cata.Ordre_Des_Commandes
 
       #
@@ -249,18 +256,18 @@ class READERCATA(object):
       widgetChoix = MonChoixCata(self.appliEficas, [cata.user_name for cata in cata_choice_list], title)
       ret=widgetChoix.exec_()
       
+      
       lab=str(self.VERSION_EFICAS)+" "
       lab+=tr(" pour ")
       lab+=str(self.code) 
       lab+=tr(" avec le catalogue ")
       if ret == QDialog.Accepted:
-          print (widgetChoix.CBChoixCata.currentIndex())
           cata = cata_choice_list[widgetChoix.CBChoixCata.currentIndex()]
           self.fic_cata = cata.cata_file_path
           self.versionCode = cata.identifier
           self.appliEficas.format_fichier = cata.file_format
           self.appliEficas.format_fichier_in = cata.file_format_in
-          lab+=self.versionCata
+          lab+=self.versionCode
           self.appliEficas.setWindowTitle(lab)
           #qApp.mainWidget().setCaption(lab)
           widgetChoix.close()
index fbdcd64e273f6d5ceada8012f5b109fd2b9262de..683ece928b5276b7c18d20669928cf06fcca6347 100644 (file)
@@ -54,6 +54,7 @@ class READERCATA:
       self.titre='Eficas XML'
       self.Ordre_Des_Commandes=None
       self.Classement_Commandes_Ds_Arbre=()
+      self.demandeCatalogue=False
 
       #self.traiteIcones()
       #self.creeDicoInverse()
@@ -61,9 +62,10 @@ class READERCATA:
 
    def OpenCata(self):
 
-      self.fic_cata = 'Cata_MED_FAM.xml'
-      
-      xml = open('/home/A96028/QT5GitEficasTravail/eficas/Med/Cata_MED_FAM.xml').read()
+      #self.fic_cata = 'Cata_MED_FAM.xml'
+      #xml = open('/home/A96028/QT5GitEficasTravail/eficas/Med/Cata_MED_FAM.xml').read()
+      self.fic_cata = 'cata_test1.xml'
+      xml = open('/home/A96028/QT5GitEficasTravail/eficas/CataTestXSD/cata_test1.xml').read()
       SchemaMed = readerEfficas.efficas.CreateFromDocument(xml)
       SchemaMed.exploreCata() 
       #self.cata=(SchemaMed,)
index 45e511c95a614294e1ba9fb03f32e363a814af35..291f7cdddeb63e6a5b75822c62cff0bd55db3c09 100644 (file)
@@ -93,6 +93,7 @@ eficas_compile_ui ( desWidgetSimpComplexe.ui )
 eficas_compile_ui ( desWidgetSimpFichier.ui )
 eficas_compile_ui ( desWidgetSimpSalome.ui )
 eficas_compile_ui ( desWidgetSimpTxt.ui )
+eficas_compile_ui ( desWidgetTableau.ui )
 eficas_compile_ui ( desWidgetTuple2.ui )
 eficas_compile_ui ( desWidgetTuple3.ui )
 eficas_compile_ui ( desWidgetUniqueSDCO.ui )
index 10c44979198b9fcc53f2142f064d8bc5372d5679..9d77748364069fb93d4c047f3ee345fc811646c1 100644 (file)
@@ -6,10 +6,16 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>880</width>
-    <height>33</height>
+    <width>490</width>
+    <height>29</height>
    </rect>
   </property>
+  <property name="sizePolicy">
+   <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+    <horstretch>0</horstretch>
+    <verstretch>0</verstretch>
+   </sizepolicy>
+  </property>
   <property name="windowTitle">
    <string>Form</string>
   </property>
    <property name="spacing">
     <number>0</number>
    </property>
-   <property name="margin">
+   <property name="leftMargin">
+    <number>1</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
     <number>0</number>
    </property>
    <item>
@@ -30,7 +45,7 @@
    <item>
     <widget class="LECustomTuple" name="lineEditVal_1">
      <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+      <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
@@ -68,7 +83,7 @@ border:0px;
    <item>
     <widget class="LECustomTuple" name="lineEditVal_2">
      <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+      <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
@@ -81,7 +96,7 @@ border:0px;
      </property>
      <property name="maximumSize">
       <size>
-       <width>805</width>
+       <width>10000</width>
        <height>16777215</height>
       </size>
      </property>
@@ -104,7 +119,7 @@ border:0px;</string>
    <item>
     <widget class="LECustomTuple" name="lineEditVal_3">
      <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+      <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
        <horstretch>0</horstretch>
        <verstretch>0</verstretch>
       </sizepolicy>
@@ -117,7 +132,7 @@ border:0px;</string>
      </property>
      <property name="maximumSize">
       <size>
-       <width>805</width>
+       <width>10000</width>
        <height>16777215</height>
       </size>
      </property>
@@ -142,9 +157,12 @@ border:0px;</string>
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
+     <property name="sizeType">
+      <enum>QSizePolicy::Preferred</enum>
+     </property>
      <property name="sizeHint" stdset="0">
       <size>
-       <width>123</width>
+       <width>5</width>
        <height>20</height>
       </size>
      </property>
diff --git a/UiQT5/commandeTableau.ui b/UiQT5/commandeTableau.ui
deleted file mode 100644 (file)
index 9071824..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>Form</class>
- <widget class="QWidget" name="Form">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>760</width>
-    <height>515</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QTableWidget" name="TBMatrice"/>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
index 7593f854179a0afa0cac3c7a99e7acfc0608d6fa..f02a78543eba61ca89efb951862ed0b74d57252b 100644 (file)
@@ -458,111 +458,6 @@ font : 'times' 9px</string>
         <property name="verticalSpacing">
          <number>0</number>
         </property>
-        <item row="0" column="0">
-         <widget class="QPushButton" name="bAvant">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
-          </property>
-          <property name="minimumSize">
-           <size>
-            <width>60</width>
-            <height>24</height>
-           </size>
-          </property>
-          <property name="maximumSize">
-           <size>
-            <width>60</width>
-            <height>24</height>
-           </size>
-          </property>
-          <property name="focusPolicy">
-           <enum>Qt::ClickFocus</enum>
-          </property>
-          <property name="toolTip">
-           <string>Affiche le formulaire de la commande précédente</string>
-          </property>
-          <property name="styleSheet">
-           <string notr="true">background-color:rgb(104,110,149);
-color :white;
-border-radius : 12px
-</string>
-          </property>
-          <property name="text">
-           <string>&lt;&lt;</string>
-          </property>
-          <property name="shortcut">
-           <string>Shift+A, Alt+A, Alt+A, Alt+A</string>
-          </property>
-          <property name="autoDefault">
-           <bool>true</bool>
-          </property>
-          <property name="default">
-           <bool>true</bool>
-          </property>
-         </widget>
-        </item>
-        <item row="0" column="1">
-         <widget class="QPushButton" name="bApres">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
-          </property>
-          <property name="minimumSize">
-           <size>
-            <width>60</width>
-            <height>24</height>
-           </size>
-          </property>
-          <property name="maximumSize">
-           <size>
-            <width>60</width>
-            <height>24</height>
-           </size>
-          </property>
-          <property name="focusPolicy">
-           <enum>Qt::ClickFocus</enum>
-          </property>
-          <property name="toolTip">
-           <string>Affiche le formulaire de la commande suivante</string>
-          </property>
-          <property name="styleSheet">
-           <string notr="true">background-color:rgb(104,110,149);
-color :white;
-border-radius : 12px
-</string>
-          </property>
-          <property name="text">
-           <string>&gt;&gt;</string>
-          </property>
-          <property name="shortcut">
-           <string>Shift+A, Alt+A, Alt+A, Alt+A</string>
-          </property>
-          <property name="autoDefault">
-           <bool>true</bool>
-          </property>
-          <property name="default">
-           <bool>true</bool>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="0">
-         <spacer name="verticalSpacer_2">
-          <property name="orientation">
-           <enum>Qt::Vertical</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>20</width>
-            <height>0</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
        </layout>
       </item>
      </layout>
index 7775b820a052d4ff1e3e17bf3d9b8dfe791cfdc1..642090f79f34dab3ae7389c04fbe238620a90d3a 100644 (file)
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>662</width>
-    <height>163</height>
+    <width>740</width>
+    <height>386</height>
    </rect>
   </property>
   <property name="sizePolicy">
         </size>
        </property>
        <property name="text">
-        <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;TextLabel     dqDFDQ&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+        <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
        </property>
       </widget>
      </item>
             <rect>
              <x>0</x>
              <y>0</y>
-             <width>211</width>
-             <height>84</height>
+             <width>289</width>
+             <height>307</height>
             </rect>
            </property>
            <property name="sizePolicy">
             <property name="spacing">
              <number>0</number>
             </property>
-            <property name="leftMargin">
-             <number>0</number>
-            </property>
-            <property name="topMargin">
-             <number>0</number>
-            </property>
-            <property name="rightMargin">
-             <number>0</number>
-            </property>
-            <property name="bottomMargin">
+            <property name="margin">
              <number>0</number>
             </property>
             <item>
         <enum>QFrame::Box</enum>
        </property>
        <layout class="QHBoxLayout" name="horizontalLayout_6">
-        <property name="leftMargin">
-         <number>0</number>
-        </property>
-        <property name="topMargin">
-         <number>0</number>
-        </property>
-        <property name="rightMargin">
-         <number>0</number>
-        </property>
-        <property name="bottomMargin">
+        <property name="margin">
          <number>0</number>
         </property>
         <item>
             </property>
             <property name="icon">
              <iconset theme="go-up">
-              <normaloff>.</normaloff>.</iconset>
+              <normaloff/>
+             </iconset>
             </property>
             <property name="iconSize">
              <size>
             </property>
             <property name="icon">
              <iconset theme="go-down">
-              <normaloff>.</normaloff>.</iconset>
+              <normaloff/>
+             </iconset>
             </property>
             <property name="iconSize">
              <size>
          </property>
          <property name="icon">
           <iconset theme="text-x-generic">
-           <normaloff>.</normaloff>.</iconset>
+           <normaloff/>
+          </iconset>
          </property>
          <property name="iconSize">
           <size>
diff --git a/UiQT5/desWidgetTableau.ui b/UiQT5/desWidgetTableau.ui
new file mode 100644 (file)
index 0000000..b6f1cd3
--- /dev/null
@@ -0,0 +1,588 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>WidgetTableau</class>
+ <widget class="QWidget" name="WidgetTableau">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>1232</width>
+    <height>656</height>
+   </rect>
+  </property>
+  <property name="sizePolicy">
+   <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
+    <horstretch>0</horstretch>
+    <verstretch>0</verstretch>
+   </sizepolicy>
+  </property>
+  <property name="minimumSize">
+   <size>
+    <width>0</width>
+    <height>0</height>
+   </size>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QHBoxLayout" name="horizontalLayout_5">
+   <item>
+    <layout class="QVBoxLayout" name="verticalLayout_4">
+     <item>
+      <layout class="QHBoxLayout" name="horizontalLayout">
+       <property name="spacing">
+        <number>0</number>
+       </property>
+       <property name="sizeConstraint">
+        <enum>QLayout::SetFixedSize</enum>
+       </property>
+       <item>
+        <spacer name="horizontalSpacer_3">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Fixed</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>21</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item>
+        <widget class="MonBoutonValide" name="RBValide">
+         <property name="minimumSize">
+          <size>
+           <width>21</width>
+           <height>25</height>
+          </size>
+         </property>
+         <property name="maximumSize">
+          <size>
+           <width>21</width>
+           <height>25</height>
+          </size>
+         </property>
+         <property name="focusPolicy">
+          <enum>Qt::ClickFocus</enum>
+         </property>
+         <property name="toolTip">
+          <string>Affiche le rapport de validation du mot-clef</string>
+         </property>
+         <property name="styleSheet">
+          <string notr="true">border : 0px</string>
+         </property>
+         <property name="text">
+          <string>...</string>
+         </property>
+         <property name="icon">
+          <iconset>
+           <normaloff>../Editeur/icons/ast-green-ball.png</normaloff>../Editeur/icons/ast-green-ball.png</iconset>
+         </property>
+         <property name="iconSize">
+          <size>
+           <width>25</width>
+           <height>25</height>
+          </size>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </item>
+     <item>
+      <widget class="QFrame" name="frame">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="frameShape">
+        <enum>QFrame::Box</enum>
+       </property>
+       <layout class="QVBoxLayout" name="verticalLayout_2">
+        <item>
+         <widget class="QToolButton" name="RBPlus">
+          <property name="minimumSize">
+           <size>
+            <width>21</width>
+            <height>31</height>
+           </size>
+          </property>
+          <property name="maximumSize">
+           <size>
+            <width>21</width>
+            <height>31</height>
+           </size>
+          </property>
+          <property name="focusPolicy">
+           <enum>Qt::ClickFocus</enum>
+          </property>
+          <property name="toolTip">
+           <string>Ajoute une ligne</string>
+          </property>
+          <property name="styleSheet">
+           <string notr="true">border : 0px</string>
+          </property>
+          <property name="text">
+           <string>...</string>
+          </property>
+          <property name="icon">
+           <iconset>
+            <normaloff>../Editeur/icons/PlusBleu.png</normaloff>../Editeur/icons/PlusBleu.png</iconset>
+          </property>
+          <property name="iconSize">
+           <size>
+            <width>32</width>
+            <height>32</height>
+           </size>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QToolButton" name="RBMoins">
+          <property name="minimumSize">
+           <size>
+            <width>21</width>
+            <height>31</height>
+           </size>
+          </property>
+          <property name="maximumSize">
+           <size>
+            <width>21</width>
+            <height>31</height>
+           </size>
+          </property>
+          <property name="focusPolicy">
+           <enum>Qt::ClickFocus</enum>
+          </property>
+          <property name="toolTip">
+           <string>supprime une ligne</string>
+          </property>
+          <property name="styleSheet">
+           <string notr="true">border : 0px</string>
+          </property>
+          <property name="icon">
+           <iconset>
+            <normaloff>../Editeur/icons/MoinsBleu.png</normaloff>../Editeur/icons/MoinsBleu.png</iconset>
+          </property>
+          <property name="iconSize">
+           <size>
+            <width>32</width>
+            <height>32</height>
+           </size>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QToolButton" name="RBHaut">
+          <property name="minimumSize">
+           <size>
+            <width>21</width>
+            <height>31</height>
+           </size>
+          </property>
+          <property name="maximumSize">
+           <size>
+            <width>21</width>
+            <height>31</height>
+           </size>
+          </property>
+          <property name="focusPolicy">
+           <enum>Qt::ClickFocus</enum>
+          </property>
+          <property name="toolTip">
+           <string>Remonte la ligne</string>
+          </property>
+          <property name="styleSheet">
+           <string notr="true">border : 0px</string>
+          </property>
+          <property name="text">
+           <string>...</string>
+          </property>
+          <property name="icon">
+           <iconset theme="go-up">
+            <normaloff>.</normaloff>.</iconset>
+          </property>
+          <property name="iconSize">
+           <size>
+            <width>32</width>
+            <height>32</height>
+           </size>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QToolButton" name="RBBas">
+          <property name="minimumSize">
+           <size>
+            <width>21</width>
+            <height>31</height>
+           </size>
+          </property>
+          <property name="maximumSize">
+           <size>
+            <width>21</width>
+            <height>31</height>
+           </size>
+          </property>
+          <property name="focusPolicy">
+           <enum>Qt::ClickFocus</enum>
+          </property>
+          <property name="toolTip">
+           <string>Descend la ligne</string>
+          </property>
+          <property name="styleSheet">
+           <string notr="true">border : 0px</string>
+          </property>
+          <property name="text">
+           <string>...</string>
+          </property>
+          <property name="icon">
+           <iconset theme="go-down">
+            <normaloff>.</normaloff>.</iconset>
+          </property>
+          <property name="iconSize">
+           <size>
+            <width>32</width>
+            <height>32</height>
+           </size>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QToolButton" name="RBVoisListe">
+          <property name="minimumSize">
+           <size>
+            <width>21</width>
+            <height>31</height>
+           </size>
+          </property>
+          <property name="maximumSize">
+           <size>
+            <width>21</width>
+            <height>31</height>
+           </size>
+          </property>
+          <property name="focusPolicy">
+           <enum>Qt::ClickFocus</enum>
+          </property>
+          <property name="toolTip">
+           <string>Montre l'ensemble des valeurs</string>
+          </property>
+          <property name="styleSheet">
+           <string notr="true">border : 0px</string>
+          </property>
+          <property name="text">
+           <string>...</string>
+          </property>
+          <property name="icon">
+           <iconset>
+            <normaloff>../Editeur/icons/verre-loupe-icone-6087-64.png</normaloff>../Editeur/icons/verre-loupe-icone-6087-64.png</iconset>
+          </property>
+          <property name="iconSize">
+           <size>
+            <width>32</width>
+            <height>32</height>
+           </size>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </widget>
+     </item>
+     <item>
+      <spacer name="verticalSpacer">
+       <property name="orientation">
+        <enum>Qt::Vertical</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>20</width>
+         <height>13</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <layout class="QVBoxLayout" name="verticalLayout_7">
+     <item>
+      <layout class="QHBoxLayout" name="horizontalLayout_2">
+       <item>
+        <widget class="MonLabelClic" name="label">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="minimumSize">
+          <size>
+           <width>300</width>
+           <height>25</height>
+          </size>
+         </property>
+         <property name="maximumSize">
+          <size>
+           <width>178</width>
+           <height>16777215</height>
+          </size>
+         </property>
+         <property name="frameShape">
+          <enum>QFrame::NoFrame</enum>
+         </property>
+         <property name="text">
+          <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+         </property>
+         <property name="scaledContents">
+          <bool>false</bool>
+         </property>
+         <property name="alignment">
+          <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <spacer name="horizontalSpacer">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>40</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+      </layout>
+     </item>
+     <item>
+      <layout class="QHBoxLayout" name="LATitre">
+       <item>
+        <spacer name="horizontalSpacer_2">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>40</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+      </layout>
+     </item>
+     <item>
+      <widget class="QFrame" name="frame">
+       <property name="frameShape">
+        <enum>QFrame::NoFrame</enum>
+       </property>
+       <layout class="QVBoxLayout" name="verticalLayout_3">
+        <property name="leftMargin">
+         <number>0</number>
+        </property>
+        <property name="rightMargin">
+         <number>0</number>
+        </property>
+        <item>
+         <widget class="QScrollArea" name="scrollArea">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="styleSheet">
+           <string notr="true">background : rgb(247,247,247)</string>
+          </property>
+          <property name="frameShape">
+           <enum>QFrame::NoFrame</enum>
+          </property>
+          <property name="lineWidth">
+           <number>1</number>
+          </property>
+          <property name="widgetResizable">
+           <bool>true</bool>
+          </property>
+          <property name="alignment">
+           <set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
+          </property>
+          <widget class="QWidget" name="verticalWidgetLE">
+           <property name="geometry">
+            <rect>
+             <x>0</x>
+             <y>0</y>
+             <width>1091</width>
+             <height>524</height>
+            </rect>
+           </property>
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <layout class="QVBoxLayout" name="verticalLayoutLE">
+            <item>
+             <spacer name="verticalSpacer_4">
+              <property name="orientation">
+               <enum>Qt::Vertical</enum>
+              </property>
+              <property name="sizeHint" stdset="0">
+               <size>
+                <width>20</width>
+                <height>500</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+           </layout>
+          </widget>
+         </widget>
+        </item>
+       </layout>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <layout class="QVBoxLayout" name="verticalLayout">
+     <item>
+      <layout class="QHBoxLayout" name="horizontalLayout_3">
+       <property name="spacing">
+        <number>0</number>
+       </property>
+       <item>
+        <widget class="QToolButton" name="BSelectFichier">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="maximumSize">
+          <size>
+           <width>25</width>
+           <height>30</height>
+          </size>
+         </property>
+         <property name="focusPolicy">
+          <enum>Qt::ClickFocus</enum>
+         </property>
+         <property name="toolTip">
+          <string>Ouvre un fichier de sélection des valeurs</string>
+         </property>
+         <property name="styleSheet">
+          <string notr="true">border:0px</string>
+         </property>
+         <property name="text">
+          <string>...</string>
+         </property>
+         <property name="icon">
+          <iconset theme="text-x-generic">
+           <normaloff>.</normaloff>.</iconset>
+         </property>
+         <property name="iconSize">
+          <size>
+           <width>32</width>
+           <height>32</height>
+          </size>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <spacer name="horizontalSpacer_4">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Fixed</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>13</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item>
+        <widget class="QToolButton" name="RBPoubelle">
+         <property name="minimumSize">
+          <size>
+           <width>21</width>
+           <height>31</height>
+          </size>
+         </property>
+         <property name="maximumSize">
+          <size>
+           <width>21</width>
+           <height>31</height>
+          </size>
+         </property>
+         <property name="focusPolicy">
+          <enum>Qt::ClickFocus</enum>
+         </property>
+         <property name="toolTip">
+          <string>Détruit le mot-clef</string>
+         </property>
+         <property name="styleSheet">
+          <string notr="true">border : 0px</string>
+         </property>
+         <property name="text">
+          <string>...</string>
+         </property>
+         <property name="icon">
+          <iconset>
+           <normaloff>../Editeur/icons/deleteRond.png</normaloff>../Editeur/icons/deleteRond.png</iconset>
+         </property>
+         <property name="iconSize">
+          <size>
+           <width>32</width>
+           <height>32</height>
+          </size>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </item>
+     <item>
+      <spacer name="verticalSpacer_2">
+       <property name="orientation">
+        <enum>Qt::Vertical</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>20</width>
+         <height>40</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+  </layout>
+  <zorder></zorder>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>MonBoutonValide</class>
+   <extends>QToolButton</extends>
+   <header>monBoutonValide.h</header>
+  </customwidget>
+  <customwidget>
+   <class>MonLabelClic</class>
+   <extends>QLabel</extends>
+   <header>monLabelClic.h</header>
+  </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
index e2d48126d764cacaabaebf80b43c5bcc5220fdde..e1e939d130b890e4dab41434f06085f961cbf2f5 100644 (file)
@@ -7,17 +7,17 @@ QTRELEASE = lrelease
 PY_FILES = myMain.py desBaseWidget.py desChoixCata.py desChoixCode.py desChoixCommandes.py \
         desChoixLangue.py desRecherche.py  desRechercheCatalogue.py\
        desSelectVal.py desViewTexte.py desViewRegles.py desVisu.py desWidgetCreeParam.py desWidgetCommande.py \
-       desWidgetOptionnel.py desWidgetOptionnelMC.py Tuple2.py Tuple3.py  \
+       desWidgetOptionnel.py Tuple2.py Tuple3.py  \
        desWidgetBloc.py desWidgetCB.py desWidgetCBIntoSug.py desWidgetCommentaire.py desWidgetDate.py \
        desWidgetFact.py desWidgetFactPlie.py desWidgetFactTableau.py desWidgetFormule.py desGroupeOptionnel.py \
        desWidgetHeure.py  desWidgetInformation.py desWidgetIntoSug.py desWidgetInactif.py \
        desWidgetMatrice.py desWidgetParam.py desWidgetPlusieursBase.py desWidgetPlusieursInto.py \
        desWidgetPlusieursIntoOrdonne.py desWidgetPlusieursTuple.py desWidgetRadioButton.py \
        desWidget4a6RadioButton.py desWidgetSimpBase.py desWidgetSDCOInto.py desWidgetSimpBool.py \
-        desWidgetSimpSalome.py  desPBOptionnelMT.py\
+        desWidgetSimpSalome.py  desPBOptionnelMT.py desWidgetTableau.py\
        desWidgetSimpComplexe.py desWidgetSimpFichier.py desWidgetSimpTxt.py desWidgetTuple2.py \
        desWidgetTuple3.py desWidgetVide.py desWidgetUniqueSDCO.py desWidgetPlusieursPlie.py \
-        desWidgetNiveauFact.py commandeTableau.py dateEtHeure.py
+        desWidgetNiveauFact.py dateEtHeure.py