diff --git a/java/APIGroupe/Makefile b/java/APIGroupe/Makefile index 97a90b3..f327c55 100644 --- a/java/APIGroupe/Makefile +++ b/java/APIGroupe/Makefile @@ -12,7 +12,7 @@ BUILD = build/fr/iutfbleau/projetIHM2022FI2 DOC = doc/fr/iutfbleau/projetIHM2022FI2 # CHOIX NOMS -JAR_MNP = test-mnp.jar +JAR_MNP = IHM.jar # BUTS FACTICES # .PHONY : run clean doc @@ -262,24 +262,6 @@ ${BUILD}/MP/PROF/Model/ModelProf.class : ${SRC}/MP/PROF/Model/ModelProf.java \ ## MNP ## -${BUILD}/MNP/EtudiantNP.class : ${SRC}/MNP/EtudiantNP.java \ - ${BUILD}/API/Etudiant.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/EtudiantNP.java - - -${BUILD}/MNP/GroupeNP.class : ${SRC}/MNP/GroupeNP.java \ - ${BUILD}/API/Groupe.class \ - ${BUILD}/API/TypeGroupe.class \ - ${BUILD}/API/Etudiant.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/GroupeNP.java - - -${BUILD}/MNP/ChangementNP.class : ${BUILD}/API/Changement.class \ - ${SRC}/MNP/ChangementNP.java \ - ${BUILD}/API/Groupe.class \ - ${BUILD}/API/Etudiant.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/ChangementNP.java - ${BUILD}/MNP/AbstractGroupeFactoryNP.class : ${SRC}/MNP/AbstractGroupeFactoryNP.java \ ${BUILD}/API/AbstractGroupeFactory.class ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/AbstractGroupeFactoryNP.java @@ -293,122 +275,28 @@ ${BUILD}/MNP/AbstractChangementFactoryNP.class : ${SRC}/MNP/AbstractChangementFa ## ROOT ## -## View ## - -${BUILD}/MNP/ROOT/View/FindBarFenetre.class : ${SRC}/MNP/ROOT/View/FindBarFenetre.java\ - ${BUILD}/MNP/ROOT/Controller/ListenerFindBar.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/ROOT/View/FindBarFenetre.java - - -${BUILD}/MNP/ROOT/View/FenetreChangement.class : ${SRC}/MNP/ROOT/View/FenetreChangement.java \ - ${BUILD}/MNP/ROOT/Controller/ActionChangement.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/ROOT/View/FenetreChangement.java - -${BUILD}/MNP/ROOT/View/FenetreGroupe.class : ${SRC}/MNP/ROOT/View/FenetreGroupe.java \ - ${BUILD}/Permanent/Controller/ObservateurFenetre.class \ - ${BUILD}/Permanent/Controller/ObservateurChangeGroupe.class \ - ${BUILD}/MNP/ROOT/Controller/ObservateurModifGroupe.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/ROOT/View/FenetreGroupe.java - -${BUILD}/MNP/ROOT/View/FenetreEtudiant.class :${SRC}/MNP/ROOT/View/FenetreEtudiant.java \ - ${BUILD}/Permanent/Controller/ObservateurFenetre.class \ - ${BUILD}/Permanent/Controller/ObservateurChangeGroupe.class \ - ${BUILD}/MNP/ROOT/View/PanelEtudiant.class \ - ${BUILD}/Permanent/Controller/ActionListenerChangeEtu.class \ - ${BUILD}/MNP/ROOT/Controller/ActionListChange.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/ROOT/View/FenetreEtudiant.java - -${BUILD}/MNP/ROOT/View/PanelEtudiant.class : ${SRC}/MNP/ROOT/View/PanelEtudiant.java \ - ${BUILD}/MNP/ROOT/Controller/ActionListenerSuprEtu.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/ROOT/View/PanelEtudiant.java - - -${BUILD}/MNP/ROOT/View/FenetreSelectionEtu.class : ${SRC}/MNP/ROOT/View/FenetreSelectionEtu.java \ - ${BUILD}/MNP/ROOT/Controller/SelecteurEtudiant.class \ - ${BUILD}/MNP/ROOT/Controller/ActionListenerNouveauEtu.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/ROOT/View/FenetreSelectionEtu.java - - -## Controller ## -${BUILD}/MNP/ROOT/Controller/ListenerFindBar.class : ${SRC}/MNP/ROOT/Controller/ListenerFindBar.java - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/ROOT/Controller/ListenerFindBar.java - - -${BUILD}/MNP/ROOT/Controller/ActionListenerSuprEtu.class : ${SRC}/MNP/ROOT/Controller/ActionListenerSuprEtu.java \ - ${BUILD}/API/Etudiant.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/ROOT/Controller/ActionListenerSuprEtu.java - -${BUILD}/MNP/ROOT/Controller/ActionChangement.class : ${SRC}/MNP/ROOT/Controller/ActionChangement.java - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/ROOT/Controller/ActionChangement.java - -${BUILD}/MNP/ROOT/Controller/ObservateurModifGroupe.class : ${SRC}/MNP/ROOT/Controller/ObservateurModifGroupe.java \ - ${BUILD}/MNP/ROOT/View/FenetreSelectionEtu.class \ - ${BUILD}/MNP/ROOT/Controller/SelecteurEtudiant.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/ROOT/Controller/ObservateurModifGroupe.java - -${BUILD}/MNP/ROOT/Controller/SelecteurEtudiant.class : ${SRC}/MNP/ROOT/Controller/SelecteurEtudiant.java - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/ROOT/Controller/SelecteurEtudiant.java - -${BUILD}/MNP/ROOT/Controller/ActionListenerNouveauEtu.class : ${SRC}/MNP/ROOT/Controller/ActionListenerNouveauEtu.java - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/ROOT/Controller/ActionListenerNouveauEtu.java - -${BUILD}/MNP/ROOT/Controller/ActionListChange.class : ${SRC}/MNP/ROOT/Controller/ActionListChange.java - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/ROOT/Controller/ActionListChange.java - -##.... - - ##  Model ### ${BUILD}/MNP/ROOT/Model/ModelRoot.class : ${SRC}/MNP/ROOT/Model/ModelRoot.java \ ${BUILD}/API/Model.class \ - ${BUILD}/MNP/ROOT/View/FenetreGroupe.class \ - ${BUILD}/MNP/ROOT/View/FenetreEtudiant.class \ + ${BUILD}/MP/ROOT/View/FenetreGroupe.class \ + ${BUILD}/MP/ROOT/View/FenetreEtudiant.class \ ${BUILD}/Permanent/View/Chargement.class \ - ${BUILD}/MNP/ROOT/View/FenetreChangement.class \ - ${BUILD}/MNP/ROOT/View/FindBarFenetre.class + ${BUILD}/MP/ROOT/View/FenetreChangement.class \ + ${BUILD}/MP/ROOT/View/FindBarFenetre.class ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/ROOT/Model/ModelRoot.java - - - - ## ETU ## -## View ## - -${BUILD}/MNP/ETU/View/FenetreGroupe.class : ${SRC}/MNP/ETU/View/FenetreGroupe.java \ - ${BUILD}/Permanent/Controller/ObservateurFenetre.class \ - ${BUILD}/Permanent/Controller/ObservateurChangeGroupe.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/ETU/View/FenetreGroupe.java - -${BUILD}/MNP/ETU/View/FenetreEtudiant.class :${SRC}/MNP/ETU/View/FenetreEtudiant.java \ - ${BUILD}/Permanent/Controller/ObservateurFenetre.class \ - ${BUILD}/Permanent/Controller/ObservateurChangeGroupe.class \ - ${BUILD}/MNP/ETU/View/PanelEtudiant.class \ - ${BUILD}/Permanent/Controller/ActionListenerChangeEtu.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/ETU/View/FenetreEtudiant.java - -${BUILD}/MNP/ETU/View/PanelEtudiant.class : ${SRC}/MNP/ETU/View/PanelEtudiant.java - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/ETU/View/PanelEtudiant.java - - - -## Controller ## - - - -##.... - ##  Model ### ${BUILD}/MNP/ETU/Model/ModelEtu.class : ${SRC}/MNP/ETU/Model/ModelEtu.java \ ${BUILD}/API/Model.class \ - ${BUILD}/MNP/ETU/View/FenetreGroupe.class \ - ${BUILD}/MNP/ETU/View/FenetreEtudiant.class \ + ${BUILD}/MP/ETU/View/FenetreGroupe.class \ + ${BUILD}/MP/ETU/View/FenetreEtudiant.class \ ${BUILD}/Permanent/View/Chargement.class ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/ETU/Model/ModelEtu.java @@ -416,36 +304,13 @@ ${BUILD}/MNP/ETU/Model/ModelEtu.class : ${SRC}/MNP/ETU/Model/ModelEtu.java \ ## PROF ## -## View ## - -${BUILD}/MNP/PROF/View/FenetreGroupe.class : ${SRC}/MNP/PROF/View/FenetreGroupe.java \ - ${BUILD}/Permanent/Controller/ObservateurFenetre.class \ - ${BUILD}/Permanent/Controller/ObservateurChangeGroupe.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/PROF/View/FenetreGroupe.java - -${BUILD}/MNP/PROF/View/FenetreEtudiant.class :${SRC}/MNP/PROF/View/FenetreEtudiant.java \ - ${BUILD}/Permanent/Controller/ObservateurChangeGroupe.class \ - ${BUILD}/MNP/PROF/View/PanelEtudiant.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/PROF/View/FenetreEtudiant.java - -${BUILD}/MNP/PROF/View/PanelEtudiant.class : ${SRC}/MNP/PROF/View/PanelEtudiant.java - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/PROF/View/PanelEtudiant.java - - - -## Controller ## - - - -##.... - ##  Model ### ${BUILD}/MNP/PROF/Model/ModelProf.class : ${SRC}/MNP/PROF/Model/ModelProf.java \ ${BUILD}/API/Model.class \ - ${BUILD}/MNP/PROF/View/FenetreGroupe.class \ - ${BUILD}/MNP/PROF/View/FenetreEtudiant.class \ + ${BUILD}/MP/PROF/View/FenetreGroupe.class \ + ${BUILD}/MP/PROF/View/FenetreEtudiant.class \ ${BUILD}/Permanent/View/Chargement.class ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/PROF/Model/ModelProf.java @@ -457,7 +322,7 @@ ${BUILD}/MNP/PROF/Model/ModelProf.class : ${SRC}/MNP/PROF/Model/ModelProf.java \ ${BUILD}/Permanent/Connexion.class : ${SRC}/Permanent/Connexion.java ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Permanent/View/Connexion.java - ${BUILD}/Permanent/TestTexteMNP.class : ${SRC}/Permanent/TestTexteMNP.java \ + ${BUILD}/Permanent/IHM.class : ${SRC}/Permanent/IHM.java \ ${BUILD}/MP/EtudiantNP.class \ ${BUILD}/MP/GroupeNP.class \ ${BUILD}/MP/ChangementNP.class \ @@ -466,9 +331,6 @@ ${BUILD}/MNP/PROF/Model/ModelProf.class : ${SRC}/MNP/PROF/Model/ModelProf.java \ ${BUILD}/MP/ROOT/Model/ModelRoot.class \ ${BUILD}/MP/ETU/Model/ModelEtu.class \ ${BUILD}/MP/PROF/Model/ModelProf.class \ - ${BUILD}/MNP/EtudiantNP.class \ - ${BUILD}/MNP/GroupeNP.class \ - ${BUILD}/MNP/ChangementNP.class \ ${BUILD}/MNP/AbstractGroupeFactoryNP.class \ ${BUILD}/MNP/AbstractChangementFactoryNP.class \ ${BUILD}/MNP/ROOT/Model/ModelRoot.class \ @@ -476,7 +338,7 @@ ${BUILD}/MNP/PROF/Model/ModelProf.class : ${SRC}/MNP/PROF/Model/ModelProf.java \ ${BUILD}/MNP/PROF/Model/ModelProf.class \ ${BUILD}/Permanent/View/Connexion.class \ ${BUILD}/Permanent/Util/User.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Permanent/TestTexteMNP.java + ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Permanent/IHM.java ## View ## ${BUILD}/Permanent/View/Chargement.class : ${SRC}/Permanent/View/Chargement.java @@ -507,5 +369,5 @@ ${BUILD}/Permanent/Controller/ControllerGroupeBChangement.class : ${SRC}/Permane # ## JARS ## - ${JAR_MNP} : ${BUILD}/Permanent/TestTexteMNP.class - ${JAR} cfme ${JAR_MNP} Manifest.txt fr/iutfbleau/projetIHM2022FI2/Permanent/TestTexteMNP res/ -C build fr + ${JAR_MNP} : ${BUILD}/Permanent/IHM.class + ${JAR} cfme ${JAR_MNP} Manifest.txt fr/iutfbleau/projetIHM2022FI2/Permanent/IHM res/ -C build fr diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractChangementFactoryNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractChangementFactoryNP.java index 173de61..0425714 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractChangementFactoryNP.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractChangementFactoryNP.java @@ -1,6 +1,7 @@ package fr.iutfbleau.projetIHM2022FI2.MNP; import fr.iutfbleau.projetIHM2022FI2.API.*; import java.util.*; +import fr.iutfbleau.projetIHM2022FI2.MP.*; /** * Usine abstraite gérant l'ensemble des changements. * diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupFactoryNP.java~ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupFactoryNP.java~ deleted file mode 100644 index f1dbec9..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupFactoryNP.java~ +++ /dev/null @@ -1,106 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.API; -import java.util.*; -/** - * Usine abstraite gérant l'ensemble des groupes. - * - */ - -public interface AbstractGroupeFactory { - - /** - * permet de récupérer le Groupe qui contient les étudiants de toute la promotion - * @return la promo. - */ - public Groupe getPromotion(); - - /** - * permet de supprimer un groupe connu de l'usine abstraite qui ne contient pas de groupes. - * Pour détruire un groupe connu qui en contient d'autres il faut le faire récursivement. - * - * @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); - - /** - * permet d'ajouter un groupe vide de type FREE comme sous-groupe d'un groupe donné. - * @param pere le groupe père du groupe à créer - * @param name le nom du groupe à créer - * @param min,max bornes indicatives sur la taille du groupe à créer - * - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalArgumentException si le groupe pere est de type PARTITION - * ou si il n'y a pas 0 < min <= max - */ - public void createGroupe(Groupe pere, String name, int min, int max); - - /** - * permet de créer une partition automatiquement sous un groupe donné. - * - * @param pere le groupe père du groupe à partitionner - * @param name le nom des groupe à créer (on ajoutera à la suite un numéro ou une lettre pour distinguer chaque groupe) - * @param n le nombre de partitions - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalArgumentException si le groupe pere est de type PARTITION - * ou n négatif ou nul - * - * NB. doit créer une "copie" de pere - * sous pere de type Partition et ajouter sous ce groupe, n groupes de type "FREE". - * les valeurs min et max de ces n groupes sont - * min = 0 et - * max = partie entière de N/n plus 1, où N est le nombre max du groupe pere. - */ - public void createPartition(Groupe pere, String name, int n); - - /** - * permet d'ajouter un étudiant à un groupe. - * - * @param g le groupe dans lequel il faut ajouter l'étudiant - * @param e l'étudiant à ajouter - * - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalArgumentException la factory ne connaît pas g - * @throws java.lang.IllegalStateException le père de g ne contient pas e - */ - public void addToGroupe(Groupe g, Etudiant e); - - /** - * permet d'enlever un étudiant d'un groupe. - * - * @param g le groupe dans lequel il faut enlever l'étudiant - * @param e l'étudiant à enlever - * - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalStateException g ne contient pas e - * @throws java.lang.IllegalArgumentException la factory ne connaît pas g - */ - public void dropFromGroupe(Groupe g, Etudiant e); - - /** - * permet de retrouver un étudiant à partir d'un String. - * - * NB. dans une version simple il doit s'agir du nom exact. - * dans une version un peu plus complexe, il s'agit des premières lettres du nom - * dans une version avancée, on peut autoriser une expression régulière plus ou moins complexe qui est générée si la première recherche n'a pas renvoyé de candidat. - * - * @param String nomEtu le nom approximmatif de l'étudiant - * @return Set l'ensemble des étudiants connus de la factory ayant un nom "proche" de ce string au sens de la remarque ci-dessus. - * - * @throws java.lang.NullPointerException si le String est null. - */ - public Set getEtudiantFromId(String nomEtu); - - /** - * permet de retrouver les groupes d'un étudiant. - * - * @param Etu un étudiant - * @return Etudiant l'étudiant connu de la factory ayant cet identifiant - * - * @throws java.lang.NullPointerException si le String est null. - */ - public Set getGroupesOfEtudiant(Etudiant etu); - - - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupeFactoryNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupeFactoryNP.java index be0d424..c53e63a 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupeFactoryNP.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupeFactoryNP.java @@ -1,5 +1,6 @@ package fr.iutfbleau.projetIHM2022FI2.MNP; import fr.iutfbleau.projetIHM2022FI2.API.*; +import fr.iutfbleau.projetIHM2022FI2.MP.*; import java.util.*; /** * Usine abstraite gérant l'ensemble des groupes. diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupeFactoryNP.java~ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupeFactoryNP.java~ deleted file mode 100644 index 7ab138a..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupeFactoryNP.java~ +++ /dev/null @@ -1,143 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.API; -import java.util.*; -/** - * Usine abstraite gérant l'ensemble des groupes. - * - */ - -public class AbstractGroupeFactoryNP implements AbstractGroupeFactory { - - // la racine (promotion) - private Groupe promo; - - // On utilise une table de hachage pour retrouver facilement un groupe (à partir de son id). - private HashMap brain; - - /** - * - */ - private Boolean known(Groupe g){ - return this.brain.containsKey(g.getId()); - } - - - - /** - * permet de récupérer le Groupe qui contient les étudiants de toute la promotion - * @return la promo. - */ - public Groupe getPromotion(){ - return this.promo; - } - - /** - * permet de supprimer un groupe connu de l'usine abstraite qui ne contient pas de groupes. - * Pour détruire un groupe connu qui en contient d'autres il faut le faire récursivement. - * - * @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){ - - throw new UnsupportedOperationException("pas encore implanté"); - } - - /** - * permet d'ajouter un groupe vide de type FREE comme sous-groupe d'un groupe donné. - * @param pere le groupe père du groupe à créer - * @param name le nom du groupe à créer - * @param min,max bornes indicatives sur la taille du groupe à créer - * - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalArgumentException si le groupe pere est de type PARTITION - * ou si il n'y a pas 0 < min <= max - */ - public void createGroupe(Groupe pere, String name, int min, int max){ - throw new UnsupportedOperationException("pas encore implanté"); - } - - /** - * permet de créer une partition automatiquement sous un groupe donné. - * - * @param pere le groupe père du groupe à partitionner - * @param name le nom des groupe à créer (on ajoutera à la suite un numéro ou une lettre pour distinguer chaque groupe) - * @param n le nombre de partitions - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalArgumentException si le groupe pere est de type PARTITION - * ou n négatif ou nul - * - * NB. doit créer une "copie" de pere - * sous pere de type Partition et ajouter sous ce groupe, n groupes de type "FREE". - * les valeurs min et max de ces n groupes sont - * min = 0 et - * max = partie entière de N/n plus 1, où N est le nombre max du groupe pere. - */ - public void createPartition(Groupe pere, String name, int n){ - throw new UnsupportedOperationException("pas encore implanté"); - } - - /** - * permet d'ajouter un étudiant à un groupe. - * - * @param g le groupe dans lequel il faut ajouter l'étudiant - * @param e l'étudiant à ajouter - * - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalArgumentException la factory ne connaît pas g - * @throws java.lang.IllegalStateException le père de g ne contient pas e - */ - public void addToGroupe(Groupe g, Etudiant e); - - /** - * permet d'enlever un étudiant d'un groupe. - * - * @param g le groupe dans lequel il faut enlever l'étudiant - * @param e l'étudiant à enlever - * - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalStateException g ne contient pas e - * @throws java.lang.IllegalArgumentException la factory ne connaît pas g - */ - public void dropFromGroupe(Groupe g, Etudiant e){ - throw new UnsupportedOperationException("pas encore implanté"); - } - - /** - * permet de retrouver un étudiant à partir d'un String. - * - * NB. dans une version simple il doit s'agir du nom exact. - * dans une version un peu plus complexe, il s'agit des premières lettres du nom - * dans une version avancée, on peut autoriser une expression régulière plus ou moins complexe qui est générée si la première recherche n'a pas renvoyé de candidat. - * - * @param String nomEtu le nom approximmatif de l'étudiant - * @return Set l'ensemble des étudiants connus de la factory ayant un nom "proche" de ce string au sens de la remarque ci-dessus. - * - * @throws java.lang.NullPointerException si le String est null. - */ - public Set getEtudiants(String nomEtu){ - // on cherche bêtement dans la promo. - Set out = new LinkedHashSet(); - for (Etudiant e : getPromotion().getEtudiants()){ - if e.getNom().equals(nomEtu){ - out.add(e); - break; - } - } - return out; - } - - /** - * permet de retrouver les groupes d'un étudiant. - * - * @param Etu un étudiant - * @return Etudiant l'étudiant connu de la factory ayant cet identifiant - * - * @throws java.lang.NullPointerException si le String est null. - */ - public Set getGroupesOfEtudiant(Etudiant etu){ - throw new UnsupportedOperationException("pas encore implanté"); - } - - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ChangementNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ChangementNP.java deleted file mode 100644 index d947837..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ChangementNP.java +++ /dev/null @@ -1,101 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP; -import fr.iutfbleau.projetIHM2022FI2.API.*; -import java.util.*; -/** - * Une demande de changement de groupe - * concerne un étudiant, qui est dans un groupe A et veut aller dans un groupe B. - * - * Implémentation non persistante fournie avec l'API. - */ - -public class ChangementNP implements Changement { - - //auto-incrément des changements - private static int nextId=0; - // id du changement - private int id; - // groupe d'origine et d'arrivée - private Groupe a,b; - // étudiant concerné - private Etudiant e; - // raison de la demande - private String raison; - - /** - * Constructeur d'un changement. - * @param a le groupe de départ - * @param b le groupe d'arrivée - * @param e l'étudiant demandant le changement - * @param raison la raison du changement - */ - public ChangementNP(Groupe a, Etudiant e, Groupe b){ - Objects.requireNonNull(a,"On ne peut pas créer un changement avec un groupe à quitter null"); - Objects.requireNonNull(b,"On ne peut pas créer un changement avec un groupe à rejoindre null"); - Objects.requireNonNull(e,"On ne peut pas créer un changement concernant un étudiant null"); - this.raison=null; - this.id=++this.nextId; - this.a=a; - this.b=b; - this.e=e; - } - - /** - * Constructeur d'un changement. - * @param a le groupe de départ - * @param b le groupe d'arrivée - * @param e l'étudiant demandant le changement - * @param raison la raison du changement - * - */ - public ChangementNP(Groupe a, Etudiant e, Groupe b, String raison){ - Objects.requireNonNull(a,"On ne peut pas créer un changement avec un groupe à quitter null"); - Objects.requireNonNull(b,"On ne peut pas créer un changement avec un groupe à rejoindre null"); - Objects.requireNonNull(e,"On ne peut pas créer un changement concernant un étudiant null"); - this.raison=raison; - this.id=++this.nextId; - this.a=a; - this.b=b; - this.e=e; - } - - /** - * permet de récupérer l'identifiant du changement (référence interne sans intérêt irl). - * @return l'identifiant. - */ - public int getId(){ - return this.id; - } - - /** - * permet de récupérer le groupe de depart - * @return ce groupe. - */ - public Groupe getA(){ - return this.a; - } - - /** - * permet de récupérer le groupe d'arrivée - * @return ce groupe. - */ - public Groupe getB(){ - return this.b; - } - - /** - * permet de récupérer l'étudiant demandant le changement - * @return cet étudiant - */ - public Etudiant getEtu(){ - return this.e; - } - /** - * permet de récupérer la raison du changement - * @return la raison du changement - */ - @Override - public String getRaison() { - return this.raison; - } - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ChangementNP.java~ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ChangementNP.java~ deleted file mode 100644 index 49e2bd9..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ChangementNP.java~ +++ /dev/null @@ -1,60 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP; -import fr.iutfbleau.projetIHM2022FI2.API.*; -import java.util.*; -/** - * Une demande de changement de groupe - * concerne un étudiant, qui est dans un groupe A et veut aller dans un groupe B. - * - * Implémentation non persistante fournie avec l'API. - */ - -public class ChangementNP implements Changement { - - private int id; - private Groupe a,b; - private Etudiant e; - - public ChangementNP(Groupe a, Etudiant e, Groupe b){ - Objects.requireNonNull(a,"On ne peut pas créer un changement avec un groupe à quitter null"); - Objects.requireNonNull(r,"On ne peut pas créer un changement avec un groupe à rejoindre null"); - Objects.requireNonNull(e,"On ne peut pas créer un changement concernant un étudiant null"); - // Nous n'utilisons dans l'immédiat pas le champs id qui vaut 0 pour tous les changements. - this.id=0; - this.a=a; - this.b=b; - this.e=e; - } - - /** - * permet de récupérer l'identifiant du changement (référence interne sans intérêt irl). - * @return l'identifiant. - */ - public int getId(){ - return this.id; - } - - /** - * permet de récupérer le groupe de depart - * @return ce groupe. - */ - public Groupe getA(){ - return this.a; - } - - /** - * permet de récupérer le groupe d'arrivée - * @return ce groupe. - */ - public Groupe getB(){ - return this.a; - } - - /** - * permet de récupérer l'étudiant demandant le changement - * @return cet étudiant - */ - public Etudiant getEtu(){ - return this.e; - } - -} 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 338f15d..ea8c5bb 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 @@ -12,11 +12,8 @@ import fr.iutfbleau.projetIHM2022FI2.API.TypeGroupe; import fr.iutfbleau.projetIHM2022FI2.API.Model; import fr.iutfbleau.projetIHM2022FI2.Permanent.Controller.ObservateurFenetre; import fr.iutfbleau.projetIHM2022FI2.Permanent.View.Chargement; -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; +import fr.iutfbleau.projetIHM2022FI2.MP.ETU.View.FenetreEtudiant; +import fr.iutfbleau.projetIHM2022FI2.MP.ETU.View.FenetreGroupe; /** * Le Model de L'IHM @@ -36,8 +33,6 @@ 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/ETU/View/FenetreEtudiant.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ETU/View/FenetreEtudiant.java deleted file mode 100644 index 62d64fb..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ETU/View/FenetreEtudiant.java +++ /dev/null @@ -1,89 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP.ETU.View; - -import javax.swing.JLabel; -import javax.swing.JPanel; - -import java.awt.*; -import java.util.LinkedHashSet; -import java.util.Set; - -import fr.iutfbleau.projetIHM2022FI2.API.Etudiant; -import fr.iutfbleau.projetIHM2022FI2.API.Groupe; -import fr.iutfbleau.projetIHM2022FI2.API.TypeGroupe; -import fr.iutfbleau.projetIHM2022FI2.Permanent.Controller.ActionListenerChangeEtu; -import fr.iutfbleau.projetIHM2022FI2.API.Model; - -/** - * Affichage des édudiants d'un groupe - * - */ -public class FenetreEtudiant{ - //liste des étudiants - private Set etu; - // panel - private JPanel pan; - // l'étudiant sélectionné - private Etudiant concerner; - // model - private Model model; - // tru si le groupe est une partition - private boolean partition; - - /** - * Constructeur de l'affichage des étudiants - * @param g le groupe - * @param m le model - * @param e l'étudiant sélectionné - */ - public FenetreEtudiant(Groupe g, Etudiant e, Model m){ - this.pan=new JPanel(); - this.model=m; - if(g!=null){ - this.etu=g.getEtudiants(); - }else{ - this.etu=new LinkedHashSet<>(); - } - this.concerner=e; - if(g.getPointPoint().getType()==TypeGroupe.PARTITION) - this.partition=true; - else{ - this.partition=false; - } - this.draw(); - } - /** - * Gère l'affichage des étudiants - */ - private void draw(){ - if(this.etu.size()!=0){ - this.pan.setLayout(new GridLayout(this.etu.size(), 1, 30, 0)); - PanelEtudiant p=new PanelEtudiant(this.concerner, this.partition); - p.addActionChangeListener(new ActionListenerChangeEtu(this.model, this.concerner)); - this.pan.add(p); - for(Etudiant e: this.etu){ - if(this.concerner.getId() != e.getId()){ - this.pan.add(p); - p=new PanelEtudiant(e,false); - } - } - }else{ - this.pan.setLayout(new FlowLayout()); - this.pan.add(new JLabel("Il n'y a pas d'étudiant")); - } - } - /** - * rafraichit l'affichage. - */ - public void refresh(){ - this.pan.removeAll(); - this.draw(); - this.pan.revalidate(); - } - /** - * premet d'obtenir le panel de l'affichage - * @return le panel de l'affichage - */ - public JPanel getPan() { - return pan; - } -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ETU/View/FenetreGroupe.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ETU/View/FenetreGroupe.java deleted file mode 100644 index 84ec1a5..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ETU/View/FenetreGroupe.java +++ /dev/null @@ -1,131 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP.ETU.View; - -import javax.swing.JButton; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import java.awt.Font; -import java.awt.GridLayout; -import fr.iutfbleau.projetIHM2022FI2.API.Groupe; -import fr.iutfbleau.projetIHM2022FI2.API.TypeGroupe; -import fr.iutfbleau.projetIHM2022FI2.API.Model; -import fr.iutfbleau.projetIHM2022FI2.Permanent.Controller.ObservateurChangeGroupe; - -import java.util.Set; -import java.awt.Color; -/** - * Affichage d'un groupe - * -*/ -public class FenetreGroupe{ - // le groupe affiché - private Groupe g; - // le panel d'affichage - private JPanel pan; - // le modèle - private Model m; - // liste des sous groupes - private Set appartient; - - /** - * Constructeur de l'affichage d'un groupe - * @param g le groupe à afficher - * @param m le model - * @param appartient la liste des sous groupes - * - */ - public FenetreGroupe(Groupe g, Model m, Set appartient){ - super(); - this.g=g; - this.appartient=appartient; - this.m=m; - this.pan=new JPanel(); - this.draw(); - } - /** - * permet de récupérer le groupe affiché - * @return le groupe affiché - */ - public Groupe getG() { - return this.g; - } - /** - * rafraichit l'affichage du groupe - */ - public void refresh(){ - this.pan.removeAll(); - this.draw(); - this.pan.revalidate(); - } - /** - * gère l'affichage du groupe - */ - private void draw(){ - if(g!=null){ - int taille=1; - if(g.getType()==TypeGroupe.PARTITION || g.getType()==TypeGroupe.ROOT) - taille--; - if(g.getSousGroupes().size()>0) - this.pan.setLayout(new GridLayout(7, 1)); - else{this.pan.setLayout(new GridLayout(6, 1));} - JPanel tache=new JPanel(new GridLayout(1,taille)); - - if(g.getType()!=TypeGroupe.ROOT){ - JButton bout=new JButton(g.getPointPoint().getName()); - bout.addActionListener(new ObservateurChangeGroupe(m, g.getPointPoint())); - tache.add(bout); - } - this.pan.add(tache); - JLabel titre=new JLabel("Groupe : "+g.getName(), JLabel.CENTER); - titre.setFont(new Font(Font.SERIF, Font.BOLD, titre.getFont().getSize()+10)); - this.pan.add(titre); - this.pan.add(new JLabel("min= "+String.valueOf(g.getMin())+"\t || \t max= "+String.valueOf(g.getMax()),JLabel.CENTER)); - JButton refresh= new JButton("Resfresh"); - refresh.addActionListener(new ObservateurChangeGroupe(m, g)); - this.pan.add(refresh); - this.pan.add(new JLabel("Type: "+g.getType().name()+"\t || \t id="+String.valueOf(g.getId()), JLabel.CENTER)); - this.pan.add(new JLabel("Sous groupe:",JLabel.CENTER)); - if(g.getSousGroupes().size()>0){ - JPanel sous=new JPanel(new GridLayout(g.getSousGroupes().size(), 1)); - for(Groupe gr: g.getSousGroupes()){ - JButton b=new JButton(gr.getName()); - boolean contenu=false; - for(Groupe t: this.appartient){ - if(t.getId()==gr.getId()){ - contenu=true; - break; - } - } - if(contenu){ - b.addActionListener(new ObservateurChangeGroupe(m, gr)); - }else{ - b.setBackground(Color.RED); - } - sous.add(b); - } - this.pan.add(new JScrollPane(sous)); - } - } - } - /** - * permet de modifier le groupe affiché - * @param g le nouveau groupe à afficher - */ - public void setG(Groupe g) { - this.g = g; - } - /** - * permet de modifier la liste des sous groupes - * @param appartient la nouvelle liste des sous groupes - */ - public void setAppartient(Set appartient) { - this.appartient = appartient; - } - /** - * Permet de récupérer le panel d'affichage. - * @return le panel d'affichage - */ - public JPanel getPan() { - return pan; - } -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ETU/View/PanelEtudiant.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ETU/View/PanelEtudiant.java deleted file mode 100644 index d0256a0..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ETU/View/PanelEtudiant.java +++ /dev/null @@ -1,40 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP.ETU.View; - -import javax.swing.JLabel; -import javax.swing.JPanel; - -import fr.iutfbleau.projetIHM2022FI2.API.Etudiant; - -import javax.swing.JButton; -import java.awt.*; -import java.awt.event.ActionListener; - - -public class PanelEtudiant extends JPanel{ - - // bouton déplacement - private JButton deplacer; - /** - * Constructeur du panel d'affichage d'un étudiant - * @param e l'étudiant à afficher - * @param concerner si l'étudiant à afficher est l'étudiant logué - */ - public PanelEtudiant(Etudiant e, boolean concerner){ - super(new GridLayout(1,2,20,10)); - JLabel label=new JLabel(" "+e.getNom()+" "+e.getPrenom()+" "+e.getId(), JLabel.LEFT); - label.setFont(new Font(Font.SANS_SERIF, Font.PLAIN, 20)); - - this.add(label); - this.deplacer=new JButton("changer de groupe"); - if(concerner==true) - this.add(this.deplacer); - } - - /** - * Ajoute un listener au bouton de changement de groupe - * @param a le listener - */ - public void addActionChangeListener(ActionListener a){ - this.deplacer.addActionListener(a); - } -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/EtudiantNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/EtudiantNP.java deleted file mode 100644 index 2b64982..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/EtudiantNP.java +++ /dev/null @@ -1,56 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP; -import fr.iutfbleau.projetIHM2022FI2.API.*; -import java.util.*; -/** - * Un étudiant - */ - -public class EtudiantNP implements Etudiant{ - // auto-incrément des étudiants - private static int nextId=0; - // id de l'étudiant - private int id; - // nom et prénom de l'étudiant - private String nom, prenom; - - /** - * Constructeur d'un étudiant. - * @param nom le nom de l'étudiant - * @param prenom le prénom de l'étudiant - * - */ - public EtudiantNP(String nom, String prenom){ - 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"); - // auto incrément de l'id - this.id=++this.nextId; - this.nom=nom; - this.prenom=prenom; - } - - /** - * permet de récupérer l'identifiant de l'étudiant. - * @return l'identifiant. - */ - public int getId(){ - return this.id; - } - - /** - * permet de récupérer - * @return le nom de l'étudiant. - */ - public String getNom(){ - return this.nom; - } - - /** - * permet de récupérer - * @return le prénom de l'étudiant - */ - public String getPrenom(){ - return this.prenom; - } - - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/EtudiantNP.java~ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/EtudiantNP.java~ deleted file mode 100644 index 2b6d0b9..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/EtudiantNP.java~ +++ /dev/null @@ -1,51 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP; -import fr.iutfbleau.projetIHM2022FI2.API.*; -import java.util.*; -/** - * Un étudiant - */ - -public class EtudiantNP implements Etudiant{ - - private static nextId=0; - private int id; - private String nom, prenom; - - /** - * Constructeur. - */ - public EtudiantNP(String nom, String prenom){ - 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"); - // auto incrément de l'id - this.id=++this.nextId; - this.nom=nom; - this.prenom=prenom; - } - - /** - * permet de récupérer l'identifiant de l'étudiant. - * @return l'identifiant. - */ - public int getId(){ - return this.id; - } - - /** - * permet de récupérer - * @return le nom de l'étudiant. - */ - public String getNom(){ - return this.nom; - } - - /** - * permet de récupérer - * @return le prénom de l'étudiant - */ - public String getPrenom(){ - return this.prenom; - } - - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/GroupeNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/GroupeNP.java deleted file mode 100644 index 9ad28f5..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/GroupeNP.java +++ /dev/null @@ -1,226 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP; -import fr.iutfbleau.projetIHM2022FI2.API.*; -import java.util.*; -/** - * Un groupe - */ - -public class GroupeNP implements Groupe { - - //auto-incrément des groupes. (NB. inutile, mais ça fair un exemple d'attribut statique). - private static int nextId=0; - // attributs naturels induits par getter de l'interface Groupe - private int id; - // nom du groupe - private String name; - // bornes limitatives du groupe - private int min,max; - // type de groupe - private TypeGroupe type; - // groupe père - private Groupe pointPoint; - // On utilise une interface set pour les sous-groupes et pour les membres (ce sont bien des ensembles en pratique). - private Set sousGroupes; - // Liste des étudiants du groupe - private Set membresDuGroupe; - - /** - * Nouveau groupe vide de type ROOT sans étudiants, sans sous-Groupe - * - * @param name le nom du groupe - * @param min le nombre minimum d'étudiants - * @param max le nombre maximum d'étudiants - */ - public GroupeNP(String name, int min, int max){ - Objects.requireNonNull(name,"On ne peut pas créer un groupe dont le nom est null"); - this.id=++this.nextId; - this.name=name; - this.min=min; - this.max=max; - this.type=TypeGroupe.ROOT; - this.pointPoint=this; - this.sousGroupes=new LinkedHashSet(); - this.membresDuGroupe=new LinkedHashSet(); - } - - /** - * Nouveau groupe vide de type FREE sans étudiants, sans sous-Groupe - * - * @param name le nom du groupe - * @param min le nombre minimum d'étudiants - * @param max le nombre maximum d'étudiants - * @param pere le groupe père - * - */ - public GroupeNP(Groupe pere, String name, int min, int max){ - Objects.requireNonNull(pere,"On ne peut pas créer un groupe dont le père est null"); - Objects.requireNonNull(name,"On ne peut pas créer un groupe dont le nom est null"); - this.id=++this.nextId; - this.name=name; - this.min=min; - this.max=max; - this.type=TypeGroupe.FREE; - this.pointPoint=pere; - this.sousGroupes=new LinkedHashSet(); - this.membresDuGroupe=new LinkedHashSet(); - } - - /** - * Nouveau groupe de type PARTITION dupliquant le groupe passé en paramètre (pour servir de racine à une partition de ce groupe de type FREE passé en paramètre). - * - * @param pere le groupe père - */ - public GroupeNP(Groupe pere){ - Objects.requireNonNull(pere,"On ne peut pas créer un groupe dont le père est null"); - this.id=++this.nextId; - this.name=pere.getName()+"_PARTITION_"+ this.id; - this.min=pere.getMin(); - this.max=pere.getMax(); - this.type=TypeGroupe.PARTITION; - this.pointPoint=pere; - this.sousGroupes= new LinkedHashSet(); - this.membresDuGroupe= pere.getEtudiants(); - } - - /** - * Ajoute un étudiant. Se comporte comme add de l'interface Set. - * - * @param e l'étudiant à ajouter - * - * @return true iff e est ajouté - */ - public boolean addEtudiant(Etudiant e){ - Objects.requireNonNull(e,"On ne peut pas ajouter un Étudiant qui est null"); - return this.membresDuGroupe.add(e); - } - - /** - * Enlève un étudiant. Se comporte comme remove de l'interface Set. - * - * @param e l'étudiant à enlever - * - * @return true iff e est enlevé - */ - public boolean removeEtudiant(Etudiant e){ - Objects.requireNonNull(e,"On ne peut pas enlever un Étudiant qui est null"); - return this.membresDuGroupe.remove(e); - } - - /** - * Ajoute un sous-groupe. Se comporte comme add de l'interface Set. - * vérifie que le groupe passé en argument a bien renseigné this comme son père. - * - * @param g le groupe à ajouter - * - * @return true iff g est ajouté - */ - public boolean addSousGroupe(Groupe g){ - Objects.requireNonNull(g,"On ne peut pas ajouter un sous-groupe qui est null"); - if (this.equals(g.getPointPoint())) - return this.sousGroupes.add(g); - else throw new IllegalArgumentException("on ne peut pas ajouter un sous-groupe ont le père n'est pas this"); - } - - /** - * Enlève un groupe. Se comporte comme remove de l'interface Set. - * - * @param g le sous-groupe à enlever - * - * @return true iff e est enlevé - */ - public boolean removeSousGroupe(Groupe g){ - Objects.requireNonNull(g,"On ne peut pas enlever un Étudiant qui est null"); - return this.sousGroupes.remove(g); - } - - - /** - * permet de récupérer l'identifiant d'un groupe (référence interne sans intérêt irl). - * - * @return l'identifiant. - */ - public int getId(){ - return this.id; - } - - /** - * permet de récupérer le nom d'un groupe (utile irl). - * @return le nom. - */ - public String getName(){ - return this.name; - } - - /** - * permet de récupérer le nombre minimum d'étudiants souhaités dans le groupe. - * @return le minimum souhaité - */ - public int getMin(){ - return this.min; - } - - /** - * permet de récupérer le nombre maximum d'étudiants souhaités dans un groupe. - * @return le maximum souhaité - */ - public int getMax(){ - return this.max; - } - - /** - * permet de récupérer le nombre d'étudiants dans ce groupe. - * @return le nombre de places prises (pas forcément limité entre Min et Max, mais c'est le but) - */ - public int getSize(){ - return this.membresDuGroupe.size(); - } - - /** - * permet de récupérer la nature du groupe - * @return le type du groupe - */ - public TypeGroupe getType(){ - return type; - } - - /** - * permet de récupérer le groupe père - * un groupe racine devrait retourner lui-même - * - * @return le père - */ - public Groupe getPointPoint(){ - return this.pointPoint; - } - - /** - * Potentiellement "vide" - * Attention nous renvoyons l'ensemble sans le copier - * - * @return l'ensemble des sous-groupes. - */ - public Set getSousGroupes(){ - return this.sousGroupes; - } - - /** - * Potentiellement "vide" - * Attention nous renvoyons l'ensemble sans le copier - * - * @return l'ensemble des étudiants. - */ - public Set getEtudiants(){ - return this.membresDuGroupe; - } - - /** - * permet de modifier le nom du groupe - * @param name le nouveau nom - */ - @Override - public void setName(String s) { - this.name=s; - } - - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/GroupeNP.java~ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/GroupeNP.java~ deleted file mode 100644 index e34daba..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/GroupeNP.java~ +++ /dev/null @@ -1,199 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP; -import fr.iutfbleau.projetIHM2022FI2.API.*; -import java.util.*; -/** - * Un groupe - */ - -public class GroupeNP extends Groupe { - - //auto-incrément des groupes. (NB. inutile, mais ça fair un exemple d'attribut statique). - private static nextId=0; - // attributs naturels induits par getter de l'interface Groupe - private int id; - private String name; - private int min,max; - private TypeGroupe type; - private Groupe pointPoint; - // On utilise une interface set pour les sous-groupes et pour les membres (ce sont bien des ensembles en pratique). - private Set sousGroupes; - private Set membresDuGroupe; - - // les méthodes de l'interface groupe sont en fin de fichier. - // On commence par les get/set additionnels, puis les constructeurs. - - /** - * Réfléchir à donner droit dans paquet. - * @return le set des étudiants (attention ce n'est pas une copie, tout changement impacte le groupe). - */ - public Set getSetEtudiants(){ - return this.membresDuGroupe; - } - - /** - * Ajoute un étudiant. Se comporte comme add de l'interface Set. - * - * @return true iff e est ajouté - */ - package boolean addEtudiant(Etudiant e){ - Objects.requireNonNull(e,"On ne peut pas ajouter un Étudiant qui est null"); - return this.membresDuGroupe.add(e); - } - - /** - * Enlève un étudiant. Se comporte comme remove de l'interface Set. - * - * @return true iff e est enlevé - */ - package boolean removeEtudiant(Etudiant e){ - Objects.requireNonNull(e,"On ne peut pas enlever un Étudiant qui est null"); - return this.membresDuGroupe.remove(e); - } - - /** - * Ajoute un sous-groupe. Se comporte comme add de l'interface Set. - * vérifie que le groupe passé en argument a bien renseigné this comme son père. - * - * @return true iff g est ajouté - */ - package boolean addSousGroupe(Groupe g){ - Objects.requireNonNull(g,"On ne peut pas ajouter un sous-groupe qui est null"); - if (this.equals(g.getpointPoint())) - return this.sousGroupes.add(g); - else throw new IllegalArgumentException("on ne peut pas ajouter un sous-groupe ont le père n'est pas this"); - } - - /** - * Enlève un groupe. Se comporte comme remove de l'interface Set. - * - * @return true iff e est enlevé - */ - package boolean removeSousGroupe(Groupe g){ - Objects.requireNonNull(e,"On ne peut pas enlever un Étudiant qui est null"); - return this.souGroupes.remove(g); - } - - - /** - * Nouveau groupe vide de type PROMOTION sans étudiants, sans sous-Groupe - */ - public GroupeNP(String name, int min, int max){ - Objects.requireNonNull(name,"On ne peut pas créer un groupe dont le nom est null"); - this.id=++this.nextId; - this.name=name; - this.min=min; - this.max=max; - this.type=TypeGroupe.FREE; - this.pointPoint=this; - this.sousGroupes=new LinkedHashSet(); - this.membresDugroupe=new LinkedHashSet(); - } - - /** - * Nouveau groupe vide de type FREE sans étudiants, sans sous-Groupe - */ - public GroupeNP(Groupe pere, String name, int min, int max){ - Objects.requireNonNull(pere,"On ne peut pas créer un groupe dont le père est null"); - Objects.requireNonNull(name,"On ne peut pas créer un groupe dont le nom est null"); - this.id=++this.nextId; - this.name=name; - this.min=min; - this.max=max; - this.type=TypeGroupe.FREE; - this.pointPoint=pere; - this.sousGroupes=new LinkedHashSet(); - this.membresDugroupe=new LinkedHashSet(); - } - - /** - * Nouveau groupe de type PARTITION dupliquant le groupe passé en paramètre (pour servir de racine à une partition de ce groupe de type FREE passé en paramètre). - * - */ - public GroupeNP(Groupe pere){ - Objects.requireNonNull(pere,"On ne peut pas créer un groupe dont le père est null"); - this.id=++this.nextId; - this.name=pere.getName()+"_PARTITION_"+ this.id; - this.min=pere.getMin(); - this.max=pere.getMax(); - this.type=TypeGroupe.PARTITION; - this.pointPoint=pere; - this.sousGroupes= new LinkedHashSet(); - this.membresDugroupe= this.pere.getSetEtudiants(); - } - - /** - * permet de récupérer l'identifiant d'un groupe (référence interne sans intérêt irl). - * @return l'identifiant. - */ - public int getId(){ - return this.id; - } - - /** - * permet de récupérer le nom d'un groupe (utile irl). - * @return le nom. - */ - public String getName(){ - return this.name; - } - - /** - * permet de récupérer le nombre minimum d'étudiants souhaités dans le groupe. - * @return le minimum souhaité - */ - public int getMin(){ - return this.min; - } - - /** - * permet de récupérer le nombre maximum d'étudiants souhaités dans un groupe. - * @return le maximum souhaité - */ - public int getMax(){ - return this.max; - } - - /** - * permet de récupérer le nombre d'étudiants dans ce groupe. - * @return le nombre de places prises (pas forcément limité entre Min et Max, mais c'est le but) - */ - public int getSize(){ - return this.membresDuGroupe.size(); - } - - /** - * permet de récupérer la nature du groupe - * @return le type du groupe - */ - public TypeGroupe getType(){ - return type; - } - - /** - * permet de récupérer le groupe père - * un groupe racine devrait retourner lui-même - * - * @return le père - */ - public Groupe getPointPoint(){ - return this.pointPoint; - } - - /** - * Potentiellement "vide" - * @return un itérateur sur sous-groupes. - */ - public Iterator getSousGroupes(){ - return this.sousGroupes.iterator(); - } - - /** - * Potentiellement "vide" - * @return un itérateur sur les étudiants. - */ - public Iterator getEtudiants(){ - return this.membresDuGroupe.iterator(); - } - - -} 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 76edded..59de326 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 @@ -9,9 +9,8 @@ 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.PROF.View.FenetreEtudiant; -import fr.iutfbleau.projetIHM2022FI2.MNP.PROF.View.FenetreGroupe; -import fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.View.FenetreChangement; +import fr.iutfbleau.projetIHM2022FI2.MP.PROF.View.FenetreEtudiant; +import fr.iutfbleau.projetIHM2022FI2.MP.PROF.View.FenetreGroupe; import fr.iutfbleau.projetIHM2022FI2.API.Model; import fr.iutfbleau.projetIHM2022FI2.Permanent.Controller.ObservateurFenetre; import fr.iutfbleau.projetIHM2022FI2.Permanent.View.Chargement; @@ -33,10 +32,6 @@ public class ModelProf implements Model{ private AbstractChangementFactory changement; // la fenetre principale 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/View/FenetreEtudiant.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/PROF/View/FenetreEtudiant.java deleted file mode 100644 index 8263050..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/PROF/View/FenetreEtudiant.java +++ /dev/null @@ -1,67 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP.PROF.View; - - -import javax.swing.JLabel; -import javax.swing.JPanel; - -import java.awt.*; -import java.util.LinkedHashSet; -import java.util.Set; - -import fr.iutfbleau.projetIHM2022FI2.API.Etudiant; -import fr.iutfbleau.projetIHM2022FI2.API.Groupe; - -/** - * Affichage des édudiants d'un groupe - * - */ -public class FenetreEtudiant{ - // liste des étudiants - private Set etu; - // panel - private JPanel pan; - - /** - * Constructeur de l'affichage des étudiants - * @param g le groupe - */ - public FenetreEtudiant(Groupe g){ - this.pan=new JPanel(); - if(g!=null){ - this.etu=g.getEtudiants(); - }else{ - this.etu=new LinkedHashSet<>(); - } - this.draw(); - } - /** - * Gère l'affichage des étudiants - */ - private void draw(){ - if(this.etu.size()!=0){ - this.pan.setLayout(new GridLayout(this.etu.size(), 1, 30, 0)); - for(Etudiant e: this.etu){ - PanelEtudiant p=new PanelEtudiant(e); - this.pan.add(p); - } - }else{ - this.pan.setLayout(new FlowLayout()); - this.pan.add(new JLabel("Il n'y a pas d'étudiant")); - } - } - /** - * rafraichit l'affichage. - */ - public void refresh(){ - this.pan.removeAll(); - this.draw(); - this.pan.revalidate(); - } - /** - * premet d'obtenir le panel de l'affichage - * @return le panel de l'affichage - */ - public JPanel getPan() { - return pan; - } -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/PROF/View/FenetreGroupe.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/PROF/View/FenetreGroupe.java deleted file mode 100644 index a10bd49..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/PROF/View/FenetreGroupe.java +++ /dev/null @@ -1,106 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP.PROF.View; - -import javax.swing.JButton; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import java.awt.Font; -import java.awt.GridLayout; -import fr.iutfbleau.projetIHM2022FI2.API.Groupe; -import fr.iutfbleau.projetIHM2022FI2.API.TypeGroupe; -import fr.iutfbleau.projetIHM2022FI2.API.Model; -import fr.iutfbleau.projetIHM2022FI2.Permanent.Controller.ObservateurChangeGroupe; - -/** - * Affichage d'un groupe - * -*/ -public class FenetreGroupe{ - // le groupe affiché - private Groupe g; - // le panel d'affichage - private JPanel pan; - // le modèle - private Model m; - - /** - * Constructeur de l'affichage d'un groupe - * @param g le groupe à afficher - * @param m le model - */ - public FenetreGroupe(Groupe g, Model m){ - super(); - this.g=g; - this.m=m; - this.pan=new JPanel(); - this.draw(); - } - /** - * permet de récupérer le groupe affiché - * @return le groupe affiché - */ - public Groupe getG() { - return this.g; - } - /** - * rafraichit l'affichage du groupe - */ - public void refresh(){ - this.pan.removeAll(); - this.draw(); - this.pan.revalidate(); - } - /** - * gère l'affichage du groupe - */ - private void draw(){ - if(g!=null){ - int taille=1; - if(g.getType()==TypeGroupe.PARTITION || g.getType()==TypeGroupe.ROOT) - taille--; - if(g.getSousGroupes().size()>0) - this.pan.setLayout(new GridLayout(7, 1)); - else{this.pan.setLayout(new GridLayout(6, 1));} - JPanel tache=new JPanel(new GridLayout(1,taille)); - - if(g.getType()!=TypeGroupe.ROOT){ - JButton bout=new JButton(g.getPointPoint().getName()); - bout.addActionListener(new ObservateurChangeGroupe(m, g.getPointPoint())); - tache.add(bout); - } - this.pan.add(tache); - JLabel titre=new JLabel("Groupe : "+g.getName(), JLabel.CENTER); - titre.setFont(new Font(Font.SERIF, Font.BOLD, titre.getFont().getSize()+10)); - this.pan.add(titre); - this.pan.add(new JLabel("min= "+String.valueOf(g.getMin())+"\t || \t max= "+String.valueOf(g.getMax()),JLabel.CENTER)); - JButton refresh= new JButton("Resfresh"); - refresh.addActionListener(new ObservateurChangeGroupe(m, g)); - this.pan.add(refresh); - this.pan.add(new JLabel("Type: "+g.getType().name()+"\t || \t id="+String.valueOf(g.getId()), JLabel.CENTER)); - this.pan.add(new JLabel("Sous groupe:",JLabel.CENTER)); - if(g.getSousGroupes().size()>0){ - JPanel sous=new JPanel(new GridLayout(g.getSousGroupes().size(), 1)); - for(Groupe gr: g.getSousGroupes()){ - JButton b=new JButton(gr.getName()); - b.addActionListener(new ObservateurChangeGroupe(m, gr)); - sous.add(b); - } - this.pan.add(new JScrollPane(sous)); - } - } - } - /** - * permet de modifier le groupe affiché - * @param g le nouveau groupe à afficher - */ - public void setG(Groupe g) { - this.g = g; - } - /** - * Permet de récupérer le panel d'affichage. - * @return le panel d'affichage - */ - public JPanel getPan() { - return pan; - } -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/PROF/View/PanelEtudiant.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/PROF/View/PanelEtudiant.java deleted file mode 100644 index 90ca0ab..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/PROF/View/PanelEtudiant.java +++ /dev/null @@ -1,20 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP.PROF.View; - -import javax.swing.JLabel; -import javax.swing.JPanel; - -import fr.iutfbleau.projetIHM2022FI2.API.Etudiant; -import java.awt.*; - -public class PanelEtudiant extends JPanel{ - /** - * Constructeur du panel d'affichage d'un étudiant - * @param e l'étudiant à afficher - */ - public PanelEtudiant(Etudiant e){ - super(new GridLayout(1,1,20, 20)); - JLabel label=new JLabel(" "+e.getNom()+" "+e.getPrenom()+" "+e.getId(), JLabel.LEFT); - label.setFont(new Font(Font.SANS_SERIF, Font.PLAIN, 20)); - this.add(label); - } -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Controller/ActionChangement.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Controller/ActionChangement.java deleted file mode 100644 index a593786..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Controller/ActionChangement.java +++ /dev/null @@ -1,44 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.Controller; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.JButton; - -import fr.iutfbleau.projetIHM2022FI2.API.Changement; -import fr.iutfbleau.projetIHM2022FI2.API.Model; -/** - * le controleur pour les changements - */ -public class ActionChangement implements ActionListener{ - // le model - private Model m; - // le changement - private Changement change; - /** - * le constructeur - * @param m le model - * @param change le changement - */ - public ActionChangement(Model m, Changement change){ - this.m=m; - this.change=change; - } - /** - * méthode invoquée lors d'un clic sur un bouton - * @param e l'événement - */ - @Override - public void actionPerformed(ActionEvent e) { - String text=((JButton)e.getSource()).getText(); - if(text.equals("Supprimer")){ - this.m.deleteChange(change); - } - if(text.equals("Valider")){ - this.m.change(change); - } - if(text.equals("Raison")){ - this.m.showRaisonChange(change); - } - } - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Controller/ActionListChange.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Controller/ActionListChange.java deleted file mode 100644 index 32ed1a5..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Controller/ActionListChange.java +++ /dev/null @@ -1,36 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.Controller; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.JButton; - -import fr.iutfbleau.projetIHM2022FI2.API.Model; -/** - * le controleur pour la liste des étudiants - */ -public class ActionListChange implements ActionListener{ - // le model - private Model m; - /** - * le constructeur - * @param m le model - */ - public ActionListChange(Model m){ - this.m=m; - } - /** - * méthode invoquée lors d'un clic sur un bouton - * @param e l'événement - */ - @Override - public void actionPerformed(ActionEvent e) { - String text=((JButton)e.getSource()).getText(); - if(text.equals("Changement")){ - this.m.listChange(); - } - if(text.equals("Find Etu")){ - this.m.findEtu(); - } - } - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Controller/ActionListenerNouveauEtu.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Controller/ActionListenerNouveauEtu.java deleted file mode 100644 index 329244c..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Controller/ActionListenerNouveauEtu.java +++ /dev/null @@ -1,48 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.Controller; - -import java.awt.event.ActionListener; - -import javax.swing.*; - -import fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.View.FenetreSelectionEtu; - -import java.awt.event.ActionEvent; -/** - * le controleur pour la création d'étudiants - */ -public class ActionListenerNouveauEtu implements ActionListener{ - // la fenetre de selection - private FenetreSelectionEtu pere; - /** - * le constructeur - * @param pere la fenetre de selection - */ - public ActionListenerNouveauEtu(FenetreSelectionEtu pere){ - this.pere=pere; - } - /** - * méthode invoquée lors d'un clic sur un bouton - * @param e l'événement - */ - @Override - public void actionPerformed(ActionEvent e) { - if(e.getActionCommand()=="tous"){ - this.pere.addAll(); - }else{ - JPanel myPanel = new JPanel(); - JTextField xField = new JTextField(20); - JTextField yField = new JTextField(20); - myPanel.add(new JLabel("Nom:")); - myPanel.add(xField); - myPanel.add(Box.createHorizontalStrut(15)); - myPanel.add(new JLabel("Prenom:")); - myPanel.add(yField); - int result = JOptionPane.showConfirmDialog(this.pere, myPanel, - "Entrer le nombre et le nom des Partitions", JOptionPane.OK_CANCEL_OPTION); - if(result==JOptionPane.YES_OPTION){ - this.pere.addEtudiant(xField.getText(), yField.getText()); - } - } - } - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Controller/ActionListenerSuprEtu.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Controller/ActionListenerSuprEtu.java deleted file mode 100644 index ecd756c..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Controller/ActionListenerSuprEtu.java +++ /dev/null @@ -1,37 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.Controller; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.JOptionPane; - -import fr.iutfbleau.projetIHM2022FI2.API.Etudiant; -import fr.iutfbleau.projetIHM2022FI2.API.Model; -/** - * le controleur pour la suppression d'etudiants - */ -public class ActionListenerSuprEtu implements ActionListener { - // l'etudiant a supprimer - public Etudiant etudiant; - // le model - public Model model; - /** - * le constructeur - * @param m le model - * @param e l'etudiant a supprimer - */ - public ActionListenerSuprEtu(Model m, Etudiant e){ - this.model=m; - this.etudiant=e; - } - /** - * méthode invoquée lors d'un clic sur un bouton - * @param e l'événement - */ - @Override - public void actionPerformed(ActionEvent e) { - if(this.model.deleteEtu(this.etudiant)==false){ - JOptionPane.showMessageDialog(this.model.getFenetre(), "erreur trop peu d'etudiant dans le groupe/ les groupes fils", "erreur", JOptionPane.ERROR_MESSAGE); - } - } - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Controller/ListenerFindBar.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Controller/ListenerFindBar.java deleted file mode 100644 index 7ca4e27..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Controller/ListenerFindBar.java +++ /dev/null @@ -1,42 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.Controller; - -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.JButton; -import javax.swing.JTextField; - -import fr.iutfbleau.projetIHM2022FI2.API.Etudiant; -import fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.View.FindBarFenetre; -/** - * le controleur pour la barre de recherche - */ -public class ListenerFindBar implements ActionListener{ - // la fenetre de recherche - private FindBarFenetre fenetre; - // l'etudiant a rechercher - private Etudiant et; - /** - * le constructeur - * @param fenetre la fenetre de recherche - * @param e l'etudiant a rechercher - */ - public ListenerFindBar(FindBarFenetre fenetre, Etudiant e){ - this.fenetre=fenetre; - this.et=e; - } - /** - * méthode invoquée lors d'un clic sur un bouton - * @param e l'événement - */ - @Override - public void actionPerformed(ActionEvent e) { - String text=((JButton)e.getSource()).getText(); - if(text.equals("->")) - this.fenetre.search(((JTextField)((JButton)e.getSource()).getParent()).getText()); - else{ - this.fenetre.showGroupe(et); - } - } - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Controller/ObservateurModifGroupe.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Controller/ObservateurModifGroupe.java deleted file mode 100644 index 8938f87..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Controller/ObservateurModifGroupe.java +++ /dev/null @@ -1,183 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.Controller; - -import java.awt.event.*; -import java.util.LinkedHashSet; -import fr.iutfbleau.projetIHM2022FI2.API.*; -import javax.swing.JOptionPane; -import fr.iutfbleau.projetIHM2022FI2.API.Groupe; -import fr.iutfbleau.projetIHM2022FI2.API.Model; -import fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.View.FenetreSelectionEtu; - -import javax.swing.*; -import java.util.Set; -/** - * le controleur pour la modification d'un groupe - * - */ -public class ObservateurModifGroupe implements ActionListener{ - // le model - private Model m; - // le groupe a modifier - private Groupe groupe; - /** - * le constructeur - * @param m le model - * @param g le groupe a modifier - */ - public ObservateurModifGroupe(Model m, Groupe g){ - this.m=m; - this.groupe=g; - } - /** - * méthode invoquée lors d'un clic sur un bouton - */ - @Override - public void actionPerformed(ActionEvent e) { - if(e.getActionCommand()=="supr"){ - this.m.delete(this.groupe); - } - if(e.getActionCommand()=="new Groupe"){ - String g[]=new String[2]; - g[0]="Partition"; - g[1]="Free"; - int rep=JOptionPane.showOptionDialog(m.getFenetre(), "Type du nouveau Groupe","Type", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, g, g[0]); - if(rep==JOptionPane.YES_OPTION){ - try{ - - JPanel myPanel = new JPanel(); - JTextField xField = new JTextField(5); - JTextField yField = new JTextField(20); - myPanel.add(new JLabel("Nombre:")); - myPanel.add(xField); - myPanel.add(Box.createHorizontalStrut(15)); - myPanel.add(new JLabel("Nom:")); - myPanel.add(yField); - int result = JOptionPane.showConfirmDialog(m.getFenetre(), myPanel, - "Entrer le nombre et le nom des Partitions", JOptionPane.OK_CANCEL_OPTION); - if (result == JOptionPane.OK_OPTION) { - int nb=Integer.parseInt(xField.getText()); - if(nb>this.groupe.getEtudiants().size()){ - JOptionPane.showMessageDialog(m.getFenetre(), "nombre de partition trop grand", "erreur", JOptionPane.ERROR_MESSAGE); - return; - } - m.partition(this.groupe, nb, yField.getText()); - } - }catch(NumberFormatException er){ - JOptionPane.showMessageDialog(m.getFenetre(), "erreur dans le nombre de partition", "erreur", JOptionPane.ERROR_MESSAGE); - } - } - if(rep==JOptionPane.NO_OPTION){ - try{ - JPanel myPanel = new JPanel(); - JTextField xField = new JTextField(5); - JTextField zField = new JTextField(5); - JTextField yField = new JTextField(20); - myPanel.add(new JLabel("Nom:")); - myPanel.add(yField); - myPanel.add(Box.createHorizontalStrut(15)); - myPanel.add(new JLabel("Min:")); - myPanel.add(xField); - myPanel.add(new JLabel("Max:")); - myPanel.add(zField); - int result = JOptionPane.showConfirmDialog(m.getFenetre(), myPanel, - "Entrer le nombre et le nom des Partitions", JOptionPane.OK_CANCEL_OPTION); - if (result == JOptionPane.OK_OPTION) { - int min=Integer.parseInt(xField.getText()); - int max=Integer.parseInt(zField.getText()); - if(max>this.groupe.getMax() || min<=0 || max<=0 || min>max){ - JOptionPane.showMessageDialog(m.getFenetre(), "nombre min/max inchoérent", "erreur", JOptionPane.ERROR_MESSAGE); - return; - } - Set ajout=new LinkedHashSet<>(); - myPanel=new FenetreSelectionEtu(this.groupe, ajout, false, m.getEtudiant()); - 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); - }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 les nombres min et max", "erreur", JOptionPane.ERROR_MESSAGE); - } - } - } - if(e.getActionCommand()=="rename"){ - JPanel myPanel = new JPanel(); - JTextField xField = new JTextField(50); - myPanel.add(new JLabel("Nom:")); - myPanel.add(xField); - if(JOptionPane.showConfirmDialog(m.getFenetre(), new JScrollPane(myPanel), "Nouveau Nom", JOptionPane.OK_CANCEL_OPTION) ==JOptionPane.OK_OPTION){ - if(xField.getText().length()==0){ - JOptionPane.showMessageDialog(m.getFenetre(), "erreur nom null", "erreur", JOptionPane.ERROR_MESSAGE); - }else{ - m.rename(xField.getText(), this.groupe); - } - } - } - if(e.getActionCommand()=="add"){ - Set ajout=new LinkedHashSet<>(); - JPanel myPanel=new FenetreSelectionEtu(this.groupe, ajout, true, this.m.getEtudiant()); - if(JOptionPane.showConfirmDialog(m.getFenetre(), new JScrollPane(myPanel), "Selectionner les étudiant a ajouter", JOptionPane.OK_CANCEL_OPTION) ==JOptionPane.YES_OPTION){ - if(this.groupe.getMax()0){JOptionPane.showMessageDialog(m.getFenetre(), "erreur impossible d'ajouter "+i+" etudiants par manque de place dans le groupe de ses parents", "errer", JOptionPane.ERROR_MESSAGE);} - } - } - if(e.getActionCommand()=="créer une promo"){ - try{ - JPanel myPanel = new JPanel(); - JTextField xField = new JTextField(5); - JTextField zField = new JTextField(5); - JTextField yField = new JTextField(20); - myPanel.add(new JLabel("Nom:")); - myPanel.add(yField); - myPanel.add(Box.createHorizontalStrut(15)); - myPanel.add(new JLabel("Min:")); - myPanel.add(xField); - myPanel.add(new JLabel("Max:")); - myPanel.add(zField); - int result = JOptionPane.showConfirmDialog(m.getFenetre(), myPanel, - "Entrer le nombre et le nom de la promo", JOptionPane.OK_CANCEL_OPTION); - if (result == JOptionPane.OK_OPTION) { - int min=Integer.parseInt(xField.getText()); - int max=Integer.parseInt(zField.getText()); - if(zField.getText().length()==0){ - JOptionPane.showMessageDialog(m.getFenetre(), "erreur entre un nom", "erreur", JOptionPane.ERROR_MESSAGE); - }else{ - if(min>max){ - JOptionPane.showMessageDialog(m.getFenetre(), "erreur min>max", "erreur", JOptionPane.ERROR_MESSAGE); - }else{ - Set ajout=new LinkedHashSet<>(); - JPanel pan=new FenetreSelectionEtu(null, ajout, false, this.m.getEtudiant()); - if(JOptionPane.showConfirmDialog(m.getFenetre(), new JScrollPane(pan), "Selectionner les étudiant a ajouter", JOptionPane.OK_CANCEL_OPTION) ==JOptionPane.YES_OPTION){ - if(min>ajout.size() || max etu; - // model - private Model m; - // panel - private JPanel pan; - // le type de groupe - private TypeGroupe type; - - /** - * Constructeur de l'affichage des étudiants - * @param g le groupe - * @param m le model - */ - public FenetreEtudiant(Groupe g, Model m){ - this.pan=new JPanel(); - this.m=m; - if(g!=null){ - this.type=g.getPointPoint().getType(); - this.etu=g.getEtudiants(); - }else{ - this.type=null; - this.etu=new LinkedHashSet<>(); - } - this.draw(); - } - /** - * Gère l'affichage des étudiants; - */ - private void draw(){ - if(this.etu.size()!=0){ - this.pan.setLayout(new GridLayout(this.etu.size()+1, 1, 10, 0)); - JPanel bouton=new JPanel(new GridLayout(1, 2)); - JButton boutChange=new JButton("Changement"); - boutChange.addActionListener(new ActionListChange(this.m)); - JButton boutFind=new JButton("Find Etu"); - boutFind.addActionListener(new ActionListChange(this.m)); - bouton.add(boutChange); - bouton.add(boutFind); - this.pan.add(bouton); - - for(Etudiant e: this.etu){ - PanelEtudiant p; - if(type!=null && type==TypeGroupe.PARTITION){ - p=new PanelEtudiant(e, true); - }else{ - p=new PanelEtudiant(e, false); - } - p.addActionDeleteListener(new ActionListenerSuprEtu(m, e)); - p.addActionChangeListener(new ActionListenerChangeEtu(m, e)); - this.pan.add(p); - } - }else{ - this.pan.setLayout(new FlowLayout()); - this.pan.add(new JLabel("Il n'y a pas d'étudiant")); - } - } - - /** - * rafraichit l'affichage. - */ - public void refresh(){ - this.pan.removeAll(); - this.draw(); - this.pan.revalidate(); - } - /** - * premet d'obtenir le panel de l'affichage - * @return le panel de l'affichage - */ - public JPanel getPan() { - return pan; - } - /** - * permet d'afficher la liste des demandes de changement - */ - public void listChange(){ - this.m.listChange(); - } -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/View/FenetreGroupe.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/View/FenetreGroupe.java deleted file mode 100644 index 4ffa768..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/View/FenetreGroupe.java +++ /dev/null @@ -1,127 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.View; - -import javax.swing.JButton; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JScrollPane; - -import java.awt.Color; -import java.awt.Font; -import java.awt.GridLayout; -import fr.iutfbleau.projetIHM2022FI2.API.Groupe; -import fr.iutfbleau.projetIHM2022FI2.API.TypeGroupe; -import fr.iutfbleau.projetIHM2022FI2.MP.ROOT.Controller.ObservateurModifGroupe; -import fr.iutfbleau.projetIHM2022FI2.Permanent.Controller.ObservateurChangeGroupe; -import fr.iutfbleau.projetIHM2022FI2.API.Model; - -/** - * Affichage d'un groupe - * - */ -public class FenetreGroupe{ - // le groupe affiché - private Groupe g; - // le panel d'affichage - private JPanel pan; - // le modèle - private Model m; - - /** - * Constructeur de l'affichage d'un groupe - * @param g le groupe à afficher - * @param m le model - */ - public FenetreGroupe(Groupe g, Model m){ - super(); - this.g=g; - this.m=m; - this.pan=new JPanel(); - this.draw(); - } - /** - * permet de récupérer le groupe affiché - * @return le groupe affiché - */ - public Groupe getG() { - return this.g; - } - /** - * rafraichit l'affichage du groupe - */ - public void refresh(){ - this.pan.removeAll(); - this.draw(); - this.pan.revalidate(); - } - /** - * gère l'affichage du groupe - */ - private void draw(){ - if(g!=null){ - int taille=5; - if(g.getType()==TypeGroupe.PARTITION || g.getType()==TypeGroupe.ROOT) - taille--; - if(g.getSousGroupes().size()>0) - this.pan.setLayout(new GridLayout(7, 1)); - else{this.pan.setLayout(new GridLayout(6, 1));} - JPanel tache=new JPanel(new GridLayout(1,taille)); - if(g.getType()!=TypeGroupe.ROOT){ - JButton bout=new JButton(g.getPointPoint().getName()); - bout.addActionListener(new ObservateurChangeGroupe(m, this.g.getPointPoint())); - tache.add(bout); - } - JButton renomer=new JButton("rename"); - renomer.addActionListener(new ObservateurModifGroupe(m, g)); - tache.add(renomer); - JButton ajouter=new JButton("add"); - ajouter.addActionListener(new ObservateurModifGroupe(m, g)); - tache.add(ajouter); - JButton supprimer=new JButton("supr"); - supprimer.addActionListener(new ObservateurModifGroupe(m, g)); - supprimer.setForeground(Color.RED); - tache.add(supprimer); - if(g.getType()!=TypeGroupe.PARTITION){ - JButton creer=new JButton("new Groupe"); - creer.addActionListener(new ObservateurModifGroupe(m, g)); - tache.add(creer); - } - this.pan.add(tache); - JLabel titre=new JLabel("Groupe : "+g.getName(), JLabel.CENTER); - titre.setFont(new Font(Font.SERIF, Font.BOLD, titre.getFont().getSize()+10)); - this.pan.add(titre); - this.pan.add(new JLabel("min= "+String.valueOf(g.getMin())+"\t || \t max= "+String.valueOf(g.getMax()),JLabel.CENTER)); - JButton refresh= new JButton("Resfresh"); - refresh.addActionListener(new ObservateurChangeGroupe(m, g)); - this.pan.add(refresh); - this.pan.add(new JLabel("Type: "+g.getType().name()+"\t || \t id="+String.valueOf(g.getId()), JLabel.CENTER)); - this.pan.add(new JLabel("Sous groupe:",JLabel.CENTER)); - if(g.getSousGroupes().size()>0){ - JPanel sous=new JPanel(new GridLayout(g.getSousGroupes().size(), 1)); - for(Groupe gr: g.getSousGroupes()){ - JButton b=new JButton(gr.getName()); - b.addActionListener(new ObservateurChangeGroupe(m, gr)); - sous.add(b); - } - this.pan.add(new JScrollPane(sous)); - } - }else{ - JButton creer=new JButton("créer une promo"); - creer.addActionListener(new ObservateurModifGroupe(m, g)); - this.pan.add(creer); - } - } - /** - * permet de modifier le groupe affiché - * @param g le nouveau groupe à afficher - */ - public void setG(Groupe g) { - this.g = g; - } - /** - * Permet de récupérer le panel d'affichage. - * @return le panel d'affichage - */ - public JPanel getPan() { - return pan; - } -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/View/FenetreSelectionEtu.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/View/FenetreSelectionEtu.java deleted file mode 100644 index ca60ef5..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/View/FenetreSelectionEtu.java +++ /dev/null @@ -1,136 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.View; - -import fr.iutfbleau.projetIHM2022FI2.API.Etudiant; -import fr.iutfbleau.projetIHM2022FI2.API.Groupe; -import fr.iutfbleau.projetIHM2022FI2.MNP.EtudiantNP; -import fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.Controller.ActionListenerNouveauEtu; -import fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.Controller.SelecteurEtudiant; - -import java.util.Set; -import java.awt.GridLayout; -import java.awt.Color; -import javax.swing.JButton; -import javax.swing.JOptionPane; -import javax.swing.JPanel; - -/** - * Affichage de la selection des etudiants - * - */ -public class FenetreSelectionEtu extends JPanel{ - // liste des étudiants à ajouter - private Set liste; - // liste de tous les étudiants - private Set etu; - - /** - * Constructeur de l'affichage de la selection des étudiants - * @param g le groupe - * @param liste la liste des étudiants à ajouter - * @param supression savoir si il faut supprimer les étudiants du groupe de la liste - * @param etu0 la liste de tous les - */ - public FenetreSelectionEtu(Groupe g, Set liste, boolean supression, Set etu0){ - super(); - this.etu=etu0; - if(supression==true){ - for(Etudiant e:g.getEtudiants()){ - for(Etudiant et:etu){ - if(e.getId()==et.getId()){ - etu.remove(et); - break; - } - } - } - } - this.liste=liste; - this.draw(); - } -/** - * Ajoute un étudiant à la sélection - * @param index l'index de l'étudiant - */ - public void addList(int index){ - int i=0; - for(Etudiant e:this.etu){ - if(i==index){ - this.liste.add(e); - return; - } - i++; - } - } -/** - * Retire un étudiant de la sélection - * @param index l'index de l'étudiant - */ - public void removeList(int index){ - int i=0; - for(Etudiant e:this.etu){ - if(i==index){ - this.liste.remove(e); - return; - } - i++; - } - } -/** - * Ajoute un étudiant à la liste de tous les étudiants - * @param nom le nom de l'étudiant - * @param prenom le prénom de l'étudiant - */ - public void addEtudiant(String nom, String prenom){ - if(nom.length()==0 || prenom.length()==0){ - JOptionPane.showMessageDialog(this, "le nom/prenom ne peut pas être null"); - return; - } - this.etu.add(new EtudiantNP(nom, prenom)); - this.removeAll(); - this.draw(); - this.revalidate(); - } -/** - * gère l'affichage de la sélection - */ - private void draw(){ - this.setLayout(new GridLayout(this.etu.size()/5+1, 4)); - int index=0; - for(Etudiant e:etu){ - JButton lab=new JButton(e.getNom()+" "+e.getPrenom()+" "+e.getId()); - lab.addMouseListener(new SelecteurEtudiant(index, this)); - this.add(lab); - index++; - } - JButton nouveau=new JButton("Nouveau +"); - nouveau.setBackground(Color.RED); - nouveau.addActionListener(new ActionListenerNouveauEtu(this)); - JButton all=new JButton("tous"); - this.add(all); - all.addActionListener(new ActionListenerNouveauEtu(this)); - this.add(nouveau); - } -/** - * Ajoute tous les étudiants à la liste des étudiants sélectionnés - */ - public void addAll(){ - if(this.getComponent(this.etu.size()).getBackground()==Color.GREEN){ - int i=0; - for(Etudiant e:this.etu){ - this.getComponent(i).setBackground(this.getBackground()); - if(this.liste.contains(e)) - this.liste.remove(e); - i++; - } - this.getComponent(this.etu.size()).setBackground(this.getBackground()); - }else{ - int i=0; - for(Etudiant e:this.etu){ - this.getComponent(i).setBackground(Color.GREEN); - this.liste.add(e); - i++; - } - this.getComponent(this.etu.size()).setBackground(Color.GREEN); - } - this.repaint(); - } -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/View/FindBarFenetre.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/View/FindBarFenetre.java deleted file mode 100644 index 9a9a4ee..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/View/FindBarFenetre.java +++ /dev/null @@ -1,89 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.View; - - -import javax.swing.JButton; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTextField; -import java.awt.GridLayout; -import fr.iutfbleau.projetIHM2022FI2.API.Etudiant; -import fr.iutfbleau.projetIHM2022FI2.API.Model; -import fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.Controller.ListenerFindBar; - -import java.awt.Dimension; -import java.awt.BorderLayout; -import java.util.Set; - -/** - * barre de recherche d'etudiant - * - */ -public class FindBarFenetre { - // panel de la barre de recherche - private JPanel mypanel; - // model - private Model m; - //liste des étudiants trouvés - private Set liste; - - /** - * constructeur de la barre de recherche - * @param m le model - */ - public FindBarFenetre(Model m){ - this.liste=null; - this.m=m; - this.mypanel=new JPanel(); - this.draw(); - } - - /** - * gère l'affichage de la barre de recherche - */ - private void draw(){ - JTextField searchField = new JTextField(30); - searchField.setLayout(new BorderLayout()); - JButton label = new JButton("->"); - label.addActionListener(new ListenerFindBar(this, null)); - searchField.add(label, BorderLayout.LINE_END); - if(this.liste!=null && this.liste.size()>0){ - this.mypanel.setLayout(new GridLayout(this.liste.size()+1, 1)); - this.mypanel.add(searchField); - for(Etudiant e: this.liste){ - JButton etu=new JButton(e.getNom()+" "+e.getPrenom()+" "+e.getId()); - etu.addActionListener(new ListenerFindBar(this, e)); - this.mypanel.add(etu); - } - }else{ - this.mypanel.setLayout(new GridLayout(4, 1)); - this.mypanel.add(searchField); - JLabel text=new JLabel("Aucun Etudiant Selectionné"); - this.mypanel.add(text); - } - mypanel.setSize(new Dimension(500, 500)); - } - /** - * retourne le panel de la barre de recherche - * @return le panel de la barre de recherche - */ - public JPanel getPanel() { - return mypanel; - } - /** - * recherche un étudiant par son nom - * @param name le nom de l'étudiant - */ - public void search(String name){ - this.liste=this.m.getEtu(name); - this.mypanel.removeAll(); - this.draw(); - this.mypanel.revalidate(); - } - /** - * affiche le groupe d'un étudiant - * @param toshow l'étudiant dont on veut afficher le groupe - */ - public void showGroupe(Etudiant toshow){ - this.m.showGroupOfEtudiant(toshow); - } -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/View/PanelEtudiant.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/View/PanelEtudiant.java deleted file mode 100644 index 5c8316d..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/View/PanelEtudiant.java +++ /dev/null @@ -1,58 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.View; - -import javax.swing.JLabel; -import javax.swing.JPanel; - -import fr.iutfbleau.projetIHM2022FI2.API.Etudiant; - -import javax.swing.JButton; -import java.awt.*; -import java.awt.event.ActionListener; - -/** - * Panel d'affichage d'un étudiant - * - */ -public class PanelEtudiant extends JPanel{ - - // bouton suppression - private JButton supprimer; - // bouton déplacement - private JButton deplacer; - - /** - * Constructeur du panel d'affichage d'un étudiant - * @param e l'étudiant à afficher - * @param change si l'étudiant peut être déplacé - */ - public PanelEtudiant(Etudiant e, boolean change){ - super(new GridLayout(1,2,20,10)); - JPanel bouton=new JPanel(new GridLayout(1,2)); - JLabel label=new JLabel(" "+e.getNom()+" "+e.getPrenom()+" "+e.getId(), JLabel.LEFT); - this.supprimer=new JButton("supr"); - this.supprimer.setForeground(Color.RED); - this.deplacer=new JButton("change"); - if(change==true){ - bouton.add(this.deplacer); - } - this.add(label); - bouton.add(this.supprimer); - this.add(bouton); - } - - /** - * Ajoute un listener au bouton de suppression - * @param a le listener - */ - public void addActionDeleteListener(ActionListener a){ - this.supprimer.addActionListener(a); - } - - /** - * Ajoute un listener au bouton de changement de groupe - * @param a le listener - */ - public void addActionChangeListener(ActionListener a){ - this.deplacer.addActionListener(a); - } -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ReservationFactoryNP.java~ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ReservationFactoryNP.java~ deleted file mode 100644 index a4a4d99..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ReservationFactoryNP.java~ +++ /dev/null @@ -1,164 +0,0 @@ -package fr.iutfbleau.projetIHM2021FI2.MNP; -import fr.iutfbleau.projetIHM2021FI2.API.*; -import java.time.LocalDate; -import java.util.*; -import java.util.function.Predicate; -/** - * Usine non persistante stockant les réservations dans une structure de données permettant de simuler un ensemble. - * - * - */ -public interface ReservationFactory{ - - /** - * Recherche une chambre adéquate à partir de - * @param p une préréservation - * @return la chambre - * @throws NullPointerException si un argument est null - * @throws IllegalStateException si une chambre correspondant à cette Préréservation n'existe pas. - * - * Ne devrait pas retourner un objet null. - */ - public Chambre getChambre(Prereservation p); - - /** - * Recherche toutes les chambres adéquates à partir de - * @param p une préréservation - * @return les chambres (set de chambre) - * @throws NullPointerException si un argument est null - * @throws IllegalStateException si une chambre correspondant à cette Préréservation n'existe pas. - * - * Ne devrait pas retourner un objet null. - */ - public Set getChambres(Prereservation p); - - /** - * Fabrique (ajoute) une réservation - * @param p une préréservation - * @param c une chambre (normalement libre et adaptée à la préréservation) - * @return la réservation - * @throws NullPointerException si un argument est null - * @throws IllegalArgumentException si la chambre ne correspondant pas au type de chambre de la préréservation. - * @throws IllegalStateException si la chambre n'est pas disponible. - * - * Ne devrait pas retourner un objet null. - */ - public Reservation createReservation(Prereservation p, Chambre c); - - /** - * Cherche les réservations - * @param d une date - * @return la ou les réservation(s) à cette date sous forme d'un ensemble - * @throws NullPointerException si un argument est null - * - * Ne devrait pas retourner un objet null, par contre peut être un ensemble qui est vide. - */ - public Set getReservation(LocalDate d); - - /** - * Cherche le nombre de chambres disponibles pour une date (réservées ou non). - * @param d une date - * @return un entier - * @throws NullPointerException si un argument est null - * - * Ne devrait pas retourner un entier négatif. - */ - public int getDisponibles(LocalDate d); - - /** - * Cherche les réservations - * @param d une date - * @param t un type de chambre - * @return la ou les réservation(s) pour ce type de chambre à cette date sous forme d'un ensemble - * @throws NullPointerException si un argument est null - * - * Ne devrait pas retourner un objet null, par contre peut être un ensemble qui est vide. - */ - public Set getReservation(LocalDate d, TypeChambre t); - - /** - * Cherche le nombre de chambres disponibles d'un certain type pour une date (réservées ou non). - * @param d une date - * @param t un type de chambre - * @return un entier - * @throws NullPointerException si un argument est null - * - * Ne devrait pas retourner un entier négatif. - */ - public int getDisponibles(LocalDate d, TypeChambre t); - - /** - * Cherche la proportion de chambres disponibles pour une date (réservées sur réservables). - * @param d une date - * @return un entier entre 0 et 100 - * @throws NullPointerException si un argument est null - */ - public int getRatio(LocalDate d); - - /** - * Cherche la proportion de chambres disponibles d'un certain type pour une date (réservées sur réservables). - * @param d une date - * @param t un type de chambre - * @return un entier entre 0 et 100 - * @throws NullPointerException si un argument est null - */ - public int getRatio(LocalDate d, TypeChambre t); - - /** - * Cherche le nombre moyen de chambres disponibles entre deux date (réservées ou non), arrondies à l'entier inférieur. - * @param d1 une date - * @param d2 une date - * @return un entier - * @throws NullPointerException si un argument est null - * @throws IllegalArgumentException si l'ordre temporel d1 avant d2 n'est pas respecté. - * - * Ne devrait pas retourner un entier négatif. - */ - public int getDisponibles(LocalDate d1, LocalDate d2); - - /** - * Cherche les réservations - * @param d1 une date - * @param d2 une date - * @param t un type de chambre - * @return la ou les réservation(s) pour ce type de chambre entre les dates sous forme d'un ensemble - * @throws NullPointerException si un argument est null - * @throws IllegalArgumentException si l'ordre temporel d1 avant d2 n'est pas respecté. - * - * Ne devrait pas retourner un objet null, par contre peut être un ensemble qui est vide. - */ - public Set getReservation(LocalDate d1, LocalDate d2, TypeChambre t); - - /** - * Cherche le nombre moyen de chambres disponibles d'un certain type entre deux date (réservées ou non), arrondies à l'entier inférieur. - * @param d1 une date - * @param d2 une date - * @param t un type de chambre - * @return un entier - * @throws NullPointerException si un argument est null - * @throws IllegalArgumentException si l'ordre temporel d1 avant d2 n'est pas respecté. - * - * Ne devrait pas retourner un entier négatif. - */ - public int getDisponibles(LocalDate d1, LocalDate d2, TypeChambre t); - - /** - * Cherche la proportion moyenne de chambres disponibles pour une date (réservées sur réservables). - * @param d1 une date - * @param d2 une date - * @return un entier entre 0 et 100 - * @throws NullPointerException si un argument est null - */ - public int getRatio(LocalDate d1, LocalDate d2); - - /** - * Cherche la proportion moyenne de chambres disponibles d'un certain type pour une date (réservées sur réservables). - * @param d1 une date - * @param d2 une date - * @param t un type de chambre - * @return un entier entre 0 et 100 - * @throws NullPointerException si un argument est null - */ - public int getRatio(LocalDate d1, LocalDate d2, TypeChambre t); - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/AbstractGroupFactoryNP.java~ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/AbstractGroupFactoryNP.java~ deleted file mode 100644 index f1dbec9..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/AbstractGroupFactoryNP.java~ +++ /dev/null @@ -1,106 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.API; -import java.util.*; -/** - * Usine abstraite gérant l'ensemble des groupes. - * - */ - -public interface AbstractGroupeFactory { - - /** - * permet de récupérer le Groupe qui contient les étudiants de toute la promotion - * @return la promo. - */ - public Groupe getPromotion(); - - /** - * permet de supprimer un groupe connu de l'usine abstraite qui ne contient pas de groupes. - * Pour détruire un groupe connu qui en contient d'autres il faut le faire récursivement. - * - * @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); - - /** - * permet d'ajouter un groupe vide de type FREE comme sous-groupe d'un groupe donné. - * @param pere le groupe père du groupe à créer - * @param name le nom du groupe à créer - * @param min,max bornes indicatives sur la taille du groupe à créer - * - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalArgumentException si le groupe pere est de type PARTITION - * ou si il n'y a pas 0 < min <= max - */ - public void createGroupe(Groupe pere, String name, int min, int max); - - /** - * permet de créer une partition automatiquement sous un groupe donné. - * - * @param pere le groupe père du groupe à partitionner - * @param name le nom des groupe à créer (on ajoutera à la suite un numéro ou une lettre pour distinguer chaque groupe) - * @param n le nombre de partitions - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalArgumentException si le groupe pere est de type PARTITION - * ou n négatif ou nul - * - * NB. doit créer une "copie" de pere - * sous pere de type Partition et ajouter sous ce groupe, n groupes de type "FREE". - * les valeurs min et max de ces n groupes sont - * min = 0 et - * max = partie entière de N/n plus 1, où N est le nombre max du groupe pere. - */ - public void createPartition(Groupe pere, String name, int n); - - /** - * permet d'ajouter un étudiant à un groupe. - * - * @param g le groupe dans lequel il faut ajouter l'étudiant - * @param e l'étudiant à ajouter - * - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalArgumentException la factory ne connaît pas g - * @throws java.lang.IllegalStateException le père de g ne contient pas e - */ - public void addToGroupe(Groupe g, Etudiant e); - - /** - * permet d'enlever un étudiant d'un groupe. - * - * @param g le groupe dans lequel il faut enlever l'étudiant - * @param e l'étudiant à enlever - * - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalStateException g ne contient pas e - * @throws java.lang.IllegalArgumentException la factory ne connaît pas g - */ - public void dropFromGroupe(Groupe g, Etudiant e); - - /** - * permet de retrouver un étudiant à partir d'un String. - * - * NB. dans une version simple il doit s'agir du nom exact. - * dans une version un peu plus complexe, il s'agit des premières lettres du nom - * dans une version avancée, on peut autoriser une expression régulière plus ou moins complexe qui est générée si la première recherche n'a pas renvoyé de candidat. - * - * @param String nomEtu le nom approximmatif de l'étudiant - * @return Set l'ensemble des étudiants connus de la factory ayant un nom "proche" de ce string au sens de la remarque ci-dessus. - * - * @throws java.lang.NullPointerException si le String est null. - */ - public Set getEtudiantFromId(String nomEtu); - - /** - * permet de retrouver les groupes d'un étudiant. - * - * @param Etu un étudiant - * @return Etudiant l'étudiant connu de la factory ayant cet identifiant - * - * @throws java.lang.NullPointerException si le String est null. - */ - public Set getGroupesOfEtudiant(Etudiant etu); - - - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/AbstractGroupeFactoryNP.java~ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/AbstractGroupeFactoryNP.java~ deleted file mode 100644 index 7ab138a..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/AbstractGroupeFactoryNP.java~ +++ /dev/null @@ -1,143 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.API; -import java.util.*; -/** - * Usine abstraite gérant l'ensemble des groupes. - * - */ - -public class AbstractGroupeFactoryNP implements AbstractGroupeFactory { - - // la racine (promotion) - private Groupe promo; - - // On utilise une table de hachage pour retrouver facilement un groupe (à partir de son id). - private HashMap brain; - - /** - * - */ - private Boolean known(Groupe g){ - return this.brain.containsKey(g.getId()); - } - - - - /** - * permet de récupérer le Groupe qui contient les étudiants de toute la promotion - * @return la promo. - */ - public Groupe getPromotion(){ - return this.promo; - } - - /** - * permet de supprimer un groupe connu de l'usine abstraite qui ne contient pas de groupes. - * Pour détruire un groupe connu qui en contient d'autres il faut le faire récursivement. - * - * @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){ - - throw new UnsupportedOperationException("pas encore implanté"); - } - - /** - * permet d'ajouter un groupe vide de type FREE comme sous-groupe d'un groupe donné. - * @param pere le groupe père du groupe à créer - * @param name le nom du groupe à créer - * @param min,max bornes indicatives sur la taille du groupe à créer - * - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalArgumentException si le groupe pere est de type PARTITION - * ou si il n'y a pas 0 < min <= max - */ - public void createGroupe(Groupe pere, String name, int min, int max){ - throw new UnsupportedOperationException("pas encore implanté"); - } - - /** - * permet de créer une partition automatiquement sous un groupe donné. - * - * @param pere le groupe père du groupe à partitionner - * @param name le nom des groupe à créer (on ajoutera à la suite un numéro ou une lettre pour distinguer chaque groupe) - * @param n le nombre de partitions - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalArgumentException si le groupe pere est de type PARTITION - * ou n négatif ou nul - * - * NB. doit créer une "copie" de pere - * sous pere de type Partition et ajouter sous ce groupe, n groupes de type "FREE". - * les valeurs min et max de ces n groupes sont - * min = 0 et - * max = partie entière de N/n plus 1, où N est le nombre max du groupe pere. - */ - public void createPartition(Groupe pere, String name, int n){ - throw new UnsupportedOperationException("pas encore implanté"); - } - - /** - * permet d'ajouter un étudiant à un groupe. - * - * @param g le groupe dans lequel il faut ajouter l'étudiant - * @param e l'étudiant à ajouter - * - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalArgumentException la factory ne connaît pas g - * @throws java.lang.IllegalStateException le père de g ne contient pas e - */ - public void addToGroupe(Groupe g, Etudiant e); - - /** - * permet d'enlever un étudiant d'un groupe. - * - * @param g le groupe dans lequel il faut enlever l'étudiant - * @param e l'étudiant à enlever - * - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalStateException g ne contient pas e - * @throws java.lang.IllegalArgumentException la factory ne connaît pas g - */ - public void dropFromGroupe(Groupe g, Etudiant e){ - throw new UnsupportedOperationException("pas encore implanté"); - } - - /** - * permet de retrouver un étudiant à partir d'un String. - * - * NB. dans une version simple il doit s'agir du nom exact. - * dans une version un peu plus complexe, il s'agit des premières lettres du nom - * dans une version avancée, on peut autoriser une expression régulière plus ou moins complexe qui est générée si la première recherche n'a pas renvoyé de candidat. - * - * @param String nomEtu le nom approximmatif de l'étudiant - * @return Set l'ensemble des étudiants connus de la factory ayant un nom "proche" de ce string au sens de la remarque ci-dessus. - * - * @throws java.lang.NullPointerException si le String est null. - */ - public Set getEtudiants(String nomEtu){ - // on cherche bêtement dans la promo. - Set out = new LinkedHashSet(); - for (Etudiant e : getPromotion().getEtudiants()){ - if e.getNom().equals(nomEtu){ - out.add(e); - break; - } - } - return out; - } - - /** - * permet de retrouver les groupes d'un étudiant. - * - * @param Etu un étudiant - * @return Etudiant l'étudiant connu de la factory ayant cet identifiant - * - * @throws java.lang.NullPointerException si le String est null. - */ - public Set getGroupesOfEtudiant(Etudiant etu){ - throw new UnsupportedOperationException("pas encore implanté"); - } - - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ChangementNP.java~ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ChangementNP.java~ deleted file mode 100644 index 49e2bd9..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ChangementNP.java~ +++ /dev/null @@ -1,60 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP; -import fr.iutfbleau.projetIHM2022FI2.API.*; -import java.util.*; -/** - * Une demande de changement de groupe - * concerne un étudiant, qui est dans un groupe A et veut aller dans un groupe B. - * - * Implémentation non persistante fournie avec l'API. - */ - -public class ChangementNP implements Changement { - - private int id; - private Groupe a,b; - private Etudiant e; - - public ChangementNP(Groupe a, Etudiant e, Groupe b){ - Objects.requireNonNull(a,"On ne peut pas créer un changement avec un groupe à quitter null"); - Objects.requireNonNull(r,"On ne peut pas créer un changement avec un groupe à rejoindre null"); - Objects.requireNonNull(e,"On ne peut pas créer un changement concernant un étudiant null"); - // Nous n'utilisons dans l'immédiat pas le champs id qui vaut 0 pour tous les changements. - this.id=0; - this.a=a; - this.b=b; - this.e=e; - } - - /** - * permet de récupérer l'identifiant du changement (référence interne sans intérêt irl). - * @return l'identifiant. - */ - public int getId(){ - return this.id; - } - - /** - * permet de récupérer le groupe de depart - * @return ce groupe. - */ - public Groupe getA(){ - return this.a; - } - - /** - * permet de récupérer le groupe d'arrivée - * @return ce groupe. - */ - public Groupe getB(){ - return this.a; - } - - /** - * permet de récupérer l'étudiant demandant le changement - * @return cet étudiant - */ - public Etudiant getEtu(){ - return this.e; - } - -} 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 0917812..3947c29 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,7 +9,6 @@ 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; @@ -36,8 +35,6 @@ 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/EtudiantNP.java~ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/EtudiantNP.java~ deleted file mode 100644 index 2b6d0b9..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/EtudiantNP.java~ +++ /dev/null @@ -1,51 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP; -import fr.iutfbleau.projetIHM2022FI2.API.*; -import java.util.*; -/** - * Un étudiant - */ - -public class EtudiantNP implements Etudiant{ - - private static nextId=0; - private int id; - private String nom, prenom; - - /** - * Constructeur. - */ - public EtudiantNP(String nom, String prenom){ - 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"); - // auto incrément de l'id - this.id=++this.nextId; - this.nom=nom; - this.prenom=prenom; - } - - /** - * permet de récupérer l'identifiant de l'étudiant. - * @return l'identifiant. - */ - public int getId(){ - return this.id; - } - - /** - * permet de récupérer - * @return le nom de l'étudiant. - */ - public String getNom(){ - return this.nom; - } - - /** - * permet de récupérer - * @return le prénom de l'étudiant - */ - public String getPrenom(){ - return this.prenom; - } - - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/GroupeNP.java~ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/GroupeNP.java~ deleted file mode 100644 index e34daba..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/GroupeNP.java~ +++ /dev/null @@ -1,199 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP; -import fr.iutfbleau.projetIHM2022FI2.API.*; -import java.util.*; -/** - * Un groupe - */ - -public class GroupeNP extends Groupe { - - //auto-incrément des groupes. (NB. inutile, mais ça fair un exemple d'attribut statique). - private static nextId=0; - // attributs naturels induits par getter de l'interface Groupe - private int id; - private String name; - private int min,max; - private TypeGroupe type; - private Groupe pointPoint; - // On utilise une interface set pour les sous-groupes et pour les membres (ce sont bien des ensembles en pratique). - private Set sousGroupes; - private Set membresDuGroupe; - - // les méthodes de l'interface groupe sont en fin de fichier. - // On commence par les get/set additionnels, puis les constructeurs. - - /** - * Réfléchir à donner droit dans paquet. - * @return le set des étudiants (attention ce n'est pas une copie, tout changement impacte le groupe). - */ - public Set getSetEtudiants(){ - return this.membresDuGroupe; - } - - /** - * Ajoute un étudiant. Se comporte comme add de l'interface Set. - * - * @return true iff e est ajouté - */ - package boolean addEtudiant(Etudiant e){ - Objects.requireNonNull(e,"On ne peut pas ajouter un Étudiant qui est null"); - return this.membresDuGroupe.add(e); - } - - /** - * Enlève un étudiant. Se comporte comme remove de l'interface Set. - * - * @return true iff e est enlevé - */ - package boolean removeEtudiant(Etudiant e){ - Objects.requireNonNull(e,"On ne peut pas enlever un Étudiant qui est null"); - return this.membresDuGroupe.remove(e); - } - - /** - * Ajoute un sous-groupe. Se comporte comme add de l'interface Set. - * vérifie que le groupe passé en argument a bien renseigné this comme son père. - * - * @return true iff g est ajouté - */ - package boolean addSousGroupe(Groupe g){ - Objects.requireNonNull(g,"On ne peut pas ajouter un sous-groupe qui est null"); - if (this.equals(g.getpointPoint())) - return this.sousGroupes.add(g); - else throw new IllegalArgumentException("on ne peut pas ajouter un sous-groupe ont le père n'est pas this"); - } - - /** - * Enlève un groupe. Se comporte comme remove de l'interface Set. - * - * @return true iff e est enlevé - */ - package boolean removeSousGroupe(Groupe g){ - Objects.requireNonNull(e,"On ne peut pas enlever un Étudiant qui est null"); - return this.souGroupes.remove(g); - } - - - /** - * Nouveau groupe vide de type PROMOTION sans étudiants, sans sous-Groupe - */ - public GroupeNP(String name, int min, int max){ - Objects.requireNonNull(name,"On ne peut pas créer un groupe dont le nom est null"); - this.id=++this.nextId; - this.name=name; - this.min=min; - this.max=max; - this.type=TypeGroupe.FREE; - this.pointPoint=this; - this.sousGroupes=new LinkedHashSet(); - this.membresDugroupe=new LinkedHashSet(); - } - - /** - * Nouveau groupe vide de type FREE sans étudiants, sans sous-Groupe - */ - public GroupeNP(Groupe pere, String name, int min, int max){ - Objects.requireNonNull(pere,"On ne peut pas créer un groupe dont le père est null"); - Objects.requireNonNull(name,"On ne peut pas créer un groupe dont le nom est null"); - this.id=++this.nextId; - this.name=name; - this.min=min; - this.max=max; - this.type=TypeGroupe.FREE; - this.pointPoint=pere; - this.sousGroupes=new LinkedHashSet(); - this.membresDugroupe=new LinkedHashSet(); - } - - /** - * Nouveau groupe de type PARTITION dupliquant le groupe passé en paramètre (pour servir de racine à une partition de ce groupe de type FREE passé en paramètre). - * - */ - public GroupeNP(Groupe pere){ - Objects.requireNonNull(pere,"On ne peut pas créer un groupe dont le père est null"); - this.id=++this.nextId; - this.name=pere.getName()+"_PARTITION_"+ this.id; - this.min=pere.getMin(); - this.max=pere.getMax(); - this.type=TypeGroupe.PARTITION; - this.pointPoint=pere; - this.sousGroupes= new LinkedHashSet(); - this.membresDugroupe= this.pere.getSetEtudiants(); - } - - /** - * permet de récupérer l'identifiant d'un groupe (référence interne sans intérêt irl). - * @return l'identifiant. - */ - public int getId(){ - return this.id; - } - - /** - * permet de récupérer le nom d'un groupe (utile irl). - * @return le nom. - */ - public String getName(){ - return this.name; - } - - /** - * permet de récupérer le nombre minimum d'étudiants souhaités dans le groupe. - * @return le minimum souhaité - */ - public int getMin(){ - return this.min; - } - - /** - * permet de récupérer le nombre maximum d'étudiants souhaités dans un groupe. - * @return le maximum souhaité - */ - public int getMax(){ - return this.max; - } - - /** - * permet de récupérer le nombre d'étudiants dans ce groupe. - * @return le nombre de places prises (pas forcément limité entre Min et Max, mais c'est le but) - */ - public int getSize(){ - return this.membresDuGroupe.size(); - } - - /** - * permet de récupérer la nature du groupe - * @return le type du groupe - */ - public TypeGroupe getType(){ - return type; - } - - /** - * permet de récupérer le groupe père - * un groupe racine devrait retourner lui-même - * - * @return le père - */ - public Groupe getPointPoint(){ - return this.pointPoint; - } - - /** - * Potentiellement "vide" - * @return un itérateur sur sous-groupes. - */ - public Iterator getSousGroupes(){ - return this.sousGroupes.iterator(); - } - - /** - * Potentiellement "vide" - * @return un itérateur sur les étudiants. - */ - public Iterator getEtudiants(){ - return this.membresDuGroupe.iterator(); - } - - -} 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 0c7634d..45feaa0 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,7 +9,6 @@ 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; @@ -35,10 +34,6 @@ public class ModelProf implements Model{ private AbstractChangementFactory changement; // la fenetre principale 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/ReservationFactoryNP.java~ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ReservationFactoryNP.java~ deleted file mode 100644 index a4a4d99..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ReservationFactoryNP.java~ +++ /dev/null @@ -1,164 +0,0 @@ -package fr.iutfbleau.projetIHM2021FI2.MNP; -import fr.iutfbleau.projetIHM2021FI2.API.*; -import java.time.LocalDate; -import java.util.*; -import java.util.function.Predicate; -/** - * Usine non persistante stockant les réservations dans une structure de données permettant de simuler un ensemble. - * - * - */ -public interface ReservationFactory{ - - /** - * Recherche une chambre adéquate à partir de - * @param p une préréservation - * @return la chambre - * @throws NullPointerException si un argument est null - * @throws IllegalStateException si une chambre correspondant à cette Préréservation n'existe pas. - * - * Ne devrait pas retourner un objet null. - */ - public Chambre getChambre(Prereservation p); - - /** - * Recherche toutes les chambres adéquates à partir de - * @param p une préréservation - * @return les chambres (set de chambre) - * @throws NullPointerException si un argument est null - * @throws IllegalStateException si une chambre correspondant à cette Préréservation n'existe pas. - * - * Ne devrait pas retourner un objet null. - */ - public Set getChambres(Prereservation p); - - /** - * Fabrique (ajoute) une réservation - * @param p une préréservation - * @param c une chambre (normalement libre et adaptée à la préréservation) - * @return la réservation - * @throws NullPointerException si un argument est null - * @throws IllegalArgumentException si la chambre ne correspondant pas au type de chambre de la préréservation. - * @throws IllegalStateException si la chambre n'est pas disponible. - * - * Ne devrait pas retourner un objet null. - */ - public Reservation createReservation(Prereservation p, Chambre c); - - /** - * Cherche les réservations - * @param d une date - * @return la ou les réservation(s) à cette date sous forme d'un ensemble - * @throws NullPointerException si un argument est null - * - * Ne devrait pas retourner un objet null, par contre peut être un ensemble qui est vide. - */ - public Set getReservation(LocalDate d); - - /** - * Cherche le nombre de chambres disponibles pour une date (réservées ou non). - * @param d une date - * @return un entier - * @throws NullPointerException si un argument est null - * - * Ne devrait pas retourner un entier négatif. - */ - public int getDisponibles(LocalDate d); - - /** - * Cherche les réservations - * @param d une date - * @param t un type de chambre - * @return la ou les réservation(s) pour ce type de chambre à cette date sous forme d'un ensemble - * @throws NullPointerException si un argument est null - * - * Ne devrait pas retourner un objet null, par contre peut être un ensemble qui est vide. - */ - public Set getReservation(LocalDate d, TypeChambre t); - - /** - * Cherche le nombre de chambres disponibles d'un certain type pour une date (réservées ou non). - * @param d une date - * @param t un type de chambre - * @return un entier - * @throws NullPointerException si un argument est null - * - * Ne devrait pas retourner un entier négatif. - */ - public int getDisponibles(LocalDate d, TypeChambre t); - - /** - * Cherche la proportion de chambres disponibles pour une date (réservées sur réservables). - * @param d une date - * @return un entier entre 0 et 100 - * @throws NullPointerException si un argument est null - */ - public int getRatio(LocalDate d); - - /** - * Cherche la proportion de chambres disponibles d'un certain type pour une date (réservées sur réservables). - * @param d une date - * @param t un type de chambre - * @return un entier entre 0 et 100 - * @throws NullPointerException si un argument est null - */ - public int getRatio(LocalDate d, TypeChambre t); - - /** - * Cherche le nombre moyen de chambres disponibles entre deux date (réservées ou non), arrondies à l'entier inférieur. - * @param d1 une date - * @param d2 une date - * @return un entier - * @throws NullPointerException si un argument est null - * @throws IllegalArgumentException si l'ordre temporel d1 avant d2 n'est pas respecté. - * - * Ne devrait pas retourner un entier négatif. - */ - public int getDisponibles(LocalDate d1, LocalDate d2); - - /** - * Cherche les réservations - * @param d1 une date - * @param d2 une date - * @param t un type de chambre - * @return la ou les réservation(s) pour ce type de chambre entre les dates sous forme d'un ensemble - * @throws NullPointerException si un argument est null - * @throws IllegalArgumentException si l'ordre temporel d1 avant d2 n'est pas respecté. - * - * Ne devrait pas retourner un objet null, par contre peut être un ensemble qui est vide. - */ - public Set getReservation(LocalDate d1, LocalDate d2, TypeChambre t); - - /** - * Cherche le nombre moyen de chambres disponibles d'un certain type entre deux date (réservées ou non), arrondies à l'entier inférieur. - * @param d1 une date - * @param d2 une date - * @param t un type de chambre - * @return un entier - * @throws NullPointerException si un argument est null - * @throws IllegalArgumentException si l'ordre temporel d1 avant d2 n'est pas respecté. - * - * Ne devrait pas retourner un entier négatif. - */ - public int getDisponibles(LocalDate d1, LocalDate d2, TypeChambre t); - - /** - * Cherche la proportion moyenne de chambres disponibles pour une date (réservées sur réservables). - * @param d1 une date - * @param d2 une date - * @return un entier entre 0 et 100 - * @throws NullPointerException si un argument est null - */ - public int getRatio(LocalDate d1, LocalDate d2); - - /** - * Cherche la proportion moyenne de chambres disponibles d'un certain type pour une date (réservées sur réservables). - * @param d1 une date - * @param d2 une date - * @param t un type de chambre - * @return un entier entre 0 et 100 - * @throws NullPointerException si un argument est null - */ - public int getRatio(LocalDate d1, LocalDate d2, TypeChambre t); - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/TestTexteMNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/IHM.java similarity index 95% rename from java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/TestTexteMNP.java rename to java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/IHM.java index 4b64922..e078e96 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/TestTexteMNP.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/IHM.java @@ -8,11 +8,11 @@ import fr.iutfbleau.projetIHM2022FI2.API.Etudiant; import fr.iutfbleau.projetIHM2022FI2.API.Groupe; import fr.iutfbleau.projetIHM2022FI2.MNP.AbstractChangementFactoryNP; import fr.iutfbleau.projetIHM2022FI2.MNP.AbstractGroupeFactoryNP; -import fr.iutfbleau.projetIHM2022FI2.MNP.EtudiantNP; +import fr.iutfbleau.projetIHM2022FI2.MP.EtudiantNP; import fr.iutfbleau.projetIHM2022FI2.Permanent.Util.User; import fr.iutfbleau.projetIHM2022FI2.Permanent.View.Connexion; -public class TestTexteMNP{ +public class IHM{ public static void main(String[] args) { @@ -24,8 +24,8 @@ public class TestTexteMNP{ new fr.iutfbleau.projetIHM2022FI2.MP.ROOT.Model.ModelRoot(); break; case 2: - AbstractGroupeFactory agf=TestTexteMNP.getAgf(); - new fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.Model.ModelRoot(agf, TestTexteMNP.getChange(agf)); + AbstractGroupeFactory agf=IHM.getAgf(); + new fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.Model.ModelRoot(agf, IHM.getChange(agf)); break; } } @@ -35,8 +35,8 @@ public class TestTexteMNP{ new fr.iutfbleau.projetIHM2022FI2.MP.ETU.Model.ModelEtu(); break; case 2: - AbstractGroupeFactory agf=TestTexteMNP.getAgf(); - new fr.iutfbleau.projetIHM2022FI2.MNP.ETU.Model.ModelEtu(agf, TestTexteMNP.getChange(agf)); + AbstractGroupeFactory agf=IHM.getAgf(); + new fr.iutfbleau.projetIHM2022FI2.MNP.ETU.Model.ModelEtu(agf, IHM.getChange(agf)); break; } } @@ -46,8 +46,8 @@ public class TestTexteMNP{ new fr.iutfbleau.projetIHM2022FI2.MP.ROOT.Model.ModelRoot(); break; case 2: - AbstractGroupeFactory agf=TestTexteMNP.getAgf(); - new fr.iutfbleau.projetIHM2022FI2.MNP.PROF.Model.ModelProf(agf, TestTexteMNP.getChange(agf)); + AbstractGroupeFactory agf=IHM.getAgf(); + new fr.iutfbleau.projetIHM2022FI2.MNP.PROF.Model.ModelProf(agf, IHM.getChange(agf)); break; } }