🔹 Déclaration
MGListe est une classe concrète, héritant de AGObjet
.
🏗️ Constructeur
PROCÉDURE Constructeur()
Constructeur par défaut. Initialise une nouvelle instance de MGListe.
🧾 Méthodes
p_eType() : EGlobalListe
Renvoie le type énuméré de la liste globale à partir de m_sType
.
eType est un EGlobalListe = EnumérationDepuisNom(EGlobalListe, m_sType, GListeIndefinie)
RENVOYER eType
Destructeur()
Procédure appelée à la destruction de l’objet.
PRIVÉE bEstValide() : booléen
Vérifie que m_pclModele
est bien alloué et contient des données valides.
- Si
Null
→ erreur - Si vide → tentative de
Charger()
- Si toujours vide → alerte
GetModele(IdentifiantUnique)
Retourne un modèle spécifique via son identifiant, si valide :
RENVOYER m_pclModele.GetModele(IdentifiantUnique)
GetObjetFiltre()
Renvoie un filtre cloné et réinitialisé à partir du modèle courant.
pclFiltre = Clone(m_pclModele.m_pclFiltre)
pclFiltre.ResetFiltre()
RENVOYER pclFiltre
GetListeAvecFiltre(pclFiltre)
Renvoie une nouvelle instance de la liste filtrée :
pclListeAvecFiltre = Clone(m_pclModele)
pclListeAvecFiltre.p_pclFiltre = pclFiltre
pclListeAvecFiltre.Charger()
RENVOYER pclListeAvecFiltre
Vider()
Supprime tous les éléments si la liste est valide.
Tracer()
Affiche le contenu de la liste dans la console :
Trace("*** [%p_eType..Valeur%] ***")
POUR TOUT M DE m_pclModele.p_tabModele
Trace(M.IdentifiantUnique, gVersTexte(M.p_sNomComplet))
FIN
🛠️ Fonction globale : gCreer()
PROCÉDURE PUBLIQUE GLOBALE gCreer(eType : EGlobalListe, pclModele : dynamique) : MGListe
pclNouvelleListe = allouer un MGListe
pclNouvelleListe.m_sType = eType.Nom
pclNouvelleListe.m_pclModele = pclModele
RENVOYER pclNouvelleListe
Utilisée pour instancier et initialiser rapidement une liste globale avec son type et son modèle associé.
📌 Notes complémentaires
- La logique de filtrage repose sur l’existence d’un objet
m_pclFiltre
dans le modèle. - En cas d’absence de chargement automatique,
bEstValide()
assure une tentative de récupération à la volée. - La classe est conçue pour s’adapter dynamiquement à toute forme de liste modulaire.