ajout commentaire en correstion bug

This commit is contained in:
martins 2022-11-14 11:14:51 +01:00
parent ef308e8bbf
commit 3d1dc90f41
2 changed files with 69 additions and 7 deletions

View File

@ -73,15 +73,27 @@ public class ObservateurModifGroupe implements ActionListener{
if (result == JOptionPane.OK_OPTION) { if (result == JOptionPane.OK_OPTION) {
int min=Integer.parseInt(xField.getText()); int min=Integer.parseInt(xField.getText());
int max=Integer.parseInt(zField.getText()); int max=Integer.parseInt(zField.getText());
if(min>this.groupe.getEtudiants().size() || max>this.groupe.getEtudiants().size()){ if(max>this.groupe.getMax() || min<=0){
JOptionPane.showMessageDialog(m.getFenetre(), "nombre de partition trop grand", "erreur", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(m.getFenetre(), "nombre min/max inchoérent", "erreur", JOptionPane.ERROR_MESSAGE);
return; return;
} }
m.free(groupe, yField.getText(), min, max); Set<Etudiant> ajout=new LinkedHashSet<>();
myPanel=new FenetreSelectionEtu(this.groupe.getPointPoint(), ajout);
if(JOptionPane.showConfirmDialog(m.getFenetre(), new JScrollPane(myPanel), "Selectionner les étudiant a ajouter", JOptionPane.OK_CANCEL_OPTION) ==JOptionPane.YES_OPTION){
if(ajout.size()>=min && ajout.size()<=max){
m.free(groupe, yField.getText(), min, max, ajout);
m.showGroupe(this.groupe); m.showGroupe(this.groupe);
}else{
if(min>ajout.size())
JOptionPane.showMessageDialog(m.getFenetre(), "nombre d'etudiant trop petit", "erreur", JOptionPane.ERROR_MESSAGE);
else{
JOptionPane.showMessageDialog(m.getFenetre(), "nombre d'etudiant trop grand", "erreur", JOptionPane.ERROR_MESSAGE);
}
}
}
} }
}catch(NumberFormatException er){ }catch(NumberFormatException er){
JOptionPane.showMessageDialog(m.getFenetre(), "erreur dans le nombre de partition", "erreur", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(m.getFenetre(), "erreur dans les nombres min et max", "erreur", JOptionPane.ERROR_MESSAGE);
} }
} }
} }

View File

@ -138,6 +138,7 @@ public class Model{
//si il n'y pas de sous-groupe //si il n'y pas de sous-groupe
if(nbsous==0){ if(nbsous==0){
//on ajoute le pourcentage de chargement de ce groupe //on ajoute le pourcentage de chargement de ce groupe
if(ch!=null)
ch.addPourcent(pourcent); ch.addPourcent(pourcent);
//La fonction est fini //La fonction est fini
rs.close(); rs.close();
@ -218,6 +219,7 @@ public class Model{
* @param g le groupe a afficher * @param g le groupe a afficher
*/ */
public void showGroupe(Groupe g){ public void showGroupe(Groupe g){
this.getPromo(null);%/
this.fenGr=new FenetreGroupe(g, this); this.fenGr=new FenetreGroupe(g, this);
this.fenEtu=new FenetreEtudiant(g); this.fenEtu=new FenetreEtudiant(g);
this.fenetre.getContentPane().removeAll(); this.fenetre.getContentPane().removeAll();
@ -243,32 +245,80 @@ public class Model{
return; return;
} }
//autrement on récupere les groupe a supprimer par ordre avec une fonction recursive //autrement on récupere les groupe a supprimer par ordre avec une fonction recursive
//elle contiendra les sous-groupe remontant j'usqau groupe a supprimer
LinkedList<Groupe> file=new LinkedList<>(); LinkedList<Groupe> file=new LinkedList<>();
//On initialise la liste
this.deleteRecursif(file, g); this.deleteRecursif(file, g);
for(Groupe sup:file){ for(Groupe sup:file){
//on supprime les groupe
this.promo.deleteGroupe(sup); this.promo.deleteGroupe(sup);
} }
} }
/**
* fonction recursive initialisant la liste ordonnée de tous les groupe a supprimer avant de supprimer ce groupe
* @param file la liste
* @param bedelete le groupe a supprimer
*/
private void deleteRecursif(LinkedList<Groupe> file, Groupe bedelete){ private void deleteRecursif(LinkedList<Groupe> file, Groupe bedelete){
//on parcour tous ses sous groupe
for(Groupe g: bedelete.getSousGroupes()){ for(Groupe g: bedelete.getSousGroupes()){
//qui eux aussi ajouterons leurs sous-groupe a la file
this.deleteRecursif(file, g); this.deleteRecursif(file, g);
} }
// on ajoute le groupe (les sous-groupe ayant déja ajouter leur groupe)
file.add(bedelete); file.add(bedelete);
} }
/**
* Fonction permetant de créer une partition d'un groupe
* @param g le groupe a partitionner
* @param n le nombre de partition
* @param name le nom des partition
*/
public void partition(Groupe g, int n, String name){ public void partition(Groupe g, int n, String name){
this.promo.createPartition(g, name, n); this.promo.createPartition(g, name, n);
} }
public void free(Groupe g, String name, int min, int max){ /**
* Fonction permettant de créer un sous-groupe d'un groupe
* @param g le groupe parent
* @param name le nom du sous-groupe
* @param min le nombre min d'etudiant
* @param max le nombre max d'etudiant
* @param ajout la liste des étudiants a ajouter au groupe
*/
public void free(Groupe g, String name, int min, int max, Set<Etudiant> ajout){
//on creer le groupe
this.promo.createGroupe(g, name, min, max); this.promo.createGroupe(g, name, min, max);
Groupe creer=null;
//on le recupere
for(Groupe gr:g.getSousGroupes()){
if(gr.getName()==name){
creer=gr;
break;
}
}
//on y ajoute les étudiant
for(Etudiant e:ajout){
this.promo.addToGroupe(creer, e);
}
} }
/**
* Fonction pour renomer un groupe
* @param name
* @param g
*/
public void rename(String name, Groupe g){ public void rename(String name, Groupe g){
g.setName(name); g.setName(name);
} }
/**
* Fonction pour ajouter un étudiant au groupe
* @param g
* @param e
*/
public void addEtudiant(Groupe g, Etudiant e){ public void addEtudiant(Groupe g, Etudiant e){
g.addEtudiant(e); g.addEtudiant(e);
} }