Classe Condition
Description Générale
La classe Condition
représente une condition dans l'éditeur graphique d'AlgoForge. Elle est utilisée dans des structures conditionnelles (StructureAlternative
) telles que StructureSi
ou StructureSwitch
pour définir des branches conditionnelles. Cette classe hérite de HTMLElement
et fournit des fonctionnalités pour gérer les libellés, les interactions utilisateur, les enfants, et les connexions graphiques.
Héritage
- Classe parente :
HTMLElement
- La classe
Condition
hérite des fonctionnalités de base deHTMLElement
, telles que la gestion des événements et des propriétés DOM.
- La classe
Responsabilités Principales
1. Gestion des Propriétés
-
Libellé :
- Propriété
_libelle
: Définit le texte de la condition. - Méthodes associées :
get _libelle()
: Renvoie le libellé actuel.set _libelle(value)
: Définit un nouveau libellé.
- Le libellé est modifiable directement via une zone de texte éditable dans l'interface utilisateur.
- Propriété
-
Parent et structure :
- Propriété
_elemParent
: Référence à l'élément parent contenant les enfants de la condition. - Propriété
_structure
: Référence à la structure conditionnelle contenant cette condition. - Méthodes associées :
get _elemParent()
etset _elemParent(value)
: Accès et modification de l'élément parent.get _structure()
etset _structure(value)
: Accès et modification de la structure contenant la condition.
- Propriété
2. Affichage
-
Affichage des éléments graphiques :
- Méthode
afficher()
:- Affiche les éléments graphiques de la condition, notamment :
- Un bouton pour supprimer la condition.
- Une zone de texte éditable pour le libellé.
- Des flèches pour déplacer la condition à gauche ou à droite.
- Des boutons pour ajouter une nouvelle condition à gauche ou à droite.
- Affiche les éléments graphiques de la condition, notamment :
- Méthode
-
Animation :
- Une animation de chute (
fall
) est appliquée lors de l'ajout de la condition pour améliorer l'expérience utilisateur.
- Une animation de chute (
3. Interactions Utilisateur
-
Modification du libellé :
- La zone de texte éditable permet de modifier le libellé.
- Les opérateurs
&&
et||
sont automatiquement remplacés parET
etOU
dans les structuresStructureSi
.
-
Déplacement de la condition :
- Des flèches permettent de déplacer la condition à gauche ou à droite dans la structure.
-
Ajout de nouvelles conditions :
- Des boutons permettent d'ajouter une nouvelle condition à gauche ou à droite de la condition actuelle.
-
Suppression de la condition :
- Un bouton permet de supprimer la condition de la structure.
4. Gestion des Enfants
-
Récupération des enfants :
- Méthode
getEnfants(typeRechercher)
:- Renvoie une liste des enfants de la condition correspondant à un type donné.
- Trie les enfants par position en abscisse.
- Méthode
-
Suppression des enfants :
- Méthode
supprimer()
:- Supprime la condition et déliera tous ses enfants.
- Méthode
5. Exportation des Données
-
Formats supportés :
- JSON.
-
Méthodes associées :
toJSON()
:- Exporte les informations de la condition sous forme JSON.
- Inclut le libellé et les enfants.
toJSONspecifier(listeElemEnfantsAConcerver)
:- Exporte les informations en spécifiant les enfants à conserver.
6. Gestion des Ancrages
- Ancre de décomposition :
- Méthode
getAncreDecomposition()
:- Renvoie les coordonnées de l'ancre de décomposition de la condition.
- L'ancre est utilisée pour connecter visuellement la condition à d'autres éléments graphiques.
- Méthode
7. Détection des Anomalies
- Détection des anomalies spécifiques :
- Méthode
rechercherAnomalies()
(héritée deElementGraphique
) :- Recherche les anomalies conceptuelles liées à la condition.
- Méthode
Attributs Internes
Attributs principaux :
_libelle
: Texte de la condition._elemParent
: Référence à l'élément parent._structure
: Référence à la structure contenant la condition._ancienLib
: Stocke l'ancien libellé pour permettre l'annulation/rétablissement._maxLines
: Nombre maximal de lignes autorisées dans le libellé (par défaut, 4).
Méthodes Clés
Méthodes de gestion des propriétés :
get _libelle()
etset _libelle(value)
: Accès et modification du libellé.get _elemParent()
etset _elemParent(value)
: Accès et modification de l'élément parent.get _structure()
etset _structure(value)
: Accès et modification de la structure contenant la condition.
Méthodes d'affichage :
afficher()
: Affiche les éléments graphiques de la condition.
Méthodes d'interaction utilisateur :
- Déplacement : Flèches pour déplacer la condition à gauche ou à droite.
- Ajout : Boutons pour ajouter une condition à gauche ou à droite.
- Suppression : Bouton pour supprimer la condition.
Méthodes de gestion des enfants :
getEnfants(typeRechercher)
: Renvoie une liste des enfants correspondant à un type donné.supprimer()
: Supprime la condition et ses enfants.
Méthodes d'exportation :
toJSON()
: Exporte la condition sous forme JSON.toJSONspecifier(listeElemEnfantsAConcerver)
: Exporte la condition en spécifiant les enfants à conserver.
Méthodes de gestion des ancrages :
getAncreDecomposition()
: Renvoie l'ancre de décomposition de la condition.
Exemple d'Utilisation
Création d'une Condition
const condition = new Condition("x > 10");
structure.ajouterCondition(condition);
Modification du Libellé
condition._libelle = "y < 5";
console.log(condition._libelle);
Déplacement de la Condition
condition._structure.decalerCondition(condition, 1); // Déplace à droite
Exportation en JSON
const json = condition.toJSON();
console.log(json);
Suppression de la Condition
condition.supprimer();