diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/AbstractGroupeFactory.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/AbstractGroupeFactory.java index 63dc788..e72cab9 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/AbstractGroupeFactory.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/AbstractGroupeFactory.java @@ -110,6 +110,14 @@ public interface AbstractGroupeFactory { */ public Set getGroupesOfEtudiant(Etudiant etu); - + /** + * permet d'ajouter un groupe deja tout fait la factory + * + * @param adable le groupe devant être ajouter + * + * + * @throws java.lang.NullPointerException si le Groupe est null. + */ + public void addGroupe(Groupe adable); } diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Graphic.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Graphic.java index 947428b..c598fd6 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Graphic.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Graphic.java @@ -1,6 +1,7 @@ package fr.iutfbleau.projetIHM2022FI2.Graphic; import java.sql.PreparedStatement; import java.sql.SQLException; +import java.util.Iterator; import java.util.LinkedList; import java.util.Objects; import java.sql.Connection; @@ -29,6 +30,13 @@ public class Graphic{ this.fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.getPromo(); this.fenetre.setVisible(true); + /* + System.out.println(this.agf.getPromotion().monPrint()); + Groupe racineDeLaPartition = agf.getPromotion().getSousGroupes().iterator().next(); + System.out.println(racineDeLaPartition.monPrint()); + for(Groupe g : racineDeLaPartition.getSousGroupes()){ + System.out.println(g.monPrint()); + }*/ } private void getPromo(){ @@ -47,16 +55,15 @@ public class Graphic{ try{ if(rs.first()){ Groupe promo=new GroupeNP(rs.getInt(1), rs.getString(2), rs.getInt(3), rs.getInt(4), TypeGroupe.getType(rs.getString(5)), null); + this.agf=new AbstractGroupeFactoryNP(promo); + this.addSousGroupe(promo); } while(rs.next()){ - System.out.println(rs.getString(1)); - //valeur sentinel pour pas de groupe parent : -1 - if(rs.getInt(6)!=-1){ - //ll.add(new GroupeNP(rs.getInt(1), rs.getString(2), rs.getInt(3), rs.getInt(4), TypeGroupe.getType(rs.getString(5)), ll.get(rs.getInt(6)))); - }else{ - //ll.add(new GroupeNP(rs.getInt(1), rs.getString(2), rs.getInt(3), rs.getInt(4), TypeGroupe.getType(rs.getString(5)), null)); + Groupe g=new GroupeNP(rs.getInt(1), rs.getString(2), rs.getInt(3), rs.getInt(4), TypeGroupe.getType(rs.getString(5)), null); + if(agf.knows(g)==false){ + agf.addGroupe(g); + this.addSousGroupe(g); } - //il reste a add les étudiants et mettre le sous groupe } }catch(SQLException e){ System.out.println("erreur dans la prise de resultat"); @@ -86,17 +93,25 @@ public class Graphic{ "chaignea", "Chaigneauphpmyadmin"); try{ PreparedStatement pst = cnx.prepareStatement( - "SELECT `id`, `nom`, `min`, `max`, `value`, `id-parent` FROM `Groupe` join `TYPE` on Groupe.Type=TYPE.name where Groupe.`id-parent`=?; "); + "SELECT `id`, `nom`, `min`, `max`, `value`, `id-parent` FROM `Groupe` join `TYPE` on Groupe.Type=TYPE.name where Groupe.`id-parent`=? and Groupe.id!=Groupe.`id-parent`;"); try{ - + pst.setInt(g.getId(), 1); + ResultSet rs=pst.executeQuery(); try{ - + while(rs.next()){ + System.out.println(g.getName()+" "+rs.getString(2)); + Groupe nouveau=new GroupeNP(rs.getInt(1), rs.getString(2), rs.getInt(3), rs.getInt(4), TypeGroupe.getType(rs.getString(5)), g); + this.agf.addGroupe(nouveau); + g.addSousGroupe(nouveau); + this.addSousGroupe(nouveau); + } }catch(SQLException e){ System.out.println("erreur dans la prise de resultat"); } rs.close(); }catch(SQLException e){ - System.out.println("erreur dans le resultat"); + //ils n'ont pas de sous groupe + System.out.println(g.getId() + "est le pere"); } pst.close(); }catch(SQLException e){ diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupeFactoryNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupeFactoryNP.java index a068668..80ace5e 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupeFactoryNP.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupeFactoryNP.java @@ -37,6 +37,8 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory { /** * Test plutôt optimiste. Si la clé est identique alors on fait comme si c'était le bon groupe. + * + * @return true si le groupe est connu */ public Boolean knows(Groupe g){ return this.brain.containsKey(Integer.valueOf(g.getId())); @@ -238,8 +240,14 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory { } /** - * Fonction permettant d'ajouter le groupe de la promo a la factory - * @param g le groupe qui représente la promo - * @return true si il n'y a pas de promo, autrement false + * permet d'ajouter un groupe deja tout fait la factory + * + * @param adable le groupe devant être ajouter + * + * + * @throws java.lang.NullPointerException si le Groupe est null. */ + public void addGroupe(Groupe adable) { + this.brain.put(adable.getId(), adable); + } } diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/GroupeNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/GroupeNP.java index 1fee809..aca294a 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/GroupeNP.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/GroupeNP.java @@ -37,7 +37,7 @@ public class GroupeNP implements Groupe { /** * Nouveau groupe complet (pour le modèle persisant de donnée) */ - public GroupeNP(int id, String name, int min, int max, TypeGroupe type, Groupe parent){ + public GroupeNP(int id, String name, int min, int max, TypeGroupe type, Groupe pere){ Objects.requireNonNull(name,"On ne peut pas créer un groupe dont le nom est null"); this.id=id; this.nextId++; @@ -45,7 +45,11 @@ public class GroupeNP implements Groupe { this.min=min; this.max=max; this.type=type; - this.pointPoint=parent; + if(pere==null){ + this.pointPoint=this; + }else{ + this.pointPoint=pere; + } this.sousGroupes=new LinkedHashSet(); this.membresDuGroupe=new LinkedHashSet(); } diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Test/TestTexteMNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Test/TestTexteMNP.java index e7bb82e..e47c2b1 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Test/TestTexteMNP.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Test/TestTexteMNP.java @@ -239,6 +239,10 @@ public class TestTexteMNP{ for (Changement cgt : acf.getAllChangements()){ ////System.out.println(cgt.monPrint()); }*/ + + + + /* try{ Class.forName("org.mariadb.jdbc.Driver"); try{ @@ -264,7 +268,7 @@ public class TestTexteMNP{ } }catch(ClassNotFoundException ef){ System.out.println("pilote non disponible"); - } + }*/ }