presque fini MPD

This commit is contained in:
martins 2022-11-13 00:37:08 +01:00
parent 191635b8f7
commit d4619fab09
5 changed files with 57 additions and 18 deletions

View File

@ -110,6 +110,14 @@ public interface AbstractGroupeFactory {
*/ */
public Set<Groupe> getGroupesOfEtudiant(Etudiant etu); public Set<Groupe> 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);
} }

View File

@ -1,6 +1,7 @@
package fr.iutfbleau.projetIHM2022FI2.Graphic; package fr.iutfbleau.projetIHM2022FI2.Graphic;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.Iterator;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.Objects; import java.util.Objects;
import java.sql.Connection; import java.sql.Connection;
@ -29,6 +30,13 @@ public class Graphic{
this.fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.getPromo(); this.getPromo();
this.fenetre.setVisible(true); 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(){ private void getPromo(){
@ -47,16 +55,15 @@ public class Graphic{
try{ try{
if(rs.first()){ 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); 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()){ while(rs.next()){
System.out.println(rs.getString(1)); Groupe g=new GroupeNP(rs.getInt(1), rs.getString(2), rs.getInt(3), rs.getInt(4), TypeGroupe.getType(rs.getString(5)), null);
//valeur sentinel pour pas de groupe parent : -1 if(agf.knows(g)==false){
if(rs.getInt(6)!=-1){ agf.addGroupe(g);
//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)))); this.addSousGroupe(g);
}else{
//ll.add(new GroupeNP(rs.getInt(1), rs.getString(2), rs.getInt(3), rs.getInt(4), TypeGroupe.getType(rs.getString(5)), null));
} }
//il reste a add les étudiants et mettre le sous groupe
} }
}catch(SQLException e){ }catch(SQLException e){
System.out.println("erreur dans la prise de resultat"); System.out.println("erreur dans la prise de resultat");
@ -86,17 +93,25 @@ public class Graphic{
"chaignea", "Chaigneauphpmyadmin"); "chaignea", "Chaigneauphpmyadmin");
try{ try{
PreparedStatement pst = cnx.prepareStatement( 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{ try{
pst.setInt(g.getId(), 1);
ResultSet rs=pst.executeQuery();
try{ 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){ }catch(SQLException e){
System.out.println("erreur dans la prise de resultat"); System.out.println("erreur dans la prise de resultat");
} }
rs.close(); rs.close();
}catch(SQLException e){ }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(); pst.close();
}catch(SQLException e){ }catch(SQLException e){

View File

@ -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. * 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){ public Boolean knows(Groupe g){
return this.brain.containsKey(Integer.valueOf(g.getId())); 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 * permet d'ajouter un groupe deja tout fait la factory
* @param g le groupe qui représente la promo *
* @return true si il n'y a pas de promo, autrement false * @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);
}
} }

View File

@ -37,7 +37,7 @@ public class GroupeNP implements Groupe {
/** /**
* Nouveau groupe complet (pour le modèle persisant de donnée) * 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"); Objects.requireNonNull(name,"On ne peut pas créer un groupe dont le nom est null");
this.id=id; this.id=id;
this.nextId++; this.nextId++;
@ -45,7 +45,11 @@ public class GroupeNP implements Groupe {
this.min=min; this.min=min;
this.max=max; this.max=max;
this.type=type; this.type=type;
this.pointPoint=parent; if(pere==null){
this.pointPoint=this;
}else{
this.pointPoint=pere;
}
this.sousGroupes=new LinkedHashSet<Groupe>(); this.sousGroupes=new LinkedHashSet<Groupe>();
this.membresDuGroupe=new LinkedHashSet<Etudiant>(); this.membresDuGroupe=new LinkedHashSet<Etudiant>();
} }

View File

@ -239,6 +239,10 @@ public class TestTexteMNP{
for (Changement cgt : acf.getAllChangements()){ for (Changement cgt : acf.getAllChangements()){
////System.out.println(cgt.monPrint()); ////System.out.println(cgt.monPrint());
}*/ }*/
/*
try{ try{
Class.forName("org.mariadb.jdbc.Driver"); Class.forName("org.mariadb.jdbc.Driver");
try{ try{
@ -264,7 +268,7 @@ public class TestTexteMNP{
} }
}catch(ClassNotFoundException ef){ }catch(ClassNotFoundException ef){
System.out.println("pilote non disponible"); System.out.println("pilote non disponible");
} }*/
} }