🔧 Architecture générale
Le projet MonProjet intègre les composants suivants :
Lambique
: Composant d’infrastructure UI (vues génériques, outils MVP, etc.)LambiqueGlobal
: Référentiel global des objets et des définitions métier- Modules métiers :
LambiqueBoilerMaker
,LambiquePiping
, etc., chacun encapsulant une logique spécifique.
Chaque module métier intègre Lambique et LambiqueGlobal, mais LambiqueGlobal n’intègre jamais Lambique.
🏗️ Structure des objets métiers
Les objets métiers sont organisés selon trois grandes catégories :
MCOxxx
: Composants concrets (ex : MCO_Tube)MENxxx
: Ensembles complexes hiérarchisésMVARxxx
: Variables associées aux MCO ou MEN
Chaque objet est décrit par une classe de définition :
MCODefinition
MENDefinition
MVARDefinition
Les définitions sont utilisées pour instancier dynamiquement un objet, sa vue et son présentateur (pattern MVP).
🧩 MVP et instanciation dynamique
Chaque objet métier suit un pattern MVP :
- Modèle : l’objet métier réel (ex :
MCO_Tube
) - Présentateur : la logique de présentation
- Vue : une fenêtre Windev (popup, fenêtre interne, ou standard)
La définition permet d’instancier dynamiquement ces éléments à partir de leur nom (via Allouer()
) et de les relier automatiquement.
🔁 Chaîne logique d’instanciation
[Liste de définitions]
↓
[Sélection d’un objet métier]
↓
[Accès aux métadonnées MVP (modèle, vue, présentateur)]
↓
[Création dynamique des objets et affichage]
Les noms sont stockés dans la définition et appelés via p_sModeleAvecPrefixe()
, etc.
💾 Sérialisation des objets
Par défaut, les objets sont sérialisés en JSON. Pour les cas complexes, chaque définition peut spécifier un type de sérialisation alternatif :
tsJSON
(défaut)tsBinaire
tsXML
tsPropre
(logique maison)
Un paramètre dans la définition (m_eTypeSerialisation
) permet de gérer cela proprement.
🏭 Fabrique d’objets métiers
Chaque module métier expose une procédure standard :
PROCÉDURE FabriqueObjetDepuisDéfinition(m_def est un ADefinition, sJSON est une chaîne = "")
Cette fabrique instancie dynamiquement le modèle, le présentateur et la vue en utilisant la définition et éventuellement un JSON de l’état métier.
📘 LambiqueGlobal comme référentiel central des définitions
LambiqueGlobal est le référentiel unique de toutes les définitions d’objets métiers.
- Les classes
MCODefinition
,MENDefinition
,MVARDefinition
et leurs listes sont déclarées dans LambiqueGlobal. - Un objet central
GDefinition
contient ces listes et les rend disponibles à tous les modules.
🧭 Dépendances
Modules Métiers
↓
LambiqueGlobal (Référentiel central)
↑
Lambique (UI, MVP, outils de sélection)
📦 Répartition des responsabilités
Élément | Composant | Rôle |
---|---|---|
MCODefinition , MENDefinition , MVARDefinition |
LambiqueGlobal | Définitions métiers |
MCODefinitionListe , etc. |
LambiqueGlobal | Listes des définitions |
GDefinition |
LambiqueGlobal | Conteneur des listes de définitions |
FEN_CODefinitionListe , PCODefinitionListe |
Lambique | UI de sélection des définitions |