diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupeFactoryNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupeFactoryNP.java index 8c846cb..be0d424 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupeFactoryNP.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupeFactoryNP.java @@ -61,7 +61,6 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory { * @param g le groupe à supprimer * * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalStateException si le groupe contient des groupes * @throws java.lang.IllegalArgumentException si le groupe n'est pas connu de l'usine abstraite ou bien si le groupe est celui de toute la promotion (renvoyé par getPromotion) */ public void deleteGroupe(Groupe g){ @@ -69,14 +68,15 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory { if (!this.knows(g)){ throw new IllegalArgumentException("Impossible d'enlever un groupe inconnu"); } - if (this.getPromotion().equals(g)){ - throw new IllegalArgumentException("Impossible de détruire le groupe de toute la promotion"); - } - if (g.getSize()>0){ - throw new IllegalStateException("Impossible de détruire un groupe contenant un groupe"); - } g.getPointPoint().removeSousGroupe(g); - this.brain.remove(Integer.valueOf(g.getId())); + this.deleteRecursif(g); + } + + private void deleteRecursif(Groupe g){ + this.brain.remove(g.getId()); + for(Groupe sous: g.getSousGroupes()){ + this.deleteRecursif(sous); + } } /** @@ -208,12 +208,14 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory { * @throws java.lang.NullPointerException si le String est null. */ public Set getEtudiants(String nomEtu){ + if(nomEtu==null){ + return this.getPromotion().getEtudiants(); + } // on cherche bêtement dans la promo. Set out = new LinkedHashSet(); for (Etudiant e : getPromotion().getEtudiants()){ - if (e.getNom().equals(nomEtu)){ + if (e.getNom().contains(nomEtu)){ out.add(e); - break; } } return out; diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ETU/Model/ModelEtu.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ETU/Model/ModelEtu.java index 32c0553..338f15d 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ETU/Model/ModelEtu.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ETU/Model/ModelEtu.java @@ -16,6 +16,7 @@ import fr.iutfbleau.projetIHM2022FI2.MNP.AbstractChangementFactoryNP; import fr.iutfbleau.projetIHM2022FI2.MNP.AbstractGroupeFactoryNP; import fr.iutfbleau.projetIHM2022FI2.MNP.ETU.View.FenetreEtudiant; import fr.iutfbleau.projetIHM2022FI2.MNP.ETU.View.FenetreGroupe; +import fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.View.FenetreChangement; /** * Le Model de L'IHM @@ -35,6 +36,8 @@ public class ModelEtu implements Model{ private JFrame fenetre; // l'etudiant courant private Etudiant Selected; + //fenetre du changement + private FenetreChangement fenChange; /** * Constructeur du Model diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/PROF/Model/ModelProf.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/PROF/Model/ModelProf.java index 94cc02a..76edded 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/PROF/Model/ModelProf.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/PROF/Model/ModelProf.java @@ -11,6 +11,7 @@ import fr.iutfbleau.projetIHM2022FI2.API.Groupe; import fr.iutfbleau.projetIHM2022FI2.API.TypeGroupe; import fr.iutfbleau.projetIHM2022FI2.MNP.PROF.View.FenetreEtudiant; import fr.iutfbleau.projetIHM2022FI2.MNP.PROF.View.FenetreGroupe; +import fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.View.FenetreChangement; import fr.iutfbleau.projetIHM2022FI2.API.Model; import fr.iutfbleau.projetIHM2022FI2.Permanent.Controller.ObservateurFenetre; import fr.iutfbleau.projetIHM2022FI2.Permanent.View.Chargement; @@ -34,6 +35,8 @@ public class ModelProf implements Model{ private JFrame fenetre; // l'etudiant courant private Etudiant Selected; + //fenetre du changement + private FenetreChangement fenChange; /** * Constructeur du Model. diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Model/ModelRoot.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Model/ModelRoot.java index d918075..5d71f7f 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Model/ModelRoot.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Model/ModelRoot.java @@ -38,6 +38,8 @@ public class ModelRoot implements Model{ private AbstractChangementFactory changement; // la fenetre principale private JFrame fenetre; + //fenetre du changement + private FenetreChangement fenChange; /** * Constructeur du model. diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ETU/Model/ModelEtu.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ETU/Model/ModelEtu.java index 3947c29..0917812 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ETU/Model/ModelEtu.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ETU/Model/ModelEtu.java @@ -9,6 +9,7 @@ import fr.iutfbleau.projetIHM2022FI2.API.Changement; import fr.iutfbleau.projetIHM2022FI2.API.Etudiant; import fr.iutfbleau.projetIHM2022FI2.API.Groupe; import fr.iutfbleau.projetIHM2022FI2.API.TypeGroupe; +import fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.View.FenetreChangement; import fr.iutfbleau.projetIHM2022FI2.API.Model; import fr.iutfbleau.projetIHM2022FI2.Permanent.Controller.ObservateurFenetre; import fr.iutfbleau.projetIHM2022FI2.Permanent.View.Chargement; @@ -35,6 +36,8 @@ public class ModelEtu implements Model{ private JFrame fenetre; // l'etudiant courant private Etudiant Selected; + //fenetre du changement + private FenetreChangement fenChange; /** * Constructeur du Model */ diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/PROF/Model/ModelProf.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/PROF/Model/ModelProf.java index bc30a74..0c7634d 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/PROF/Model/ModelProf.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/PROF/Model/ModelProf.java @@ -9,6 +9,7 @@ import fr.iutfbleau.projetIHM2022FI2.API.Changement; import fr.iutfbleau.projetIHM2022FI2.API.Etudiant; import fr.iutfbleau.projetIHM2022FI2.API.Groupe; import fr.iutfbleau.projetIHM2022FI2.API.TypeGroupe; +import fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.View.FenetreChangement; import fr.iutfbleau.projetIHM2022FI2.MP.AbstractChangementFactoryNP; import fr.iutfbleau.projetIHM2022FI2.MP.AbstractGroupeFactoryNP; import fr.iutfbleau.projetIHM2022FI2.MP.PROF.View.FenetreEtudiant; @@ -36,6 +37,8 @@ public class ModelProf implements Model{ private JFrame fenetre; // l'etudiant courant private Etudiant Selected; + //fenetre du changement + private FenetreChangement fenChange; /** * Constructeur du Model. diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/Model/ModelRoot.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/Model/ModelRoot.java index daec979..922fece 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/Model/ModelRoot.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/Model/ModelRoot.java @@ -38,6 +38,8 @@ public class ModelRoot implements Model{ private AbstractChangementFactory changement; // la fenetre principale private JFrame fenetre; + //fenetre du changement + private FenetreChangement fenChange; /** * Constructeur du model.