diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ObservateurFenetre.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ObservateurFenetre.java index 79f681d..031f04b 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ObservateurFenetre.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ObservateurFenetre.java @@ -25,10 +25,9 @@ public class ObservateurFenetre implements WindowListener{ @Override public void windowClosing(WindowEvent e) { JFrame fenetre= (JFrame) e.getSource(); - int confirmation = JOptionPane.showConfirmDialog(fenetre.getContentPane(), "Voulez vous sauvegarder Avant de quitter?", "Quitter", JOptionPane.YES_NO_OPTION); - if(confirmation != JOptionPane.OK_OPTION); - - fenetre.dispose(); + int confirmation = JOptionPane.showConfirmDialog(fenetre.getContentPane(), "Voulez vous quitter?", "Quitter", JOptionPane.YES_NO_OPTION); + if(confirmation == JOptionPane.YES_OPTION); + fenetre.dispose(); } @Override diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Model.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Model.java index a2f7726..541108e 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Model.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Model.java @@ -42,7 +42,7 @@ public class Model{ Chargement ch=new Chargement(); this.fenetre.add(ch, BorderLayout.CENTER); this.fenetre.setVisible(true); - this.getPromo(ch); + this.promo=this.getPromo(ch); //A Modif if(this.promo==null){ this.fenGr=new FenetreGroupe(null, this); @@ -61,6 +61,7 @@ public class Model{ this.fenetre.add(new JScrollPane(this.fenGr)); this.fenetre.add(new JScrollPane(this.fenEtu)); this.fenetre.setVisible(true); + this.addEtudiant(this.promo.getPromotion().getSousGroupes().iterator().next(), new EtudiantNP("test", "test")); } /** @@ -68,7 +69,8 @@ public class Model{ * avec la Base de donné * @param Chargement: pour indiquer la progression du chargement */ - private void getPromo(Chargement chargement){ + private AbstractGroupeFactory getPromo(Chargement chargement){ + AbstractGroupeFactory agf=null; //On se Connecte a la BD try{ Class.forName("org.mariadb.jdbc.Driver"); @@ -91,9 +93,9 @@ public class Model{ //On lui ajoute tout ses sous-groupe this.addSousGroupe(groupe, cnx, chargement, 100); //On créer la Factory - this.promo=new AbstractGroupeFactoryNP(groupe); + agf=new AbstractGroupeFactoryNP(groupe); //On y ajoute les étudiants - this.addEtudiant(groupe, cnx); + this.addBDEtudiant(groupe, cnx, agf); }else{ //Si aucune ligne et donc pas de promo: this.promo=null; @@ -116,6 +118,7 @@ public class Model{ }catch(ClassNotFoundException e){ System.out.println("pilote non disponible"); } + return agf; } /** * Fonction recursive permettant de récuperrer les sous groupe a partir de la BD @@ -174,7 +177,7 @@ public class Model{ * @param g le groupe pour qui ajouter les Etudiant * @param cnx la connection (evite de surcharger la BD) */ - private void addEtudiant(Groupe g, Connection cnx){ + private void addBDEtudiant(Groupe g, Connection cnx, AbstractGroupeFactory agf){ try{ //On récupère les etudiants contenue du groupe PreparedStatement pst; @@ -188,13 +191,13 @@ public class Model{ while(rs.next()){ //si c'est la groupe de promo //On ne peut pas récuperer l'etudiant il est donc créer - if(g==this.promo.getPromotion()){ - this.promo.addToGroupe(g, new EtudiantNP(rs.getString(1), rs.getString(2), rs.getInt(3))); + if(g==agf.getPromotion()){ + agf.addToGroupe(g, new EtudiantNP(rs.getString(1), rs.getString(2), rs.getInt(3))); }else{ //autrement on recupere l'etudiant for(Etudiant e: g.getPointPoint().getEtudiants()){ if(e.getId()==rs.getInt(3)){ - this.promo.addToGroupe(g, e); + agf.addToGroupe(g, e); break; } } @@ -202,7 +205,7 @@ public class Model{ } //on ajout les étudiants a tous les sous groupe for(Groupe sous:g.getSousGroupes()){ - this.addEtudiant(sous, cnx); + this.addBDEtudiant(sous, cnx, agf); } }catch(SQLException e){ System.out.println("erreur dans la prise de resultat"); @@ -305,7 +308,7 @@ public class Model{ } //on y ajoute les étudiant for(Etudiant e:ajout){ - this.promo.addToGroupe(creer, e); + this.addEtudiant(creer, e); } this.fenGr.refresh(); } @@ -327,10 +330,23 @@ public class Model{ */ public void addEtudiant(Groupe g, Etudiant e){ g.addEtudiant(e); + if(g.getPointPoint()!=g) + this.addEtuToParent(g.getPointPoint(), e); this.fenEtu.refresh(); } - private void refresh(Groupe g){ + private void addEtuToParent(Groupe g, Etudiant e){ + for(Etudiant et:g.getEtudiants()){ + if(et==e){ + return; + } + } + if(g.getPointPoint()!=g) + this.addEtuToParent(g.getPointPoint(), e); + this.promo.addToGroupe(g, e); + } + 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 e8164f5..3bf7c83 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/FenetreEtudiant.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/FenetreEtudiant.java @@ -26,7 +26,7 @@ public class FenetreEtudiant extends JPanel{ private void draw(){ if(this.etu.size()!=0){ - this.setLayout(new GridLayout(this.etu.size(), 1, 10, 0)); + this.setLayout(new GridLayout(this.etu.size()/2+1, 2, 10, 0)); for(Etudiant e: this.etu){ PanelEtudiant p=new PanelEtudiant(e); this.add(p); diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/EtudiantNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/EtudiantNP.java index 1a8b24a..1626d15 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/EtudiantNP.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/EtudiantNP.java @@ -18,7 +18,8 @@ public class EtudiantNP implements Etudiant{ Objects.requireNonNull(nom,"On ne peut pas créer un étudiant avec un nom null"); Objects.requireNonNull(prenom,"On ne peut pas créer un étudiant avec un nom null"); // auto incrément de l'id - this.id=++this.nextId; + this.id=this.nextId+1; + this.nextId++; this.nom=nom; this.prenom=prenom; }