Merge branch 'master' of dwarves.iut-fbleau.fr:martins/FIprojetIHM2022
This commit is contained in:
commit
fe4ba1824c
3
.gitignore
vendored
3
.gitignore
vendored
@ -19,7 +19,8 @@
|
||||
*.zip
|
||||
*.tar.gz
|
||||
*.rar
|
||||
|
||||
#Doc
|
||||
./doc
|
||||
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
|
||||
hs_err_pid*
|
||||
replay_pid*
|
||||
|
20
Makefile
20
Makefile
@ -15,7 +15,7 @@ DOC = doc/fr/iutfbleau/projetIHM2022FI2
|
||||
JAR_MNP = IHM.jar
|
||||
|
||||
# BUTS FACTICES #
|
||||
.PHONY : run clean doc
|
||||
.PHONY : run clean doc clean_doc
|
||||
|
||||
# BUT PAR DEFAUT #
|
||||
run : build\
|
||||
@ -24,12 +24,12 @@ run : build\
|
||||
|
||||
# AUTRE BUTS
|
||||
doc :
|
||||
javadoc -d doc src/fr/iutfbleau/projetIHM2022FI2/API/*.java src/fr/iutfbleau/projetIHM2022FI2/MP/*.java src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/Controller/*.java src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/View/*.java src/fr/iutfbleau/projetIHM2022FI2/MP/ETU/Controller/*.java src/fr/iutfbleau/projetIHM2022FI2/MP/ETU/View/*.java src/fr/iutfbleau/projetIHM2022FI2/MP/ETU/Model/*.java src/fr/iutfbleau/projetIHM2022FI2/ROOT/Model/*.java src/fr/iutfbleau/projetIHM2022FI2/PROF/Model/*.java src/fr/iutfbleau/projetIHM2022FI2/PROF/View/*.java src/fr/iutfbleau/projetIHM2022FI2/PROF/Controller/*.java
|
||||
javadoc -d doc src/fr/iutfbleau/projetIHM2022FI2/API/*.java src/fr/iutfbleau/projetIHM2022FI2/MNP/*.java src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Controller/*.java src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/View/*.java src/fr/iutfbleau/projetIHM2022FI2/MNP/ETU/Controller/*.java src/fr/iutfbleau/projetIHM2022FI2/MNP/ETU/View/*.java src/fr/iutfbleau/projetIHM2022FI2/MNP/ETU/Model/*.java src/fr/iutfbleau/projetIHM2022FI2/ROOT/Model/*.java src/fr/iutfbleau/projetIHM2022FI2/PROF/Model/*.java src/fr/iutfbleau/projetIHM2022FI2/PROF/View/*.java src/fr/iutfbleau/projetIHM2022FI2/PROF/Controller/*.java
|
||||
javadoc -d doc src/fr/iutfbleau/projetIHM2022FI2/API/*.java src/fr/iutfbleau/projetIHM2022FI2/MP/*.java src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/Controller/*.java src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/View/*.java src/fr/iutfbleau/projetIHM2022FI2/MP/ETU/View/*.java src/fr/iutfbleau/projetIHM2022FI2/MP/ETU/Model/*.java src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/Model/*.java src/fr/iutfbleau/projetIHM2022FI2/MP/PROF/Model/*.java src/fr/iutfbleau/projetIHM2022FI2/MP/PROF/View/*.java src/fr/iutfbleau/projetIHM2022FI2/MNP/*.java src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Model/*.java src/fr/iutfbleau/projetIHM2022FI2/MNP/PROF/Model/* src/fr/iutfbleau/projetIHM2022FI2/MNP/ETU/Model/*
|
||||
clean :
|
||||
rm -rf ${BUILD}/* *.jar
|
||||
|
||||
|
||||
clean_doc:
|
||||
rm -rf ./doc
|
||||
# REGLES DE DEPENDANCE #
|
||||
## Dossier ##
|
||||
build :
|
||||
@ -88,14 +88,14 @@ ${BUILD}/MP/ChangementNP.class : ${BUILD}/API/Changement.class \
|
||||
${BUILD}/API/Etudiant.class
|
||||
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/ChangementNP.java
|
||||
|
||||
${BUILD}/MP/AbstractGroupeFactoryNP.class : ${SRC}/MP/AbstractGroupeFactoryNP.java \
|
||||
${BUILD}/MP/AbstractGroupeFactoryPersistant.class : ${SRC}/MP/AbstractGroupeFactoryPersistant.java \
|
||||
${BUILD}/API/AbstractGroupeFactory.class
|
||||
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/AbstractGroupeFactoryNP.java
|
||||
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/AbstractGroupeFactoryPersistant.java
|
||||
|
||||
${BUILD}/MP/AbstractChangementFactoryNP.class : ${SRC}/MP/AbstractChangementFactoryNP.java \
|
||||
${BUILD}/MP/AbstractChangementFactoryPersistant.class : ${SRC}/MP/AbstractChangementFactoryPersistant.java \
|
||||
${BUILD}/API/AbstractChangementFactory.class \
|
||||
${BUILD}/API/Changement.class
|
||||
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/AbstractChangementFactoryNP.java
|
||||
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/AbstractChangementFactoryPersistant.java
|
||||
|
||||
|
||||
|
||||
@ -326,8 +326,8 @@ ${BUILD}/MNP/PROF/Model/ModelProf.class : ${SRC}/MNP/PROF/Model/ModelProf.java \
|
||||
${BUILD}/MP/EtudiantNP.class \
|
||||
${BUILD}/MP/GroupeNP.class \
|
||||
${BUILD}/MP/ChangementNP.class \
|
||||
${BUILD}/MP/AbstractGroupeFactoryNP.class \
|
||||
${BUILD}/MP/AbstractChangementFactoryNP.class \
|
||||
${BUILD}/MP/AbstractGroupeFactoryPersistant.class \
|
||||
${BUILD}/MP/AbstractChangementFactoryPersistant.class \
|
||||
${BUILD}/MP/ROOT/Model/ModelRoot.class \
|
||||
${BUILD}/MP/ETU/Model/ModelEtu.class \
|
||||
${BUILD}/MP/PROF/Model/ModelProf.class \
|
||||
|
@ -1,93 +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 de son identifiant
|
||||
*
|
||||
* @param id l'identifiant de l'étudiant
|
||||
* @return Etudiant l'étudiant connu de la factory ayant cet identifiant
|
||||
*
|
||||
* @throws java.lang.IllegalStateException la factory ne connaît pas l'étudiant.
|
||||
*/
|
||||
public Etudiant getEtudiantFromId(int idEtu);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -126,4 +126,12 @@ public interface AbstractGroupeFactory {
|
||||
* @return le groupe refresh/un parent si il a été refresh
|
||||
*/
|
||||
public Groupe refreshALL(Groupe g);
|
||||
|
||||
|
||||
/**
|
||||
* refresh le Groupe seulement
|
||||
* @param g le groupe
|
||||
* @return le groupe refresh/un parent si il a été refresh
|
||||
*/
|
||||
public Groupe refreshOnlyG(Groupe g);
|
||||
}
|
||||
|
@ -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<Etudiant> 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<Etudiant> 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<Groupe> getGroupesOfEtudiant(Etudiant etu);
|
||||
|
||||
|
||||
|
||||
}
|
@ -1,85 +0,0 @@
|
||||
package fr.iutfbleau.projetIHM2022FI2.API;
|
||||
import java.util.*;
|
||||
/**
|
||||
* Un groupe
|
||||
*/
|
||||
|
||||
public interface Groupe extends MonPrint {
|
||||
|
||||
/**
|
||||
* 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();
|
||||
|
||||
/**
|
||||
* permet de récupérer le nom d'un groupe (utile irl).
|
||||
* @return le nom.
|
||||
*/
|
||||
public String getName();
|
||||
|
||||
/**
|
||||
* permet de récupérer le nombre minimum d'étudiants souhaités dans le groupe.
|
||||
* @return le minimum souhaité
|
||||
*/
|
||||
public int getMin();
|
||||
|
||||
/**
|
||||
* permet de récupérer le nombre maximum d'étudiants souhaités dans un groupe.
|
||||
* @return le maximum souhaité
|
||||
*/
|
||||
public int getMax();
|
||||
|
||||
/**
|
||||
* 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();
|
||||
|
||||
/**
|
||||
* permet de récupérer la nature du groupe
|
||||
* @return le type du groupe
|
||||
*/
|
||||
public TypeGroupe getType();
|
||||
|
||||
/**
|
||||
* permet de récupérer le groupe père
|
||||
* un groupe racine devrait retourner lui-même
|
||||
*
|
||||
* @return le père
|
||||
*/
|
||||
public Groupe getPointPoint();
|
||||
|
||||
/**
|
||||
* Potentiellement "vide"
|
||||
* @return un itérateur sur sous-groupes.
|
||||
*/
|
||||
public Iterator<Groupe> getSousGroupes();
|
||||
|
||||
/**
|
||||
* Potentiellement "vide"
|
||||
* @return un itérateur sur les étudiants.
|
||||
*/
|
||||
public Iterator<Etudiant> getEtudiants();
|
||||
|
||||
/**
|
||||
* @see MonPrint
|
||||
* NB. On n'utilise le mécanisme des méthodes par défaut pour donner du code dans une interface. C'est un petit peu laid et à contre-emploi mais pratique ici.
|
||||
*
|
||||
* NB2. On ne peut pas utiliser le toString de Objects
|
||||
* https://stackoverflow.com/questions/24016962/java8-why-is-it-forbidden-to-define-a-default-method-for-a-method-from-java-lan
|
||||
*/
|
||||
public default String monPrint() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("Groupe " + getName() + " (" getType() +", capacité " + getMin() + " à " + getMax() +", id " + getId()+")");
|
||||
Iterator<Etudiant> i = getEtudiants();
|
||||
sb.append("%n");
|
||||
while (i.hasNext()){
|
||||
Etudiant s = i.next();
|
||||
sb.append(s.toString());
|
||||
sb.append("%n");
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
}
|
@ -1,33 +0,0 @@
|
||||
package fr.iutfbleau.projetIHM2022FI2.API;
|
||||
/**
|
||||
* Un étudiant
|
||||
*/
|
||||
|
||||
public interface Etudiant extends MonPrint{
|
||||
|
||||
/**
|
||||
* permet de récupérer l'identifiant de l'étudiant (qu'on suppose être le même pour les différents systèmes, internes et externes à l'hôtel).
|
||||
* @return l'identifiant.
|
||||
*/
|
||||
public int getId();
|
||||
|
||||
/**
|
||||
* permet de récupérer
|
||||
* @return le nom de l'étudiant.
|
||||
*/
|
||||
public String getNom();
|
||||
|
||||
/**
|
||||
* permet de récupérer
|
||||
* @return le prénom de l'étudiant
|
||||
*/
|
||||
public String getPrenom();
|
||||
|
||||
/**
|
||||
* @see MonPrint
|
||||
* NB. On n'utilise le mécanisme des méthodes par défaut pour donner du code dans une interface. C'est un petit peu laid et à contre-emploi mais pratique ici.
|
||||
*/
|
||||
public default String monPrint() {
|
||||
return String.format("Nom " + getNom() + " Prenom " + getPrenom() + " (id="+getId()+")");
|
||||
}
|
||||
}
|
@ -1,115 +0,0 @@
|
||||
package fr.iutfbleau.projetIHM2022FI2.API;
|
||||
import java.util.*;
|
||||
/**
|
||||
* Un groupe
|
||||
*/
|
||||
|
||||
public interface Groupe extends MonPrint {
|
||||
/**
|
||||
* Ajoute un étudiant. Se comporte comme add de l'interface Set.
|
||||
*
|
||||
* @return true iff e est ajouté
|
||||
*/
|
||||
public boolean addEtudiant(Etudiant e);
|
||||
|
||||
/**
|
||||
* Enlève un étudiant. Se comporte comme remove de l'interface Set.
|
||||
*
|
||||
* @return true iff e est enlevé
|
||||
*/
|
||||
boolean removeEtudiant(Etudiant 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é
|
||||
*/
|
||||
public boolean addSousGroupe(Groupe g);
|
||||
|
||||
/**
|
||||
* Enlève un groupe. Se comporte comme remove de l'interface Set.
|
||||
*
|
||||
* @return true iff e est enlevé
|
||||
*/
|
||||
public boolean removeSousGroupe(Groupe 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();
|
||||
|
||||
/**
|
||||
* permet de récupérer le nom d'un groupe (utile irl).
|
||||
* @return le nom.
|
||||
*/
|
||||
public String getName();
|
||||
|
||||
/**
|
||||
* permet de récupérer le nombre minimum d'étudiants souhaités dans le groupe.
|
||||
* @return le minimum souhaité
|
||||
*/
|
||||
public int getMin();
|
||||
|
||||
/**
|
||||
* permet de récupérer le nombre maximum d'étudiants souhaités dans un groupe.
|
||||
* @return le maximum souhaité
|
||||
*/
|
||||
public int getMax();
|
||||
|
||||
/**
|
||||
* 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();
|
||||
|
||||
/**
|
||||
* permet de récupérer la nature du groupe
|
||||
* @return le type du groupe
|
||||
*/
|
||||
public TypeGroupe getType();
|
||||
|
||||
/**
|
||||
* permet de récupérer le groupe père
|
||||
* un groupe racine devrait retourner lui-même
|
||||
*
|
||||
* @return le père
|
||||
*/
|
||||
public Groupe getPointPoint();
|
||||
|
||||
/**
|
||||
* Potentiellement "vide"
|
||||
* @return l'ensemble des sous-groupes.
|
||||
*/
|
||||
public Set<Groupe> getSousGroupes();
|
||||
|
||||
/**
|
||||
* Potentiellement "vide"
|
||||
* @return l'ensemble des étudiants.
|
||||
*/
|
||||
public Set<Etudiant> getEtudiants();
|
||||
|
||||
/**
|
||||
* @see MonPrint
|
||||
* NB. On n'utilise le mécanisme des méthodes par défaut pour donner du code dans une interface. C'est un petit peu laid et à contre-emploi mais pratique ici.
|
||||
*
|
||||
* NB2. On ne peut pas utiliser le toString de Objects
|
||||
* https://stackoverflow.com/questions/24016962/java8-why-is-it-forbidden-to-define-a-default-method-for-a-method-from-java-lan
|
||||
*/
|
||||
public default String monPrint() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("Groupe " + getName() + " (" + getType() + ", capacité " + getMin() + " à " + getMax() +", id " + getId()+")");
|
||||
sb.append("\n");
|
||||
// NB. getEtudiants() retourne un Set qui étend Iterable
|
||||
// On peut utiliser les mécanismes de boucle "moderne" de puis la version 8
|
||||
// pour se faciliter la vie quand le traitement est assez simple
|
||||
// voir https://docs.oracle.com/javase/8/docs/technotes/guides/language/foreach.html
|
||||
for (Etudiant s: getEtudiants()){
|
||||
sb.append("\t"+ s.monPrint());
|
||||
sb.append("\n");
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
}
|
@ -1,7 +0,0 @@
|
||||
public interface MonPrint{
|
||||
|
||||
/**
|
||||
* Fonctionne comme ToPrint() sauf car une interface n'a pas le droit de faire un override sur ToPrint();
|
||||
*/
|
||||
public String monPrint();
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
package fr.iutfbleau.projetIHM2022FI2.API;
|
||||
public enum TypeGroupe {
|
||||
ROOT ("Tous les étudiants"), PARTITION ("partitionable"), FREE ("libre") ;
|
||||
|
||||
private final String name;
|
||||
|
||||
private TypeGroupe(String s) {
|
||||
name = s;
|
||||
}
|
||||
}
|
@ -270,5 +270,11 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory {
|
||||
return g;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Groupe refreshOnlyG(Groupe g) {
|
||||
// TODO Auto-generated method stub
|
||||
return g;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -19,8 +19,6 @@ import fr.iutfbleau.projetIHM2022FI2.MP.ETU.View.FenetreGroupe;
|
||||
* Le Model de L'IHM
|
||||
*/
|
||||
public class ModelEtu implements Model{
|
||||
// le panel qui contient la fenetre de groupe
|
||||
private JPanel panGroupe;
|
||||
// la fenetre de groupe
|
||||
private FenetreGroupe fenGr;
|
||||
//la fenetre d'etudiant
|
||||
@ -56,14 +54,6 @@ public class ModelEtu implements Model{
|
||||
ch.dispose();
|
||||
this.fenetre.setVisible(true);
|
||||
this.initEtu(null);
|
||||
if(this.promo==null){
|
||||
this.fenGr=new FenetreGroupe(null, this, null);
|
||||
this.fenEtu=new FenetreEtudiant(null, this.Selected, this);
|
||||
}else{
|
||||
this.fenGr=new FenetreGroupe(this.promo.getPromotion(), this,this.promo.getGroupesOfEtudiant(this.Selected));
|
||||
this.fenEtu=new FenetreEtudiant(this.promo.getPromotion(), this.Selected, this);
|
||||
}
|
||||
this.panGroupe=new JPanel(new GridLayout(1,1));
|
||||
if(this.promo!=null){
|
||||
this.showGroupe(this.promo.getPromotion());
|
||||
}else{
|
||||
@ -78,20 +68,22 @@ public class ModelEtu implements Model{
|
||||
* @param g le groupe a afficher
|
||||
*/
|
||||
public void showGroupe(Groupe g){
|
||||
if(g!=null)
|
||||
g=this.promo .refreshALL(g);
|
||||
this.panGroupe.removeAll();
|
||||
this.fenGr=new FenetreGroupe(g, this, this.promo.getGroupesOfEtudiant(this.Selected));
|
||||
this.fenEtu=new FenetreEtudiant(g, this.Selected, this);
|
||||
if(g!=null){
|
||||
g=this.promo.refreshALL(g);
|
||||
this.fenGr=new FenetreGroupe(g, this, this.promo.getGroupesOfEtudiant(Selected));
|
||||
}else{
|
||||
this.fenGr=new FenetreGroupe(g, this, null);
|
||||
}
|
||||
this.fenetre.getContentPane().removeAll();
|
||||
this.panGroupe.add(this.fenGr.getPan());
|
||||
this.panGroupe.revalidate();
|
||||
this.fenetre.add(this.panGroupe);
|
||||
this.fenEtu=new FenetreEtudiant(g, Selected, this);
|
||||
this.fenetre.getContentPane().removeAll();
|
||||
this.fenetre.add(this.fenGr.getPan());
|
||||
JScrollPane scroll=new JScrollPane(this.fenEtu.getPan());
|
||||
scroll.getVerticalScrollBar().setUnitIncrement(15);
|
||||
this.fenetre.add(scroll);
|
||||
this.fenetre.revalidate();
|
||||
}
|
||||
|
||||
@Override
|
||||
/**
|
||||
* getteur de la fenetre
|
||||
|
@ -19,9 +19,6 @@ import fr.iutfbleau.projetIHM2022FI2.Permanent.View.Chargement;
|
||||
* Le Model de L'IHM
|
||||
*/
|
||||
public class ModelProf implements Model{
|
||||
|
||||
// le panel qui contient la fenetre de groupe
|
||||
private JPanel panGroupe;
|
||||
// la fenetre de groupe
|
||||
private FenetreGroupe fenGr;
|
||||
//la fenetre d'etudiant
|
||||
@ -55,14 +52,6 @@ public class ModelProf implements Model{
|
||||
}
|
||||
ch.dispose();
|
||||
this.fenetre.setVisible(true);
|
||||
if(this.promo==null){
|
||||
this.fenGr=new FenetreGroupe(null, this);
|
||||
this.fenEtu=new FenetreEtudiant(null);
|
||||
}else{
|
||||
this.fenGr=new FenetreGroupe(this.promo.getPromotion(), this);
|
||||
this.fenEtu=new FenetreEtudiant(this.promo.getPromotion());
|
||||
}
|
||||
this.panGroupe=new JPanel(new GridLayout(1,1));
|
||||
if(this.promo!=null){
|
||||
this.showGroupe(this.promo.getPromotion());
|
||||
}else{
|
||||
@ -78,19 +67,18 @@ public class ModelProf implements Model{
|
||||
*/
|
||||
public void showGroupe(Groupe g){
|
||||
if(g!=null)
|
||||
g=this.promo .refreshALL(g);
|
||||
this.panGroupe.removeAll();
|
||||
g=this.promo.refreshALL(g);
|
||||
this.fenetre.getContentPane().removeAll();
|
||||
this.fenGr=new FenetreGroupe(g, this);
|
||||
this.fenEtu=new FenetreEtudiant(g);
|
||||
this.fenetre.getContentPane().removeAll();
|
||||
this.panGroupe.add(this.fenGr.getPan());
|
||||
this.panGroupe.revalidate();
|
||||
this.fenetre.add(this.panGroupe);
|
||||
this.fenetre.add(this.fenGr.getPan());
|
||||
JScrollPane scroll=new JScrollPane(this.fenEtu.getPan());
|
||||
scroll.getVerticalScrollBar().setUnitIncrement(15);
|
||||
this.fenetre.add(scroll);
|
||||
this.fenetre.revalidate();
|
||||
}
|
||||
|
||||
@Override
|
||||
/**
|
||||
* getteur de la fenetre
|
||||
|
@ -26,8 +26,6 @@ import fr.iutfbleau.projetIHM2022FI2.Permanent.View.Chargement;
|
||||
*/
|
||||
public class ModelRoot implements Model{
|
||||
|
||||
// le panel qui contient la fenetre de groupe
|
||||
private JPanel panGroupe;
|
||||
// la fenetre de groupe
|
||||
private FenetreGroupe fenGr;
|
||||
//la fenetre d'etudiant
|
||||
@ -59,14 +57,6 @@ public class ModelRoot implements Model{
|
||||
this.changement=change;
|
||||
ch.dispose();
|
||||
this.fenetre.setVisible(true);
|
||||
if(this.promo.getPromotion()==null){
|
||||
this.fenGr=new FenetreGroupe(null, this);
|
||||
this.fenEtu=new FenetreEtudiant(null, this);
|
||||
}else{
|
||||
this.fenGr=new FenetreGroupe(this.promo.getPromotion(), this);
|
||||
this.fenEtu=new FenetreEtudiant(this.promo.getPromotion(), this);
|
||||
}
|
||||
this.panGroupe=new JPanel(new GridLayout(1,1));
|
||||
if(this.promo.getPromotion()!=null){
|
||||
this.showGroupe(this.promo.getPromotion());
|
||||
}else{
|
||||
@ -83,18 +73,17 @@ public class ModelRoot implements Model{
|
||||
public void showGroupe(Groupe g){
|
||||
if(g!=null)
|
||||
g=this.promo.refreshALL(g);
|
||||
this.panGroupe.removeAll();
|
||||
this.fenetre.getContentPane().removeAll();
|
||||
this.fenGr=new FenetreGroupe(g, this);
|
||||
this.fenEtu=new FenetreEtudiant(g, this);
|
||||
this.fenetre.getContentPane().removeAll();
|
||||
this.panGroupe.add(this.fenGr.getPan());
|
||||
this.panGroupe.revalidate();
|
||||
this.fenetre.add(this.panGroupe);
|
||||
this.fenetre.add(this.fenGr.getPan());
|
||||
JScrollPane scroll=new JScrollPane(this.fenEtu.getPan());
|
||||
scroll.getVerticalScrollBar().setUnitIncrement(15);
|
||||
this.fenetre.add(scroll);
|
||||
this.fenetre.revalidate();
|
||||
}
|
||||
|
||||
@Override
|
||||
/**
|
||||
* getteur de la fenetre
|
||||
|
@ -14,7 +14,7 @@ import java.util.*;
|
||||
*
|
||||
*/
|
||||
|
||||
public class AbstractChangementFactoryNP implements AbstractChangementFactory {
|
||||
public class AbstractChangementFactoryPersistant implements AbstractChangementFactory {
|
||||
|
||||
// l'usine à groupe travaillant en tandem avec cette usine.
|
||||
private AbstractGroupeFactory agf;
|
||||
@ -27,7 +27,7 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory {
|
||||
* @param agf l'usine à groupe travaillant en tandem avec cette usine.
|
||||
* @param fenetre la fenetre principale
|
||||
*/
|
||||
public AbstractChangementFactoryNP(AbstractGroupeFactory agf, JFrame fenetre){
|
||||
public AbstractChangementFactoryPersistant(AbstractGroupeFactory agf, JFrame fenetre){
|
||||
Objects.requireNonNull(agf,"On ne peut pas créer une usine à changement dont l'usine à groupe parternaire est null");
|
||||
this.agf=agf;
|
||||
this.fenetre=fenetre;
|
||||
@ -40,7 +40,7 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory {
|
||||
* @param fenetre la fenetre principale
|
||||
* @param liste la liste des changements
|
||||
*/
|
||||
public AbstractChangementFactoryNP(AbstractGroupeFactory agf, JFrame fenetre, Set<Changement> liste){
|
||||
public AbstractChangementFactoryPersistant(AbstractGroupeFactory agf, JFrame fenetre, Set<Changement> liste){
|
||||
Objects.requireNonNull(agf,"On ne peut pas créer une usine à changement dont l'usine à groupe parternaire est null");
|
||||
this.agf=agf;
|
||||
this.fenetre=fenetre;
|
||||
@ -336,10 +336,13 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory {
|
||||
return;
|
||||
if(tofind.getId()==idA){
|
||||
retour[0]=tofind;
|
||||
return;
|
||||
}
|
||||
if(tofind.getId()==idB){
|
||||
retour[1]=tofind;
|
||||
return;
|
||||
}
|
||||
this.agf.refreshOnlyG(tofind);
|
||||
for(Groupe sous:tofind.getSousGroupes()){
|
||||
this.getGroupe(idA, idB, retour, sous);
|
||||
}
|
@ -14,7 +14,7 @@ import java.util.*;
|
||||
*
|
||||
*/
|
||||
|
||||
public class AbstractGroupeFactoryNP implements AbstractGroupeFactory {
|
||||
public class AbstractGroupeFactoryPersistant implements AbstractGroupeFactory {
|
||||
|
||||
// la racine (promotion)
|
||||
private Groupe promo;
|
||||
@ -31,7 +31,7 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory {
|
||||
* @param fenetre fenetre principale
|
||||
*
|
||||
*/
|
||||
public AbstractGroupeFactoryNP(JFrame fenetre){
|
||||
public AbstractGroupeFactoryPersistant(JFrame fenetre){
|
||||
this.fenetre=fenetre;
|
||||
this.brain=new HashMap<Integer,Groupe>();
|
||||
this.init();
|
||||
@ -45,7 +45,7 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory {
|
||||
* @param min le nombre minimum d'étudiants dans la promotion
|
||||
* @param max le nombre maximum d'étudiants dans la promotion
|
||||
*/
|
||||
public AbstractGroupeFactoryNP(String name, int min, int max, JFrame fenetre){
|
||||
public AbstractGroupeFactoryPersistant(String name, int min, int max, JFrame fenetre){
|
||||
Objects.requireNonNull(name,"On ne peut pas créer une promotion dont le nom est null");
|
||||
this.promo=new GroupeNP(name,min,max);
|
||||
this.fenetre=fenetre;
|
||||
@ -779,4 +779,12 @@ private boolean saveEtu(Etudiant etudiant, Groupe g){
|
||||
this.addSousGroupe(g, cnx);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Groupe refreshOnlyG(Groupe g) {
|
||||
Connection cnx = this.cnx();
|
||||
this.addSousGroupePasRecursif(g, cnx);
|
||||
this.close(cnx);
|
||||
return g;
|
||||
}
|
||||
}
|
@ -12,8 +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.MP.AbstractChangementFactoryNP;
|
||||
import fr.iutfbleau.projetIHM2022FI2.MP.AbstractGroupeFactoryNP;
|
||||
import fr.iutfbleau.projetIHM2022FI2.MP.AbstractChangementFactoryPersistant;
|
||||
import fr.iutfbleau.projetIHM2022FI2.MP.AbstractGroupeFactoryPersistant;
|
||||
import fr.iutfbleau.projetIHM2022FI2.MP.ETU.View.FenetreEtudiant;
|
||||
import fr.iutfbleau.projetIHM2022FI2.MP.ETU.View.FenetreGroupe;
|
||||
|
||||
@ -21,8 +21,6 @@ import fr.iutfbleau.projetIHM2022FI2.MP.ETU.View.FenetreGroupe;
|
||||
* Le Model de L'IHM
|
||||
*/
|
||||
public class ModelEtu implements Model{
|
||||
// le panel qui contient la fenetre de groupe
|
||||
private JPanel panGroupe;
|
||||
// la fenetre de groupe
|
||||
private FenetreGroupe fenGr;
|
||||
//la fenetre d'etudiant
|
||||
@ -47,7 +45,7 @@ public class ModelEtu implements Model{
|
||||
this.fenetre.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
|
||||
this.fenetre.setMinimumSize(this.fenetre.getSize());
|
||||
Chargement ch=new Chargement(this.fenetre);
|
||||
this.promo=new AbstractGroupeFactoryNP(this.fenetre);
|
||||
this.promo=new AbstractGroupeFactoryPersistant(this.fenetre);
|
||||
if(this.promo.getPromotion()==null){
|
||||
this.promo=null;
|
||||
}
|
||||
@ -55,15 +53,10 @@ public class ModelEtu implements Model{
|
||||
this.fenetre.setVisible(true);
|
||||
this.initEtu(null);
|
||||
if(this.promo==null){
|
||||
this.fenGr=new FenetreGroupe(null, this, null);
|
||||
this.fenEtu=new FenetreEtudiant(null, this.Selected, this);
|
||||
this.changement=null;
|
||||
}else{
|
||||
this.changement=new AbstractChangementFactoryNP(promo, this.fenetre);
|
||||
this.fenGr=new FenetreGroupe(this.promo.getPromotion(), this,this.promo.getGroupesOfEtudiant(this.Selected));
|
||||
this.fenEtu=new FenetreEtudiant(this.promo.getPromotion(), this.Selected, this);
|
||||
this.changement=new AbstractChangementFactoryPersistant(promo, this.fenetre);
|
||||
}
|
||||
this.panGroupe=new JPanel(new GridLayout(1,1));
|
||||
if(this.promo!=null){
|
||||
this.showGroupe(this.promo.getPromotion());
|
||||
}else{
|
||||
@ -78,15 +71,16 @@ public class ModelEtu implements Model{
|
||||
* @param g le groupe a afficher
|
||||
*/
|
||||
public void showGroupe(Groupe g){
|
||||
if(g!=null)
|
||||
g=this.promo .refreshALL(g);
|
||||
this.panGroupe.removeAll();
|
||||
this.fenGr=new FenetreGroupe(g, this, this.promo.getGroupesOfEtudiant(this.Selected));
|
||||
this.fenEtu=new FenetreEtudiant(g, this.Selected, this);
|
||||
if(g!=null){
|
||||
g=this.promo.refreshALL(g);
|
||||
this.fenGr=new FenetreGroupe(g, this, this.promo.getGroupesOfEtudiant(Selected));
|
||||
}else{
|
||||
this.fenGr=new FenetreGroupe(g, this, null);
|
||||
}
|
||||
this.fenetre.getContentPane().removeAll();
|
||||
this.panGroupe.add(this.fenGr.getPan());
|
||||
this.panGroupe.revalidate();
|
||||
this.fenetre.add(this.panGroupe);
|
||||
this.fenEtu=new FenetreEtudiant(g, Selected, this);
|
||||
this.fenetre.getContentPane().removeAll();
|
||||
this.fenetre.add(this.fenGr.getPan());
|
||||
JScrollPane scroll=new JScrollPane(this.fenEtu.getPan());
|
||||
scroll.getVerticalScrollBar().setUnitIncrement(15);
|
||||
this.fenetre.add(scroll);
|
||||
|
@ -9,8 +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.MP.AbstractChangementFactoryNP;
|
||||
import fr.iutfbleau.projetIHM2022FI2.MP.AbstractGroupeFactoryNP;
|
||||
import fr.iutfbleau.projetIHM2022FI2.MP.AbstractChangementFactoryPersistant;
|
||||
import fr.iutfbleau.projetIHM2022FI2.MP.AbstractGroupeFactoryPersistant;
|
||||
import fr.iutfbleau.projetIHM2022FI2.MP.PROF.View.FenetreEtudiant;
|
||||
import fr.iutfbleau.projetIHM2022FI2.MP.PROF.View.FenetreGroupe;
|
||||
import fr.iutfbleau.projetIHM2022FI2.API.Model;
|
||||
@ -22,8 +22,6 @@ import fr.iutfbleau.projetIHM2022FI2.Permanent.View.Chargement;
|
||||
*/
|
||||
public class ModelProf implements Model{
|
||||
|
||||
// le panel qui contient la fenetre de groupe
|
||||
private JPanel panGroupe;
|
||||
// la fenetre de groupe
|
||||
private FenetreGroupe fenGr;
|
||||
//la fenetre d'etudiant
|
||||
@ -47,22 +45,17 @@ public class ModelProf implements Model{
|
||||
this.fenetre.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
|
||||
this.fenetre.setMinimumSize(this.fenetre.getSize());
|
||||
Chargement ch=new Chargement(this.fenetre);
|
||||
this.promo=new AbstractGroupeFactoryNP(this.fenetre);
|
||||
this.promo=new AbstractGroupeFactoryPersistant(this.fenetre);
|
||||
if(this.promo.getPromotion()==null){
|
||||
this.promo=null;
|
||||
}
|
||||
ch.dispose();
|
||||
this.fenetre.setVisible(true);
|
||||
if(this.promo==null){
|
||||
this.fenGr=new FenetreGroupe(null, this);
|
||||
this.fenEtu=new FenetreEtudiant(null);
|
||||
this.changement=null;
|
||||
}else{
|
||||
this.changement=new AbstractChangementFactoryNP(promo, this.fenetre);
|
||||
this.fenGr=new FenetreGroupe(this.promo.getPromotion(), this);
|
||||
this.fenEtu=new FenetreEtudiant(this.promo.getPromotion());
|
||||
this.changement=new AbstractChangementFactoryPersistant(promo, this.fenetre);
|
||||
}
|
||||
this.panGroupe=new JPanel(new GridLayout(1,1));
|
||||
if(this.promo!=null){
|
||||
this.showGroupe(this.promo.getPromotion());
|
||||
}else{
|
||||
@ -78,19 +71,18 @@ public class ModelProf implements Model{
|
||||
*/
|
||||
public void showGroupe(Groupe g){
|
||||
if(g!=null)
|
||||
g=this.promo .refreshALL(g);
|
||||
this.panGroupe.removeAll();
|
||||
g=this.promo.refreshALL(g);
|
||||
this.fenetre.getContentPane().removeAll();
|
||||
this.fenGr=new FenetreGroupe(g, this);
|
||||
this.fenEtu=new FenetreEtudiant(g);
|
||||
this.fenetre.getContentPane().removeAll();
|
||||
this.panGroupe.add(this.fenGr.getPan());
|
||||
this.panGroupe.revalidate();
|
||||
this.fenetre.add(this.panGroupe);
|
||||
this.fenetre.add(this.fenGr.getPan());
|
||||
JScrollPane scroll=new JScrollPane(this.fenEtu.getPan());
|
||||
scroll.getVerticalScrollBar().setUnitIncrement(15);
|
||||
this.fenetre.add(scroll);
|
||||
this.fenetre.revalidate();
|
||||
}
|
||||
|
||||
@Override
|
||||
/**
|
||||
* getteur de la fenetre
|
||||
|
@ -11,8 +11,8 @@ import fr.iutfbleau.projetIHM2022FI2.API.Etudiant;
|
||||
import fr.iutfbleau.projetIHM2022FI2.API.Groupe;
|
||||
import fr.iutfbleau.projetIHM2022FI2.API.Model;
|
||||
import fr.iutfbleau.projetIHM2022FI2.API.TypeGroupe;
|
||||
import fr.iutfbleau.projetIHM2022FI2.MP.AbstractChangementFactoryNP;
|
||||
import fr.iutfbleau.projetIHM2022FI2.MP.AbstractGroupeFactoryNP;
|
||||
import fr.iutfbleau.projetIHM2022FI2.MP.AbstractChangementFactoryPersistant;
|
||||
import fr.iutfbleau.projetIHM2022FI2.MP.AbstractGroupeFactoryPersistant;
|
||||
import fr.iutfbleau.projetIHM2022FI2.MP.ROOT.View.FenetreChangement;
|
||||
import fr.iutfbleau.projetIHM2022FI2.MP.ROOT.View.FenetreEtudiant;
|
||||
import fr.iutfbleau.projetIHM2022FI2.MP.ROOT.View.FenetreGroupe;
|
||||
@ -26,8 +26,6 @@ import fr.iutfbleau.projetIHM2022FI2.Permanent.View.Chargement;
|
||||
*/
|
||||
public class ModelRoot implements Model{
|
||||
|
||||
// le panel qui contient la fenetre de groupe
|
||||
private JPanel panGroupe;
|
||||
// la fenetre de groupe
|
||||
private FenetreGroupe fenGr;
|
||||
//la fenetre d'etudiant
|
||||
@ -53,19 +51,14 @@ public class ModelRoot implements Model{
|
||||
this.fenetre.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
|
||||
this.fenetre.setMinimumSize(this.fenetre.getSize());
|
||||
Chargement ch=new Chargement(this.fenetre);
|
||||
this.promo=new AbstractGroupeFactoryNP(this.fenetre);
|
||||
this.promo=new AbstractGroupeFactoryPersistant(this.fenetre);
|
||||
ch.dispose();
|
||||
this.fenetre.setVisible(true);
|
||||
if(this.promo.getPromotion()==null){
|
||||
this.changement=null;
|
||||
this.fenGr=new FenetreGroupe(null, this);
|
||||
this.fenEtu=new FenetreEtudiant(null, this);
|
||||
}else{
|
||||
this.fenGr=new FenetreGroupe(this.promo.getPromotion(), this);
|
||||
this.fenEtu=new FenetreEtudiant(this.promo.getPromotion(), this);
|
||||
this.changement=new AbstractChangementFactoryNP(this.promo, this.fenetre);
|
||||
this.changement=new AbstractChangementFactoryPersistant(this.promo, this.fenetre);
|
||||
}
|
||||
this.panGroupe=new JPanel(new GridLayout(1,1));
|
||||
if(this.promo.getPromotion()!=null){
|
||||
this.showGroupe(this.promo.getPromotion());
|
||||
}else{
|
||||
@ -82,13 +75,11 @@ public class ModelRoot implements Model{
|
||||
public void showGroupe(Groupe g){
|
||||
if(g!=null)
|
||||
g=this.promo.refreshALL(g);
|
||||
this.panGroupe.removeAll();
|
||||
this.fenetre.getContentPane().removeAll();
|
||||
this.fenGr=new FenetreGroupe(g, this);
|
||||
this.fenEtu=new FenetreEtudiant(g, this);
|
||||
this.fenetre.getContentPane().removeAll();
|
||||
this.panGroupe.add(this.fenGr.getPan());
|
||||
this.panGroupe.revalidate();
|
||||
this.fenetre.add(this.panGroupe);
|
||||
this.fenetre.add(this.fenGr.getPan());
|
||||
JScrollPane scroll=new JScrollPane(this.fenEtu.getPan());
|
||||
scroll.getVerticalScrollBar().setUnitIncrement(15);
|
||||
this.fenetre.add(scroll);
|
||||
@ -304,8 +295,8 @@ public class ModelRoot implements Model{
|
||||
@Override
|
||||
public void addPromo(int min, int max, String name, Set<Etudiant> ajout){
|
||||
Chargement ch=new Chargement(this.fenetre);
|
||||
this.promo=new AbstractGroupeFactoryNP(name, min, max, this.fenetre);
|
||||
this.changement=new AbstractChangementFactoryNP(this.promo, this.fenetre);
|
||||
this.promo=new AbstractGroupeFactoryPersistant(name, min, max, this.fenetre);
|
||||
this.changement=new AbstractChangementFactoryPersistant(this.promo, this.fenetre);
|
||||
this.fenetre.setVisible(false);
|
||||
for(Etudiant e:ajout){
|
||||
this.addEtudiant(this.promo.getPromotion(), e);
|
||||
|
Loading…
Reference in New Issue
Block a user