TP1 : Modification du logiciel Java SimplePaint

Fichier .zip: http://profs.etsmtl.ca/mmcguffin/code/java/SimplePaint-2D_JavaApplication.zip

Fureter les fichiers dans le .zip: http://profs.etsmtl.ca/mmcguffin/code/java/SimplePaint-2D_JavaApplication/

Explication des classes: http://profs.etsmtl.ca/mmcguffin/code/java/SimplePaint-2D_JavaApplication/CLASSES.html


Vous devez choisir et effectuer une des deux modifications ci-dessous, ensuite envoyer votre code source par courriel au professeur.

Modification 1 : Sélection en rectangle

Actuellement, quand l'utilisateur est en mode "Select and Move", il peut cliquer-glisser avec le bouton gauche sur un object pour le déplacer.

Modifiez les choses pour que, en mode "Select and Move", on puisse cliquer-glisser avec le bouton gauche sur le fond pour commencer à définir un rectangle de sélection pour sélectionner une ou plusieurs formes. Pendant le glissement, un retour visuel devrait montrer le rectangle. Au relâchement, toutes les formes situées entièrement dans le rectangle devraient être sélectionnées (et leur état sélectionné devrait être montré par un retour visuel).

Ensuite, si l'utilisateur reste toujours en mode "Select and Move", et clique-glisse (avec le bouton gauche) sur une forme sélectionnée, cela devrait déplacer toutes les formes sélectionnées ensemble.

Toujours en mode "Select and Move", et toujours avec le bouton gauche, si l'utilisateur clique-glisse sur une forme non sélectionnée, cela devrait déselectionner toutes les autres formes, sélectionner la forme en dessous du curseur, et commencer à la déplacer.

Finalement, si l'utilisateur clique-glisse sur le fond, cela devrait déselectionner toutes les formes, et commencer un nouveau rectangle de sélection.

Modification 2 : Outil de crayon

Rajoutez un mode "Pencil" ou "Crayon", dans lequel l'utilisateur peut cliquer-glisser sur le fond pour dessiner un trait de crayon vectoriel. Chaque trait de crayon devra être stocké en mémoire comme les autres formes, et devra être zoomable comme les autres formes.

Le crayon devra être rajouté dans les boutons radio et dans le menu radial.

De plus, une fois que des traits de crayon sont dessinés et que l'utilisateur entre en mode "Select and Move", l'utilisateur devra être capable de cliquer près du trait (à l'intérieur d'un seuil de 10 pixels) pour le sélectionner et le déplacer. De plus, si l'utilisateur ne fait que passer son curseur par dessus le trait sans cliquer, un effet de surbrilliance devra montrer lorsque le trait est suffisamment près (en dedans de 10 pixels) pour être sélectionné.


Modalités d'envoi du code source

Ce travail pratique se fait individuellement. Chaque étudiant(e) doit remettre sa propre solution.

Évaluation:

Total: sur 5 points

Le code source de chaque remise sera mis sur un site web caché derrière un mot de passe, visible aux étudiants de la classe.

À remettre par courriel au prof McGuffin

Le sujet de votre courriel doit étre la chaîne suivante:

[LOG350 TP1] Nomdefamille, Prénom
où "Nomdefamille" est votre nom de famille, et "Prénom" est votre prénom. En pièce jointe à votre courriel, il doit y avoir un fichier
350-tp1-Nomdefamille-Prenom.zip
Ne mettez pas d'espaces ni d'accents dans le nom du fichier. Par exemple, si votre prénom est Marie-Françoise, et votre nom de famille est Astérix Gaulois, le nom de votre fichier devrait étre
350-tp1-AsterixGaulois-MarieFrancoise.zip
Le fichier .zip doit contenir un seul répertoire, dont le nom est
350-tp1-Nomdefamille-Prenom
(sans accents ni espaces). Ce répertoire devrait contenir seulement vos fichiers .java. Nous allons compiler votre code pour regénérer les fichiers .class et tester votre code.

Notez que les fichiers .zip préparés sur MacOS ont tendance à contenir des sous-répertoires cachés __MACOSX; s.v.p. les enlever avant votre soumission pour nous simplifier la procédure de traitement des fichiers .zip.