Gestion des composants « métier »

Rapport Lambique MVP

🔧 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és
  • MVARxxx : 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