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