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) {
int min=Integer.parseInt(xField.getText());
int max=Integer.parseInt(zField.getText());
if(min>this.groupe.getEtudiants().size() || max>this.groupe.getEtudiants().size()){
JOptionPane.showMessageDialog(m.getFenetre(), "nombre de partition trop grand", "erreur", JOptionPane.ERROR_MESSAGE);
if(max>this.groupe.getMax() || min<=0){
JOptionPane.showMessageDialog(m.getFenetre(), "nombre min/max inchoérent", "erreur", JOptionPane.ERROR_MESSAGE);
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);
}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){
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
if(nbsous==0){
//on ajoute le pourcentage de chargement de ce groupe
if(ch!=null)
ch.addPourcent(pourcent);
//La fonction est fini
rs.close();
@ -218,6 +219,7 @@ public class Model{
* @param g le groupe a afficher
*/
public void showGroupe(Groupe g){
this.getPromo(null);%/
this.fenGr=new FenetreGroupe(g, this);
this.fenEtu=new FenetreEtudiant(g);
this.fenetre.getContentPane().removeAll();
@ -243,32 +245,80 @@ public class Model{
return;
}
//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<>();
//On initialise la liste
this.deleteRecursif(file, g);
for(Groupe sup:file){
//on supprime les groupe
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){
//on parcour tous ses sous groupe
for(Groupe g: bedelete.getSousGroupes()){
//qui eux aussi ajouterons leurs sous-groupe a la file
this.deleteRecursif(file, g);
}
// on ajoute le groupe (les sous-groupe ayant déja ajouter leur groupe)
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){
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);
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){
g.setName(name);
}
/**
* Fonction pour ajouter un étudiant au groupe
* @param g
* @param e
*/
public void addEtudiant(Groupe g, Etudiant e){
g.addEtudiant(e);
}