LambiqueWBS (2)

Documentation MWBS

🎯 Objectif

Le système MWBS permet de gérer des structures hiérarchiques d’ensembles et de composants à partir de listes plates, en assurant la reconstruction correcte de leur hiérarchie lors de la modification ou du chargement.

📦 Structure de MWBS

  • MWBSEnsembleListe : liste plate d’ensembles
  • MWBSComposantListe : liste plate de composants

Ces listes ne contiennent aucune hiérarchie. Chaque élément (ensemble ou composant) est sérialisé indépendamment et contient son propre modèle, ses données, et un contexte (identifiant, père, etc.).

🔁 Reconstruction hiérarchique

Étapes principales

  1. Création d’un MEnsembleProvider via MWBS.GetProvider().
  2. Injection de ce provider dans le contexte de l’ensemble à modifier.
  3. Appel à Construire() dans l’ensemble, qui utilise le provider pour retrouver ses enfants.

Exemple de code (dans MENChaudiere)

SI m_pclContexte.p_bProviderDisponible ALORS
    m_pclContexte.SetEnsemble(m_pclPreparation)
    m_pclContexte.SetEnsemble(m_pclChaudiere)
    ...
FIN
    

🧩 Le Provider

MEnsembleProvider joue le rôle de source abstraite de données. Il contient :

  • Une liste d’AEnsemble
  • Une liste d’AComposant

Il remplace l’usage de MWBS dans les ensembles pour garantir le découplage et l’indépendance du contexte.

👨‍💻 Flux de modification d’un ensemble

  1. On appelle ModifierEnsemble() depuis le présentateur.
  2. On obtient les données via FEnsembleData.gGetData().
  3. On instancie l’objet via FEnsemble.GetModele().
  4. On injecte le provider dans le contexte de l’ensemble.
  5. On affiche l’ensemble avec GEnsembleAfficheur.Afficher().
  6. En retour, on enregistre l’ensemble modifié.

🛠 Exemple : GetProvider dans MWBS

PROCÉDURE GetProvider() : MEnsembleProvider

pclProvider = new MEnsembleProvider

POUR TOUT ensemble DE m_pclEnsembleListe.p_tabModele
    pclProvider.AjouterEnsemble(ensemble.p_pclEnsemble)
FIN

POUR TOUT composant DE m_pclComposantListe.p_tabModele
    pclProvider.AjouterComposant(composant.p_pclComposant)
FIN

RENVOYER pclProvider
    

✅ Résultat

  • Le modèle MWBS est auto-suffisant et isolé.
  • La hiérarchie est reconstruite dynamiquement.
  • Les traitements sont découplés (fabrique, affichage, persistance).
  • Testabilité et extensibilité garanties via le pattern Provider.