Exercice 2

On démarre cette fois-ci avec les nouveaux sources fournis.
Ceux-ci permettent de nouvelles opérations sur les formes, en particulier le déplacement.

Lire et comprendre le code.

Pour implémenter de nouvelles fonctionnalités, la méthode utilisée (rendre le contrôleur plus complexe) est à peu près inapplicable. On décide donc d'utiliser le pattern "Etat" (State).
Application utilisant le pattern "State" pour le contrôleApplication utilisant le pattern "State" pour le contrôle
Le contrôleur reçoit toujours les événements, mais les redirige vers l'outil courant. L'avantage est que celui-ci n'a besoin de conserver que les événements qui le concernent. Ainsi, l'outil qui gère le déplacement n'a besoin de conserver que les informations sur le déplacement, l'outil qui gère la création de cercle que les informations qui concernent celle-ci, etc.

  • Modifiez le programme actuel pour disposer de trois outils (un par bouton) : création de cercle, de segment, déplacement
  • Ajoutez un outil "destruction"
  • Au choix :
    • Ajoutez la forme "texte", avec les nécessaires pour l'utiliser : édition du texte, éventuellement dans une fenêtre extérieure, choix de la fonte (ce dernier point demande de se plonger dans les documentations)
    • Ajouter la notion de polygônes à n côtés. On valide la fin d'un polygône en double-cliquant. Il doit être possible d'éditer les points d'un polygône a posteriori
    • Ajoutez la notion de groupe de forme avec la possibilité de grouper/dégrouper celles-ci. Les formes groupées se déplacent, etc. comme un seul élément
AttachmentSize
patternb.zip24.53 KB