From 216615099512dfba647f274b89d990378b63a6da Mon Sep 17 00:00:00 2001
From: martins <clement.martins@etu.u-pec.fr>
Date: Mon, 14 Nov 2022 12:26:45 +0100
Subject: [PATCH] =?UTF-8?q?possibiliter=20m=C3=AAme=20nom=20etudiant=20et?=
 =?UTF-8?q?=20diminution=20ressource=20prise=20lors=20du=20rafra=C3=AEchis?=
 =?UTF-8?q?sement?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../Controller/ObservateurModifGroupe.java    |  6 ------
 .../projetIHM2022FI2/Graphic/Model.java       | 19 +++++++++++++++----
 .../Graphic/View/FenetreEtudiant.java         | 15 +++++++++++++++
 .../Graphic/View/FenetreGroupe.java           | 13 +++++++++++++
 4 files changed, 43 insertions(+), 10 deletions(-)

diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ObservateurModifGroupe.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ObservateurModifGroupe.java
index 566c708..0d21c50 100644
--- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ObservateurModifGroupe.java
+++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ObservateurModifGroupe.java
@@ -21,9 +21,7 @@ public class ObservateurModifGroupe implements ActionListener{
     @Override
     public void actionPerformed(ActionEvent e) {
         if(e.getActionCommand()=="suprimer ce groupe"){
-            Groupe pointpoint=this.groupe.getPointPoint();
             this.m.delete(this.groupe);
-            this.m.showGroupe(pointpoint);
         }
         if(e.getActionCommand()=="créer un sous groupe"){
             String g[]=new String[2];
@@ -50,7 +48,6 @@ public class ObservateurModifGroupe implements ActionListener{
                             return;
                         }
                         m.partition(this.groupe, nb, yField.getText());
-                        m.showGroupe(this.groupe);
                     }
                 }catch(NumberFormatException er){
                     JOptionPane.showMessageDialog(m.getFenetre(), "erreur dans le nombre de partition", "erreur", JOptionPane.ERROR_MESSAGE);
@@ -82,7 +79,6 @@ public class ObservateurModifGroupe implements ActionListener{
                         if(JOptionPane.showConfirmDialog(m.getFenetre(), new JScrollPane(myPanel), "Selectionner les étudiant a ajouter", JOptionPane.OK_CANCEL_OPTION) ==JOptionPane.YES_OPTION){
                             if(ajout.size()>=min && ajout.size()<=max){
                                 m.free(groupe, yField.getText(), min, max, ajout);
-                                m.showGroupe(this.groupe);
                             }else{
                                 if(min>ajout.size())
                                     JOptionPane.showMessageDialog(m.getFenetre(), "nombre d'etudiant trop petit", "erreur", JOptionPane.ERROR_MESSAGE); 
@@ -100,7 +96,6 @@ public class ObservateurModifGroupe implements ActionListener{
         if(e.getActionCommand()=="renomer"){
             String nouveau=JOptionPane.showInputDialog(m.getFenetre(), "Rentrer le nouveau Nom");
             m.rename(nouveau, this.groupe);
-            m.showGroupe(this.groupe);
         }
         if(e.getActionCommand()=="ajouter"){
             Set<Etudiant> ajout=new LinkedHashSet<>();
@@ -113,7 +108,6 @@ public class ObservateurModifGroupe implements ActionListener{
                 for(Etudiant et:ajout){
                     m.addEtudiant(this.groupe, et);
                 }
-                m.showGroupe(this.groupe);
             }
         }
     }
diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Model.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Model.java
index 393c343..a2f7726 100644
--- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Model.java
+++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Model.java
@@ -179,7 +179,7 @@ public class Model{
       //On récupère les etudiants contenue du groupe
       PreparedStatement pst;
       //Si c'est la promo
-      pst= cnx.prepareStatement("SELECT Etudiant.nom, Etudiant.prenom, Etudiant.id FROM `CONTIENT` JOIN Etudiant on CONTIENT.idEt=Etudiant.id WHERE CONTIENT.idGroupe=1 ORDER BY Etudiant.id ASC");
+      pst= cnx.prepareStatement("SELECT Etudiant.nom, Etudiant.prenom, Etudiant.id FROM `CONTIENT` JOIN Etudiant on CONTIENT.idEt=Etudiant.id WHERE CONTIENT.idGroupe=? ORDER BY Etudiant.id ASC");
       try{
         pst.setInt(1, g.getId());
         ResultSet rs=pst.executeQuery();
@@ -192,8 +192,11 @@ public class Model{
               this.promo.addToGroupe(g, new EtudiantNP(rs.getString(1), rs.getString(2), rs.getInt(3)));
             }else{
               //autrement on recupere l'etudiant
-              for(Etudiant e: this.promo.getEtudiants(rs.getString(1))){
-                this.promo.addToGroupe(g, e);
+              for(Etudiant e: g.getPointPoint().getEtudiants()){
+                if(e.getId()==rs.getInt(3)){
+                  this.promo.addToGroupe(g, e);
+                  break;
+                }
               }
             }
           }
@@ -219,7 +222,6 @@ public class Model{
    * @param g le groupe a afficher
    */
   public void showGroupe(Groupe g){
-    this.getPromo(null);%/
     this.fenGr=new FenetreGroupe(g, this);
     this.fenEtu=new FenetreEtudiant(g);
     this.fenetre.getContentPane().removeAll();
@@ -253,6 +255,7 @@ public class Model{
       //on supprime les groupe
       this.promo.deleteGroupe(sup);
     }
+    this.showGroupe(g.getPointPoint());
   }
 
   /**
@@ -278,6 +281,7 @@ public class Model{
    */
   public void partition(Groupe g, int n, String name){
     this.promo.createPartition(g, name, n);
+    this.fenGr.refresh();
   }
 
   /**
@@ -303,6 +307,7 @@ public class Model{
     for(Etudiant e:ajout){
       this.promo.addToGroupe(creer, e);
     }
+    this.fenGr.refresh();
   }
 
   /**
@@ -312,6 +317,7 @@ public class Model{
    */
   public void rename(String name, Groupe g){
     g.setName(name);
+    this.fenGr.refresh();
   }
 
   /**
@@ -321,5 +327,10 @@ public class Model{
    */
   public void addEtudiant(Groupe g, Etudiant e){
     g.addEtudiant(e);
+    this.fenEtu.refresh();
+  }
+
+  private void refresh(Groupe g){
+
   }
 }
diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/FenetreEtudiant.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/FenetreEtudiant.java
index 484c07a..e8164f5 100644
--- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/FenetreEtudiant.java
+++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/FenetreEtudiant.java
@@ -5,6 +5,7 @@ import javax.swing.JLabel;
 import javax.swing.JPanel;
 
 import java.awt.*;
+import java.util.LinkedHashSet;
 import java.util.Set;
 
 import fr.iutfbleau.projetIHM2022FI2.API.Etudiant;
@@ -17,13 +18,27 @@ public class FenetreEtudiant extends JPanel{
         super();
         if(g!=null){
             this.etu=g.getEtudiants(); 
+        }else{
+            this.etu=new LinkedHashSet<>();
+        }
+        this.draw();
+    }
+
+    private void draw(){
+        if(this.etu.size()!=0){
             this.setLayout(new GridLayout(this.etu.size(), 1, 10, 0));
             for(Etudiant e: this.etu){
                 PanelEtudiant p=new PanelEtudiant(e);
                 this.add(p);
             }
         }else{
+            this.setLayout(new FlowLayout());
             this.add(new JLabel("Il n'y a pas d'étudiant"));
         }
     }
+    public void refresh(){
+        this.removeAll();
+        this.draw();
+        this.revalidate();
+    }
 }
diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/FenetreGroupe.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/FenetreGroupe.java
index 9ed905c..fb6a9cb 100644
--- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/FenetreGroupe.java
+++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/FenetreGroupe.java
@@ -14,9 +14,22 @@ import fr.iutfbleau.projetIHM2022FI2.Graphic.Controller.ObservateurModifGroupe;
 
 public class FenetreGroupe extends JPanel{
     private Groupe g;
+    private Model m;
     public FenetreGroupe(Groupe g, Model m){
         super();
         this.g=g;
+        this.m=m;
+        this.draw();
+    }
+    public Groupe getG() {
+        return this.g;
+    }
+    public void refresh(){
+        this.removeAll();
+        this.draw();
+        this.revalidate();
+    }
+    private void draw(){
         if(g!=null){
             this.setLayout(new GridLayout(11+g.getSousGroupes().size(), 1));
             JButton bout=new JButton("point point");