ntro.ca

        • Contrats de classe
        • Liens utiles
        • Calendrier
        • Calendrier groupe 2
        • Calendrier groupes 1, 3
        • Structure du cours
        • Évaluations
        • Matériel à se procurer
        • Les profs
          • Marc-Olivier Tremblay
          • Mathieu Bergeron
        • Module 1.1: installation + trier des cartes
        • Module 1.2: rappels POO
        • Module 1.3: tableau d'objets
        • Examen 1
        • Module 2.1: données JSON
        • Module 2.2: données en Java
        • Module 2.3: récursivité
        • Examen 2
        • Module 3.1: structure générique
        • Module 3.2: efficacité (1)
        • Module 3.3: efficacité (2)
        • Examen 3
        • Module 4.1: liste naïve
        • Module 4.2: liste par tableau
        • Module 4.3: liste chaînée
        • Examen 4
        • Module 5.1: mappage naïf
        • Module 5.2: mappage par hachage
        • Module 5.3: mappage par arbre
        • Examen 5
        • Équipes
          • Horaire groupe 1
          • Horaire groupe 2
          • Horaire groupe 3
          • Groupe 1
          • Groupe 2
          • Groupe 3
        • Projets vedettes 2022
        • Projets vedettes 2023
        • Projets vedettes 2024
        • Projets vedettes 2025
        • Survol
        • Structure
        • Calendrier
        • Calendrier des séances
        • Évaluations
        • Exemples de jeu
        • Exemples de pages
        • Réponses à vos questions
        • Module 1: créer le projet
        • Module 2: concevoir l'application
        • Module 3: vues NtroFx
        • Module 4: modèle et navigation
        • Module 5: ajouter le dorsal, modifier le modèle
        • Module 7: améliorer l'affichage
        • Module 8: jeu en 2d
        • Module 9: client/serveur
        • Module 10: plusieurs instances du même modèle
        • TP1
        • Examen 1
        • TP2
        • Examen 2
        • Projet de fin de session
        • Calendrier
        • Structure du cours
        • Évaluations
        • Contrat de classe
        • Le prof
        • 01: Windows et Word
          • Astuces et raccourcis
        • 02: Word
        • 03: Word
          • Exercice Word: insertion d'éléments spéciaux
          • Exercice Word: tableaux
        • 04: Word
          • Exercice Word: références
          • TP01: Word (15%)
        • 05: PowerPoint
          • TP02: PowerPoint (10%)
        • 06: Examen Word (20%)
        • 07: Excel
        • 08: Excel
        • 09: Excel
          • TP03: Excel (15%)
        • 10: Excel
        • 11: Examen Excel (20%)
        • 12: Access
        • 13: Access
        • 14: Access
        • 15: Examen Access
      • Sondage H2023 (dept. info)
      • Vision H2023 (dept. info)
      • P1) exercices interactifs de lecture
      • P2) transition Excel vers Python
        • Atelier 2: un exemple
      • Jquery
      • Jquery Ui
      • Point de vue sur l'IA
    Retirer Rendez Vous
    • Tutoriel: retirer les rendez-vous
      • Ajouter une méthode RendezVous.siIdEst
      • Ajouter une méthode ModeleFileAttente.retirerRendezVous
      • Ajouter le MsgRetirerRendezVous
      • Modifier FragmentRendezVous pour envoyer un MsgRetirerRendezVous
      • Modifier RendezVous pour mémoriser le idRendezVous
      • Ajouter une tâche au dorsal dans le groupe ModifierFileAttente
      • Vérifier que ça fonctionne

    Tutoriel: retirer les rendez-vous #

    Ajouter une méthode RendezVous.siIdEst #

    public class RendezVous implements ModelValue {
        
        private String idRendezVous;
    
        // ...
    
        public boolean siIdEst(String idRendezVous) {
            return this.idRendezVous.equals(idRendezVous);
        }
    

    Ajouter une méthode ModeleFileAttente.retirerRendezVous #

    public class ModeleFileAttente implements Model, WatchJson, WriteObjectGraph {
    
        // ...
        
        // ajouter
        private int indiceRendezVousParId(String idRendezVous) {
            int indice = -1;
            
            for(int i = 0; i < rendezVousDansOrdre.size(); i++) {
                if(rendezVousDansOrdre.get(i).siIdEst(idRendezVous)) {
                    indice = i;
                    break;
                }
            }
            
            return indice;
        }
    
        // ajouter
        public void retirerRendezVous(String idRendezVous) {
            int indiceRendezVous = indiceRendezVousParId(idRendezVous);
            
            if(indiceRendezVous >= 0) {
                rendezVousDansOrdre.remove(indiceRendezVous);
            }
        }
    

    Ajouter le MsgRetirerRendezVous #

    public class MsgRetirerRendezVous extends Message<MsgRetirerRendezVous> {
        
        private String idRendezVous;
    
        public MsgRetirerRendezVous setIdRendezVous(String idRendezVous) {
    
            this.idRendezVous = idRendezVous;
            
            return this;
        }
    
        public void retirerDe(ModeleFileAttente fileAttente) {
    
            fileAttente.retirerRendezVous(idRendezVous);
    
        }
    }
    
    public class AppPong implements NtroAppFx {
        
        // ...
    
        @Override
        public void registerMessages(MessageRegistrar registrar) {
            //...
    
            // ajouter
            registrar.registerMessage(MsgRetirerRendezVous.class);
        }
    

    Modifier FragmentRendezVous pour envoyer un MsgRetirerRendezVous #

    public class FragmentRendezVous extends ViewFragmentFx {
    
        // ...
        
        // ajouter
        @FXML
        private Button boutonRetirerRendezVous;
    
    
        @Override
        public void initialize() {
    
            // ajouter
            Ntro.assertNotNull(boutonRetirerRendezVous);
    
            // ...
            
        }
    
        // ajouter
        public void memoriserIdRendezVous(String idRendezVous) {
            installerMsgRetirerRendezVous(idRendezVous);
        }
    
        // ajouter
        protected void installerMsgRetirerRendezVous(String idRendezVous) {
    
            boutonRetirerRendezVous.setOnAction(evtFx -> {
    
                Ntro.newMessage(MsgRetirerRendezVous.class)
                    .setIdRendezVous(idRendezVous)
                    .send();
    
            });
        }
    

    Modifier RendezVous pour mémoriser le idRendezVous #

    public class RendezVous implements ModelValue {
        
        // ...
        
        public void afficherSur(FragmentRendezVous fragmentRendezVous) {
            // ajouter
            fragmentRendezVous.memoriserIdRendezVous(idRendezVous);
    
            fragmentRendezVous.afficherNomPremierJoueur(premierJoueur.nomCourt());
        }
    

    Ajouter une tâche au dorsal dans le groupe ModifierFileAttente #

    public class ModifierFileAttente {
        
        public static void creerTaches(BackendTasks tasks) {
    
            tasks.taskGroup("ModifierFileAttente")
    
                 .waitsFor(model(ModeleFileAttente.class))
            
                 .contains(subTasks -> {
                     
                      
                     ajouterRendezVous(subTasks);
    
                     // ajouter
                     retirerRendezVous(subTasks);
    
                 });
        }
    
        // ...
    
        // ajouter
        private static void retirerRendezVous(BackendTasks subTasks) {
            subTasks.task("retirerRendezVous")
    
                 .waitsFor(model(ModeleFileAttente.class))
    
                 .waitsFor(message(MsgRetirerRendezVous.class))
                 
                 .executes(inputs -> {
    
                     MsgRetirerRendezVous msgRetirerRendezVous = inputs.get(message(MsgRetirerRendezVous.class));
                     ModeleFileAttente    fileAttente          = inputs.get(model(ModeleFileAttente.class));
    
                     msgRetirerRendezVous.retirerDe(fileAttente);
                 });
    
        }
    

    Vérifier que ça fonctionne #

    $ sh gradlew pong
    
    Creative Commons License Creative Commons Attribution Creative Commons ShareAlike
    • Tutoriel: retirer les rendez-vous
      • Ajouter une méthode RendezVous.siIdEst
      • Ajouter une méthode ModeleFileAttente.retirerRendezVous
      • Ajouter le MsgRetirerRendezVous
      • Modifier FragmentRendezVous pour envoyer un MsgRetirerRendezVous
      • Modifier RendezVous pour mémoriser le idRendezVous
      • Ajouter une tâche au dorsal dans le groupe ModifierFileAttente
      • Vérifier que ça fonctionne