restauration de l'API et ajout de possibilité plusieur promo
This commit is contained in:
parent
0eabe2b4bb
commit
c06ff537ad
@ -110,14 +110,4 @@ 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);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -29,20 +29,12 @@ import fr.iutfbleau.projetIHM2022FI2.MNP.GroupeNP;
|
|||||||
public class Model{
|
public class Model{
|
||||||
private FenetreGroupe fenGr;
|
private FenetreGroupe fenGr;
|
||||||
private FenetreEtudiant fenEtu;
|
private FenetreEtudiant fenEtu;
|
||||||
private AbstractGroupeFactory agf;
|
private Set<Groupe> promo;
|
||||||
private JFrame fenetre;
|
private JFrame fenetre;
|
||||||
private Set<Etudiant> etu;
|
|
||||||
public Model(){
|
public Model(){
|
||||||
this.etu=null;
|
|
||||||
this.getPromo();
|
this.getPromo();
|
||||||
System.out.println(this.agf.getPromotion().monPrint());
|
this.fenGr=new FenetreGroupe(this.promo.iterator().next(), this);
|
||||||
Groupe racineDeLaPartition = agf.getPromotion().getSousGroupes().iterator().next();
|
this.fenEtu=new FenetreEtudiant(this.promo.iterator().next());
|
||||||
System.out.println(racineDeLaPartition.monPrint());
|
|
||||||
for(Groupe g : racineDeLaPartition.getSousGroupes()){
|
|
||||||
System.out.println(g.monPrint());
|
|
||||||
}
|
|
||||||
this.fenGr=new FenetreGroupe(this.agf.getPromotion(), this);
|
|
||||||
this.fenEtu=new FenetreEtudiant(this.agf.getPromotion());
|
|
||||||
this.fenetre=new JFrame();
|
this.fenetre=new JFrame();
|
||||||
this.fenetre.setSize(1200, 720);
|
this.fenetre.setSize(1200, 720);
|
||||||
this.fenetre.setLocation(100,100);
|
this.fenetre.setLocation(100,100);
|
||||||
@ -55,7 +47,7 @@ public class Model{
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void getPromo(){
|
private void getPromo(){
|
||||||
this.agf=null;
|
this.promo=new LinkedHashSet<>();
|
||||||
try{
|
try{
|
||||||
Class.forName("org.mariadb.jdbc.Driver");
|
Class.forName("org.mariadb.jdbc.Driver");
|
||||||
try{
|
try{
|
||||||
@ -63,22 +55,17 @@ public class Model{
|
|||||||
"jdbc:mariadb://dwarves.iut-fbleau.fr/chaignea",
|
"jdbc:mariadb://dwarves.iut-fbleau.fr/chaignea",
|
||||||
"chaignea", "Chaigneauphpmyadmin");
|
"chaignea", "Chaigneauphpmyadmin");
|
||||||
try{
|
try{
|
||||||
|
//on récupère le premier groupe de la BD (donc la racine de tous les autres)
|
||||||
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 ORDER BY Groupe.id ASC; ");
|
"SELECT `id`, `nom`, `min`, `max`, `value`, `id-parent` FROM `Groupe` join `TYPE` on Groupe.Type=TYPE.name where Groupe.id=`Groupe`.`id-parent` ORDER BY Groupe.id ASC;");
|
||||||
try{
|
try{
|
||||||
ResultSet rs = pst.executeQuery();
|
ResultSet rs = pst.executeQuery();
|
||||||
try{
|
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, cnx);
|
|
||||||
}
|
|
||||||
while(rs.next()){
|
while(rs.next()){
|
||||||
Groupe g=new GroupeNP(rs.getInt(1), rs.getString(2), rs.getInt(3), rs.getInt(4), TypeGroupe.getType(rs.getString(5)), null);
|
//on image qu'il puisse avoir plusieur promo
|
||||||
if(agf.knows(g)==false){
|
this.promo.add(new GroupeNP(rs.getInt(1), rs.getString(2), rs.getInt(3), rs.getInt(4), TypeGroupe.getType(rs.getString(5)), null));
|
||||||
agf.addGroupe(g);
|
//on y ajoute tous ses sous-groupe
|
||||||
this.addSousGroupe(g, cnx);
|
this.addSousGroupe(promo.iterator().next(), cnx);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}catch(SQLException e){
|
}catch(SQLException e){
|
||||||
System.out.println("erreur dans la prise de resultat");
|
System.out.println("erreur dans la prise de resultat");
|
||||||
@ -109,9 +96,7 @@ public class Model{
|
|||||||
ResultSet rs=pst.executeQuery();
|
ResultSet rs=pst.executeQuery();
|
||||||
try{
|
try{
|
||||||
while(rs.next()){
|
while(rs.next()){
|
||||||
System.out.println(g.getName()+" id= "+g.getId()+" "+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);
|
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);
|
g.addSousGroupe(nouveau);
|
||||||
this.addSousGroupe(nouveau, cnx);
|
this.addSousGroupe(nouveau, cnx);
|
||||||
}
|
}
|
||||||
@ -136,16 +121,21 @@ public class Model{
|
|||||||
pst.setInt(1, g.getId());
|
pst.setInt(1, g.getId());
|
||||||
ResultSet rs=pst.executeQuery();
|
ResultSet rs=pst.executeQuery();
|
||||||
try{
|
try{
|
||||||
|
//On vérifie dans toutes le promo si personne ne connait déja l'Etudiant(s) du même noms
|
||||||
while(rs.next()){
|
while(rs.next()){
|
||||||
if(g==this.agf.getPromotion()){
|
for(Groupe m:this.promo){
|
||||||
this.agf.addToGroupe(g, new EtudiantNP(rs.getString(1), rs.getString(2)));
|
AbstractGroupeFactory agf=new AbstractGroupeFactoryNP(m);
|
||||||
}else{
|
|
||||||
Set<Etudiant> contenue=agf.getEtudiants(rs.getString(1));
|
Set<Etudiant> contenue=agf.getEtudiants(rs.getString(1));
|
||||||
|
//Si il est connu on le/les ajoute
|
||||||
if(contenue.iterator().hasNext()){
|
if(contenue.iterator().hasNext()){
|
||||||
for(Etudiant e:contenue){
|
for(Etudiant e:contenue){
|
||||||
agf.addToGroupe(g, e);
|
g.addEtudiant(e);
|
||||||
}
|
}
|
||||||
|
//autrement on les crée
|
||||||
|
}else{
|
||||||
|
agf.addToGroupe(g, new EtudiantNP(rs.getString(1), rs.getString(2)));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}catch(SQLException e){
|
}catch(SQLException e){
|
||||||
|
@ -22,6 +22,20 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory {
|
|||||||
this.promo=promo;
|
this.promo=promo;
|
||||||
this.brain=new HashMap<Integer,Groupe>();
|
this.brain=new HashMap<Integer,Groupe>();
|
||||||
this.brain.put(Integer.valueOf(this.promo.getId()),this.promo);
|
this.brain.put(Integer.valueOf(this.promo.getId()),this.promo);
|
||||||
|
this.addSousGroupe(this.promo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* permet d'ajouter les sous groupe lors de l'initialisation de la promo
|
||||||
|
* avec un groupe déja créer
|
||||||
|
*
|
||||||
|
* @param g le groupe (methode récursive)
|
||||||
|
*/
|
||||||
|
private void addSousGroupe(Groupe g){
|
||||||
|
for(Groupe s:g.getSousGroupes()){
|
||||||
|
this.brain.put(g.getId(), g);
|
||||||
|
this.addSousGroupe(s);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -208,7 +222,6 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory {
|
|||||||
public Set<Etudiant> getEtudiants(String nomEtu){
|
public Set<Etudiant> getEtudiants(String nomEtu){
|
||||||
Set<Etudiant> s=new LinkedHashSet<>();
|
Set<Etudiant> s=new LinkedHashSet<>();
|
||||||
for(Etudiant e:this.getPromotion().getEtudiants()){
|
for(Etudiant e:this.getPromotion().getEtudiants()){
|
||||||
//System.out.println("Comparaison de: \""+nomEtu.toLowerCase()+"\" a \"" + e.getNom().toLowerCase()+"\"");
|
|
||||||
if((e.getNom()).equals(nomEtu.toString())){
|
if((e.getNom()).equals(nomEtu.toString())){
|
||||||
s.add(e);
|
s.add(e);
|
||||||
}
|
}
|
||||||
@ -237,16 +250,4 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory {
|
|||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user