diff --git a/java/APIGroupe/Makefile b/java/APIGroupe/Makefile deleted file mode 100644 index f327c55..0000000 --- a/java/APIGroupe/Makefile +++ /dev/null @@ -1,373 +0,0 @@ -# COMMANDES # -JAVAC = javac -# note $$ to get a single shell $ -JAVAC_OPTIONS = -implicit:none -d build -classpath "res/mariadb-client.jar:build" -sourcepath src -JAVA = java -JAR = jar -EXEC_JAR = ${JAVA} -jar - -# CHEMINS RELATIFS -SRC = src/fr/iutfbleau/projetIHM2022FI2 -BUILD = build/fr/iutfbleau/projetIHM2022FI2 -DOC = doc/fr/iutfbleau/projetIHM2022FI2 - -# CHOIX NOMS -JAR_MNP = IHM.jar - -# BUTS FACTICES # -.PHONY : run clean doc - -# BUT PAR DEFAUT # -run : build\ - ${JAR_MNP} - ${EXEC_JAR} ${JAR_MNP} - -# 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 -clean : - rm -rf ${BUILD}/* *.jar - - -# REGLES DE DEPENDANCE # -## Dossier ## -build : - mkdir build -## API ## -${BUILD}/API/Model.class : ${SRC}/API/Model.java - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/API/Model.java - -${BUILD}/API/MonPrint.class : ${SRC}/API/MonPrint.java - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/API/MonPrint.java - -${BUILD}/API/TypeGroupe.class : ${SRC}/API/TypeGroupe.java - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/API/TypeGroupe.java - -${BUILD}/API/Groupe.class : ${SRC}/API/Groupe.java \ - ${BUILD}/API/TypeGroupe.class\ - ${BUILD}/API/MonPrint.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/API/Groupe.java - -${BUILD}/API/Etudiant.class : ${SRC}/API/Etudiant.java \ - ${BUILD}/API/MonPrint.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/API/Etudiant.java - -${BUILD}/API/Changement.class : ${SRC}/API/Changement.java \ - ${BUILD}/API/Etudiant.class \ - ${BUILD}/API/Groupe.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/API/Changement.java - -${BUILD}/API/AbstractGroupeFactory.class : ${SRC}/API/AbstractGroupeFactory.java \ - ${BUILD}/API/Groupe.class \ - ${BUILD}/API/Etudiant.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/API/AbstractGroupeFactory.java - -${BUILD}/API/AbstractChangementFactory.class : ${SRC}/API/AbstractChangementFactory.java \ - ${BUILD}/API/AbstractGroupeFactory.class \ - ${BUILD}/API/Changement.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/API/AbstractChangementFactory.java - -## MP ## - -${BUILD}/MP/EtudiantNP.class : ${SRC}/MP/EtudiantNP.java \ - ${BUILD}/API/Etudiant.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/EtudiantNP.java - - -${BUILD}/MP/GroupeNP.class : ${SRC}/MP/GroupeNP.java \ - ${BUILD}/API/Groupe.class \ - ${BUILD}/API/TypeGroupe.class \ - ${BUILD}/API/Etudiant.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/GroupeNP.java - - -${BUILD}/MP/ChangementNP.class : ${BUILD}/API/Changement.class \ - ${SRC}/MP/ChangementNP.java \ - ${BUILD}/API/Groupe.class \ - ${BUILD}/API/Etudiant.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/ChangementNP.java - -${BUILD}/MP/AbstractGroupeFactoryNP.class : ${SRC}/MP/AbstractGroupeFactoryNP.java \ - ${BUILD}/API/AbstractGroupeFactory.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/AbstractGroupeFactoryNP.java - -${BUILD}/MP/AbstractChangementFactoryNP.class : ${SRC}/MP/AbstractChangementFactoryNP.java \ - ${BUILD}/API/AbstractChangementFactory.class \ - ${BUILD}/API/Changement.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/AbstractChangementFactoryNP.java - - - -## ROOT ## - - -## View ## - -${BUILD}/MP/ROOT/View/FindBarFenetre.class : ${SRC}/MP/ROOT/View/FindBarFenetre.java\ - ${BUILD}/MP/ROOT/Controller/ListenerFindBar.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/ROOT/View/FindBarFenetre.java - - -${BUILD}/MP/ROOT/View/FenetreChangement.class : ${SRC}/MP/ROOT/View/FenetreChangement.java \ - ${BUILD}/MP/ROOT/Controller/ActionChangement.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/ROOT/View/FenetreChangement.java - -${BUILD}/MP/ROOT/View/FenetreGroupe.class : ${SRC}/MP/ROOT/View/FenetreGroupe.java \ - ${BUILD}/Permanent/Controller/ObservateurFenetre.class \ - ${BUILD}/Permanent/Controller/ObservateurChangeGroupe.class \ - ${BUILD}/MP/ROOT/Controller/ObservateurModifGroupe.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/ROOT/View/FenetreGroupe.java - -${BUILD}/MP/ROOT/View/FenetreEtudiant.class :${SRC}/MP/ROOT/View/FenetreEtudiant.java \ - ${BUILD}/Permanent/Controller/ObservateurFenetre.class \ - ${BUILD}/Permanent/Controller/ObservateurChangeGroupe.class \ - ${BUILD}/MP/ROOT/View/PanelEtudiant.class \ - ${BUILD}/Permanent/Controller/ActionListenerChangeEtu.class \ - ${BUILD}/MP/ROOT/Controller/ActionListChange.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/ROOT/View/FenetreEtudiant.java - -${BUILD}/MP/ROOT/View/PanelEtudiant.class : ${SRC}/MP/ROOT/View/PanelEtudiant.java \ - ${BUILD}/MP/ROOT/Controller/ActionListenerSuprEtu.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/ROOT/View/PanelEtudiant.java - - -${BUILD}/MP/ROOT/View/FenetreSelectionEtu.class : ${SRC}/MP/ROOT/View/FenetreSelectionEtu.java \ - ${BUILD}/MP/ROOT/Controller/SelecteurEtudiant.class \ - ${BUILD}/MP/ROOT/Controller/ActionListenerNouveauEtu.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/ROOT/View/FenetreSelectionEtu.java - - -## Controller ## -${BUILD}/MP/ROOT/Controller/ListenerFindBar.class : ${SRC}/MP/ROOT/Controller/ListenerFindBar.java - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/ROOT/Controller/ListenerFindBar.java - - -${BUILD}/MP/ROOT/Controller/ActionListenerSuprEtu.class : ${SRC}/MP/ROOT/Controller/ActionListenerSuprEtu.java \ - ${BUILD}/API/Etudiant.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/ROOT/Controller/ActionListenerSuprEtu.java - -${BUILD}/MP/ROOT/Controller/ActionChangement.class : ${SRC}/MP/ROOT/Controller/ActionChangement.java - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/ROOT/Controller/ActionChangement.java - -${BUILD}/MP/ROOT/Controller/ObservateurModifGroupe.class : ${SRC}/MP/ROOT/Controller/ObservateurModifGroupe.java \ - ${BUILD}/MP/ROOT/View/FenetreSelectionEtu.class \ - ${BUILD}/MP/ROOT/Controller/SelecteurEtudiant.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/ROOT/Controller/ObservateurModifGroupe.java - -${BUILD}/MP/ROOT/Controller/SelecteurEtudiant.class : ${SRC}/MP/ROOT/Controller/SelecteurEtudiant.java - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/ROOT/Controller/SelecteurEtudiant.java - -${BUILD}/MP/ROOT/Controller/ActionListenerNouveauEtu.class : ${SRC}/MP/ROOT/Controller/ActionListenerNouveauEtu.java - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/ROOT/Controller/ActionListenerNouveauEtu.java - -${BUILD}/MP/ROOT/Controller/ActionListChange.class : ${SRC}/MP/ROOT/Controller/ActionListChange.java - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/ROOT/Controller/ActionListChange.java - -##.... - - -##  Model ### - -${BUILD}/MP/ROOT/Model/ModelRoot.class : ${SRC}/MP/ROOT/Model/ModelRoot.java \ - ${BUILD}/API/Model.class \ - ${BUILD}/MP/ROOT/View/FenetreGroupe.class \ - ${BUILD}/MP/ROOT/View/FenetreEtudiant.class \ - ${BUILD}/Permanent/View/Chargement.class \ - ${BUILD}/MP/ROOT/View/FenetreChangement.class \ - ${BUILD}/MP/ROOT/View/FindBarFenetre.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/ROOT/Model/ModelRoot.java - - - - - - -## ETU ## - - -## View ## - -${BUILD}/MP/ETU/View/FenetreGroupe.class : ${SRC}/MP/ETU/View/FenetreGroupe.java \ - ${BUILD}/Permanent/Controller/ObservateurFenetre.class \ - ${BUILD}/Permanent/Controller/ObservateurChangeGroupe.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/ETU/View/FenetreGroupe.java - -${BUILD}/MP/ETU/View/FenetreEtudiant.class :${SRC}/MP/ETU/View/FenetreEtudiant.java \ - ${BUILD}/Permanent/Controller/ObservateurFenetre.class \ - ${BUILD}/Permanent/Controller/ObservateurChangeGroupe.class \ - ${BUILD}/MP/ETU/View/PanelEtudiant.class \ - ${BUILD}/Permanent/Controller/ActionListenerChangeEtu.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/ETU/View/FenetreEtudiant.java - -${BUILD}/MP/ETU/View/PanelEtudiant.class : ${SRC}/MP/ETU/View/PanelEtudiant.java - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/ETU/View/PanelEtudiant.java - - - -## Controller ## - - - -##.... - - -##  Model ### - -${BUILD}/MP/ETU/Model/ModelEtu.class : ${SRC}/MP/ETU/Model/ModelEtu.java \ - ${BUILD}/API/Model.class \ - ${BUILD}/MP/ETU/View/FenetreGroupe.class \ - ${BUILD}/MP/ETU/View/FenetreEtudiant.class \ - ${BUILD}/Permanent/View/Chargement.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/ETU/Model/ModelEtu.java - - -## PROF ## - - -## View ## - -${BUILD}/MP/PROF/View/FenetreGroupe.class : ${SRC}/MP/PROF/View/FenetreGroupe.java \ - ${BUILD}/Permanent/Controller/ObservateurFenetre.class \ - ${BUILD}/Permanent/Controller/ObservateurChangeGroupe.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/PROF/View/FenetreGroupe.java - -${BUILD}/MP/PROF/View/FenetreEtudiant.class :${SRC}/MP/PROF/View/FenetreEtudiant.java \ - ${BUILD}/Permanent/Controller/ObservateurChangeGroupe.class \ - ${BUILD}/MP/PROF/View/PanelEtudiant.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/PROF/View/FenetreEtudiant.java - -${BUILD}/MP/PROF/View/PanelEtudiant.class : ${SRC}/MP/PROF/View/PanelEtudiant.java - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/PROF/View/PanelEtudiant.java - - - -## Controller ## - - - -##.... - - -##  Model ### - -${BUILD}/MP/PROF/Model/ModelProf.class : ${SRC}/MP/PROF/Model/ModelProf.java \ - ${BUILD}/API/Model.class \ - ${BUILD}/MP/PROF/View/FenetreGroupe.class \ - ${BUILD}/MP/PROF/View/FenetreEtudiant.class \ - ${BUILD}/Permanent/View/Chargement.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MP/PROF/Model/ModelProf.java - - - -## MNP ## - -${BUILD}/MNP/AbstractGroupeFactoryNP.class : ${SRC}/MNP/AbstractGroupeFactoryNP.java \ - ${BUILD}/API/AbstractGroupeFactory.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/AbstractGroupeFactoryNP.java - -${BUILD}/MNP/AbstractChangementFactoryNP.class : ${SRC}/MNP/AbstractChangementFactoryNP.java \ - ${BUILD}/API/AbstractChangementFactory.class \ - ${BUILD}/API/Changement.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/AbstractChangementFactoryNP.java - - -## ROOT ## - - -##  Model ### - -${BUILD}/MNP/ROOT/Model/ModelRoot.class : ${SRC}/MNP/ROOT/Model/ModelRoot.java \ - ${BUILD}/API/Model.class \ - ${BUILD}/MP/ROOT/View/FenetreGroupe.class \ - ${BUILD}/MP/ROOT/View/FenetreEtudiant.class \ - ${BUILD}/Permanent/View/Chargement.class \ - ${BUILD}/MP/ROOT/View/FenetreChangement.class \ - ${BUILD}/MP/ROOT/View/FindBarFenetre.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/MNP/ROOT/Model/ModelRoot.java - - -## ETU ## - - - -##  Model ### - -${BUILD}/MNP/ETU/Model/ModelEtu.class : ${SRC}/MNP/ETU/Model/ModelEtu.java \ - ${BUILD}/API/Model.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 - - -## PROF ## - - - -##  Model ### - -${BUILD}/MNP/PROF/Model/ModelProf.class : ${SRC}/MNP/PROF/Model/ModelProf.java \ - ${BUILD}/API/Model.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 - - -##... FIN MNP ## - -## Permanent ## - - ${BUILD}/Permanent/Connexion.class : ${SRC}/Permanent/Connexion.java - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Permanent/View/Connexion.java - - ${BUILD}/Permanent/IHM.class : ${SRC}/Permanent/IHM.java \ - ${BUILD}/MP/EtudiantNP.class \ - ${BUILD}/MP/GroupeNP.class \ - ${BUILD}/MP/ChangementNP.class \ - ${BUILD}/MP/AbstractGroupeFactoryNP.class \ - ${BUILD}/MP/AbstractChangementFactoryNP.class \ - ${BUILD}/MP/ROOT/Model/ModelRoot.class \ - ${BUILD}/MP/ETU/Model/ModelEtu.class \ - ${BUILD}/MP/PROF/Model/ModelProf.class \ - ${BUILD}/MNP/AbstractGroupeFactoryNP.class \ - ${BUILD}/MNP/AbstractChangementFactoryNP.class \ - ${BUILD}/MNP/ROOT/Model/ModelRoot.class \ - ${BUILD}/MNP/ETU/Model/ModelEtu.class \ - ${BUILD}/MNP/PROF/Model/ModelProf.class \ - ${BUILD}/Permanent/View/Connexion.class \ - ${BUILD}/Permanent/Util/User.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Permanent/IHM.java -## View ## - -${BUILD}/Permanent/View/Chargement.class : ${SRC}/Permanent/View/Chargement.java - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Permanent//View/Chargement.java - -${BUILD}/Permanent/View/Connexion.class : ${SRC}/Permanent/View/Connexion.java - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Permanent/View/Connexion.java - -## Util  ## - -${BUILD}/Permanent/Util/User.class : ${SRC}/Permanent/Util/User.java - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Permanent/Util/User.java - -## Controller ## - -${BUILD}/Permanent/Controller/ObservateurFenetre.class : ${SRC}/Permanent/Controller/ObservateurFenetre.java - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Permanent/Controller/ObservateurFenetre.java - -${BUILD}/Permanent/Controller/ObservateurChangeGroupe.class : ${SRC}/Permanent/Controller/ObservateurChangeGroupe.java - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Permanent/Controller/ObservateurChangeGroupe.java - -${BUILD}/Permanent/Controller/ActionListenerChangeEtu.class : ${SRC}/Permanent/Controller/ActionListenerChangeEtu.java \ - ${BUILD}/Permanent/Controller/ControllerGroupeBChangement.class - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Permanent/Controller/ActionListenerChangeEtu.java - -${BUILD}/Permanent/Controller/ControllerGroupeBChangement.class : ${SRC}/Permanent/Controller/ControllerGroupeBChangement.java - ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Permanent/Controller/ControllerGroupeBChangement.java - -# ## JARS ## - - ${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/Manifest.txt b/java/APIGroupe/Manifest.txt deleted file mode 100644 index b9f8abb..0000000 --- a/java/APIGroupe/Manifest.txt +++ /dev/null @@ -1,3 +0,0 @@ -Manifest-Version: 1.0 -Class-Path: res/mariadb-client.jar -Created-By: 1.7.0_06 (Oracle Corporation) \ No newline at end of file diff --git a/java/APIGroupe/doc/allclasses-frame.html b/java/APIGroupe/doc/allclasses-frame.html deleted file mode 100644 index 6ad2b37..0000000 --- a/java/APIGroupe/doc/allclasses-frame.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - -All Classes - - - - - -

All Classes

-
- -
- - diff --git a/java/APIGroupe/doc/allclasses-noframe.html b/java/APIGroupe/doc/allclasses-noframe.html deleted file mode 100644 index e8ae56d..0000000 --- a/java/APIGroupe/doc/allclasses-noframe.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - -All Classes - - - - - -

All Classes

-
- -
- - diff --git a/java/APIGroupe/doc/constant-values.html b/java/APIGroupe/doc/constant-values.html deleted file mode 100644 index 508445c..0000000 --- a/java/APIGroupe/doc/constant-values.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - -Constant Field Values - - - - - - - - -
- - -
Skip navigation links
- - - - -
- - -
-

Constant Field Values

-

Contents

-
- -
- - -
Skip navigation links
- - - - -
- - - - diff --git a/java/APIGroupe/doc/deprecated-list.html b/java/APIGroupe/doc/deprecated-list.html deleted file mode 100644 index 6c07c71..0000000 --- a/java/APIGroupe/doc/deprecated-list.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - -Deprecated List - - - - - - - - -
- - -
Skip navigation links
- - - - -
- - -
-

Deprecated API

-

Contents

-
- -
- - -
Skip navigation links
- - - - -
- - - - diff --git a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/AbstractChangementFactory.html b/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/AbstractChangementFactory.html deleted file mode 100644 index 03176c4..0000000 --- a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/AbstractChangementFactory.html +++ /dev/null @@ -1,325 +0,0 @@ - - - - - -AbstractChangementFactory - - - - - - - - -
- - -
Skip navigation links
- - - - -
- - - -
-
fr.iutfbleau.projetIHM2022FI2.API
-

Interface AbstractChangementFactory

-
-
-
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
- - - - diff --git a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/AbstractGroupeFactory.html b/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/AbstractGroupeFactory.html deleted file mode 100644 index 403c756..0000000 --- a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/AbstractGroupeFactory.html +++ /dev/null @@ -1,446 +0,0 @@ - - - - - -AbstractGroupeFactory - - - - - - - - -
- - -
Skip navigation links
- - - - -
- - - -
-
fr.iutfbleau.projetIHM2022FI2.API
-

Interface AbstractGroupeFactory

-
-
-
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
- - - - diff --git a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/Changement.html b/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/Changement.html deleted file mode 100644 index b8bb4b7..0000000 --- a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/Changement.html +++ /dev/null @@ -1,324 +0,0 @@ - - - - - -Changement - - - - - - - - -
- - -
Skip navigation links
- - - - -
- - - -
-
fr.iutfbleau.projetIHM2022FI2.API
-

Interface Changement

-
-
-
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
- - - - diff --git a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/Etudiant.html b/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/Etudiant.html deleted file mode 100644 index a040547..0000000 --- a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/Etudiant.html +++ /dev/null @@ -1,300 +0,0 @@ - - - - - -Etudiant - - - - - - - - -
- - -
Skip navigation links
- - - - -
- - - -
-
fr.iutfbleau.projetIHM2022FI2.API
-

Interface Etudiant

-
-
-
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
- - - - diff --git a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/Groupe.html b/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/Groupe.html deleted file mode 100644 index 7c82028..0000000 --- a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/Groupe.html +++ /dev/null @@ -1,506 +0,0 @@ - - - - - -Groupe - - - - - - - - -
- - -
Skip navigation links
- - - - -
- - - -
-
fr.iutfbleau.projetIHM2022FI2.API
-

Interface Groupe

-
-
-
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
- - - - diff --git a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/MonPrint.html b/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/MonPrint.html deleted file mode 100644 index 3863bf0..0000000 --- a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/MonPrint.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - - -MonPrint - - - - - - - - -
- - -
Skip navigation links
- - - - -
- - - -
-
fr.iutfbleau.projetIHM2022FI2.API
-

Interface MonPrint

-
-
-
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
- - - - diff --git a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/TypeGroupe.html b/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/TypeGroupe.html deleted file mode 100644 index 37e6eb8..0000000 --- a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/TypeGroupe.html +++ /dev/null @@ -1,351 +0,0 @@ - - - - - -TypeGroupe - - - - - - - - -
- - -
Skip navigation links
- - - - -
- - - -
-
fr.iutfbleau.projetIHM2022FI2.API
-

Enum TypeGroupe

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
- - - - diff --git a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/package-frame.html b/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/package-frame.html deleted file mode 100644 index 4b2cd52..0000000 --- a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/package-frame.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - -fr.iutfbleau.projetIHM2022FI2.API - - - - - -

fr.iutfbleau.projetIHM2022FI2.API

-
-

Interfaces

- -

Enums

- -
- - diff --git a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/package-summary.html b/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/package-summary.html deleted file mode 100644 index cd0bce6..0000000 --- a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/package-summary.html +++ /dev/null @@ -1,188 +0,0 @@ - - - - - -fr.iutfbleau.projetIHM2022FI2.API - - - - - - - - -
- - -
Skip navigation links
- - - - -
- - -
-

Package fr.iutfbleau.projetIHM2022FI2.API

-
-
- -
- -
- - -
Skip navigation links
- - - - -
- - - - diff --git a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/package-tree.html b/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/package-tree.html deleted file mode 100644 index 91e99c4..0000000 --- a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/API/package-tree.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - -fr.iutfbleau.projetIHM2022FI2.API Class Hierarchy - - - - - - - - -
- - -
Skip navigation links
- - - - -
- - -
-

Hierarchy For Package fr.iutfbleau.projetIHM2022FI2.API

-Package Hierarchies: - -
-
-

Interface Hierarchy

- -

Enum Hierarchy

- -
- -
- - -
Skip navigation links
- - - - -
- - - - diff --git a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractChangementFactoryNP.html b/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractChangementFactoryNP.html deleted file mode 100644 index 7f9d87b..0000000 --- a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractChangementFactoryNP.html +++ /dev/null @@ -1,384 +0,0 @@ - - - - - -AbstractChangementFactoryNP - - - - - - - - -
- - -
Skip navigation links
- - - - -
- - - -
-
fr.iutfbleau.projetIHM2022FI2.MNP
-

Class AbstractChangementFactoryNP

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
- - - - diff --git a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupeFactoryNP.html b/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupeFactoryNP.html deleted file mode 100644 index b9d5a80..0000000 --- a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupeFactoryNP.html +++ /dev/null @@ -1,523 +0,0 @@ - - - - - -AbstractGroupeFactoryNP - - - - - - - - -
- - -
Skip navigation links
- - - - -
- - - -
-
fr.iutfbleau.projetIHM2022FI2.MNP
-

Class AbstractGroupeFactoryNP

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
- - - - diff --git a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/MNP/ChangementNP.html b/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/MNP/ChangementNP.html deleted file mode 100644 index f02a0c9..0000000 --- a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/MNP/ChangementNP.html +++ /dev/null @@ -1,364 +0,0 @@ - - - - - -ChangementNP - - - - - - - - -
- - -
Skip navigation links
- - - - -
- - - -
-
fr.iutfbleau.projetIHM2022FI2.MNP
-

Class ChangementNP

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
- - - - diff --git a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/MNP/EtudiantNP.html b/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/MNP/EtudiantNP.html deleted file mode 100644 index 8bc63ee..0000000 --- a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/MNP/EtudiantNP.html +++ /dev/null @@ -1,340 +0,0 @@ - - - - - -EtudiantNP - - - - - - - - -
- - -
Skip navigation links
- - - - -
- - - -
-
fr.iutfbleau.projetIHM2022FI2.MNP
-

Class EtudiantNP

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
- - - - diff --git a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/MNP/GroupeNP.html b/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/MNP/GroupeNP.html deleted file mode 100644 index 8df93d9..0000000 --- a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/MNP/GroupeNP.html +++ /dev/null @@ -1,605 +0,0 @@ - - - - - -GroupeNP - - - - - - - - -
- - -
Skip navigation links
- - - - -
- - - -
-
fr.iutfbleau.projetIHM2022FI2.MNP
-

Class GroupeNP

-
-
- -
- -
-
- -
-
- -
-
- - -
- - -
Skip navigation links
- - - - -
- - - - diff --git a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/MNP/package-frame.html b/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/MNP/package-frame.html deleted file mode 100644 index 87bb233..0000000 --- a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/MNP/package-frame.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - -fr.iutfbleau.projetIHM2022FI2.MNP - - - - - -

fr.iutfbleau.projetIHM2022FI2.MNP

-
-

Classes

- -
- - diff --git a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/MNP/package-summary.html b/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/MNP/package-summary.html deleted file mode 100644 index 3602d32..0000000 --- a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/MNP/package-summary.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - -fr.iutfbleau.projetIHM2022FI2.MNP - - - - - - - - -
- - -
Skip navigation links
- - - - -
- - -
-

Package fr.iutfbleau.projetIHM2022FI2.MNP

-
-
- -
- -
- - -
Skip navigation links
- - - - -
- - - - diff --git a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/MNP/package-tree.html b/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/MNP/package-tree.html deleted file mode 100644 index 3b39409..0000000 --- a/java/APIGroupe/doc/fr/iutfbleau/projetIHM2022FI2/MNP/package-tree.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - -fr.iutfbleau.projetIHM2022FI2.MNP Class Hierarchy - - - - - - - - -
- - -
Skip navigation links
- - - - -
- - -
-

Hierarchy For Package fr.iutfbleau.projetIHM2022FI2.MNP

-Package Hierarchies: - -
-
-

Class Hierarchy

- -
- -
- - -
Skip navigation links
- - - - -
- - - - diff --git a/java/APIGroupe/doc/help-doc.html b/java/APIGroupe/doc/help-doc.html deleted file mode 100644 index 701ee6c..0000000 --- a/java/APIGroupe/doc/help-doc.html +++ /dev/null @@ -1,223 +0,0 @@ - - - - - -API Help - - - - - - - - -
- - -
Skip navigation links
- - - - -
- - -
-

How This API Document Is Organized

-
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
-
-
- -This help file applies to API documentation generated using the standard doclet.
- -
- - -
Skip navigation links
- - - - -
- - - - diff --git a/java/APIGroupe/doc/index-all.html b/java/APIGroupe/doc/index-all.html deleted file mode 100644 index 1e53f59..0000000 --- a/java/APIGroupe/doc/index-all.html +++ /dev/null @@ -1,556 +0,0 @@ - - - - - -Index - - - - - - - - -
- - -
Skip navigation links
- - - - -
- - -
A C D E F G K M R T V  - - -

A

-
-
AbstractChangementFactory - Interface in fr.iutfbleau.projetIHM2022FI2.API
-
-
Usine abstraite gérant l'ensemble des changements.
-
-
AbstractChangementFactoryNP - Class in fr.iutfbleau.projetIHM2022FI2.MNP
-
-
Usine abstraite gérant l'ensemble des changements.
-
-
AbstractChangementFactoryNP(AbstractGroupeFactory) - Constructor for class fr.iutfbleau.projetIHM2022FI2.MNP.AbstractChangementFactoryNP
-
 
-
AbstractGroupeFactory - Interface in fr.iutfbleau.projetIHM2022FI2.API
-
-
Usine abstraite gérant l'ensemble des groupes.
-
-
AbstractGroupeFactoryNP - Class in fr.iutfbleau.projetIHM2022FI2.MNP
-
-
Usine abstraite gérant l'ensemble des groupes.
-
-
AbstractGroupeFactoryNP(String, int, int) - Constructor for class fr.iutfbleau.projetIHM2022FI2.MNP.AbstractGroupeFactoryNP
-
-
Le constructeur fabrique le groupe promotion vide.
-
-
addEtudiant(Etudiant) - Method in interface fr.iutfbleau.projetIHM2022FI2.API.Groupe
-
-
Ajoute un étudiant.
-
-
addEtudiant(Etudiant) - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.GroupeNP
-
-
Ajoute un étudiant.
-
-
addSousGroupe(Groupe) - Method in interface fr.iutfbleau.projetIHM2022FI2.API.Groupe
-
-
Ajoute un sous-groupe.
-
-
addSousGroupe(Groupe) - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.GroupeNP
-
-
Ajoute un sous-groupe.
-
-
addToGroupe(Groupe, Etudiant) - Method in interface fr.iutfbleau.projetIHM2022FI2.API.AbstractGroupeFactory
-
-
permet d'ajouter un étudiant à un groupe.
-
-
addToGroupe(Groupe, Etudiant) - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.AbstractGroupeFactoryNP
-
-
permet d'ajouter un étudiant à un groupe.
-
-
applyChangement(Changement) - Method in interface fr.iutfbleau.projetIHM2022FI2.API.AbstractChangementFactory
-
-
permet de mettre en oeuvre un changement connu de l'usine abstraite.
-
-
applyChangement(Changement) - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.AbstractChangementFactoryNP
-
-
permet de mettre en oeuvre un changement connu de l'usine abstraite.
-
-
- - - -

C

-
-
Changement - Interface in fr.iutfbleau.projetIHM2022FI2.API
-
-
Une demande de changement de groupe - concerne un étudiant, qui est dans un groupe A et veut aller dans un groupe B.
-
-
ChangementNP - Class in fr.iutfbleau.projetIHM2022FI2.MNP
-
-
Une demande de changement de groupe - concerne un étudiant, qui est dans un groupe A et veut aller dans un groupe B.
-
-
ChangementNP(Groupe, Etudiant, Groupe) - Constructor for class fr.iutfbleau.projetIHM2022FI2.MNP.ChangementNP
-
 
-
createChangement(Groupe, Etudiant, Groupe) - Method in interface fr.iutfbleau.projetIHM2022FI2.API.AbstractChangementFactory
-
-
permet d'ajouter un nouveau changement.
-
-
createChangement(Groupe, Etudiant, Groupe) - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.AbstractChangementFactoryNP
-
-
permet d'ajouter un nouveau changement.
-
-
createGroupe(Groupe, String, int, int) - Method in interface fr.iutfbleau.projetIHM2022FI2.API.AbstractGroupeFactory
-
-
permet d'ajouter un groupe vide de type FREE comme sous-groupe d'un groupe donné.
-
-
createGroupe(Groupe, String, int, int) - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.AbstractGroupeFactoryNP
-
-
permet d'ajouter un groupe vide de type FREE comme sous-groupe d'un groupe donné.
-
-
createPartition(Groupe, String, int) - Method in interface fr.iutfbleau.projetIHM2022FI2.API.AbstractGroupeFactory
-
-
permet de créer une partition automatiquement sous un groupe donné.
-
-
createPartition(Groupe, String, int) - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.AbstractGroupeFactoryNP
-
-
permet de créer une partition automatiquement sous un groupe donné.
-
-
- - - -

D

-
-
deleteChangement(Changement) - Method in interface fr.iutfbleau.projetIHM2022FI2.API.AbstractChangementFactory
-
-
permet de supprimer un changement connu de l'usine abstraite.
-
-
deleteChangement(Changement) - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.AbstractChangementFactoryNP
-
-
permet de supprimer un changement connu de l'usine abstraite.
-
-
deleteGroupe(Groupe) - Method in interface fr.iutfbleau.projetIHM2022FI2.API.AbstractGroupeFactory
-
-
permet de supprimer un groupe connu de l'usine abstraite qui ne contient pas de groupes.
-
-
deleteGroupe(Groupe) - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.AbstractGroupeFactoryNP
-
-
permet de supprimer un groupe connu de l'usine abstraite qui ne contient pas de groupes.
-
-
dropFromGroupe(Groupe, Etudiant) - Method in interface fr.iutfbleau.projetIHM2022FI2.API.AbstractGroupeFactory
-
-
permet d'enlever un étudiant d'un groupe.
-
-
dropFromGroupe(Groupe, Etudiant) - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.AbstractGroupeFactoryNP
-
-
permet d'enlever un étudiant d'un groupe.
-
-
- - - -

E

-
-
Etudiant - Interface in fr.iutfbleau.projetIHM2022FI2.API
-
-
Un étudiant
-
-
EtudiantNP - Class in fr.iutfbleau.projetIHM2022FI2.MNP
-
-
Un étudiant
-
-
EtudiantNP(String, String) - Constructor for class fr.iutfbleau.projetIHM2022FI2.MNP.EtudiantNP
-
-
Constructeur.
-
-
- - - -

F

-
-
fr.iutfbleau.projetIHM2022FI2.API - package fr.iutfbleau.projetIHM2022FI2.API
-
 
-
fr.iutfbleau.projetIHM2022FI2.MNP - package fr.iutfbleau.projetIHM2022FI2.MNP
-
 
-
- - - -

G

-
-
getA() - Method in interface fr.iutfbleau.projetIHM2022FI2.API.Changement
-
-
permet de récupérer le groupe de depart
-
-
getA() - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.ChangementNP
-
-
permet de récupérer le groupe de depart
-
-
getAllChangements() - Method in interface fr.iutfbleau.projetIHM2022FI2.API.AbstractChangementFactory
-
-
permet de récupérer les changements
-
-
getAllChangements() - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.AbstractChangementFactoryNP
-
-
permet de récupérer les changements
-
-
getB() - Method in interface fr.iutfbleau.projetIHM2022FI2.API.Changement
-
-
permet de récupérer le groupe d'arrivée
-
-
getB() - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.ChangementNP
-
-
permet de récupérer le groupe d'arrivée
-
-
getEtu() - Method in interface fr.iutfbleau.projetIHM2022FI2.API.Changement
-
-
permet de récupérer l'étudiant demandant le changement
-
-
getEtu() - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.ChangementNP
-
-
permet de récupérer l'étudiant demandant le changement
-
-
getEtudiants(String) - Method in interface fr.iutfbleau.projetIHM2022FI2.API.AbstractGroupeFactory
-
-
permet de retrouver un étudiant à partir d'un String.
-
-
getEtudiants() - Method in interface fr.iutfbleau.projetIHM2022FI2.API.Groupe
-
-
Potentiellement "vide"
-
-
getEtudiants(String) - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.AbstractGroupeFactoryNP
-
-
permet de retrouver un étudiant à partir d'un String.
-
-
getEtudiants() - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.GroupeNP
-
-
Potentiellement "vide" - Attention nous renvoyons l'ensemble sans le copier
-
-
getGroupeFactory() - Method in interface fr.iutfbleau.projetIHM2022FI2.API.AbstractChangementFactory
-
-
permet de récupérer une usine abstraite pour les groupes qui fonctionne en tandem avec cette usine abstraite
-
-
getGroupeFactory() - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.AbstractChangementFactoryNP
-
-
permet de récupérer l'usine abstraite pour les groupes qui fonctionne en tandem avec cette usine abstraite
-
-
getGroupesOfEtudiant(Etudiant) - Method in interface fr.iutfbleau.projetIHM2022FI2.API.AbstractGroupeFactory
-
-
permet de retrouver les groupes d'un étudiant.
-
-
getGroupesOfEtudiant(Etudiant) - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.AbstractGroupeFactoryNP
-
-
permet de retrouver les groupes d'un étudiant.
-
-
getId() - Method in interface fr.iutfbleau.projetIHM2022FI2.API.Changement
-
-
permet de récupérer l'identifiant du changement (référence interne sans intérêt irl).
-
-
getId() - Method in interface fr.iutfbleau.projetIHM2022FI2.API.Etudiant
-
-
permet de récupérer l'identifiant de l'étudiant.
-
-
getId() - Method in interface fr.iutfbleau.projetIHM2022FI2.API.Groupe
-
-
permet de récupérer l'identifiant d'un groupe (référence interne sans intérêt irl).
-
-
getId() - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.ChangementNP
-
-
permet de récupérer l'identifiant du changement (référence interne sans intérêt irl).
-
-
getId() - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.EtudiantNP
-
-
permet de récupérer l'identifiant de l'étudiant.
-
-
getId() - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.GroupeNP
-
-
permet de récupérer l'identifiant d'un groupe (référence interne sans intérêt irl).
-
-
getMax() - Method in interface fr.iutfbleau.projetIHM2022FI2.API.Groupe
-
-
permet de récupérer le nombre maximum d'étudiants souhaités dans un groupe.
-
-
getMax() - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.GroupeNP
-
-
permet de récupérer le nombre maximum d'étudiants souhaités dans un groupe.
-
-
getMin() - Method in interface fr.iutfbleau.projetIHM2022FI2.API.Groupe
-
-
permet de récupérer le nombre minimum d'étudiants souhaités dans le groupe.
-
-
getMin() - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.GroupeNP
-
-
permet de récupérer le nombre minimum d'étudiants souhaités dans le groupe.
-
-
getName() - Method in interface fr.iutfbleau.projetIHM2022FI2.API.Groupe
-
-
permet de récupérer le nom d'un groupe (utile irl).
-
-
getName() - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.GroupeNP
-
-
permet de récupérer le nom d'un groupe (utile irl).
-
-
getNom() - Method in interface fr.iutfbleau.projetIHM2022FI2.API.Etudiant
-
-
permet de récupérer
-
-
getNom() - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.EtudiantNP
-
-
permet de récupérer
-
-
getPointPoint() - Method in interface fr.iutfbleau.projetIHM2022FI2.API.Groupe
-
-
permet de récupérer le groupe père - un groupe racine devrait retourner lui-même
-
-
getPointPoint() - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.GroupeNP
-
-
permet de récupérer le groupe père - un groupe racine devrait retourner lui-même
-
-
getPrenom() - Method in interface fr.iutfbleau.projetIHM2022FI2.API.Etudiant
-
-
permet de récupérer
-
-
getPrenom() - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.EtudiantNP
-
-
permet de récupérer
-
-
getPromotion() - Method in interface fr.iutfbleau.projetIHM2022FI2.API.AbstractGroupeFactory
-
-
permet de récupérer le Groupe qui contient les étudiants de toute la promotion
-
-
getPromotion() - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.AbstractGroupeFactoryNP
-
-
permet de récupérer le Groupe qui contient les étudiants de toute la promotion
-
-
getSize() - Method in interface fr.iutfbleau.projetIHM2022FI2.API.Groupe
-
-
permet de récupérer le nombre d'étudiants dans ce groupe.
-
-
getSize() - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.GroupeNP
-
-
permet de récupérer le nombre d'étudiants dans ce groupe.
-
-
getSousGroupes() - Method in interface fr.iutfbleau.projetIHM2022FI2.API.Groupe
-
-
Potentiellement "vide"
-
-
getSousGroupes() - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.GroupeNP
-
-
Potentiellement "vide" - Attention nous renvoyons l'ensemble sans le copier
-
-
getType() - Method in interface fr.iutfbleau.projetIHM2022FI2.API.Groupe
-
-
permet de récupérer la nature du groupe
-
-
getType() - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.GroupeNP
-
-
permet de récupérer la nature du groupe
-
-
Groupe - Interface in fr.iutfbleau.projetIHM2022FI2.API
-
-
Un groupe
-
-
GroupeNP - Class in fr.iutfbleau.projetIHM2022FI2.MNP
-
-
Un groupe
-
-
GroupeNP(String, int, int) - Constructor for class fr.iutfbleau.projetIHM2022FI2.MNP.GroupeNP
-
-
Nouveau groupe vide de type ROOT sans étudiants, sans sous-Groupe
-
-
GroupeNP(Groupe, String, int, int) - Constructor for class fr.iutfbleau.projetIHM2022FI2.MNP.GroupeNP
-
-
Nouveau groupe vide de type FREE sans étudiants, sans sous-Groupe
-
-
GroupeNP(Groupe) - Constructor for class fr.iutfbleau.projetIHM2022FI2.MNP.GroupeNP
-
-
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).
-
-
- - - -

K

-
-
knows(Groupe) - Method in interface fr.iutfbleau.projetIHM2022FI2.API.AbstractGroupeFactory
-
-
Test si le groupe g est connu de l'usine (connu maintenant).
-
-
knows(Groupe) - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.AbstractGroupeFactoryNP
-
-
Test plutôt optimiste.
-
-
- - - -

M

-
-
monPrint() - Method in interface fr.iutfbleau.projetIHM2022FI2.API.Changement
-
 
-
monPrint() - Method in interface fr.iutfbleau.projetIHM2022FI2.API.Etudiant
-
 
-
monPrint() - Method in interface fr.iutfbleau.projetIHM2022FI2.API.Groupe
-
 
-
MonPrint - Interface in fr.iutfbleau.projetIHM2022FI2.API
-
-
Toutes nos interfaces vont étendre cette interface.
-
-
monPrint() - Method in interface fr.iutfbleau.projetIHM2022FI2.API.MonPrint
-
-
Fonctionne comme ToPrint() sauf car une interface n'a pas le droit de faire un override sur ToPrint().
-
-
- - - -

R

-
-
removeEtudiant(Etudiant) - Method in interface fr.iutfbleau.projetIHM2022FI2.API.Groupe
-
-
Enlève un étudiant.
-
-
removeEtudiant(Etudiant) - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.GroupeNP
-
-
Enlève un étudiant.
-
-
removeSousGroupe(Groupe) - Method in interface fr.iutfbleau.projetIHM2022FI2.API.Groupe
-
-
Enlève un groupe.
-
-
removeSousGroupe(Groupe) - Method in class fr.iutfbleau.projetIHM2022FI2.MNP.GroupeNP
-
-
Enlève un groupe.
-
-
- - - -

T

-
-
TypeGroupe - Enum in fr.iutfbleau.projetIHM2022FI2.API
-
 
-
- - - -

V

-
-
valueOf(String) - Static method in enum fr.iutfbleau.projetIHM2022FI2.API.TypeGroupe
-
-
Returns the enum constant of this type with the specified name.
-
-
values() - Static method in enum fr.iutfbleau.projetIHM2022FI2.API.TypeGroupe
-
-
Returns an array containing the constants of this enum type, in -the order they are declared.
-
-
-A C D E F G K M R T V 
- -
- - -
Skip navigation links
- - - - -
- - - - diff --git a/java/APIGroupe/doc/index.html b/java/APIGroupe/doc/index.html deleted file mode 100644 index fb53118..0000000 --- a/java/APIGroupe/doc/index.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - -Generated Documentation (Untitled) - - - - - - - - - -<noscript> -<div>JavaScript is disabled on your browser.</div> -</noscript> -<h2>Frame Alert</h2> -<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="overview-summary.html">Non-frame version</a>.</p> - - - diff --git a/java/APIGroupe/doc/overview-frame.html b/java/APIGroupe/doc/overview-frame.html deleted file mode 100644 index ef3a28b..0000000 --- a/java/APIGroupe/doc/overview-frame.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - -Overview List - - - - - -
All Classes
-
-

Packages

- -
-

 

- - diff --git a/java/APIGroupe/doc/overview-summary.html b/java/APIGroupe/doc/overview-summary.html deleted file mode 100644 index b6e5d88..0000000 --- a/java/APIGroupe/doc/overview-summary.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - -Overview - - - - - - - - -
- - -
Skip navigation links
- - - - -
- - -
- - - - - - - - - - - - - - - - -
Packages 
PackageDescription
fr.iutfbleau.projetIHM2022FI2.API 
fr.iutfbleau.projetIHM2022FI2.MNP 
-
- -
- - -
Skip navigation links
- - - - -
- - - - diff --git a/java/APIGroupe/doc/overview-tree.html b/java/APIGroupe/doc/overview-tree.html deleted file mode 100644 index 1eda006..0000000 --- a/java/APIGroupe/doc/overview-tree.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - -Class Hierarchy - - - - - - - - -
- - -
Skip navigation links
- - - - -
- - -
-

Hierarchy For All Packages

-Package Hierarchies: - -
-
-

Class Hierarchy

- -

Interface Hierarchy

- -

Enum Hierarchy

- -
- -
- - -
Skip navigation links
- - - - -
- - - - diff --git a/java/APIGroupe/doc/package-list b/java/APIGroupe/doc/package-list deleted file mode 100644 index 8fcbc66..0000000 --- a/java/APIGroupe/doc/package-list +++ /dev/null @@ -1,2 +0,0 @@ -fr.iutfbleau.projetIHM2022FI2.API -fr.iutfbleau.projetIHM2022FI2.MNP diff --git a/java/APIGroupe/doc/script.js b/java/APIGroupe/doc/script.js deleted file mode 100644 index b346356..0000000 --- a/java/APIGroupe/doc/script.js +++ /dev/null @@ -1,30 +0,0 @@ -function show(type) -{ - count = 0; - for (var key in methods) { - var row = document.getElementById(key); - if ((methods[key] & type) != 0) { - row.style.display = ''; - row.className = (count++ % 2) ? rowColor : altColor; - } - else - row.style.display = 'none'; - } - updateTabs(type); -} - -function updateTabs(type) -{ - for (var value in tabs) { - var sNode = document.getElementById(tabs[value][0]); - var spanNode = sNode.firstChild; - if (value == type) { - sNode.className = activeTableTab; - spanNode.innerHTML = tabs[value][1]; - } - else { - sNode.className = tableTab; - spanNode.innerHTML = "" + tabs[value][1] + ""; - } - } -} diff --git a/java/APIGroupe/doc/stylesheet.css b/java/APIGroupe/doc/stylesheet.css deleted file mode 100644 index 98055b2..0000000 --- a/java/APIGroupe/doc/stylesheet.css +++ /dev/null @@ -1,574 +0,0 @@ -/* Javadoc style sheet */ -/* -Overall document style -*/ - -@import url('resources/fonts/dejavu.css'); - -body { - background-color:#ffffff; - color:#353833; - font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size:14px; - margin:0; -} -a:link, a:visited { - text-decoration:none; - color:#4A6782; -} -a:hover, a:focus { - text-decoration:none; - color:#bb7a2a; -} -a:active { - text-decoration:none; - color:#4A6782; -} -a[name] { - color:#353833; -} -a[name]:hover { - text-decoration:none; - color:#353833; -} -pre { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; -} -h1 { - font-size:20px; -} -h2 { - font-size:18px; -} -h3 { - font-size:16px; - font-style:italic; -} -h4 { - font-size:13px; -} -h5 { - font-size:12px; -} -h6 { - font-size:11px; -} -ul { - list-style-type:disc; -} -code, tt { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; - padding-top:4px; - margin-top:8px; - line-height:1.4em; -} -dt code { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; - padding-top:4px; -} -table tr td dt code { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; - vertical-align:top; - padding-top:4px; -} -sup { - font-size:8px; -} -/* -Document title and Copyright styles -*/ -.clear { - clear:both; - height:0px; - overflow:hidden; -} -.aboutLanguage { - float:right; - padding:0px 21px; - font-size:11px; - z-index:200; - margin-top:-9px; -} -.legalCopy { - margin-left:.5em; -} -.bar a, .bar a:link, .bar a:visited, .bar a:active { - color:#FFFFFF; - text-decoration:none; -} -.bar a:hover, .bar a:focus { - color:#bb7a2a; -} -.tab { - background-color:#0066FF; - color:#ffffff; - padding:8px; - width:5em; - font-weight:bold; -} -/* -Navigation bar styles -*/ -.bar { - background-color:#4D7A97; - color:#FFFFFF; - padding:.8em .5em .4em .8em; - height:auto;/*height:1.8em;*/ - font-size:11px; - margin:0; -} -.topNav { - background-color:#4D7A97; - color:#FFFFFF; - float:left; - padding:0; - width:100%; - clear:right; - height:2.8em; - padding-top:10px; - overflow:hidden; - font-size:12px; -} -.bottomNav { - margin-top:10px; - background-color:#4D7A97; - color:#FFFFFF; - float:left; - padding:0; - width:100%; - clear:right; - height:2.8em; - padding-top:10px; - overflow:hidden; - font-size:12px; -} -.subNav { - background-color:#dee3e9; - float:left; - width:100%; - overflow:hidden; - font-size:12px; -} -.subNav div { - clear:left; - float:left; - padding:0 0 5px 6px; - text-transform:uppercase; -} -ul.navList, ul.subNavList { - float:left; - margin:0 25px 0 0; - padding:0; -} -ul.navList li{ - list-style:none; - float:left; - padding: 5px 6px; - text-transform:uppercase; -} -ul.subNavList li{ - list-style:none; - float:left; -} -.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { - color:#FFFFFF; - text-decoration:none; - text-transform:uppercase; -} -.topNav a:hover, .bottomNav a:hover { - text-decoration:none; - color:#bb7a2a; - text-transform:uppercase; -} -.navBarCell1Rev { - background-color:#F8981D; - color:#253441; - margin: auto 5px; -} -.skipNav { - position:absolute; - top:auto; - left:-9999px; - overflow:hidden; -} -/* -Page header and footer styles -*/ -.header, .footer { - clear:both; - margin:0 20px; - padding:5px 0 0 0; -} -.indexHeader { - margin:10px; - position:relative; -} -.indexHeader span{ - margin-right:15px; -} -.indexHeader h1 { - font-size:13px; -} -.title { - color:#2c4557; - margin:10px 0; -} -.subTitle { - margin:5px 0 0 0; -} -.header ul { - margin:0 0 15px 0; - padding:0; -} -.footer ul { - margin:20px 0 5px 0; -} -.header ul li, .footer ul li { - list-style:none; - font-size:13px; -} -/* -Heading styles -*/ -div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { - background-color:#dee3e9; - border:1px solid #d0d9e0; - margin:0 0 6px -8px; - padding:7px 5px; -} -ul.blockList ul.blockList ul.blockList li.blockList h3 { - background-color:#dee3e9; - border:1px solid #d0d9e0; - margin:0 0 6px -8px; - padding:7px 5px; -} -ul.blockList ul.blockList li.blockList h3 { - padding:0; - margin:15px 0; -} -ul.blockList li.blockList h2 { - padding:0px 0 20px 0; -} -/* -Page layout container styles -*/ -.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer { - clear:both; - padding:10px 20px; - position:relative; -} -.indexContainer { - margin:10px; - position:relative; - font-size:12px; -} -.indexContainer h2 { - font-size:13px; - padding:0 0 3px 0; -} -.indexContainer ul { - margin:0; - padding:0; -} -.indexContainer ul li { - list-style:none; - padding-top:2px; -} -.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { - font-size:12px; - font-weight:bold; - margin:10px 0 0 0; - color:#4E4E4E; -} -.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { - margin:5px 0 10px 0px; - font-size:14px; - font-family:'DejaVu Sans Mono',monospace; -} -.serializedFormContainer dl.nameValue dt { - margin-left:1px; - font-size:1.1em; - display:inline; - font-weight:bold; -} -.serializedFormContainer dl.nameValue dd { - margin:0 0 0 1px; - font-size:1.1em; - display:inline; -} -/* -List styles -*/ -ul.horizontal li { - display:inline; - font-size:0.9em; -} -ul.inheritance { - margin:0; - padding:0; -} -ul.inheritance li { - display:inline; - list-style:none; -} -ul.inheritance li ul.inheritance { - margin-left:15px; - padding-left:15px; - padding-top:1px; -} -ul.blockList, ul.blockListLast { - margin:10px 0 10px 0; - padding:0; -} -ul.blockList li.blockList, ul.blockListLast li.blockList { - list-style:none; - margin-bottom:15px; - line-height:1.4; -} -ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { - padding:0px 20px 5px 10px; - border:1px solid #ededed; - background-color:#f8f8f8; -} -ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { - padding:0 0 5px 8px; - background-color:#ffffff; - border:none; -} -ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { - margin-left:0; - padding-left:0; - padding-bottom:15px; - border:none; -} -ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { - list-style:none; - border-bottom:none; - padding-bottom:0; -} -table tr td dl, table tr td dl dt, table tr td dl dd { - margin-top:0; - margin-bottom:1px; -} -/* -Table styles -*/ -.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary { - width:100%; - border-left:1px solid #EEE; - border-right:1px solid #EEE; - border-bottom:1px solid #EEE; -} -.overviewSummary, .memberSummary { - padding:0px; -} -.overviewSummary caption, .memberSummary caption, .typeSummary caption, -.useSummary caption, .constantsSummary caption, .deprecatedSummary caption { - position:relative; - text-align:left; - background-repeat:no-repeat; - color:#253441; - font-weight:bold; - clear:none; - overflow:hidden; - padding:0px; - padding-top:10px; - padding-left:1px; - margin:0px; - white-space:pre; -} -.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link, -.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link, -.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover, -.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover, -.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active, -.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active, -.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited, -.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited { - color:#FFFFFF; -} -.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span, -.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span { - white-space:nowrap; - padding-top:5px; - padding-left:12px; - padding-right:12px; - padding-bottom:7px; - display:inline-block; - float:left; - background-color:#F8981D; - border: none; - height:16px; -} -.memberSummary caption span.activeTableTab span { - white-space:nowrap; - padding-top:5px; - padding-left:12px; - padding-right:12px; - margin-right:3px; - display:inline-block; - float:left; - background-color:#F8981D; - height:16px; -} -.memberSummary caption span.tableTab span { - white-space:nowrap; - padding-top:5px; - padding-left:12px; - padding-right:12px; - margin-right:3px; - display:inline-block; - float:left; - background-color:#4D7A97; - height:16px; -} -.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab { - padding-top:0px; - padding-left:0px; - padding-right:0px; - background-image:none; - float:none; - display:inline; -} -.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd, -.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd { - display:none; - width:5px; - position:relative; - float:left; - background-color:#F8981D; -} -.memberSummary .activeTableTab .tabEnd { - display:none; - width:5px; - margin-right:3px; - position:relative; - float:left; - background-color:#F8981D; -} -.memberSummary .tableTab .tabEnd { - display:none; - width:5px; - margin-right:3px; - position:relative; - background-color:#4D7A97; - float:left; - -} -.overviewSummary td, .memberSummary td, .typeSummary td, -.useSummary td, .constantsSummary td, .deprecatedSummary td { - text-align:left; - padding:0px 0px 12px 10px; -} -th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th, -td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{ - vertical-align:top; - padding-right:0px; - padding-top:8px; - padding-bottom:3px; -} -th.colFirst, th.colLast, th.colOne, .constantsSummary th { - background:#dee3e9; - text-align:left; - padding:8px 3px 3px 7px; -} -td.colFirst, th.colFirst { - white-space:nowrap; - font-size:13px; -} -td.colLast, th.colLast { - font-size:13px; -} -td.colOne, th.colOne { - font-size:13px; -} -.overviewSummary td.colFirst, .overviewSummary th.colFirst, -.useSummary td.colFirst, .useSummary th.colFirst, -.overviewSummary td.colOne, .overviewSummary th.colOne, -.memberSummary td.colFirst, .memberSummary th.colFirst, -.memberSummary td.colOne, .memberSummary th.colOne, -.typeSummary td.colFirst{ - width:25%; - vertical-align:top; -} -td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover { - font-weight:bold; -} -.tableSubHeadingColor { - background-color:#EEEEFF; -} -.altColor { - background-color:#FFFFFF; -} -.rowColor { - background-color:#EEEEEF; -} -/* -Content styles -*/ -.description pre { - margin-top:0; -} -.deprecatedContent { - margin:0; - padding:10px 0; -} -.docSummary { - padding:0; -} - -ul.blockList ul.blockList ul.blockList li.blockList h3 { - font-style:normal; -} - -div.block { - font-size:14px; - font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; -} - -td.colLast div { - padding-top:0px; -} - - -td.colLast a { - padding-bottom:3px; -} -/* -Formatting effect styles -*/ -.sourceLineNo { - color:green; - padding:0 30px 0 0; -} -h1.hidden { - visibility:hidden; - overflow:hidden; - font-size:10px; -} -.block { - display:block; - margin:3px 10px 2px 0px; - color:#474747; -} -.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink, -.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel, -.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink { - font-weight:bold; -} -.deprecationComment, .emphasizedPhrase, .interfaceName { - font-style:italic; -} - -div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase, -div.block div.block span.interfaceName { - font-style:normal; -} - -div.contentContainer ul.blockList li.blockList h2{ - padding-bottom:0px; -} diff --git a/java/APIGroupe/res/mariadb-client.jar b/java/APIGroupe/res/mariadb-client.jar deleted file mode 100644 index f18798b..0000000 Binary files a/java/APIGroupe/res/mariadb-client.jar and /dev/null differ diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/AbstractChangementFactory.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/AbstractChangementFactory.java deleted file mode 100644 index 134c43e..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/AbstractChangementFactory.java +++ /dev/null @@ -1,69 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.API; -import java.util.*; -/** - * Usine abstraite gérant l'ensemble des changements. - * - * - */ - -public interface AbstractChangementFactory { - - /** - * permet de récupérer une usine abstraite pour les groupes qui fonctionne en tandem avec cette usine abstraite - * @return cette usine abstraite pour les groupes - */ - public AbstractGroupeFactory getGroupeFactory(); - - /** - * permet de récupérer les changements - * @return l'ensemble de tous les changements en attente - * - * NB. Attention. C'était Iterator dans la version beta. - */ - public Set getAllChangements(); - - /** - * permet de mettre en oeuvre un changement connu de l'usine abstraite. - * En cas de succès, le changement est oublié (détruit). - * - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalArgumentException si inconnu de l'usine abstraite - */ - public void applyChangement(Changement c); - - /** - * permet de supprimer un changement connu de l'usine abstraite. - * - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalArgumentException si inconnu de l'usine abstraite - */ - public void deleteChangement(Changement c); - - /** - * permet d'ajouter un nouveau changement. - * - * @param A groupe actuel - * @param B groupe demandé - * @param e étudiant concerné par le changement - * - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalArgumentException si les groupes ou l'étudiant ne sont pas connus de la factory partenaire, ou e n'appartient pas à A ou A et B ne sont pas frères dans l'arbre des groupes. - * - */ - public void createChangement(Groupe A, Etudiant e, Groupe B); - - - /** - * permet d'ajouter un nouveau changement de type 2 - * - * @param A groupe actuel - * @param B groupe demandé - * @param e étudiant concerné par le changement - *@param raison la raison du changement de type 2 - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalArgumentException si les groupes ou l'étudiant ne sont pas connus de la factory partenaire, ou e n'appartient pas à A ou A et B ne sont pas frères dans l'arbre des groupes. - * - */ - public void createChangement(Groupe A, Etudiant e, Groupe B, String raison); - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/AbstractChangementFactory.java~ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/AbstractChangementFactory.java~ deleted file mode 100644 index c0849de..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/AbstractChangementFactory.java~ +++ /dev/null @@ -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); - - - - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/AbstractGroupeFactory.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/AbstractGroupeFactory.java deleted file mode 100644 index 37959ee..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/AbstractGroupeFactory.java +++ /dev/null @@ -1,129 +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(); - - - /** - * Test si le groupe g est connu de l'usine (connu maintenant). - * Si la réponse est true, les méthodes avec ce groupe en paramètre devraient bien fonctionner. - * Si la réponse est false, le comportement n'est pas garanti. - */ - public Boolean knows(Groupe g); - - - /** - * 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 getEtudiants(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); - - - /** - * Ajout a l'API pour changer facilement de nom de groupe - * - * @param g le groupe - * @param name le nom - * @return true si possible - */ - public boolean changeNameGroupe(Groupe g, String name); - - /** - * refresh le Groupe ainsi que ses etudiants - * @param g le groupe - * @return le groupe refresh/un parent si il a été refresh - */ - public Groupe refreshALL(Groupe g); -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/AbstractGroupeFactory.java~ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/AbstractGroupeFactory.java~ deleted file mode 100644 index f1dbec9..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/AbstractGroupeFactory.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/API/Changement.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/Changement.java deleted file mode 100644 index f8a1997..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/Changement.java +++ /dev/null @@ -1,53 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.API; - -/** - * Une demande de changement de groupe - * concerne un étudiant, qui est dans un groupe A et veut aller dans un groupe B. - * - */ - -public interface Changement extends MonPrint { - - /** - * permet de récupérer l'identifiant du changement (référence interne sans intérêt irl). - * @return l'identifiant. - */ - public int getId(); - - /** - * permet de récupérer le groupe de depart - * @return ce groupe. - */ - public Groupe getA(); - - /** - * permet de récupérer le groupe d'arrivée - * @return ce groupe. - */ - public Groupe getB(); - - /** - * permet de récupérer l'étudiant demandant le changement - * @return cet étudiant - */ - public Etudiant getEtu(); - - - /** - * - */ - public String getRaison(); - /** - * @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("Changement de " + this.getEtu().monPrint() + " depuis le groupe " + this.getA().getName() + " vers le groupe " + this.getB().getName()); - return sb.toString(); - } - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/Changement.java~ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/Changement.java~ deleted file mode 100644 index f345ad0..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/Changement.java~ +++ /dev/null @@ -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 getSousGroupes(); - - /** - * Potentiellement "vide" - * @return un itérateur sur les étudiants. - */ - public Iterator 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 i = getEtudiants(); - sb.append("%n"); - while (i.hasNext()){ - Etudiant s = i.next(); - sb.append(s.toString()); - sb.append("%n"); - } - return sb.toString(); - } - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/Etudiant.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/Etudiant.java deleted file mode 100644 index a31828b..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/Etudiant.java +++ /dev/null @@ -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. - * @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()+")"); - } -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/Etudiant.java~ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/Etudiant.java~ deleted file mode 100644 index e7334a6..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/Etudiant.java~ +++ /dev/null @@ -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()+")"); - } -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/Groupe.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/Groupe.java deleted file mode 100644 index 1ae036e..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/Groupe.java +++ /dev/null @@ -1,129 +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 getSousGroupes(); - - /** - * Potentiellement "vide" - * @return l'ensemble des étudiants. - */ - public Set getEtudiants(); - - /** - * Change le nom du groupe - * @param s le nouveau nom - */ - public void setName(String s); - - /** - * @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 - sb.append(" ** Étudiants **\n"); - for (Etudiant s: getEtudiants()){ - sb.append("\t _ "+ s.monPrint()); - sb.append("\n"); - } - sb.append(" ** Sous Groupes **\n"); - for (Groupe g: getSousGroupes()){ - sb.append("\t _ "+ g.getName() + " (" + g.getType() + ", capacité " + g.getMin() + " à " + g.getMax() +", id " + g.getId()+")"); - sb.append("\n"); - } - sb.append(" ** Groupe Pere **\n"); - sb.append(getPointPoint().getName()+"\n"); - return sb.toString(); - } - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/Groupe.java~ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/Groupe.java~ deleted file mode 100644 index 417c779..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/Groupe.java~ +++ /dev/null @@ -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 getSousGroupes(); - - /** - * Potentiellement "vide" - * @return l'ensemble des étudiants. - */ - public Set 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(); - } - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/Model.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/Model.java deleted file mode 100644 index a83a356..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/Model.java +++ /dev/null @@ -1,168 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.API; - -import java.util.Set; -import javax.swing.JFrame; -/** - * Le Model de L'IHM - */ -public interface Model { -/** - * Fonction pour refresh/changer de groupe d'affichage - * @param g le groupe a afficher - */ -public void showGroupe(Groupe g); - /** - * getteur de la fenetre - * @return JFrame la fenetre - */ - public JFrame getFenetre(); - /** - * permet d'obtenir l'ensemble des etudiants - * @return - */ - public Set getEtudiant(); - - // *********************** - // FONCTION POUR SUPRIMER UN ETUDIANT - // *********************** -/** - * Fonction pour supprimer un etudiant. - * @param e l'etudiant a supprimer - * @return boolean true si l'etudiant a ete supprimer, false sinon - */ - public boolean deleteEtu(Etudiant e); - - - // *********************** - // FONCTION POUR Ajouter UN ETUDIANT - // *********************** - - /** - * Fonction pour ajouter un étudiant au groupe - * @param g - * @param e - * @return boolean pour savoir si il a pus être ajouter - */ - public boolean addEtudiant(Groupe g, Etudiant e); - - - - // *********************** - // FONCTION POUR SUPRIMER UN GROUPE - // *********************** - - /** - * Fonction pour supprimer un groupe - * @param g le groupe a supprimer - */ - public void delete(Groupe g); - - // *********************** - // FONCTION POUR RENOMER UN GROUPE - // *********************** - - /** - * Fonction pour renomer un groupe - * @param name - * @param g - */ - public void rename(String name, Groupe g); - - - // ********************** - // FONCTION POUR CREER UN GROUPE - // ********************** - - - /** - * Fonction permetant de créer une partition d'un groupe - * @param g le groupe a partitionner - * @param n le nombre de partition - * @param name le nom des partition - */ - public void partition(Groupe g, int n, String name); - - /** - * Fonction permettant de créer un sous-groupe d'un groupe - * @param g le groupe parent - * @param name le nom du sous-groupe - * @param min le nombre min d'etudiant - * @param max le nombre max d'etudiant - * @param ajout la liste des étudiants a ajouter au groupe - */ - public void free(Groupe g, String name, int min, int max, Set ajout); - - /** - * ajoute une nouvelle promotion - * @param min le nombre min - * @param max le nombre max - * @param name le nom - * @param ajout les etudiant a ajouter a la promo - */ - public void addPromo(int min, int max, String name, Set ajout); - - // ************************** - // FONCTION POUR LES CHANGEMENTS - // ****************************** - - /** - * Créer un changement depuis le groupe courant - * @param e l'etudiant - * @param b le groupe a changer - */ - public void changeGroupe(Etudiant e, Groupe b); - - /** - * Retourn les groupe auquel on peut demander a changer depuis le groupe courant - * - * @return la liste des groupes - */ - public Set getGroupePartition(); - - /** - * Fonction pour afficher une fenetre listnatn les changements - * - */ - public void listChange(); - - - /** - * Fonction pour effectuer un changement - * @param Changement le changement a effecteur - */ - public void change(Changement change); - - /** - * Fonction supprimant un changement - * - * @param to_delete la changement a delete - */ - public void deleteChange(Changement to_delete); - - - /** - * Fonction affichant les raison d'un changement - * - * @param change le changement - */ - public void showRaisonChange(Changement change); - - - /** - * Fonction affichant une fentre pour trouver un etudiant et tous ses groupes asociée - */ - public void findEtu(); - - /** - * Fonction pour recuperer les etudiant avec ce nom - * @param name le nom de(s) etudiants - * @return la liste - */ - public Set getEtu(String name); - - /** - *affiche les groupe d'un etudiant - * @param e l'etudiant - */ - public void showGroupOfEtudiant(Etudiant e); -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/MonPrint.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/MonPrint.java deleted file mode 100644 index 7f8d663..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/MonPrint.java +++ /dev/null @@ -1,12 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.API; -/** - * Toutes nos interfaces vont étendre cette interface. - */ -public interface MonPrint { - - /** - * Fonctionne comme ToPrint() sauf car une interface n'a pas le droit de faire un override sur ToPrint(). - * Toutes nos interfaces vont étendre cette interface. - */ - public String monPrint(); -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/MonPrint.java~ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/MonPrint.java~ deleted file mode 100644 index e5fafae..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/MonPrint.java~ +++ /dev/null @@ -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(); -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/TypeGroupe.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/TypeGroupe.java deleted file mode 100644 index e7e3119..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/TypeGroupe.java +++ /dev/null @@ -1,22 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.API; -public enum TypeGroupe { - ROOT ("Tous les étudiants"), PARTITION ("partition"), FREE ("libre") ; - - private final String name; - - private TypeGroupe(String s) { - name = s; - } - public static TypeGroupe getType(String s){ - switch(s){ - case("Tous les étudiants"): - return TypeGroupe.ROOT; - case("partition"): - return TypeGroupe.PARTITION; - case("libre"): - return TypeGroupe.FREE; - default: return null; - } - } - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/TypeGroupe.java~ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/TypeGroupe.java~ deleted file mode 100644 index 902843e..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/API/TypeGroupe.java~ +++ /dev/null @@ -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; - } -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractChangementFactoryNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractChangementFactoryNP.java deleted file mode 100644 index 0425714..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractChangementFactoryNP.java +++ /dev/null @@ -1,136 +0,0 @@ -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. - * - */ - -public class AbstractChangementFactoryNP implements AbstractChangementFactory { - - // l'usine à groupe travaillant en tandem avec cette usine. - private AbstractGroupeFactory agf; - - // On utilise une table de hachage pour retrouver facilement un changement (à partir de son id). - // Si il y a beaucoup de changements c'est plus rapide que de parcourir toute une liste. - private HashMap brain; - - /** - * Constructeur de l'usine à changement. - * @param agf l'usine à groupe travaillant en tandem avec cette usine. - */ - public AbstractChangementFactoryNP(AbstractGroupeFactory agf){ - Objects.requireNonNull(agf,"On ne peut pas créer une usine à changement dont l'usine à groupe parternaire est null"); - this.agf=agf; - this.brain=new HashMap(); - } - - - /** - * permet de récupérer l'usine abstraite pour les groupes qui fonctionne en tandem avec cette usine abstraite - * @return cette usine abstraite pour les groupes - */ - public AbstractGroupeFactory getGroupeFactory(){ - return this.agf; - } - - /** - * permet de récupérer les changements - * @return l'ensemble de tous les changements en attente - */ - public Set getAllChangements(){ - // la méthode value() d'un hashmap retourne la collection des valeurs. - // Il faut transformer la collection en Set. - // Un constructeur de HashSet permet de faire cette opération. - Set out = new HashSet(this.brain.values()); - return out; - } - - /** - * permet de mettre en oeuvre un changement connu de l'usine abstraite. - * - * @param c le changement à mettre en oeuvre. - * - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalStateException si le changement n'a pas de sens en l'état actuel (e.g. étudiant pas dans le groupe de départ a, groupe b inconnu, groupe a inconnu, etc). - * @throws java.lang.IllegalArgumentException si inconnu de l'usine abstraite - */ - public void applyChangement(Changement c){ - Objects.requireNonNull(c,"On ne peut pas appliquer un changement qui est null"); - Etudiant e = c.getEtu(); - Groupe a = c.getA(); - Groupe b = c.getB(); - - if (!agf.knows(a)) throw new IllegalStateException("Le groupe de départ du changement est inconnu. Impossible à mettre en oeuvre."); - - if (!agf.knows(b)) throw new IllegalStateException("Le groupe d'arrivée du changement est inconnu. Impossible à mettre en oeuvre."); - // pas encore implanté. - // if(!agf.getGroupesOfEtudiant(e).contains(a)) throw new IllegalStateException("Le groupe de départ ne contient pas l'étudiant. Impossible à mettre en oeuvre."); - - agf.dropFromGroupe(a,e); - agf.addToGroupe(b,e); - // En cas de succès, on enlève le changement du cerveau - this.brain.remove(Integer.valueOf(c.getId())); - } - - - /** - * permet de supprimer un changement connu de l'usine abstraite. - * - * @param c le changement à supprimer. - * - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalArgumentException si inconnu de l'usine abstraite - */ - public void deleteChangement(Changement c){ - Objects.requireNonNull(c,"On ne peut pas demander la suppression d'un changement qui est null"); - - this.brain.remove(Integer.valueOf(c.getId())); - - } - - /** - * permet d'ajouter un nouveau changement. - * - * @param A groupe actuel - * @param B groupe demandé - * @param e étudiant concerné par le changement - * - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalArgumentException si les groupes ou l'étudiant ne sont pas connus de la factory partenaire, ou e n'appartient pas à A ou A et B ne sont pas frères dans l'arbre des groupes. - * - */ - public void createChangement(Groupe A, Etudiant e, Groupe B){ - Objects.requireNonNull(A,"Le groupe d'origine ne peut pas être null"); - Objects.requireNonNull(B,"Le groupe d'arrivée ne peut pas être null"); - Objects.requireNonNull(e,"L'étudiant ne peut pas être null"); - - Changement c = new ChangementNP(A,e,B); - this.brain.put(Integer.valueOf(c.getId()),c); - } - - /** - * permet d'ajouter un nouveau changement. - * - * @param A groupe actuel - * @param B groupe demandé - * @param e étudiant concerné par le changement - * @param raison la raison du changement - * - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalArgumentException si les groupes ou l'étudiant ne sont pas connus de la factory partenaire, ou e n'appartient pas à A ou A et B ne sont pas frères dans l'arbre des groupes. - * - */ - @Override - public void createChangement(Groupe A, Etudiant e, Groupe B, String raison) { - Objects.requireNonNull(A,"Le groupe d'origine ne peut pas être null"); - Objects.requireNonNull(B,"Le groupe d'arrivée ne peut pas être null"); - Objects.requireNonNull(e,"L'étudiant ne peut pas être null"); - Objects.requireNonNull(raison,"La raison ne peut pas être null"); - - Changement c = new ChangementNP(A,e,B, raison); - this.brain.put(Integer.valueOf(c.getId()),c); - } - -} 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 c53e63a..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractGroupeFactoryNP.java +++ /dev/null @@ -1,274 +0,0 @@ -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. - * - */ - -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). - // Si il y a beaucoup de groupes c'est plus rapide que de parcourir toute une liste. - private HashMap brain; - - - - - /** - * Le constructeur fabrique le groupe promotion vide. - * Il faut ensuite y ajouter les étudiants. - * - * @param name le nom de la promotion - * @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){ - Objects.requireNonNull(name,"On ne peut pas créer une promotion dont le nom est null"); - this.promo=new GroupeNP(name,min,max); - this.brain=new HashMap(); - this.brain.put(Integer.valueOf(this.promo.getId()),this.promo); - } - - /** - * Test plutôt optimiste. Si la clé est identique alors on fait comme si c'était le bon groupe. - * @param g le groupe à tester - * @return true si le groupe est connu de l'usine abstraite - * - */ - public Boolean knows(Groupe g){ - return this.brain.containsKey(Integer.valueOf(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. - * - * @param g le groupe à supprimer - * - * @throws java.lang.NullPointerException si un argument est null - * @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){ - Objects.requireNonNull(g,"On ne peut pas enlever un groupe null car null n'est pas un groupe autorisé"); - if (!this.knows(g)){ - throw new IllegalArgumentException("Impossible d'enlever un groupe inconnu"); - } - g.getPointPoint().removeSousGroupe(g); - this.deleteRecursif(g); - } - - private void deleteRecursif(Groupe g){ - this.brain.remove(g.getId()); - for(Groupe sous: g.getSousGroupes()){ - this.deleteRecursif(sous); - } - } - - /** - * 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){ - Objects.requireNonNull(pere,"Le groupe pere ne peut pas être null"); - Objects.requireNonNull(name,"Le nouveau groupe ne peut pas avoir null comme nom"); - if (!this.knows(pere)){ - throw new IllegalArgumentException("Interdit d'ajouter un fils à un groupe inconnu"); - } - if (pere.getType().equals(TypeGroupe.PARTITION)){ - throw new IllegalArgumentException("Impossible d'ajouter un groupe à une parition. Il faut utiliser createPartition pour créer une partition"); - } - if ( min <= 0 || max < min){ - throw new IllegalArgumentException("Il faut que 0 < min <= max"); - } - Groupe g = new GroupeNP(pere,name,min,max); - pere.addSousGroupe(g); - this.brain.put(Integer.valueOf(g.getId()),g); - } - - /** - * 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 ajoute à la suite un numéro de 1 à n pour distinguer chaque groupe formant la partition) - * @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){ - Objects.requireNonNull(pere,"Le groupe pere ne peut pas être null"); - Objects.requireNonNull(name,"Le nouveau groupe ne peut pas avoir null comme nom"); - if (!this.knows(pere)){ - throw new IllegalArgumentException("Impossible de partitionner ce groupe inconnu"); - } - if (pere.getType().equals(TypeGroupe.PARTITION)){ - throw new IllegalArgumentException("Impossible de créer une partition à ce niveau. Il faut soit repartitionner le groupe au dessus, soit partitionner une partition en dessous."); - } - if ( n <= 0){ - throw new IllegalArgumentException("Le nombre de partitions doit être strictement positif"); - } - //Création de la racine de la partition. - Groupe copiePereRacinePartition = new GroupeNP(pere); - pere.addSousGroupe(copiePereRacinePartition); - this.brain.put(Integer.valueOf(copiePereRacinePartition.getId()),copiePereRacinePartition); - // création des sous-groupes - int min = 0; - int max = ((int) Math.floor(pere.getSize()/n))+1; - List groupes = new ArrayList(n); - for(int i = 0; i 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){ - if(nomEtu==null){ - return this.getPromotion().getEtudiants(); - } - // on cherche bêtement dans la promo. - Set out = new LinkedHashSet(); - for (Etudiant e : getPromotion().getEtudiants()){ - if (e.getNom().contains(nomEtu)){ - out.add(e); - } - } - 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){ - Set liste=new HashSet<>(); - for(Groupe g:this.brain.values()){ - boolean condit=false; - for(Etudiant e:g.getEtudiants()){ - if(e.getId()==etu.getId()){ - liste.add(g); - condit=true; - break; - } - if(condit==true) - break; - } - } - return liste; - } - - /** - * Ajout a l'API pour changer facilement de nom de groupe - * - * @param g le groupe - * @param name le nom - * @return true si possible - */ - @Override - public boolean changeNameGroupe(Groupe g, String name) { - g.setName(name); - return true; - } - - /** - * refresh le Groupe ainsi que ses etudiants - * @param g le groupe - * @return le groupe refresh/un parent si il a été refresh - */ - @Override - public Groupe refreshALL(Groupe g) { - return g; - } - - -} 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 deleted file mode 100644 index ea8c5bb..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ETU/Model/ModelEtu.java +++ /dev/null @@ -1,360 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP.ETU.Model; -import javax.swing.*; -import java.awt.*; -import java.util.Set; -import java.util.HashSet; -import fr.iutfbleau.projetIHM2022FI2.API.AbstractChangementFactory; -import fr.iutfbleau.projetIHM2022FI2.API.AbstractGroupeFactory; -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.API.Model; -import fr.iutfbleau.projetIHM2022FI2.Permanent.Controller.ObservateurFenetre; -import fr.iutfbleau.projetIHM2022FI2.Permanent.View.Chargement; -import fr.iutfbleau.projetIHM2022FI2.MP.ETU.View.FenetreEtudiant; -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 - private FenetreEtudiant fenEtu; - // le groupe courant - private AbstractGroupeFactory promo; - // le changement courant - private AbstractChangementFactory changement; - // la fenetre principale - private JFrame fenetre; - // l'etudiant courant - private Etudiant Selected; - - /** - * Constructeur du Model - * @param facto le groupe courant - * @param change le changement courant - */ - public ModelEtu(AbstractGroupeFactory facto, AbstractChangementFactory change){ - this.fenetre=new JFrame(); - this.fenetre.setSize(1200, 720); - this.fenetre.setLocation(100,100); - this.fenetre.addWindowListener(new ObservateurFenetre()); - this.fenetre.setLayout(new GridLayout(1,2)); - this.fenetre.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); - this.fenetre.setMinimumSize(this.fenetre.getSize()); - Chargement ch=new Chargement(this.fenetre); - this.promo=facto; - this.changement=change; - if(this.promo.getPromotion()==null){ - this.promo=null; - } - 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{ - this.showGroupe(null); - } - } - - - @Override - /** - * Fonction pour refresh/changer de groupe d'affichage - * @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); - this.fenetre.getContentPane().removeAll(); - this.panGroupe.add(this.fenGr.getPan()); - this.panGroupe.revalidate(); - this.fenetre.add(this.panGroupe); - JScrollPane scroll=new JScrollPane(this.fenEtu.getPan()); - scroll.getVerticalScrollBar().setUnitIncrement(15); - this.fenetre.add(scroll); - this.fenetre.revalidate(); - } - @Override - /** - * getteur de la fenetre - * @return JFrame la fenetre - */ - public JFrame getFenetre() { - return fenetre; - } - - /** - * Permet d'obtenir les étudiants du groupe courant. - * @return les étudiants du groupe courant - */ - - @Override - public Set getEtudiant(){ - return this.promo.getPromotion().getEtudiants(); - } - - private void initEtu(String err){ - Set liste=this.promo.getPromotion().getEtudiants(); - JPanel panel = new JPanel(); - JPanel myPanel = new JPanel(); - JTextField idd = new JTextField(15); - myPanel.add(new JLabel("Id:")); - myPanel.add(idd); - if(err!=null){ - myPanel.add(new JLabel(err, SwingConstants.RIGHT)); - } - panel.add(myPanel); - - if(JOptionPane.showConfirmDialog(this.fenetre, panel, "login", JOptionPane.OK_CANCEL_OPTION) != JOptionPane.OK_OPTION){ - this.fenetre.dispose(); - System.exit(0); - }else{ - try{ - int id=Integer.parseInt(idd.getText()); - for(Etudiant et:liste){ - if(et.getId()==id){ - this.Selected=et; - return; - } - } - }catch(NumberFormatException e){ - this.initEtu("Id incomprhéhensible"); - } - } - this.initEtu("Etudiant introuvable"); - } - - // ************************** - // FONCTION POUR LES CHANGEMENTS - // ****************************** - /** - * Permet de changer de groupe. - * @param e l'étudiant qui change de groupe - * @param g le groupe dans lequel l'étudiant va - */ - @Override - public void changeGroupe(Etudiant e, Groupe b){ - if(b==null) - return; - b=this.promo.refreshALL(b); - if(b.getEtudiants()!=null && b.getMax()>b.getEtudiants().size()+1){ - if(b.getEtudiants().size()>this.fenGr.getG().getEtudiants().size()){ - JPanel myPanel= new JPanel(new GridLayout(2,1)); - JTextField xField = new JTextField(100); - xField.setMinimumSize(new Dimension(100, 100)); - xField.setPreferredSize(new Dimension(100,100)); - myPanel.add(new JLabel("Ce Groupe est plus grand que le votre raison du changement:")); - myPanel.add(xField); - if(JOptionPane.showConfirmDialog(this.fenetre, myPanel, "Changer dans quel Groupe ?", JOptionPane.OK_CANCEL_OPTION)==JOptionPane.OK_OPTION){ - //IL faut que l'etudiant detaile un minimun la raison - if(xField.getText().length()>5){ - this.changement.createChangement(this.fenGr.getG(), e, b, xField.getText()); - }else{ - JOptionPane.showMessageDialog(this.fenetre, "veuillez detailler votre raison", "erreur", JOptionPane.ERROR_MESSAGE); - } - } - }else{ - this.changement.createChangement(this.fenGr.getG(), e, b); - } - }else{ - JOptionPane.showMessageDialog(this.fenetre, "impossible trop d'etudiant dans l'autre Groupe", "erreur", JOptionPane.ERROR_MESSAGE); - } - this.showGroupe(this.fenGr.getG()); - } -/** - * pemet d'obtenir les sous groupes du groupe courant. - * @return les sous groupes du groupe courant - */ - @Override - public Set getGroupePartition(){ - this.promo.refreshALL(this.fenGr.getG().getPointPoint()); - Set retour=new HashSet<>(); - if(this.fenGr.getG().getPointPoint().getType()!=TypeGroupe.PARTITION) - throw new IllegalStateException("impossible de changer un étudiant d'un groupe ne provenant pas d'une partition"); - for(Groupe sous:this.fenGr.getG().getPointPoint().getSousGroupes()){ - if(sous.getId()!=this.fenGr.getG().getId()){ - retour.add(sous); - } - } - return retour; - } - /** - * ajoute un étudiant dans un groupe. - * @param e l'étudiant à ajouter - * @param g le groupe dans lequel l'étudiant va - * @return true si l'ajout a réussi, false sinon - */ - @Override - public boolean addEtudiant(Groupe g, Etudiant e) { - // TODO Auto-generated method stub - return false; - } - - /** - * supprime un groupe. - * @param g le groupe à supprimer - */ - @Override - public void delete(Groupe g) { - // TODO Auto-generated method stub - - } - - /** - * rennome un groupe. - * @param g le groupe à renommer - * @param nom le nouveau nom du groupe - * - */ - @Override - public void rename(String name, Groupe g) { - // TODO Auto-generated method stub - - } - - /** - * Fonction permetant de créer une partition d'un groupe - * @param g le groupe a partitionner - * @param n le nombre de partition - * @param name le nom des partition - */ - @Override - public void partition(Groupe g, int n, String name) { - // TODO Auto-generated method stub - - } - - /** - * Fonction permettant de créer un sous-groupe d'un groupe - * @param g le groupe parent - * @param name le nom du sous-groupe - * @param min le nombre min d'etudiant - * @param max le nombre max d'etudiant - * @param ajout la liste des étudiants a ajouter au groupe - */ - @Override - public void free(Groupe g, String name, int min, int max, Set ajout) { - // TODO Auto-generated method stub - - } - - - /** - * ajoute une nouvelle promotion - * @param min le nombre min - * @param max le nombre max - * @param name le nom - * @param ajout les etudiant a ajouter a la promo - */ - @Override - public void addPromo(int min, int max, String name, Set ajout) { - // TODO Auto-generated method stub - - } - -/** - * Fonction pour supprimer un etudiant. - * @param e l'etudiant a supprimer - * @return boolean true si l'etudiant a ete supprimer, false sinon - - */ - @Override - public boolean deleteEtu(Etudiant e) { - // TODO Auto-generated method stub - return false; - } - - /** - * Fonction pour afficher une fenetre listnatn les changements - * - */ - @Override - public void listChange() { - // TODO Auto-generated method stub - - } - - /** - * Fonction pour effectuer un changement - * @param Changement le changement a effecteur - */ - @Override - public void change(Changement change) { - // TODO Auto-generated method stub - - } - - /** - * Fonction supprimant un changement - * - * @param to_delete la changement a delete - */ - @Override - public void deleteChange(Changement to_delete) { - // TODO Auto-generated method stub - - } - - - /** - * Fonction affichant les raison d'un changement - * - * @param change le changement - */ - @Override - public void showRaisonChange(Changement change) { - // TODO Auto-generated method stub - - } - - /** - * Fonction affichant une fentre pour trouver un etudiant et tous ses groupes asociée - */ - @Override - public void findEtu() { - // TODO Auto-generated method stub - - } - - - /** - * Fonction pour recuperer les etudiant avec ce nom - * @param name le nom de(s) etudiants - * @return la liste - */ - @Override - public Set getEtu(String name) { - // TODO Auto-generated method stub - return null; - } - - - /** - *affiche les groupe d'un etudiant - * @param e l'etudiant - */ - @Override - public void showGroupOfEtudiant(Etudiant e) { - // TODO Auto-generated method stub - - } - -} 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 deleted file mode 100644 index 59de326..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/PROF/Model/ModelProf.java +++ /dev/null @@ -1,325 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP.PROF.Model; -import javax.swing.*; -import java.awt.*; -import java.util.Set; -import java.util.HashSet; -import fr.iutfbleau.projetIHM2022FI2.API.AbstractChangementFactory; -import fr.iutfbleau.projetIHM2022FI2.API.AbstractGroupeFactory; -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.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; - -/** - * 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 - private FenetreEtudiant fenEtu; - // le groupe courant - private AbstractGroupeFactory promo; - // le changement courant - private AbstractChangementFactory changement; - // la fenetre principale - private JFrame fenetre; - - /** - * Constructeur du Model. - * - * @param agf le groupe principal - * @param chan le changement courant - */ - public ModelProf(AbstractGroupeFactory agf, AbstractChangementFactory chan){ - this.fenetre=new JFrame(); - this.fenetre.setSize(1200, 720); - this.fenetre.setLocation(100,100); - this.fenetre.addWindowListener(new ObservateurFenetre()); - this.fenetre.setLayout(new GridLayout(1,2)); - this.fenetre.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); - this.fenetre.setMinimumSize(this.fenetre.getSize()); - Chargement ch=new Chargement(this.fenetre); - this.promo=agf; - this.changement=chan; - 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); - }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{ - this.showGroupe(null); - } - } - - - @Override - /** - * Fonction pour refresh/changer de groupe d'affichage - * @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.fenEtu=new FenetreEtudiant(g); - this.fenetre.getContentPane().removeAll(); - this.panGroupe.add(this.fenGr.getPan()); - this.panGroupe.revalidate(); - this.fenetre.add(this.panGroupe); - JScrollPane scroll=new JScrollPane(this.fenEtu.getPan()); - scroll.getVerticalScrollBar().setUnitIncrement(15); - this.fenetre.add(scroll); - this.fenetre.revalidate(); - } - @Override - /** - * getteur de la fenetre - * @return JFrame la fenetre - */ - public JFrame getFenetre() { - return fenetre; - } - /** - * permet d'obtenir l'ensemble des etudiants - * @return - */ - @Override - public Set getEtudiant(){ - return this.promo.getPromotion().getEtudiants(); - } - - // ************************** - // FONCTION POUR LES CHANGEMENTS - // ****************************** - /** - * Créer un changement depuis le groupe courant - * @param e l'etudiant - * @param b le groupe a changer - */ - @Override - public void changeGroupe(Etudiant e, Groupe b){ - if(b==null) - return; - b=this.promo.refreshALL(b); - if(b.getEtudiants()!=null && b.getMax()>b.getEtudiants().size()+1){ - if(b.getEtudiants().size()>this.fenGr.getG().getEtudiants().size()){ - JPanel myPanel= new JPanel(new GridLayout(2,1)); - JTextField xField = new JTextField(100); - xField.setMinimumSize(new Dimension(100, 100)); - xField.setPreferredSize(new Dimension(100,100)); - myPanel.add(new JLabel("Ce Groupe est plus grand que le votre raison du changement:")); - myPanel.add(xField); - if(JOptionPane.showConfirmDialog(this.fenetre, myPanel, "Changer dans quel Groupe ?", JOptionPane.OK_CANCEL_OPTION)==JOptionPane.OK_OPTION){ - //IL faut que l'etudiant detaile un minimun la raison - if(xField.getText().length()>5){ - this.changement.createChangement(this.fenGr.getG(), e, b, xField.getText()); - }else{ - JOptionPane.showMessageDialog(this.fenetre, "veuillez detailler votre raison", "erreur", JOptionPane.ERROR_MESSAGE); - } - } - }else{ - this.changement.createChangement(this.fenGr.getG(), e, b); - } - }else{ - JOptionPane.showMessageDialog(this.fenetre, "impossible trop d'etudiant dans l'autre Groupe", "erreur", JOptionPane.ERROR_MESSAGE); - } - this.showGroupe(this.fenGr.getG()); - } - /** - * Retourn les groupe auquel on peut demander a changer depuis le groupe courant - * - * @return la liste des groupes - */ - @Override - public Set getGroupePartition(){ - this.promo.refreshALL(this.fenGr.getG().getPointPoint()); - Set retour=new HashSet<>(); - if(this.fenGr.getG().getPointPoint().getType()!=TypeGroupe.PARTITION) - throw new IllegalStateException("impossible de changer un étudiant d'un groupe ne provenant pas d'une partition"); - for(Groupe sous:this.fenGr.getG().getPointPoint().getSousGroupes()){ - if(sous.getId()!=this.fenGr.getG().getId()){ - retour.add(sous); - } - } - return retour; - } - /** - * Fonction pour ajouter un étudiant au groupe - * @param g - * @param e - * @return boolean pour savoir si il a pus être ajouter - */ - @Override - public boolean addEtudiant(Groupe g, Etudiant e) { - // TODO Auto-generated method stub - return false; - } - - /** - * Fonction pour supprimer un groupe - * @param g le groupe a supprimer - */ - @Override - public void delete(Groupe g) { - // TODO Auto-generated method stub - - } - - - /** - * Fonction pour renomer un groupe - * @param name - * @param g - */ - @Override - public void rename(String name, Groupe g) { - // TODO Auto-generated method stub - - } - - - /** - * Fonction permetant de créer une partition d'un groupe - * @param g le groupe a partitionner - * @param n le nombre de partition - * @param name le nom des partition - */ - @Override - public void partition(Groupe g, int n, String name) { - // TODO Auto-generated method stub - - } - - - /** - * Fonction permettant de créer un sous-groupe d'un groupe - * @param g le groupe parent - * @param name le nom du sous-groupe - * @param min le nombre min d'etudiant - * @param max le nombre max d'etudiant - * @param ajout la liste des étudiants a ajouter au groupe - */ - @Override - public void free(Groupe g, String name, int min, int max, Set ajout) { - // TODO Auto-generated method stub - - } - - /** - * ajoute une nouvelle promotion - * @param min le nombre min - * @param max le nombre max - * @param name le nom - * @param ajout les etudiant a ajouter a la promo - */ - @Override - public void addPromo(int min, int max, String name, Set ajout) { - // TODO Auto-generated method stub - - } - -/** - * Fonction pour supprimer un etudiant. - * @param e l'etudiant a supprimer - * @return boolean true si l'etudiant a ete supprimer, false sinon - */ - @Override - public boolean deleteEtu(Etudiant e) { - // TODO Auto-generated method stub - return false; - } - /** - * Fonction pour afficher une fenetre listnatn les changements - * - */ - @Override - public void listChange() { - // TODO Auto-generated method stub - - } - - - /** - * Fonction pour effectuer un changement - * @param Changement le changement a effecteur - */ - @Override - public void change(Changement change) { - // TODO Auto-generated method stub - - } - - /** - * Fonction supprimant un changement - * - * @param to_delete la changement a delete - */ - @Override - public void deleteChange(Changement to_delete) { - // TODO Auto-generated method stub - - } - - - /** - * Fonction affichant les raison d'un changement - * - * @param change le changement - */ - @Override - public void showRaisonChange(Changement change) { - // TODO Auto-generated method stub - - } - - /** - * Fonction affichant une fentre pour trouver un etudiant et tous ses groupes asociée - */ - @Override - public void findEtu() { - // TODO Auto-generated method stub - - } - - /** - * Fonction pour recuperer les etudiant avec ce nom - * @param name le nom de(s) etudiants - * @return la liste - */ - @Override - public Set getEtu(String name) { - // TODO Auto-generated method stub - return null; - } - - /** - *affiche les groupe d'un etudiant - * @param e l'etudiant - */ - @Override - public void showGroupOfEtudiant(Etudiant e) { - // TODO Auto-generated method stub - - } - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Model/ModelRoot.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Model/ModelRoot.java deleted file mode 100644 index 6e62a22..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/ROOT/Model/ModelRoot.java +++ /dev/null @@ -1,463 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.Model; -import java.util.HashSet; -import java.util.Set; -import javax.swing.*; -import java.awt.*; - -import fr.iutfbleau.projetIHM2022FI2.API.AbstractChangementFactory; -import fr.iutfbleau.projetIHM2022FI2.API.AbstractGroupeFactory; -import fr.iutfbleau.projetIHM2022FI2.API.Changement; -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.MNP.AbstractChangementFactoryNP; -import fr.iutfbleau.projetIHM2022FI2.MNP.AbstractGroupeFactoryNP; -import fr.iutfbleau.projetIHM2022FI2.MP.ROOT.View.FenetreChangement; -import fr.iutfbleau.projetIHM2022FI2.MP.ROOT.View.FenetreEtudiant; -import fr.iutfbleau.projetIHM2022FI2.MP.ROOT.View.FenetreGroupe; -import fr.iutfbleau.projetIHM2022FI2.MP.ROOT.View.FindBarFenetre; -import fr.iutfbleau.projetIHM2022FI2.Permanent.Controller.ObservateurChangeGroupe; -import fr.iutfbleau.projetIHM2022FI2.Permanent.Controller.ObservateurFenetre; -import fr.iutfbleau.projetIHM2022FI2.Permanent.View.Chargement; - -/** - * Le Model de L'IHM - */ -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 - private FenetreEtudiant fenEtu; - // le groupe courant - private AbstractGroupeFactory promo; - // le changement courant - private AbstractChangementFactory changement; - // la fenetre principale - private JFrame fenetre; - //fenetre du changement - private FenetreChangement fenChange; - - /** - * Constructeur du model. - * @param agf le groupe courant - * @param change le changement courant - */ - public ModelRoot(AbstractGroupeFactory agf, AbstractChangementFactory change){ - this.fenetre=new JFrame(); - this.fenetre.setSize(1200, 720); - this.fenetre.setLocation(100,100); - this.fenetre.addWindowListener(new ObservateurFenetre()); - this.fenetre.setLayout(new GridLayout(1,2)); - this.fenetre.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); - this.fenetre.setMinimumSize(this.fenetre.getSize()); - Chargement ch=new Chargement(this.fenetre); - this.promo=agf; - 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{ - this.showGroupe(null); - } - this.fenChange=null; - } - - @Override - /** - * Fonction pour refresh/changer de groupe d'affichage - * @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.fenEtu=new FenetreEtudiant(g, this); - this.fenetre.getContentPane().removeAll(); - this.panGroupe.add(this.fenGr.getPan()); - this.panGroupe.revalidate(); - this.fenetre.add(this.panGroupe); - JScrollPane scroll=new JScrollPane(this.fenEtu.getPan()); - scroll.getVerticalScrollBar().setUnitIncrement(15); - this.fenetre.add(scroll); - this.fenetre.revalidate(); - } - @Override - /** - * getteur de la fenetre - * @return JFrame la fenetre - */ - public JFrame getFenetre() { - return fenetre; - } - /** - * permet d'obtenir l'ensemble des etudiants - * @return - */ - @Override - public Set getEtudiant(){ - return this.promo.getEtudiants(null); - } - - // *********************** - // FONCTION POUR SUPRIMER UN ETUDIANT - // *********************** -/** - * Fonction pour supprimer un etudiant. - * @param e l'etudiant a supprimer - * @return boolean true si l'etudiant a ete supprimer, false sinon - */ - @Override - public boolean deleteEtu(Etudiant e){ - if(this.deleteEtutoChildren(e, this.fenGr.getG())){ - this.promo.dropFromGroupe(this.fenGr.getG(), e); - this.showGroupe(this.fenGr.getG()); - return true; - }else{ - return false; - } - } -/** - * Permet de savoir si un étudiant peut être supprimé - * @param e l'étudiant à supprimer - * @param g le groupe dans lequel on cherche - * @return true si possible, false sinon - */ - private boolean deleteEtutoChildren(Etudiant e, Groupe g){ - if(g.getMax() ajout){ - Chargement ch=new Chargement(this.fenetre); - this.fenetre.setVisible(false); - //on creer le groupe - this.promo.createGroupe(g, name, min, max); - Groupe creer=null; - //on le recupere - for(Groupe gr:g.getSousGroupes()){ - if(gr.getName()==name){ - creer=gr; - break; - } - } - //on y ajoute les étudiant - int n=0; - for(Etudiant e:ajout){ - if(this.addEtudiant(creer, e)==false) - n++; - } - creer=this.promo.refreshALL(creer); - ch.dispose(); - this.fenetre.setVisible(true); - if(n>0) - JOptionPane.showMessageDialog(this.fenetre, "erreur impossible d'ajouter "+n+" etudiants par manque de place dans le groupe de ses parents", "erreur", JOptionPane.ERROR_MESSAGE); - //Si finalement avec les etudiants qui n'ont pas pus être ajouter le min n'est pas atteint - if(creer.getEtudiants().size()+1<=creer.getMin()){ - //On le supprime - this.promo.deleteGroupe(creer); - JOptionPane.showMessageDialog(this.fenetre, "en raison du manque d'etudiant pour le nombre min le groupe n'a pas pus être créer", "errer", JOptionPane.ERROR_MESSAGE); - } - this.showGroupe(g); - } - /** - * ajoute une nouvelle promotion - * @param min le nombre min - * @param max le nombre max - * @param name le nom - * @param ajout les etudiant a ajouter a la promo - */ - @Override - public void addPromo(int min, int max, String name, Set ajout){ - Chargement ch=new Chargement(this.fenetre); - this.promo=new AbstractGroupeFactoryNP(name, min, max); - this.changement=new AbstractChangementFactoryNP(this.promo); - this.fenetre.setVisible(false); - for(Etudiant e:ajout){ - this.addEtudiant(this.promo.getPromotion(), e); - } - ch.dispose(); - this.fenetre.setVisible(true); - this.showGroupe(this.promo.getPromotion()); - } - - - /** - * Créer un changement depuis le groupe courant - * @param e l'etudiant - * @param b le groupe a changer - */ - @Override - public void changeGroupe(Etudiant e, Groupe b){ - if(b==null) - return; - b=this.promo.refreshALL(b); - if(b.getEtudiants()!=null && b.getMax()>b.getEtudiants().size()+1){ - if(b.getEtudiants().size()>this.fenGr.getG().getEtudiants().size()){ - JPanel myPanel= new JPanel(new GridLayout(2,1)); - JTextField xField = new JTextField(100); - xField.setMinimumSize(new Dimension(100, 100)); - xField.setPreferredSize(new Dimension(100,100)); - myPanel.add(new JLabel("Ce Groupe est plus grand que le votre raison du changement:")); - myPanel.add(xField); - if(JOptionPane.showConfirmDialog(this.fenetre, myPanel, "Changer dans quel Groupe ?", JOptionPane.OK_CANCEL_OPTION)==JOptionPane.OK_OPTION){ - //IL faut que l'etudiant detaile un minimun la raison - if(xField.getText().length()>5){ - this.changement.createChangement(this.fenGr.getG(), e, b, xField.getText()); - }else{ - JOptionPane.showMessageDialog(this.fenetre, "veuillez detailler votre raison", "erreur", JOptionPane.ERROR_MESSAGE); - } - } - }else{ - this.changement.createChangement(this.fenGr.getG(), e, b); - } - }else{ - JOptionPane.showMessageDialog(this.fenetre, "impossible trop d'etudiant dans l'autre Groupe", "erreur", JOptionPane.ERROR_MESSAGE); - } - this.showGroupe(this.fenGr.getG()); - } - /** - * Retourn les groupe auquel on peut demander a changer depuis le groupe courant - * - * @return la liste des groupes - */ - @Override - public Set getGroupePartition(){ - this.promo.refreshALL(this.fenGr.getG().getPointPoint()); - Set retour=new HashSet(); - if(this.fenGr.getG().getPointPoint().getType()!=TypeGroupe.PARTITION) - throw new IllegalStateException("impossible de changer un étudiant d'un groupe ne provenant pas d'une partition"); - for(Groupe sous:this.fenGr.getG().getPointPoint().getSousGroupes()){ - if(sous.getId()!=this.fenGr.getG().getId()){ - retour.add(sous); - } - } - return retour; - } - - /* (non-Javadoc) - * @see fr.iutfbleau.projetIHM2022FI2.API.Model#listChange() - */ - /** - * Fonction pour afficher une fenetre listnatn les changements - * - */ - @Override - public void listChange() { - this.fenChange=new FenetreChangement(changement, this); - JOptionPane.showMessageDialog(this.fenetre, new JScrollPane(this.fenChange), "liste des changements", JOptionPane.OK_OPTION); - } - /** - * Fonction pour effectuer un changement - * @param Changement le changement a effecteur - */ - @Override - public void change(Changement change) { - this.changement.applyChangement(change); - this.fenChange.refresh(); - if(change.getA()==this.fenGr.getG()){ - this.showGroupe(this.fenGr.getG()); - } - } - - /** - * Fonction supprimant un changement - * - * @param to_delete la changement a delete - */ - @Override - public void deleteChange(Changement to_delete) { - this.changement.deleteChangement(to_delete); - this.fenChange.refresh(); - } - - /** - * Fonction affichant les raison d'un changement - * - * @param change le changement - */ - @Override - public void showRaisonChange(Changement change) { - JOptionPane.showMessageDialog(this.fenetre, new JLabel(change.getRaison()), "Raison de la demande", JOptionPane.OK_OPTION); - } - /** - * Fonction affichant une fentre pour trouver un etudiant et tous ses groupes asociée - */ - @Override - public void findEtu() { - JScrollPane scroll=new JScrollPane(new FindBarFenetre(this).getPanel()); - scroll.getVerticalScrollBar().setUnitIncrement(5); - JOptionPane.showMessageDialog(this.fenetre, scroll, "chercher un etudiant", JOptionPane.OK_OPTION); - } - - /* (non-Javadoc) - * @see fr.iutfbleau.projetIHM2022FI2.API.Model#getEtu(java.lang.String) - */ - - /** - * Fonction pour recuperer les etudiant avec ce nom - * @param name le nom de(s) etudiants - * @return la liste - */ - @Override - public Set getEtu(String name) { - return this.promo.getEtudiants(name); - } - /** - *affiche les groupe d'un etudiant - * @param e l'etudiant - */ - @Override - public void showGroupOfEtudiant(Etudiant e){ - Set liste=this.promo.getGroupesOfEtudiant(e); - JPanel myPanel; - if(liste!=null && liste.size()>0){ - myPanel=new JPanel(new GridLayout(liste.size()/2+1, 2, 20, 20)); - for(Groupe g:liste){ - JButton bout=new JButton(g.getName()); - bout.addActionListener(new ObservateurChangeGroupe(this, g)); - myPanel.add(bout); - } - }else{ - myPanel=new JPanel(new GridLayout(2, 2, 20, 20)); - myPanel.add(new JLabel("Cet Etudiant n'appartient encore a aucun groupe")); - } - JOptionPane.showMessageDialog(this.fenChange, myPanel, "groupe de l'etudiant", JOptionPane.OK_OPTION); - } - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/AbstractChangementFactoryNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/AbstractChangementFactoryNP.java deleted file mode 100644 index 6788ee3..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/AbstractChangementFactoryNP.java +++ /dev/null @@ -1,358 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP; -import fr.iutfbleau.projetIHM2022FI2.API.*; -import java.sql.Connection; -import org.mariadb.jdbc.*; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.PreparedStatement; -import java.sql.SQLException; -import javax.swing.JFrame; -import javax.swing.JOptionPane; -import java.util.*; -/** - * Usine abstraite gérant l'ensemble des changements. - * - */ - -public class AbstractChangementFactoryNP implements AbstractChangementFactory { - - // l'usine à groupe travaillant en tandem avec cette usine. - private AbstractGroupeFactory agf; - private JFrame fenetre; - // On utilise une table de hachage pour retrouver facilement un changement (à partir de son id). - // Si il y a beaucoup de changements c'est plus rapide que de parcourir toute une liste. - private HashMap brain; - /** - * Constructeur de l'usine à changement. - * @param agf l'usine à groupe travaillant en tandem avec cette usine. - * @param fenetre la fenetre principale - */ - public AbstractChangementFactoryNP(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; - this.brain=new HashMap(); - this.getChange(); - } - /** - * Constructeur de l'usine à changement. - * @param agf l'usine à groupe travaillant en tandem avec cette usine. - * @param fenetre la fenetre principale - * @param liste la liste des changements - */ - public AbstractChangementFactoryNP(AbstractGroupeFactory agf, JFrame fenetre, Set 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; - this.brain=new HashMap(); - for(Changement ch:liste){ - this.brain.put(ch.getId(), ch); - } - this.getChange(); - } - - - /** - * permet de récupérer l'usine abstraite pour les groupes qui fonctionne en tandem avec cette usine abstraite - * @return cette usine abstraite pour les groupes - */ - public AbstractGroupeFactory getGroupeFactory(){ - return this.agf; - } - - /** - * permet de récupérer les changements - * @return l'ensemble de tous les changements en attente - */ - public Set getAllChangements(){ - this.refresh(); - // la méthode value() d'un hashmap retourne la collection des valeurs. - // Il faut transformer la collection en Set. - // Un constructeur de HashSet permet de faire cette opération. - Set out = new HashSet(this.brain.values()); - return out; - } - - /** - * permet de mettre en oeuvre un changement connu de l'usine abstraite. - * @param c le changement à mettre en oeuvre. - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalStateException si le changement n'a pas de sens en l'état actuel (e.g. étudiant pas dans le groupe de départ a, groupe b inconnu, groupe a inconnu, etc). - * @throws java.lang.IllegalArgumentException si inconnu de l'usine abstraite - */ - public void applyChangement(Changement c){ - Objects.requireNonNull(c,"On ne peut pas appliquer un changement qui est null"); - Etudiant e = c.getEtu(); - Groupe a = c.getA(); - Groupe b = c.getB(); - - if (!agf.knows(a)) throw new IllegalStateException("Le groupe de départ du changement est inconnu. Impossible à mettre en oeuvre."); - - if (!agf.knows(b)) throw new IllegalStateException("Le groupe d'arrivée du changement est inconnu. Impossible à mettre en oeuvre."); - // pas encore implanté. - // if(!agf.getGroupesOfEtudiant(e).contains(a)) throw new IllegalStateException("Le groupe de départ ne contient pas l'étudiant. Impossible à mettre en oeuvre."); - - agf.dropFromGroupe(a,e); - agf.addToGroupe(b,e); - // En cas de succès, on enlève le changement du cerveau - this.deleteChangement(c); - for(Changement ch: this.getAllChangements()){ - if(ch.getB().getSize()+1==ch.getB().getMax()){ - this.deleteChangement(ch); - } - } - } - - - /** - * permet de supprimer un changement connu de l'usine abstraite. - * @param c le changement à supprimer. - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalArgumentException si inconnu de l'usine abstraite - */ - public void deleteChangement(Changement c){ - Objects.requireNonNull(c,"On ne peut pas demander la suppression d'un changement qui est null"); - Connection cnx=this.cnx(); - try{ - PreparedStatement pst=cnx.prepareStatement("DELETE FROM `Changement` where `id`=?"); - pst.setInt(1, c.getId()); - pst.executeUpdate(); - pst.close(); - }catch(SQLException er){ - System.out.println(er.toString()); - if(this.erreurSQL()){ - this.deleteChangement(c); - }else{ - return; - } - } - this.close(cnx); - this.brain.remove(c.getId()); - } - - /** - * permet d'ajouter un nouveau changement. - * - * @param A groupe actuel - * @param B groupe demandé - * @param e étudiant concerné par le changement - * - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalArgumentException si les groupes ou l'étudiant ne sont pas connus de la factory partenaire, ou e n'appartient pas à A ou A et B ne sont pas frères dans l'arbre des groupes. - * - */ - public void createChangement(Groupe A, Etudiant e, Groupe B){ - Objects.requireNonNull(A,"Le groupe d'origine ne peut pas être null"); - Objects.requireNonNull(B,"Le groupe d'arrivée ne peut pas être null"); - Objects.requireNonNull(e,"L'étudiant ne peut pas être null"); - Changement c = new ChangementNP(A,e,B); - this.brain.put(Integer.valueOf(c.getId()),c); - Connection cnx=this.cnx(); - try{ - PreparedStatement pst=cnx.prepareStatement("SELECT * FROM `Changement` where `idGroupeA`=? AND `idGroupeB`=? AND `idEtudiant`=?; "); - pst.setInt(1, A.getId()); - pst.setInt(2, B.getId()); - pst.setInt(3, e.getId()); - if(!pst.executeQuery().next()){ - pst.close(); - pst=cnx.prepareStatement("INSERT INTO `Changement` (`idGroupeA`, `idGroupeB`, `idEtudiant`, `id`) VALUES (?, ?, ?, ?);"); - pst.setInt(1, A.getId()); - pst.setInt(2, B.getId()); - pst.setInt(3, e.getId()); - pst.setInt(4, c.getId()); - pst.executeUpdate(); - pst.close(); - }else{ - pst.close(); - JOptionPane.showMessageDialog(this.fenetre, "Vous Avez deja demander a Chnager dans ce Groupe", "erreur", JOptionPane.ERROR_MESSAGE); - } - }catch(SQLException er){ - System.out.println(er.toString()); - if(this.erreurSQL()){ - this.createChangement(A, e, B); - }else{ - return; - } - } - this.close(cnx); - } - - @Override - /** - * permet d'ajouter un nouveau changement. de type 2 - * - * @param A groupe actuel - * @param B groupe demandé - * @param e étudiant concerné par le changement - * @param raison la raison du changement de type 2 - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalArgumentException si les groupes ou l'étudiant ne sont pas connus de la factory partenaire, ou e n'appartient pas à A ou A et B ne sont pas frères dans l'arbre des groupes. - * - */ - public void createChangement(Groupe A, Etudiant e, Groupe B, String raison){ - Objects.requireNonNull(A,"Le groupe d'origine ne peut pas être null"); - Objects.requireNonNull(B,"Le groupe d'arrivée ne peut pas être null"); - Objects.requireNonNull(e,"L'étudiant ne peut pas être null"); - Changement c = new ChangementNP(A,e,B, raison); - this.brain.put(Integer.valueOf(c.getId()),c); - Connection cnx=this.cnx(); - try{ - PreparedStatement pst=cnx.prepareStatement("SELECT * FROM `Changement` where `idGroupeA`=? AND `idGroupeB`=? AND `idEtudiant`=?; "); - pst.setInt(1, A.getId()); - pst.setInt(2, B.getId()); - pst.setInt(3, e.getId()); - if(!pst.executeQuery().next()){ - pst.close(); - pst=cnx.prepareStatement("INSERT INTO `Changement` (`id`, `idGroupeA`, `idGroupeB`, `idEtudiant`, `Raison`) VALUES (?, ?, ?, ?, ?);"); - pst.setInt(1, c.getId()); - pst.setInt(2, A.getId()); - pst.setInt(3, B.getId()); - pst.setInt(4, e.getId()); - pst.setString(5, raison); - pst.executeUpdate(); - pst.close(); - }else{ - pst.close(); - JOptionPane.showMessageDialog(this.fenetre, "Vous Avez deja demander a Chnager dans ce Groupe", "erreur", JOptionPane.ERROR_MESSAGE); - } - }catch(SQLException er){ - System.out.println(er.toString()); - if(this.erreurSQL()){ - this.createChangement(A, e, B, raison); - }else{ - return; - } - } - this.close(cnx); - } - - - // ********************** - // FONCTION POUR SIMPLIFIER LES Modification BD - // *********************** - - /** - * permet de se connecter à la base de donnée - * - * @return la connexion à la base de donnée - */ - private Connection cnx(){ - //On se Connecte a la BD - try{ - Class.forName("org.mariadb.jdbc.Driver"); - Connection cnx = DriverManager.getConnection( - "jdbc:mariadb://dwarves.iut-fbleau.fr/chaignea", - "chaignea", "Chaigneauphpmyadmin"); - return cnx; - }catch(Exception e){ - if(this.erreurCO()==true){ - return this.cnx(); - } - } - return null; - } - - /** - * permet de détécter une erreur de connexion à la base de donnée - * - * @return true si une erreur est détéctée, false sinon - * - * - */ - private boolean erreurCO(){ - if(JOptionPane.showConfirmDialog(this.fenetre, "erreur connection a la BD reassayer?", "erreur connection", JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){ - return true; - }else{ - this.fenetre.dispose(); - return false; - } - } - /** - * permet de détécter une erreur SQL - * - * @return true si une erreur est détéctée, false sinon - * - * - */ - private boolean erreurSQL(){ - if(JOptionPane.showConfirmDialog(this.fenetre, "erreur lors de la modification, reasssayer?", "erreur SQL", JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){ - return true; - }else{ - return false; - } - } - - /** - * permet de fermer la connexion à la base de donnée - * - * @param clos outil de fermture de la connexion - * - */ - private void close(AutoCloseable clos){ - try{ - clos.close(); - }catch(Exception e){ - if(this.erreurCO()==true) - this.close(clos); - } - } - - /** - * permet de remplir la liste des changements de l'usine - */ - private void getChange(){ - Connection cnx=this.cnx(); - try{ - PreparedStatement pst=cnx.prepareStatement("SELECT * FROM `Changement` NATURAL JOIN Etudiant; "); - ResultSet rs=pst.executeQuery(); - while(rs.next()){ - Groupe[] ab=new Groupe[2]; - this.getGroupe(rs.getInt(2), rs.getInt(3), ab, this.agf.getPromotion()); - Etudiant e=new EtudiantNP(rs.getString(6), rs.getString(7), rs.getInt(4)); - if(rs.getString(5)!=null){ - this.brain.put(rs.getInt(1), new ChangementNP(ab[0], e, ab[1], rs.getInt(1), rs.getString(5))); - }else{ - this.brain.put(rs.getInt(1), new ChangementNP(ab[0], e, ab[1], rs.getInt(1))); - } - } - pst.close(); - }catch(SQLException e){ - if(this.erreurCO()) - this.getChange(); - return; - } - this.close(cnx); - } - /** - * permet de chercher les sous-groupes d'un groupe - * - * @param idA id du groupe A - * @param idB id du groupe B - * @param retour tableau de groupe dans lequel on va stocker les groupes - * @param toFind le groupe à comparer (ou groupe père pour la première itération) - */ - private void getGroupe(int idA, int idB, Groupe[] retour, Groupe tofind){ - if(retour[0]!=null && retour[1]!=null) - return; - if(tofind.getId()==idA){ - retour[0]=tofind; - } - if(tofind.getId()==idB){ - retour[1]=tofind; - } - for(Groupe sous:tofind.getSousGroupes()){ - this.getGroupe(idA, idB, retour, sous); - } - } - - /** - * pemet de arfricher la liste des changements - * - */ - private void refresh(){ - this.brain=new HashMap(); - this.getChange(); - } - - -} 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 f895fb1..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/AbstractGroupeFactoryNP.java +++ /dev/null @@ -1,782 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP; -import fr.iutfbleau.projetIHM2022FI2.API.*; -import java.sql.Connection; -import org.mariadb.jdbc.*; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.PreparedStatement; -import java.sql.SQLException; -import javax.swing.JFrame; -import javax.swing.JOptionPane; -import java.util.*; -/** - * Usine abstraite gérant l'ensemble des groupes. - * - */ - -public class AbstractGroupeFactoryNP implements AbstractGroupeFactory { - - // la racine (promotion) - private Groupe promo; - - //la fentre pour les fenetre modale - private JFrame fenetre; - - // On utilise une table de hachage pour retrouver facilement un groupe (à partir de son id). - // Si il y a beaucoup de groupes c'est plus rapide que de parcourir toute une liste. - private HashMap brain; - - /** - * Le constructeur fabrique le groupe promotion déja plein (utilisé en Modèle persistant de donné). - * @param fenetre fenetre principale - * - */ - public AbstractGroupeFactoryNP(JFrame fenetre){ - this.fenetre=fenetre; - this.brain=new HashMap(); - this.init(); - } - - /** - * Le constructeur fabrique le groupe promotion vide. - * Il faut ensuite y ajouter les étudiants. - * @param fenetre fenetre principale - * @param name nom de la promotion - * @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){ - 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; - this.brain=new HashMap(); - this.brain.put(Integer.valueOf(this.promo.getId()),this.promo); - this.saveGroupe(promo); - } - - - /** - * Test plutôt optimiste. Si la clé est identique alors on fait comme si c'était le bon groupe. - * @param g le groupe à tester - * @return true si le groupe est connu - */ - public Boolean knows(Groupe g){ - return this.brain.containsKey(Integer.valueOf(g.getId())); - } - - /** - * pemet de changer le nom d'un groupe dans la base de données - * - * @param g le groupe dont on veut changer le nom - * @param name le nouveau nom - * - * @return true si le changement a été effectué, false s'il y a eu une erreur - * - * - */ - public boolean changeNameGroupe(Groupe g, String name){ - if(!this.knows(g)){ - throw new IllegalArgumentException("Groupe inconu "); - } - Connection cnx=this.cnx(); - try{ - PreparedStatement pst=cnx.prepareStatement( - "UPDATE `Groupe` SET `nom` = ? WHERE `Groupe`.`id` = ? " - ); - pst.setString(1, name); - pst.setInt(2, g.getId()); - pst.executeUpdate(); - pst.close(); - }catch(SQLException e){ - System.out.println(e.toString()); - if(this.erreurSQL()){ - this.changeNameGroupe(g, name); - }else{ - return false; - } - } - this.close(cnx); - g.setName(name); - return true; - } - - - - /** - * 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. - * - * @param g le groupe à supprimer - * - * @throws java.lang.NullPointerException si un argument est null - * @throws java.lang.IllegalStateException si le groupe contient des groupes - * @throws java.lang.IllegalArgumentException si le groupe n'est pas connu de l'usine abstraite ou bien si le groupe est celui de toute la promotion (renvoyé par getPromotion) - */ - public void deleteGroupe(Groupe g){ - Objects.requireNonNull(g,"On ne peut pas enlever un groupe null car null n'est pas un groupe autorisé"); - if (!this.knows(g)){ - throw new IllegalArgumentException("Impossible d'enlever un groupe inconnu"); - } - g.getPointPoint().removeSousGroupe(g); - this.brain.remove(Integer.valueOf(g.getId())); - this.suprGroupe(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){ - Objects.requireNonNull(pere,"Le groupe pere ne peut pas être null"); - Objects.requireNonNull(name,"Le nouveau groupe ne peut pas avoir null comme nom"); - - if (!this.knows(pere)){ - throw new IllegalArgumentException("Interdit d'ajouter un fils à un groupe inconnu"); - } - if (pere.getType().equals(TypeGroupe.PARTITION)){ - throw new IllegalArgumentException("Impossible d'ajouter un groupe à une parition. Il faut utiliser createPartition pour créer une partition"); - } - if ( min <= 0 || max < min){ - throw new IllegalArgumentException("Il faut que 0 < min <= max"); - } - - Groupe g = new GroupeNP(pere,name,min,max); - pere.addSousGroupe(g); - this.brain.put(Integer.valueOf(g.getId()),g); - this.saveGroupe(g); - } - - /** - * 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 ajoute à la suite un numéro de 1 à n pour distinguer chaque groupe formant la partition) - * @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){ - Objects.requireNonNull(pere,"Le groupe pere ne peut pas être null"); - Objects.requireNonNull(name,"Le nouveau groupe ne peut pas avoir null comme nom"); - if (!this.knows(pere)){ - throw new IllegalArgumentException("Impossible de partitionner ce groupe inconnu"); - } - if (pere.getType().equals(TypeGroupe.PARTITION)){ - throw new IllegalArgumentException("Impossible de créer une partition à ce niveau. Il faut soit repartitionner le groupe au dessus, soit partitionner une partition en dessous."); - } - if ( n <= 0){ - throw new IllegalArgumentException("Le nombre de partitions doit être strictement positif"); - } - //Création de la racine de la partition. - Groupe copiePereRacinePartition = new GroupeNP(pere); - pere.addSousGroupe(copiePereRacinePartition); - this.brain.put(Integer.valueOf(copiePereRacinePartition.getId()),copiePereRacinePartition); - // création des sous-groupes - int min = 0; - int max = ((int) Math.floor(pere.getSize()/n))+1; - List groupes = new ArrayList(n); - for(int i = 0; i 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){ - Set s=new LinkedHashSet<>(); - //on retourne tous les etudiants - if(nomEtu==null){ - if(this.getPromotion()!=null){ - for(Etudiant et:this.getPromotion().getEtudiants()){ - s.add(et); - } - } - //ceux qui sont connu mais pas dans la promo - Connection cnx=this.cnx(); - try{ - PreparedStatement pst=cnx.prepareStatement("SELECT * FROM Etudiant where Etudiant.id NOT IN (SELECT CONTIENT.idEt FROM CONTIENT) Group by Etudiant.id;"); - ResultSet rs=pst.executeQuery(); - while(rs.next()){ - s.add(new EtudiantNP(rs.getString(2), rs.getString(3), rs.getInt(1))); - } - }catch(SQLException e){ - System.out.println(e.toString()); - if(this.erreurCO()) - return this.getEtudiants(nomEtu); - return null; - } - this.close(cnx); - }else{ - for(Etudiant e:this.getPromotion().getEtudiants()){ - if((e.getNom()).contains(nomEtu)){ - s.add(e); - } - } - } - return s; - } - - /** - * 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){ - if(etu==null) - throw new NullPointerException(); - Set ret=new LinkedHashSet(); - Connection cnx=this.cnx(); - try{ - PreparedStatement pst=cnx.prepareStatement("SELECT `idGroupe` FROM CONTIENT where idEt=? Group by `idGroupe`;"); - pst.setInt(1, etu.getId()); - ResultSet rs=pst.executeQuery(); - while(rs.next()){ - ret.add(this.brain.get(rs.getInt(1))); - } - rs.close(); - pst.close(); - }catch(SQLException e){ - - } - this.close(cnx); - return ret; - } - - // ********************** - // FONCTION POUR SIMPLIFIER LES Modification BD - // *********************** - - - /** - * permet de se connecter à la base de donnée - * - * @return la connexion à la base de donnée - */ - private Connection cnx(){ - //On se Connecte a la BD - try{ - Class.forName("org.mariadb.jdbc.Driver"); - Connection cnx = DriverManager.getConnection( - "jdbc:mariadb://dwarves.iut-fbleau.fr/chaignea", - "chaignea", "Chaigneauphpmyadmin"); - return cnx; - }catch(Exception e){ - System.out.println(e.toString()); - if(this.erreurCO()==true){ - return this.cnx(); - } - } - return null; - } - /** - * permet de détécter une erreur de connexion à la base de donnée - * - * @return true si une erreur est détéctée, false sinon - * - * - */ - private boolean erreurCO(){ - if(JOptionPane.showConfirmDialog(this.fenetre, "erreur connection a la BD reassayer?", "erreur connection", JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){ - return true; - }else{ - this.fenetre.dispose(); - return false; - } - } - /** - * permet de détécter une erreur SQL - * - * @return true si une erreur est détéctée, false sinon - * - * - */ - private boolean erreurSQL(){ - if(JOptionPane.showConfirmDialog(this.fenetre, "erreur lors de la modification, reasssayer?", "erreur SQL", JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){ - return true; - }else{ - return false; - } - } - /** - * permet de supprimer un étudiant de la base de donnée - * @param et l'étudiant à supprimer - * @param g le groupe dans lequel il est - */ - private void deleteEtu(Etudiant et, Groupe g){ - Connection cnx=this.cnx(); - try{ - PreparedStatement pst=cnx.prepareStatement( - "DELETE FROM CONTIENT WHERE idGroupe=? AND idEt=?; " - ); - pst.setInt(2, et.getId()); - this.deleteEtu(pst, cnx, g.getId()); - pst.close(); - }catch(SQLException e){ - System.out.println(e.toString()); - if(this.erreurSQL()){ - this.deleteEtu(et, brain.get(g.getId())); - } - } - this.close(cnx); - } - /** - * permet de supprimer un étudiant de la base de donnée - * @param pst la requete préparée - * @param cnx la connexion à la base de donnée - * @param id le groupe parent - */ - private void deleteEtu(PreparedStatement pst, Connection cnx, int id){ - try{ - pst.setInt(1, id); - pst.executeUpdate(); - - PreparedStatement sous=cnx.prepareStatement( - "SELECT * FROM Groupe WHERE `id-parent`=? AND `id-parent`!=id; " - ); - sous.setInt(1, id); - ResultSet rs=sous.executeQuery(); - while(rs.next()){ - this.deleteEtu(pst, cnx, rs.getInt(1)); - } - }catch(SQLException e){ - System.out.println(e.toString()); - if(this.erreurSQL()){ - this.deleteEtu(pst, cnx, id); - } - } - } - /** - * permet de fermer la connexion à la base de donnée - * - * @param clos outil de fermture de la connexion - * - */ - private void close(AutoCloseable clos){ - try{ - clos.close(); - }catch(Exception e){ - System.out.println(e.toString()); - if(this.erreurCO()==true) - this.close(clos); - } - } - -/** - * permet d'ajouter un groupe de la base de donnée - * @param etudiant l'étudiant à ajouter - * @param g le groupe de l'étudiant - * @return true s'il n'y a pas eu d'erreur, false sinon - */ -private boolean saveEtu(Etudiant etudiant, Groupe g){ - Connection cnx = this.cnx(); - try{ - PreparedStatement pst=cnx.prepareStatement( - "Select id from Etudiant where id=?; "); - pst.setString(1, String.valueOf(etudiant.getId())); - ResultSet rs=pst.executeQuery(); - if(rs.next()){ - //L'etudiant est déja connu de la BD - pst.close(); - pst=cnx.prepareStatement( - "INSERT INTO `CONTIENT` (`idGroupe`, `idEt`) VALUES (?, ?);"); - pst.setInt(2, etudiant.getId()); - pst.setInt(1, g.getId()); - pst.executeUpdate(); - }else{ - pst.close(); - pst=cnx.prepareStatement( - "INSERT INTO `Etudiant` (`id`, `nom`, `prenom`) VALUES (?, ?, ?) ;"); - pst.setInt(1, etudiant.getId()); - pst.setString(2, etudiant.getNom()); - pst.setString(3, etudiant.getPrenom()); - pst.executeUpdate(); - } - rs.close(); - pst.close(); - }catch(SQLException e){ - System.out.println(e.toString()); - if(this.erreurSQL()){ - this.saveEtu(etudiant, g); - }else{ - return false; - } - } - this.close(cnx); - return true; - } - /** - * permet d'ajouter un groupe dans la base de donnée - * @param g le groupe à ajouter - * @return true s'il n'y a pas eu d'erreur, false sinon - */ - private boolean saveGroupe(Groupe g){ - Connection cnx=this.cnx(); - try{ - PreparedStatement pst=cnx.prepareStatement( - "INSERT INTO `Groupe` (`id`, `nom`, `min`, `max`, `Type`, `id-parent`) VALUES (?, ?, ?, ?, ?, ?);" - ); - pst.setInt(1, g.getId()); - pst.setString(2, g.getName()); - pst.setInt(3, g.getMin()); - pst.setInt(4, g.getMax()); - pst.setString(5, g.getType().name()); - pst.setInt(6, g.getPointPoint().getId()); - pst.executeUpdate(); - pst.close(); - for(Etudiant e: g.getEtudiants()){ - this.saveEtu(e, g); - } - for(Groupe sous:g.getSousGroupes()){ - this.saveGroupe(sous); - } - }catch(SQLException e){ - System.out.println(e.toString()); - if(this.erreurSQL()){ - this.saveGroupe(g); - }else{ - return false; - } - } - this.close(cnx); - return true; - } - /** - * permet de supprimer un groupe de la base de donnée - * @param g le groupe à supprimer - * @return true s'il n'y a pas eu d'erreur, false sinon - */ - private boolean suprGroupe(Groupe g){ - Connection cnx=this.cnx(); - try{ - PreparedStatement pst=cnx.prepareStatement("Delete FROM Groupe where id=?;"); - pst.setInt(1, g.getId()); - pst.executeUpdate(); - pst.close(); - pst=cnx.prepareStatement("Delete FROM CONTIENT where idGroupe=?;"); - pst.setInt(1, g.getId()); - pst.executeUpdate(); - pst.close(); - }catch(SQLException e){ - System.out.println(e.toString()); - if(this.erreurSQL()){ - this.suprGroupe(g); - }else{ - return false; - } - } - this.close(cnx); - return true; - } - - - - /***************************** - * FONCTION POUR INITIALISER LA FACTORY AVEC LA BD - * ******************************** - */ - /** - * permet de charger les groupes de la base de donnée - */ - private void init(){ - Connection cnx=this.cnx(); - //on récupère le Groupe de la BD n'ayant pas de Parent (La promo donc) - try{ - PreparedStatement pst = cnx.prepareStatement( - "SELECT `id`, `nom`, `min`, `max`, `value`, `id-parent` FROM `Groupe` join `TYPE` on Groupe.Type=TYPE.name ORDER BY Groupe.id ASC;"); - ResultSet rs = pst.executeQuery(); - rs=pst.executeQuery(); - //Si il existe bien une promotion - if(rs.next()){ - //On créer le groupe de promo - this.promo=new GroupeNP(rs.getInt(1), rs.getString(2), rs.getInt(3), rs.getInt(4), TypeGroupe.getType(rs.getString(5)), null); - //on ajoute au cerveau - this.brain.put(this.promo.getId(), this.promo); - //On lui ajoute tout ses sous-groupe - this.addSousGroupe(this.promo, cnx); - //On ajoute les étudiants: - for(Groupe sous: this.brain.values()){ - this.addBDEtudiant(sous, cnx); - } - }else{ - //Si aucune ligne et donc pas de promo: - this.promo=null; - } - rs.close(); - pst.close(); - }catch(SQLException e){ - System.out.println(e.toString()); - if(this.erreurCO()) - this.init(); - } - this.close(cnx); - } - - /** - * Fonction recursive permettant de récuperrer les sous groupe a partir de la BD - * @param g le groupe - * @param cnx la connection a la BD (evite de la surcharger) - */ - private void addSousGroupe(Groupe g, Connection cnx){ - try{ - //On récupere les Groupe qui ont le parent :g - PreparedStatement pst= cnx.prepareStatement( - "SELECT `id`, `nom`, `min`, `max`, `value`, `id-parent` FROM `Groupe` join `TYPE` on Groupe.Type=TYPE.name where Groupe.`id-parent`=? and Groupe.id!=Groupe.`id-parent`;"); - pst.setString(1, String.valueOf(g.getId())); - ResultSet rs=pst.executeQuery(); - rs=pst.executeQuery(); - //autrement si le groupe as des sous groupe - while(rs.next()){ - //on les ajoute - Groupe nouveau=new GroupeNP(rs.getInt(1), rs.getString(2), rs.getInt(3), rs.getInt(4), TypeGroupe.getType(rs.getString(5)), g); - //Si one le connait pas - if(this.brain.get(nouveau.getId())==null){ - this.brain.put(nouveau.getId(), nouveau); - } - g.addSousGroupe(nouveau); - this.addSousGroupe(nouveau, cnx); - //on ajoute les sous groupe des sous-groupe - } - rs.close(); - }catch(SQLException e){ - System.out.println(e); - if(this.erreurCO()) - this.addSousGroupe(g, cnx); - } - } - - /** - * Fonction recursive ajoutant les étudiant aux groupe de la promo - * @param g le groupe pour qui ajouter les Etudiant - * @param cnx la connection (evite de surcharger la BD) - */ - private void addBDEtudiant(Groupe g, Connection cnx){ - try{ - //On récupère les etudiants contenue du groupe - PreparedStatement pst; - //Si c'est la promo - pst= cnx.prepareStatement("SELECT Etudiant.nom, Etudiant.prenom, Etudiant.id FROM `CONTIENT` JOIN Etudiant on CONTIENT.idEt=Etudiant.id WHERE CONTIENT.idGroupe=? ORDER BY Etudiant.id ASC"); - pst.setInt(1, g.getId()); - ResultSet rs=pst.executeQuery(); - //Pour tous les étudiants - while(rs.next()){ - boolean exist=false; - //autrement on recupere l'etudiant - for(Etudiant e: g.getPointPoint().getEtudiants()){ - if(e.getId()==rs.getInt(3)){ - exist=true; - g.addEtudiant(e); - break; - } - } - if(exist==false){ - g.addEtudiant(new EtudiantNP(rs.getString(1), rs.getString(2), rs.getInt(3))); - } - } - rs.close(); - pst.close(); - }catch(SQLException e){ - System.out.println(e.toString()); - if(this.erreurCO()) - this.addBDEtudiant(g, cnx); - } - } - - - - - /******************* - * FONCTION POUR REFRESH - * ******************* - */ - - - - - /** - * Refresh le groupe donnée pour le mettre a jour avec la Base de donnée - * Si le groupe n'existe plus on retourne le groupe parent le plus proche existant encore - * @param g le groupe a refresh - * @param cnx la connection a la BD (evite de la surcharger) - * @return le groupe refresh - */ - private Groupe refreshGroupe(Groupe g, Connection cnx){ - try{ - PreparedStatement pst = cnx.prepareStatement( - "SELECT `id`, `nom`, `min`, `max`, `value`, `id-parent` FROM `Groupe` join `TYPE` on Groupe.Type=TYPE.name where Groupe.`id`=? OR Groupe.`id-parent`=? ORDER BY Groupe.id ASC;"); - pst.setString(1, String.valueOf(g.getId())); - pst.setString(2, String.valueOf(g.getId())); - ResultSet rs=pst.executeQuery(); - if(rs.next()){ - if(rs.getString(2)!=g.getName()){ - g.setName(rs.getString(2)); - } - Set it=new LinkedHashSet<>(); - for(Groupe gr:g.getSousGroupes()){ - it.add(gr); - } - for(Groupe gr:it){ - g.removeSousGroupe(gr); - } - Set et=new LinkedHashSet<>(); - for(Etudiant gr:g.getEtudiants()){ - et.add(gr); - } - for(Etudiant gr:et){ - g.removeEtudiant(gr); - } - this.addSousGroupePasRecursif(g, cnx); - }else{ - if(g==g.getPointPoint()){ - g=null; - }else{ - g=this.refreshGroupe(g.getPointPoint(), cnx); - } - } - rs.close(); - }catch(SQLException e){ - System.out.println(e.toString()); - if(this.erreurCO()) - this.refreshGroupe(g, cnx); - } - return g; - } - - /** - * refresh le Groupe ainsi que ses etudiants - * @param g le groupe - * @return le groupe refresh/un parent si il a été refresh - */ - public Groupe refreshALL(Groupe g){ - Connection cnx = this.cnx(); - g=this.refreshGroupe(g, cnx); - Set et=new LinkedHashSet<>(); - for(Etudiant gr:g.getEtudiants()){ - et.add(gr); - } - for(Etudiant gr:et){ - g.removeEtudiant(gr); - } - this.addBDEtudiant(g, cnx); - this.close(cnx); - return g; - } - - - /** - * Fonction recursive permettant de récuperrer les sous groupe a partir de la BD - * @param g le groupe - * @param cnx la connection a la BD (evite de la surcharger) - * @param pourcent le pourcentage de ce groupe dans le chargement - */ - private void addSousGroupePasRecursif(Groupe g, Connection cnx){ - try{ - //On récupere les Groupe qui ont le parent :g - PreparedStatement pst= cnx.prepareStatement( - "SELECT `id`, `nom`, `min`, `max`, `value`, `id-parent` FROM `Groupe` join `TYPE` on Groupe.Type=TYPE.name where Groupe.`id-parent`=? and Groupe.id!=Groupe.`id-parent`;"); - pst.setString(1, String.valueOf(g.getId())); - ResultSet rs=pst.executeQuery(); - rs=pst.executeQuery(); - //autrement si le groupe as des sous groupe - while(rs.next()){ - //on les ajoute - Groupe nouveau=new GroupeNP(rs.getInt(1), rs.getString(2), rs.getInt(3), rs.getInt(4), TypeGroupe.getType(rs.getString(5)), g); - //Si one le connait pas - if(this.brain.get(nouveau.getId())==null){ - this.brain.put(nouveau.getId(), nouveau); - } - g.addSousGroupe(nouveau); - //on ajoute les sous groupe des sous-groupe - } - rs.close(); - }catch(SQLException e){ - System.out.println(e.toString()); - if(this.erreurCO()) - this.addSousGroupe(g, cnx); - } - } -} 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 74f42e9..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ChangementNP.java +++ /dev/null @@ -1,141 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP; -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; - } - /** - * 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 id l'id du changement - * - */ - public ChangementNP(Groupe a, Etudiant e, Groupe b, int id){ - 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.id=id; - this.a=a; - this.b=b; - this.e=e; - if(this.id>this.nextId){ - this.nextId=this.id; - } - } - /** - * 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 id l'id du changement - * @param raison la raison du changement - * - */ - public ChangementNP(Groupe a, Etudiant e, Groupe b, int id, 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=id; - this.a=a; - this.b=b; - this.e=e; - if(this.id>this.nextId){ - this.nextId=this.id; - } - } - - /** - * 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; - } - - /** 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/MP/ETU/Model/ModelEtu.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ETU/Model/ModelEtu.java deleted file mode 100644 index 3947c29..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ETU/Model/ModelEtu.java +++ /dev/null @@ -1,358 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP.ETU.Model; -import javax.swing.*; -import java.awt.*; -import java.util.Set; -import java.util.HashSet; -import fr.iutfbleau.projetIHM2022FI2.API.AbstractChangementFactory; -import fr.iutfbleau.projetIHM2022FI2.API.AbstractGroupeFactory; -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.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.ETU.View.FenetreEtudiant; -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 - private FenetreEtudiant fenEtu; - // le groupe courant - private AbstractGroupeFactory promo; - // le changement courant - private AbstractChangementFactory changement; - // la fenetre principale - private JFrame fenetre; - // l'etudiant courant - private Etudiant Selected; - /** - * Constructeur du Model - */ - public ModelEtu(){ - this.fenetre=new JFrame(); - this.fenetre.setSize(1200, 720); - this.fenetre.setLocation(100,100); - this.fenetre.addWindowListener(new ObservateurFenetre()); - this.fenetre.setLayout(new GridLayout(1,2)); - 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); - if(this.promo.getPromotion()==null){ - this.promo=null; - } - 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); - 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.panGroupe=new JPanel(new GridLayout(1,1)); - if(this.promo!=null){ - this.showGroupe(this.promo.getPromotion()); - }else{ - this.showGroupe(null); - } - } - - - @Override - /** - * Fonction pour refresh/changer de groupe d'affichage - * @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); - this.fenetre.getContentPane().removeAll(); - this.panGroupe.add(this.fenGr.getPan()); - this.panGroupe.revalidate(); - this.fenetre.add(this.panGroupe); - JScrollPane scroll=new JScrollPane(this.fenEtu.getPan()); - scroll.getVerticalScrollBar().setUnitIncrement(15); - this.fenetre.add(scroll); - this.fenetre.revalidate(); - } - @Override - /** - * getteur de la fenetre - * @return JFrame la fenetre - */ - public JFrame getFenetre() { - return fenetre; - } - /** - * Permet d'obtenir les étudiants du groupe courant. - * @return les étudiants du groupe courant - */ - @Override - public Set getEtudiant(){ - return this.promo.getPromotion().getEtudiants(); - } - - private void initEtu(String err){ - Set liste=this.promo.getPromotion().getEtudiants(); - JPanel panel = new JPanel(); - JPanel myPanel = new JPanel(); - JTextField idd = new JTextField(15); - myPanel.add(new JLabel("Id:")); - myPanel.add(idd); - if(err!=null){ - myPanel.add(new JLabel(err, SwingConstants.RIGHT)); - } - panel.add(myPanel); - - if(JOptionPane.showConfirmDialog(this.fenetre, panel, "login", JOptionPane.OK_CANCEL_OPTION) != JOptionPane.OK_OPTION){ - this.fenetre.dispose(); - System.exit(0); - }else{ - try{ - int id=Integer.parseInt(idd.getText()); - for(Etudiant et:liste){ - if(et.getId()==id){ - this.Selected=et; - return; - } - } - }catch(NumberFormatException e){ - this.initEtu("Id incomprhéhensible"); - } - } - this.initEtu("Etudiant introuvable"); - } - - // ************************** - // FONCTION POUR LES CHANGEMENTS - // ****************************** - /** - * Permet de changer de groupe. - * @param e l'étudiant qui change de groupe - * @param g le groupe dans lequel l'étudiant va - */ - @Override - public void changeGroupe(Etudiant e, Groupe b){ - if(b==null) - return; - b=this.promo.refreshALL(b); - if(b.getEtudiants()!=null && b.getMax()>b.getEtudiants().size()+1){ - if(b.getEtudiants().size()>this.fenGr.getG().getEtudiants().size()){ - JPanel myPanel= new JPanel(new GridLayout(2,1)); - JTextField xField = new JTextField(100); - xField.setMinimumSize(new Dimension(100, 100)); - xField.setPreferredSize(new Dimension(100,100)); - myPanel.add(new JLabel("Ce Groupe est plus grand que le votre raison du changement:")); - myPanel.add(xField); - if(JOptionPane.showConfirmDialog(this.fenetre, myPanel, "Changer dans quel Groupe ?", JOptionPane.OK_CANCEL_OPTION)==JOptionPane.OK_OPTION){ - //IL faut que l'etudiant detaile un minimun la raison - if(xField.getText().length()>5){ - this.changement.createChangement(this.fenGr.getG(), e, b, xField.getText()); - }else{ - JOptionPane.showMessageDialog(this.fenetre, "veuillez detailler votre raison", "erreur", JOptionPane.ERROR_MESSAGE); - } - } - }else{ - this.changement.createChangement(this.fenGr.getG(), e, b); - } - }else{ - JOptionPane.showMessageDialog(this.fenetre, "impossible trop d'etudiant dans l'autre Groupe", "erreur", JOptionPane.ERROR_MESSAGE); - } - this.showGroupe(this.fenGr.getG()); - } -/** - * pemet d'obtenir les sous groupes du groupe courant. - * @return les sous groupes du groupe courant - */ - @Override - public Set getGroupePartition(){ - this.promo.refreshALL(this.fenGr.getG().getPointPoint()); - Set retour=new HashSet<>(); - if(this.fenGr.getG().getPointPoint().getType()!=TypeGroupe.PARTITION) - throw new IllegalStateException("impossible de changer un étudiant d'un groupe ne provenant pas d'une partition"); - for(Groupe sous:this.fenGr.getG().getPointPoint().getSousGroupes()){ - if(sous.getId()!=this.fenGr.getG().getId()){ - retour.add(sous); - } - } - return retour; - } - /** - * ajoute un étudiant dans un groupe. - * @param e l'étudiant à ajouter - * @param g le groupe dans lequel l'étudiant va - * @return true si l'ajout a réussi, false sinon - */ - @Override - public boolean addEtudiant(Groupe g, Etudiant e) { - // TODO Auto-generated method stub - return false; - } - - /** - * supprime un groupe. - * @param g le groupe à supprimer - */ - @Override - public void delete(Groupe g) { - // TODO Auto-generated method stub - - } - - /** - * rennome un groupe. - * @param g le groupe à renommer - * @param nom le nouveau nom du groupe - * - */ - @Override - public void rename(String name, Groupe g) { - // TODO Auto-generated method stub - - } - - /** - * Fonction permetant de créer une partition d'un groupe - * @param g le groupe a partitionner - * @param n le nombre de partition - * @param name le nom des partition - */ - @Override - public void partition(Groupe g, int n, String name) { - // TODO Auto-generated method stub - - } - - /** - * Fonction permettant de créer un sous-groupe d'un groupe - * @param g le groupe parent - * @param name le nom du sous-groupe - * @param min le nombre min d'etudiant - * @param max le nombre max d'etudiant - * @param ajout la liste des étudiants a ajouter au groupe - */ - @Override - public void free(Groupe g, String name, int min, int max, Set ajout) { - // TODO Auto-generated method stub - - } - - - /** - * ajoute une nouvelle promotion - * @param min le nombre min - * @param max le nombre max - * @param name le nom - * @param ajout les etudiant a ajouter a la promo - */ - @Override - public void addPromo(int min, int max, String name, Set ajout) { - // TODO Auto-generated method stub - - } - -/** - * Fonction pour supprimer un etudiant. - * @param e l'etudiant a supprimer - * @return boolean true si l'etudiant a ete supprimer, false sinon - - */ - @Override - public boolean deleteEtu(Etudiant e) { - // TODO Auto-generated method stub - return false; - } - - /** - * Fonction pour afficher une fenetre listnatn les changements - * - */ - @Override - public void listChange() { - // TODO Auto-generated method stub - - } - - /** - * Fonction pour effectuer un changement - * @param Changement le changement a effecteur - */ - @Override - public void change(Changement change) { - // TODO Auto-generated method stub - - } - - /** - * Fonction supprimant un changement - * - * @param to_delete la changement a delete - */ - @Override - public void deleteChange(Changement to_delete) { - // TODO Auto-generated method stub - - } - - - /** - * Fonction affichant les raison d'un changement - * - * @param change le changement - */ - @Override - public void showRaisonChange(Changement change) { - // TODO Auto-generated method stub - - } - - /** - * Fonction affichant une fentre pour trouver un etudiant et tous ses groupes asociée - */ - @Override - public void findEtu() { - // TODO Auto-generated method stub - - } - - - /** - * Fonction pour recuperer les etudiant avec ce nom - * @param name le nom de(s) etudiants - * @return la liste - */ - @Override - public Set getEtu(String name) { - // TODO Auto-generated method stub - return null; - } - - - /** - *affiche les groupe d'un etudiant - * @param e l'etudiant - */ - @Override - public void showGroupOfEtudiant(Etudiant e) { - // TODO Auto-generated method stub - - } - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ETU/View/FenetreEtudiant.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ETU/View/FenetreEtudiant.java deleted file mode 100644 index e58e7d1..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ETU/View/FenetreEtudiant.java +++ /dev/null @@ -1,91 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP.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/MP/ETU/View/FenetreGroupe.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ETU/View/FenetreGroupe.java deleted file mode 100644 index 3b83a6b..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ETU/View/FenetreGroupe.java +++ /dev/null @@ -1,132 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP.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/MP/ETU/View/PanelEtudiant.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ETU/View/PanelEtudiant.java deleted file mode 100644 index f8dccd6..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ETU/View/PanelEtudiant.java +++ /dev/null @@ -1,41 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP.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/MP/EtudiantNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/EtudiantNP.java deleted file mode 100644 index b7d13f1..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/EtudiantNP.java +++ /dev/null @@ -1,74 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP; -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; - } - - /** - * Constructeur d'un étudiant. - * @param nom le nom de l'étudiant - * @param prenom le prénom de l'étudiant - * @param id l'id de l'étudiant - */ - public EtudiantNP(String nom, String prenom, int id){ - 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"); - if(id>=this.nextId){ - this.nextId=id; - } - this.id=id; - 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 ac11a0c..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/GroupeNP.java +++ /dev/null @@ -1,254 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP; -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 - * @param id l'id du groupe - * @param type le type du groupe - * - * - */ - public GroupeNP(int id, String name, int min, int max, TypeGroupe type, Groupe pere){ - Objects.requireNonNull(name,"On ne peut pas créer un groupe dont le nom est null"); - this.id=id; - if(id>this.nextId){ - this.nextId=id; - } - this.name=name; - this.min=min; - this.max=max; - this.type=type; - if(pere==null){ - this.pointPoint=this; - }else{ - this.pointPoint=pere; - } - 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; - } - - /** - * Change le nom du groupe - * @param s le nouveau nom - */ - @Override - public void setName(String s){ - this.name=s; - } - -} 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 deleted file mode 100644 index 45feaa0..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/PROF/Model/ModelProf.java +++ /dev/null @@ -1,325 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP.PROF.Model; -import javax.swing.*; -import java.awt.*; -import java.util.Set; -import java.util.HashSet; -import fr.iutfbleau.projetIHM2022FI2.API.AbstractChangementFactory; -import fr.iutfbleau.projetIHM2022FI2.API.AbstractGroupeFactory; -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.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; - -/** - * 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 - private FenetreEtudiant fenEtu; - // le groupe courant - private AbstractGroupeFactory promo; - // le changement courant - private AbstractChangementFactory changement; - // la fenetre principale - private JFrame fenetre; - - /** - * Constructeur du Model. - */ - public ModelProf(){ - this.fenetre=new JFrame(); - this.fenetre.setSize(1200, 720); - this.fenetre.setLocation(100,100); - this.fenetre.addWindowListener(new ObservateurFenetre()); - this.fenetre.setLayout(new GridLayout(1,2)); - 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); - 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.panGroupe=new JPanel(new GridLayout(1,1)); - if(this.promo!=null){ - this.showGroupe(this.promo.getPromotion()); - }else{ - this.showGroupe(null); - } - } - - - @Override - /** - * Fonction pour refresh/changer de groupe d'affichage - * @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.fenEtu=new FenetreEtudiant(g); - this.fenetre.getContentPane().removeAll(); - this.panGroupe.add(this.fenGr.getPan()); - this.panGroupe.revalidate(); - this.fenetre.add(this.panGroupe); - JScrollPane scroll=new JScrollPane(this.fenEtu.getPan()); - scroll.getVerticalScrollBar().setUnitIncrement(15); - this.fenetre.add(scroll); - this.fenetre.revalidate(); - } - @Override - /** - * getteur de la fenetre - * @return JFrame la fenetre - */ - public JFrame getFenetre() { - return fenetre; - } - /** - * permet d'obtenir l'ensemble des etudiants - * @return - */ - @Override - public Set getEtudiant(){ - return this.promo.getPromotion().getEtudiants(); - } - - // ************************** - // FONCTION POUR LES CHANGEMENTS - // ****************************** - /** - * Créer un changement depuis le groupe courant - * @param e l'etudiant - * @param b le groupe a changer - */ - @Override - public void changeGroupe(Etudiant e, Groupe b){ - if(b==null) - return; - b=this.promo.refreshALL(b); - if(b.getEtudiants()!=null && b.getMax()>b.getEtudiants().size()+1){ - if(b.getEtudiants().size()>this.fenGr.getG().getEtudiants().size()){ - JPanel myPanel= new JPanel(new GridLayout(2,1)); - JTextField xField = new JTextField(100); - xField.setMinimumSize(new Dimension(100, 100)); - xField.setPreferredSize(new Dimension(100,100)); - myPanel.add(new JLabel("Ce Groupe est plus grand que le votre raison du changement:")); - myPanel.add(xField); - if(JOptionPane.showConfirmDialog(this.fenetre, myPanel, "Changer dans quel Groupe ?", JOptionPane.OK_CANCEL_OPTION)==JOptionPane.OK_OPTION){ - //IL faut que l'etudiant detaile un minimun la raison - if(xField.getText().length()>5){ - this.changement.createChangement(this.fenGr.getG(), e, b, xField.getText()); - }else{ - JOptionPane.showMessageDialog(this.fenetre, "veuillez detailler votre raison", "erreur", JOptionPane.ERROR_MESSAGE); - } - } - }else{ - this.changement.createChangement(this.fenGr.getG(), e, b); - } - }else{ - JOptionPane.showMessageDialog(this.fenetre, "impossible trop d'etudiant dans l'autre Groupe", "erreur", JOptionPane.ERROR_MESSAGE); - } - this.showGroupe(this.fenGr.getG()); - } - /** - * Retourn les groupe auquel on peut demander a changer depuis le groupe courant - * - * @return la liste des groupes - */ - @Override - public Set getGroupePartition(){ - this.promo.refreshALL(this.fenGr.getG().getPointPoint()); - Set retour=new HashSet<>(); - if(this.fenGr.getG().getPointPoint().getType()!=TypeGroupe.PARTITION) - throw new IllegalStateException("impossible de changer un étudiant d'un groupe ne provenant pas d'une partition"); - for(Groupe sous:this.fenGr.getG().getPointPoint().getSousGroupes()){ - if(sous.getId()!=this.fenGr.getG().getId()){ - retour.add(sous); - } - } - return retour; - } - /** - * Fonction pour ajouter un étudiant au groupe - * @param g - * @param e - * @return boolean pour savoir si il a pus être ajouter - */ - @Override - public boolean addEtudiant(Groupe g, Etudiant e) { - // TODO Auto-generated method stub - return false; - } - - /** - * Fonction pour supprimer un groupe - * @param g le groupe a supprimer - */ - @Override - public void delete(Groupe g) { - // TODO Auto-generated method stub - - } - - - /** - * Fonction pour renomer un groupe - * @param name - * @param g - */ - @Override - public void rename(String name, Groupe g) { - // TODO Auto-generated method stub - - } - - - /** - * Fonction permetant de créer une partition d'un groupe - * @param g le groupe a partitionner - * @param n le nombre de partition - * @param name le nom des partition - */ - @Override - public void partition(Groupe g, int n, String name) { - // TODO Auto-generated method stub - - } - - - /** - * Fonction permettant de créer un sous-groupe d'un groupe - * @param g le groupe parent - * @param name le nom du sous-groupe - * @param min le nombre min d'etudiant - * @param max le nombre max d'etudiant - * @param ajout la liste des étudiants a ajouter au groupe - */ - @Override - public void free(Groupe g, String name, int min, int max, Set ajout) { - // TODO Auto-generated method stub - - } - /** - * ajoute une nouvelle promotion - * @param min le nombre min - * @param max le nombre max - * @param name le nom - * @param ajout les etudiant a ajouter a la promo - */ - - @Override - public void addPromo(int min, int max, String name, Set ajout) { - // TODO Auto-generated method stub - - } - -/** - * Fonction pour supprimer un etudiant. - * @param e l'etudiant a supprimer - * @return boolean true si l'etudiant a ete supprimer, false sinon - */ - @Override - public boolean deleteEtu(Etudiant e) { - // TODO Auto-generated method stub - return false; - } - /** - * Fonction pour afficher une fenetre listnatn les changements - * - */ - @Override - public void listChange() { - // TODO Auto-generated method stub - - } - - - /** - * Fonction pour effectuer un changement - * @param Changement le changement a effecteur - */ - @Override - public void change(Changement change) { - // TODO Auto-generated method stub - - } - - /** - * Fonction supprimant un changement - * - * @param to_delete la changement a delete - */ - @Override - public void deleteChange(Changement to_delete) { - // TODO Auto-generated method stub - - } - - - /** - * Fonction affichant les raison d'un changement - * - * @param change le changement - */ - @Override - public void showRaisonChange(Changement change) { - // TODO Auto-generated method stub - - } - - /** - * Fonction affichant une fentre pour trouver un etudiant et tous ses groupes asociée - */ - @Override - public void findEtu() { - // TODO Auto-generated method stub - - } - - /** - * Fonction pour recuperer les etudiant avec ce nom - * @param name le nom de(s) etudiants - * @return la liste - */ - @Override - public Set getEtu(String name) { - // TODO Auto-generated method stub - return null; - } - - /** - *affiche les groupe d'un etudiant - * @param e l'etudiant - */ - @Override - public void showGroupOfEtudiant(Etudiant e) { - // TODO Auto-generated method stub - - } - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/PROF/View/FenetreEtudiant.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/PROF/View/FenetreEtudiant.java deleted file mode 100644 index 3eb3037..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/PROF/View/FenetreEtudiant.java +++ /dev/null @@ -1,67 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP.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/MP/PROF/View/FenetreGroupe.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/PROF/View/FenetreGroupe.java deleted file mode 100644 index 4d3f356..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/PROF/View/FenetreGroupe.java +++ /dev/null @@ -1,106 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP.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/MP/PROF/View/PanelEtudiant.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/PROF/View/PanelEtudiant.java deleted file mode 100644 index e174084..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/PROF/View/PanelEtudiant.java +++ /dev/null @@ -1,21 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP.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 - * @param change si l'étudiant peut être déplacé - */ - 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/MP/ROOT/Controller/ActionChangement.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/Controller/ActionChangement.java deleted file mode 100644 index 11f733f..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/Controller/ActionChangement.java +++ /dev/null @@ -1,47 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP.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 controller 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/MP/ROOT/Controller/ActionListChange.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/Controller/ActionListChange.java deleted file mode 100644 index 28e46fe..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/Controller/ActionListChange.java +++ /dev/null @@ -1,38 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP.ROOT.Controller; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.JButton; - -import fr.iutfbleau.projetIHM2022FI2.API.Model; -/** - * listener 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/MP/ROOT/Controller/ActionListenerNouveauEtu.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/Controller/ActionListenerNouveauEtu.java deleted file mode 100644 index e79e1da..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/Controller/ActionListenerNouveauEtu.java +++ /dev/null @@ -1,49 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP.ROOT.Controller; - -import java.awt.event.ActionListener; - -import javax.swing.*; - -import fr.iutfbleau.projetIHM2022FI2.MP.ROOT.View.FenetreSelectionEtu; - -import java.awt.event.ActionEvent; - -/** - * listener pour la création d'étudiants - */ -public class ActionListenerNouveauEtu implements ActionListener{ - // la fenetre de sélection - private FenetreSelectionEtu pere; - /** - * le constructeur - * @param pere la fenetre de sélection - */ - 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/MP/ROOT/Controller/ActionListenerSuprEtu.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/Controller/ActionListenerSuprEtu.java deleted file mode 100644 index daf66fd..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/Controller/ActionListenerSuprEtu.java +++ /dev/null @@ -1,37 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP.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 controller 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/MP/ROOT/Controller/ListenerFindBar.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/Controller/ListenerFindBar.java deleted file mode 100644 index 1ae68dd..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/Controller/ListenerFindBar.java +++ /dev/null @@ -1,43 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP.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.MP.ROOT.View.FindBarFenetre; -/** - * le controller pour la recherche d'etudiants - */ -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/MP/ROOT/Controller/ObservateurModifGroupe.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/Controller/ObservateurModifGroupe.java deleted file mode 100644 index 6225e41..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/Controller/ObservateurModifGroupe.java +++ /dev/null @@ -1,183 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP.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.MP.ROOT.View.FenetreSelectionEtu; - -import javax.swing.*; -import java.util.Set; -/** - * le controller pour les groupes - */ -public class ObservateurModifGroupe implements ActionListener{ - //le model - private Model m; - //le groupe courant - private Groupe groupe; - /** - * le constructeur - * @param m le model - * @param g le groupe courant - */ - public ObservateurModifGroupe(Model m, Groupe g){ - this.m=m; - this.groupe=g; - } - /** - * 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()=="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 getEtudiant(){ - return this.promo.getEtudiants(null); - } - - // *********************** - // FONCTION POUR SUPRIMER UN ETUDIANT - // *********************** -/** - * Fonction pour supprimer un etudiant. - * @param e l'etudiant a supprimer - * @return boolean true si l'etudiant a ete supprimer, false sinon - */ - @Override - public boolean deleteEtu(Etudiant e){ - if(this.deleteEtutoChildren(e, this.fenGr.getG())){ - this.promo.dropFromGroupe(this.fenGr.getG(), e); - this.showGroupe(this.fenGr.getG()); - return true; - }else{ - return false; - } - } -/** - * Permet de savoir si un étudiant peut être supprimé - * @param e l'étudiant à supprimer - * @param g le groupe dans lequel on cherche - * @return true si possible, false sinon - */ - private boolean deleteEtutoChildren(Etudiant e, Groupe g){ - if(g.getMax() ajout){ - Chargement ch=new Chargement(this.fenetre); - this.fenetre.setVisible(false); - //on creer le groupe - this.promo.createGroupe(g, name, min, max); - Groupe creer=null; - //on le recupere - for(Groupe gr:g.getSousGroupes()){ - if(gr.getName()==name){ - creer=gr; - break; - } - } - //on y ajoute les étudiant - int n=0; - for(Etudiant e:ajout){ - if(this.addEtudiant(creer, e)==false) - n++; - } - creer=this.promo.refreshALL(creer); - ch.dispose(); - this.fenetre.setVisible(true); - if(n>0) - JOptionPane.showMessageDialog(this.fenetre, "erreur impossible d'ajouter "+n+" etudiants par manque de place dans le groupe de ses parents", "erreur", JOptionPane.ERROR_MESSAGE); - //Si finalement avec les etudiants qui n'ont pas pus être ajouter le min n'est pas atteint - if(creer.getEtudiants().size()+1<=creer.getMin()){ - //On le supprime - this.promo.deleteGroupe(creer); - JOptionPane.showMessageDialog(this.fenetre, "en raison du manque d'etudiant pour le nombre min le groupe n'a pas pus être créer", "errer", JOptionPane.ERROR_MESSAGE); - } - this.showGroupe(g); - } - /** - * ajoute une nouvelle promotion - * @param min le nombre min - * @param max le nombre max - * @param name le nom - * @param ajout les etudiant a ajouter a la promo - */ - @Override - public void addPromo(int min, int max, String name, Set 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.fenetre.setVisible(false); - for(Etudiant e:ajout){ - this.addEtudiant(this.promo.getPromotion(), e); - } - ch.dispose(); - this.fenetre.setVisible(true); - this.showGroupe(this.promo.getPromotion()); - } - - - /** - * Créer un changement depuis le groupe courant - * @param e l'etudiant - * @param b le groupe a changer - */ - @Override - public void changeGroupe(Etudiant e, Groupe b){ - if(b==null) - return; - b=this.promo.refreshALL(b); - if(b.getEtudiants()!=null && b.getMax()>b.getEtudiants().size()+1){ - if(b.getEtudiants().size()>this.fenGr.getG().getEtudiants().size()){ - JPanel myPanel= new JPanel(new GridLayout(2,1)); - JTextField xField = new JTextField(100); - xField.setMinimumSize(new Dimension(100, 100)); - xField.setPreferredSize(new Dimension(100,100)); - myPanel.add(new JLabel("Ce Groupe est plus grand que le votre raison du changement:")); - myPanel.add(xField); - if(JOptionPane.showConfirmDialog(this.fenetre, myPanel, "Changer dans quel Groupe ?", JOptionPane.OK_CANCEL_OPTION)==JOptionPane.OK_OPTION){ - //IL faut que l'etudiant detaile un minimun la raison - if(xField.getText().length()>5){ - this.changement.createChangement(this.fenGr.getG(), e, b, xField.getText()); - }else{ - JOptionPane.showMessageDialog(this.fenetre, "veuillez detailler votre raison", "erreur", JOptionPane.ERROR_MESSAGE); - } - } - }else{ - this.changement.createChangement(this.fenGr.getG(), e, b); - } - }else{ - JOptionPane.showMessageDialog(this.fenetre, "impossible trop d'etudiant dans l'autre Groupe", "erreur", JOptionPane.ERROR_MESSAGE); - } - this.showGroupe(this.fenGr.getG()); - } - /** - * Retourn les groupe auquel on peut demander a changer depuis le groupe courant - * - * @return la liste des groupes - */ - @Override - public Set getGroupePartition(){ - this.promo.refreshALL(this.fenGr.getG().getPointPoint()); - Set retour=new HashSet(); - if(this.fenGr.getG().getPointPoint().getType()!=TypeGroupe.PARTITION) - throw new IllegalStateException("impossible de changer un étudiant d'un groupe ne provenant pas d'une partition"); - for(Groupe sous:this.fenGr.getG().getPointPoint().getSousGroupes()){ - if(sous.getId()!=this.fenGr.getG().getId()){ - retour.add(sous); - } - } - return retour; - } - - /* (non-Javadoc) - * @see fr.iutfbleau.projetIHM2022FI2.API.Model#listChange() - */ - /** - * Fonction pour afficher une fenetre listnatn les changements - * - */ - @Override - public void listChange() { - this.fenChange=new FenetreChangement(changement, this); - JOptionPane.showMessageDialog(this.fenetre, new JScrollPane(this.fenChange), "liste des changements", JOptionPane.OK_OPTION); - } - /** - * Fonction pour effectuer un changement - * @param Changement le changement a effecteur - */ - @Override - public void change(Changement change) { - this.changement.applyChangement(change); - this.fenChange.refresh(); - if(change.getA()==this.fenGr.getG()){ - this.showGroupe(this.fenGr.getG()); - } - } - - /** - * Fonction supprimant un changement - * - * @param to_delete la changement a delete - */ - @Override - public void deleteChange(Changement to_delete) { - this.changement.deleteChangement(to_delete); - this.fenChange.refresh(); - } - - /** - * Fonction affichant les raison d'un changement - * - * @param change le changement - */ - @Override - public void showRaisonChange(Changement change) { - JOptionPane.showMessageDialog(this.fenetre, new JLabel(change.getRaison()), "Raison de la demande", JOptionPane.OK_OPTION); - } - /** - * Fonction affichant une fentre pour trouver un etudiant et tous ses groupes asociée - */ - @Override - public void findEtu() { - JScrollPane scroll=new JScrollPane(new FindBarFenetre(this).getPanel()); - scroll.getVerticalScrollBar().setUnitIncrement(5); - JOptionPane.showMessageDialog(this.fenetre, scroll, "chercher un etudiant", JOptionPane.OK_OPTION); - } - - /* (non-Javadoc) - * @see fr.iutfbleau.projetIHM2022FI2.API.Model#getEtu(java.lang.String) - */ - - /** - * Fonction pour recuperer les etudiant avec ce nom - * @param name le nom de(s) etudiants - * @return la liste - */ - @Override - public Set getEtu(String name) { - return this.promo.getEtudiants(name); - } - /** - *affiche les groupe d'un etudiant - * @param e l'etudiant - */ - @Override - public void showGroupOfEtudiant(Etudiant e){ - Set liste=this.promo.getGroupesOfEtudiant(e); - JPanel myPanel; - if(liste!=null && liste.size()>0){ - myPanel=new JPanel(new GridLayout(liste.size()/2+1, 2, 20, 20)); - for(Groupe g:liste){ - JButton bout=new JButton(g.getName()); - bout.addActionListener(new ObservateurChangeGroupe(this, g)); - myPanel.add(bout); - } - }else{ - myPanel=new JPanel(new GridLayout(2, 2, 20, 20)); - myPanel.add(new JLabel("Cet Etudiant n'appartient encore a aucun groupe")); - } - JOptionPane.showMessageDialog(this.fenChange, myPanel, "groupe de l'etudiant", JOptionPane.OK_OPTION); - } - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/View/FenetreChangement.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/View/FenetreChangement.java deleted file mode 100644 index 63bdee6..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/View/FenetreChangement.java +++ /dev/null @@ -1,78 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP.ROOT.View; - -import javax.swing.JButton; -import javax.swing.JLabel; -import javax.swing.JPanel; -import java.awt.GridLayout; -import java.awt.Color; -import java.awt.FlowLayout; -import fr.iutfbleau.projetIHM2022FI2.API.AbstractChangementFactory; -import fr.iutfbleau.projetIHM2022FI2.API.Changement; -import fr.iutfbleau.projetIHM2022FI2.API.Model; -import fr.iutfbleau.projetIHM2022FI2.MP.ROOT.Controller.ActionChangement; -/** - * Affichage des changements - * - */ -public class FenetreChangement extends JPanel{ - // les changements a afficher - private AbstractChangementFactory change; - // le modèle - private Model m; - - /** - * Constructeur de l'affichage des changements - * @param list la liste des changements - * @param m le mlodèle - */ - public FenetreChangement(AbstractChangementFactory list, Model m){ - this.change=list; - this.m=m; - this.draw(); - } - - /** - * gère l'affichage des changements - */ - public void draw(){ - if(this.change==null || this.change.getAllChangements().size()==0){ - this.setBackground(Color.RED); - this.setLayout(new FlowLayout()); - JLabel text=new JLabel("Aucune Demande de changement effectuer"); - text.setMinimumSize(this.getSize()); - this.add(text); - }else{ - this.setLayout(new GridLayout(this.change.getAllChangements().size(), 6, 20, 0)); - for(Changement ch: this.change.getAllChangements()){ - this.add(new JLabel("L'etudiant "+ch.getEtu().getNom()+" "+ch.getEtu().getPrenom())); - this.add(new JLabel("veut passer du groupe "+ch.getA().getName())); - this.add(new JLabel(" au groupe "+ch.getB().getName())); - JButton raison; - if(ch.getRaison()==null){ - raison=new JButton("Type 1"); - }else{ - raison=new JButton("Raison"); - raison.addActionListener(new ActionChangement(this.m, ch)); - } - this.add(raison); - JButton supr=new JButton("Supprimer"); - supr.addActionListener(new ActionChangement(this.m, ch)); - JButton val=new JButton("Valider"); - val.addActionListener(new ActionChangement(this.m, ch)); - supr.setBackground(Color.RED); - val.setBackground(Color.GREEN); - this.add(val); - this.add(supr); - } - } - } - /** - * rafraichit l'affichage - */ - public void refresh(){ - this.removeAll(); - this.draw(); - this.revalidate(); - } - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/View/FenetreEtudiant.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/View/FenetreEtudiant.java deleted file mode 100644 index 184886b..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/View/FenetreEtudiant.java +++ /dev/null @@ -1,103 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP.ROOT.View; - - -import javax.swing.JButton; -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.MP.ROOT.Controller.ActionListChange; -import fr.iutfbleau.projetIHM2022FI2.MP.ROOT.Controller.ActionListenerSuprEtu; -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; - // 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/MP/ROOT/View/FenetreGroupe.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/View/FenetreGroupe.java deleted file mode 100644 index 637a26c..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/View/FenetreGroupe.java +++ /dev/null @@ -1,127 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP.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/MP/ROOT/View/FenetreSelectionEtu.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/View/FenetreSelectionEtu.java deleted file mode 100644 index 1f3c8f7..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/View/FenetreSelectionEtu.java +++ /dev/null @@ -1,134 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP.ROOT.View; - -import fr.iutfbleau.projetIHM2022FI2.API.Etudiant; -import fr.iutfbleau.projetIHM2022FI2.API.Groupe; -import fr.iutfbleau.projetIHM2022FI2.MP.EtudiantNP; -import fr.iutfbleau.projetIHM2022FI2.MP.ROOT.Controller.ActionListenerNouveauEtu; -import fr.iutfbleau.projetIHM2022FI2.MP.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; - - -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/MP/ROOT/View/FindBarFenetre.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/View/FindBarFenetre.java deleted file mode 100644 index 845ed8a..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/View/FindBarFenetre.java +++ /dev/null @@ -1,85 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP.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.MP.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(); - } - - public void showGroupe(Etudiant toshow){ - this.m.showGroupOfEtudiant(toshow); - } -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/View/PanelEtudiant.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/View/PanelEtudiant.java deleted file mode 100644 index fa2f602..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MP/ROOT/View/PanelEtudiant.java +++ /dev/null @@ -1,54 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.MP.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; - - -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/Permanent/Controller/ActionListenerChangeEtu.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/Controller/ActionListenerChangeEtu.java deleted file mode 100644 index 7acd03f..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/Controller/ActionListenerChangeEtu.java +++ /dev/null @@ -1,84 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.Permanent.Controller; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.HashSet; -import java.util.Set; - -import javax.swing.JButton; -import javax.swing.JOptionPane; -import javax.swing.JPanel; - -import java.awt.Color; -import java.awt.GridLayout; - -import fr.iutfbleau.projetIHM2022FI2.API.Etudiant; -import fr.iutfbleau.projetIHM2022FI2.API.Groupe; -import fr.iutfbleau.projetIHM2022FI2.API.Model; -/** - * le controller pour le changement de groupe d'un etudiant - */ -public class ActionListenerChangeEtu implements ActionListener { - // l'etudiant a changer - private Etudiant etudiant; - // le model - private Model model; - // le groupe d'arrivée - private Groupe B; - // les boutons - private Set bout; - // le panel - private JPanel myPanel; - /** - * le constructeur - * @param m le model - * @param e l'etudiant a changer - */ - public ActionListenerChangeEtu(Model m, Etudiant e){ - this.model=m; - this.etudiant=e; - this.B=null; - this.bout=null; - myPanel=null; - } - /** - * methode invoquée lors d'un clic sur un bouton - * @param e l'événement - */ - @Override - public void actionPerformed(ActionEvent e) { - if(this.bout==null){ - this.bout=new HashSet<>(); - for(Groupe sous:this.model.getGroupePartition()){ - JButton bouton=new JButton(sous.getName()); - bouton.addActionListener(new ControllerGroupeBChangement(sous, this)); - this.bout.add(bouton); - } - myPanel = new JPanel(new GridLayout(this.bout.size(), 1)); - } - - - for(JButton b: this.bout){ - myPanel.add(b); - } - - if(JOptionPane.showConfirmDialog(this.model.getFenetre(), this.myPanel, "Changer dans quel Groupe ?", JOptionPane.OK_CANCEL_OPTION)==JOptionPane.OK_OPTION){ - if(this.B!=null) - this.model.changeGroupe(this.etudiant, B); - } - } - /** - * methode pour changer le groupe d'arrivée - * @param b le groupe d'arrivée - */ - public void setGroupeB(Groupe b){ - this.B=b; - for(JButton bouton: this.bout){ - if(bouton.getText()==this.B.getName()){ - bouton.setBackground(Color.GREEN); - }else{ - bouton.setBackground(bouton.getParent().getBackground()); - } - } - } - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/Controller/ControllerGroupeBChangement.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/Controller/ControllerGroupeBChangement.java deleted file mode 100644 index 0f3a010..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/Controller/ControllerGroupeBChangement.java +++ /dev/null @@ -1,32 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.Permanent.Controller; - -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import fr.iutfbleau.projetIHM2022FI2.API.Groupe; -/** - * le controleur pour le changement de groupe d'arrivée lors d'un changement de groupe - */ -public class ControllerGroupeBChangement implements ActionListener{ - // le listener parent - private ActionListenerChangeEtu parent; - // le groupe d'arrivée - private Groupe b; - /** - * le constructeur - * @param b le groupe d'arrivée - * @param observateur le listener parent - */ - public ControllerGroupeBChangement(Groupe b, ActionListenerChangeEtu observateur){ - this.parent=observateur; - this.b=b; - } - /** - * méthode invoquée lors d'un clic sur un bouton - * @param e l'événement - */ - @Override - public void actionPerformed(ActionEvent e) { - this.parent.setGroupeB(this.b); - } - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/Controller/ObservateurChangeGroupe.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/Controller/ObservateurChangeGroupe.java deleted file mode 100644 index d2c83e4..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/Controller/ObservateurChangeGroupe.java +++ /dev/null @@ -1,33 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.Permanent.Controller; - -import java.awt.event.*; - -import fr.iutfbleau.projetIHM2022FI2.API.Groupe; -import fr.iutfbleau.projetIHM2022FI2.API.Model; -/** - * l'observateur pour le changement de groupe - */ -public class ObservateurChangeGroupe implements ActionListener{ - // le model - private Model m; - // le groupe - private Groupe g; - /** - * le constructeur - * @param m le model - * @param g le groupe - */ - public ObservateurChangeGroupe(Model m, Groupe g){ - this.m=m; - this.g=g; - } - /** - * methode invoquée lors d'un clic sur un bouton - * @param e l'événement - */ - @Override - public void actionPerformed(ActionEvent e) { - m.showGroupe(this.g); - } - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/Controller/ObservateurFenetre.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/Controller/ObservateurFenetre.java deleted file mode 100644 index cb5c4c4..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/Controller/ObservateurFenetre.java +++ /dev/null @@ -1,65 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.Permanent.Controller; -import java.awt.event.WindowEvent; -import java.awt.event.WindowListener; -import javax.swing.JOptionPane; -import javax.swing.JFrame; -/** - * l'observateur pour la fermeture de la fenetre - */ -public class ObservateurFenetre implements WindowListener{ - /** - * le constructeur - */ - public ObservateurFenetre(){ - - } - - @Override - public void windowActivated(WindowEvent e) { - // TODO Auto-generated method stub - - } - - @Override - public void windowClosed(WindowEvent e) { - // TODO Auto-generated method stub - - } - /** - * méthode invoquée lors de la fermeture de la fenetre - * @param e l'événement - */ - @Override - public void windowClosing(WindowEvent e) { - JFrame fenetre= (JFrame) e.getSource(); - int confirmation = JOptionPane.showConfirmDialog(fenetre.getContentPane(), "Voulez vous quitter?", "Quitter", JOptionPane.YES_NO_OPTION); - if(confirmation == JOptionPane.YES_OPTION){ - fenetre.dispose(); - } - } - - @Override - public void windowDeactivated(WindowEvent e) { - // TODO Auto-generated method stub - - } - - @Override - public void windowDeiconified(WindowEvent e) { - // TODO Auto-generated method stub - - } - - @Override - public void windowIconified(WindowEvent e) { - // TODO Auto-generated method stub - - } - - @Override - public void windowOpened(WindowEvent e) { - // TODO Auto-generated method stub - - } - -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/IHM.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/IHM.java deleted file mode 100644 index e078e96..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/IHM.java +++ /dev/null @@ -1,217 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.Permanent; - -import java.util.Iterator; - -import fr.iutfbleau.projetIHM2022FI2.API.AbstractChangementFactory; -import fr.iutfbleau.projetIHM2022FI2.API.AbstractGroupeFactory; -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.MP.EtudiantNP; -import fr.iutfbleau.projetIHM2022FI2.Permanent.Util.User; -import fr.iutfbleau.projetIHM2022FI2.Permanent.View.Connexion; - -public class IHM{ - - - public static void main(String[] args) { - User chois=Connexion.seConnecter(); - if(chois!=null){ - if(chois==User.ROOT){ - switch(Connexion.Persistant()){ - case 1: - new fr.iutfbleau.projetIHM2022FI2.MP.ROOT.Model.ModelRoot(); - break; - case 2: - AbstractGroupeFactory agf=IHM.getAgf(); - new fr.iutfbleau.projetIHM2022FI2.MNP.ROOT.Model.ModelRoot(agf, IHM.getChange(agf)); - break; - } - } - if(chois==User.ETUDIANT){ - switch(Connexion.Persistant()){ - case 1: - new fr.iutfbleau.projetIHM2022FI2.MP.ETU.Model.ModelEtu(); - break; - case 2: - AbstractGroupeFactory agf=IHM.getAgf(); - new fr.iutfbleau.projetIHM2022FI2.MNP.ETU.Model.ModelEtu(agf, IHM.getChange(agf)); - break; - } - } - if(chois==User.PROF){ - switch(Connexion.Persistant()){ - case 1: - new fr.iutfbleau.projetIHM2022FI2.MP.ROOT.Model.ModelRoot(); - break; - case 2: - AbstractGroupeFactory agf=IHM.getAgf(); - new fr.iutfbleau.projetIHM2022FI2.MNP.PROF.Model.ModelProf(agf, IHM.getChange(agf)); - break; - } - } - } - } - - public static AbstractGroupeFactory getAgf(){ - Etudiant e1=new EtudiantNP("césar","lycurgus"); - Etudiant e2=new EtudiantNP("denis","uranus"); - Etudiant e3=new EtudiantNP("marcel","castor"); - Etudiant e4=new EtudiantNP("marin","eurydice"); - Etudiant e5=new EtudiantNP("constantin","akoni"); - Etudiant e6=new EtudiantNP("donat","anakoni"); - Etudiant e7=new EtudiantNP("alexandre","apikalia"); - Etudiant e8=new EtudiantNP("andré","ekewaka"); - Etudiant e9=new EtudiantNP("renard","elikapeka"); - Etudiant e10=new EtudiantNP("achille","haukea"); - - System.out.print("."); - - Etudiant e11=new EtudiantNP("agathe","iakopa"); - Etudiant e12=new EtudiantNP("sabine","spartacus"); - Etudiant e13=new EtudiantNP("michel","caligula"); - Etudiant e14=new EtudiantNP("marthe","alaric"); - Etudiant e15=new EtudiantNP("juliane","hannibal"); - Etudiant e16=new EtudiantNP("anne","juvenal"); - Etudiant e17=new EtudiantNP("sophie","bede"); - Etudiant e18=new EtudiantNP("louis","hamilcar"); - Etudiant e19=new EtudiantNP("diane","ladislas"); - Etudiant e20=new EtudiantNP("christine","mahatma"); - - System.out.print("."); - - Etudiant e21=new EtudiantNP("francine","napoleon"); - Etudiant e22=new EtudiantNP("louise","lalita"); - Etudiant e23=new EtudiantNP("chantal","laxman"); - Etudiant e24=new EtudiantNP("giselle","laxmi"); - Etudiant e25=new EtudiantNP("caroline","leela"); - Etudiant e26=new EtudiantNP("claude","lila"); - Etudiant e27=new EtudiantNP("pauline","lilavati"); - Etudiant e28=new EtudiantNP("avril","lochan"); - Etudiant e29=new EtudiantNP("jacqueline","madhav"); - Etudiant e30=new EtudiantNP("denise","turlough"); - - System.out.print("."); - - Etudiant e31=new EtudiantNP("gabrielle","uaithne"); - Etudiant e32=new EtudiantNP("julie","uilleag"); - Etudiant e33=new EtudiantNP("madeleine","uilliam"); - Etudiant e34=new EtudiantNP("charlotte","uinseann"); - Etudiant e35=new EtudiantNP("bertrand","ulick"); - Etudiant e36=new EtudiantNP("lucile","ultan"); - Etudiant e37=new EtudiantNP("nicole","firdaus"); - Etudiant e38=new EtudiantNP("blanche","yasmin"); - Etudiant e39=new EtudiantNP("jeanine","javed"); - Etudiant e40=new EtudiantNP("roxane","naveed"); - - System.out.print("."); - - Etudiant e41=new EtudiantNP("adeline","shahnaz"); - Etudiant e42=new EtudiantNP("dion","ardashir"); - Etudiant e43=new EtudiantNP("liane","atefeh"); - Etudiant e44=new EtudiantNP("myriam","luigina"); - Etudiant e45=new EtudiantNP("danielle","luigino"); - Etudiant e46=new EtudiantNP("arlette","maddalena"); - Etudiant e47=new EtudiantNP("michelle","manfredo"); - Etudiant e48=new EtudiantNP("justine","manlio"); - Etudiant e49=new EtudiantNP("natalie","marcellino"); - Etudiant e50=new EtudiantNP("aline","mariangela"); - - System.out.print("."); - - Etudiant e51=new EtudiantNP("prosper","marzio"); - Etudiant e52=new EtudiantNP("mirabelle","massimiliano"); - Etudiant e53=new EtudiantNP("carine","matteo"); - Etudiant e54=new EtudiantNP("jeannine","melchiorre"); - Etudiant e55=new EtudiantNP("dianne","micaela"); - Etudiant e56=new EtudiantNP("evette","michela"); - Etudiant e57=new EtudiantNP("gisselle","michelangela"); - - - AbstractGroupeFactory agf = new AbstractGroupeFactoryNP("BUT2 FI", 15, 92); - - agf.addToGroupe(agf.getPromotion(),e1); - agf.addToGroupe(agf.getPromotion(),e2); - agf.addToGroupe(agf.getPromotion(),e3); - agf.addToGroupe(agf.getPromotion(),e4); - agf.addToGroupe(agf.getPromotion(),e5); - agf.addToGroupe(agf.getPromotion(),e6); - agf.addToGroupe(agf.getPromotion(),e7); - agf.addToGroupe(agf.getPromotion(),e8); - agf.addToGroupe(agf.getPromotion(),e9); - agf.addToGroupe(agf.getPromotion(),e10); - - System.out.print("."); - - agf.addToGroupe(agf.getPromotion(),e11); - agf.addToGroupe(agf.getPromotion(),e12); - agf.addToGroupe(agf.getPromotion(),e13); - agf.addToGroupe(agf.getPromotion(),e14); - agf.addToGroupe(agf.getPromotion(),e15); - agf.addToGroupe(agf.getPromotion(),e16); - agf.addToGroupe(agf.getPromotion(),e17); - agf.addToGroupe(agf.getPromotion(),e18); - agf.addToGroupe(agf.getPromotion(),e19); - agf.addToGroupe(agf.getPromotion(),e20); - - System.out.print("."); - - agf.addToGroupe(agf.getPromotion(),e21); - agf.addToGroupe(agf.getPromotion(),e22); - agf.addToGroupe(agf.getPromotion(),e23); - agf.addToGroupe(agf.getPromotion(),e24); - agf.addToGroupe(agf.getPromotion(),e25); - agf.addToGroupe(agf.getPromotion(),e26); - agf.addToGroupe(agf.getPromotion(),e27); - agf.addToGroupe(agf.getPromotion(),e28); - agf.addToGroupe(agf.getPromotion(),e29); - agf.addToGroupe(agf.getPromotion(),e30); - agf.addToGroupe(agf.getPromotion(),e31); - agf.addToGroupe(agf.getPromotion(),e32); - agf.addToGroupe(agf.getPromotion(),e33); - agf.addToGroupe(agf.getPromotion(),e34); - agf.addToGroupe(agf.getPromotion(),e35); - agf.addToGroupe(agf.getPromotion(),e36); - agf.addToGroupe(agf.getPromotion(),e37); - agf.addToGroupe(agf.getPromotion(),e38); - agf.addToGroupe(agf.getPromotion(),e39); - - System.out.print("."); - - agf.addToGroupe(agf.getPromotion(),e40); - agf.addToGroupe(agf.getPromotion(),e41); - agf.addToGroupe(agf.getPromotion(),e42); - agf.addToGroupe(agf.getPromotion(),e43); - agf.addToGroupe(agf.getPromotion(),e44); - agf.addToGroupe(agf.getPromotion(),e45); - agf.addToGroupe(agf.getPromotion(),e46); - agf.addToGroupe(agf.getPromotion(),e47); - agf.addToGroupe(agf.getPromotion(),e48); - agf.addToGroupe(agf.getPromotion(),e49); - agf.addToGroupe(agf.getPromotion(),e50); - agf.addToGroupe(agf.getPromotion(),e51); - agf.addToGroupe(agf.getPromotion(),e52); - agf.addToGroupe(agf.getPromotion(),e53); - agf.addToGroupe(agf.getPromotion(),e54); - agf.addToGroupe(agf.getPromotion(),e55); - agf.addToGroupe(agf.getPromotion(),e56); - agf.addToGroupe(agf.getPromotion(),e57); - agf.createPartition(agf.getPromotion(), "TD",4); - return agf; - } - public static AbstractChangementFactory getChange(AbstractGroupeFactory agf){ - AbstractChangementFactory acf = new AbstractChangementFactoryNP(agf); - Iterator itgr = agf.getPromotion().getSousGroupes().iterator().next().getSousGroupes().iterator(); - Groupe A = itgr.next(); // premier sous-groupe - Groupe B = itgr.next(); // second sous-groupe - B = itgr.next(); // troisième sous-groupe - Etudiant e = A.getEtudiants().iterator().next();// premier étudiant du premier sous-groupe. - acf.createChangement(A,e,B); - Etudiant etu1 = A.getEtudiants().iterator().next();// premier étudiant du premier sous-groupe. - Etudiant etu2 = B.getEtudiants().iterator().next();// premier étudiant du premier sous-groupe. - acf.createChangement(A,etu1,B); - acf.createChangement(B,etu2,A); - return acf; - } -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/Util/User.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/Util/User.java deleted file mode 100644 index 709a015..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/Util/User.java +++ /dev/null @@ -1,11 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.Permanent.Util; - -public enum User { - ROOT("root"), PROF("proffeseur"), ETUDIANT("etudiant"); - - private final String name; - - private User(String s) { - name = s; - } -} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/View/Chargement.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/View/Chargement.java deleted file mode 100644 index 9dc3cc2..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/View/Chargement.java +++ /dev/null @@ -1,45 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.Permanent.View; - -import java.awt.Graphics; - -import javax.swing.JComponent; -import javax.swing.JFrame; - -import java.awt.*; - -/** - * Class Dessinant les boutons du menu - */ -public class Chargement extends JComponent{ - private JFrame fenetre; - - public Chargement(JFrame n){ - this.fenetre=new JFrame(); - this.fenetre.setSize(n.getSize()); - this.fenetre.setLocation(n.getLocation()); - this.fenetre.add(this, BorderLayout.CENTER); - this.fenetre.setVisible(true); - } - - public void dispose(){ - this.fenetre.dispose(); - } - - @Override - protected void paintComponent(Graphics pinceau) { - // obligatoire : on crée un nouveau pinceau pour pouvoir le modifier plus tard - Graphics2D secondPinceau = (Graphics2D) pinceau.create(); - secondPinceau.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - // obligatoire : si le composant n'est pas censé être transparent - if (this.isOpaque()) { - // obligatoire : on repeint toute la surface avec la couleur de fond - secondPinceau.setColor(this.getBackground()); - secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight()); - } - // maintenant on dessine ce que l'on veut - secondPinceau.setColor(Color.BLUE); - secondPinceau.setFont(new Font(Font.SANS_SERIF, Font.BOLD, (this.getWidth()/10))); - FontMetrics metrics = secondPinceau.getFontMetrics(secondPinceau.getFont()); - secondPinceau.drawString("CHARGEMENT", (this.getWidth()/2-metrics.stringWidth("CHARGEMENT")/2), (this.getHeight()-metrics.getHeight())/3+metrics.getAscent()); - } -} \ No newline at end of file diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/View/Connexion.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/View/Connexion.java deleted file mode 100644 index 4c851b6..0000000 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Permanent/View/Connexion.java +++ /dev/null @@ -1,162 +0,0 @@ -package fr.iutfbleau.projetIHM2022FI2.Permanent.View; -import javax.swing.*; - -import fr.iutfbleau.projetIHM2022FI2.Permanent.Util.User; - -import java.awt.*; - -public class Connexion extends JOptionPane{ - - public static User seConnecter(){ - JFrame fenetre=new JFrame(); - fenetre.setSize(10,10); - fenetre.setVisible(true); - JPanel panel = new JPanel(new GridLayout(2,1)); - User[] use=new User[3]; - use[0]=User.ROOT; - use[1]=User.PROF; - use[2]=User.ETUDIANT; - - JComboBox combo=new JComboBox(use); - - JPanel myPanel = new JPanel(); - JTextField password = new JPasswordField(20); - myPanel.add(new JLabel("Password:")); - myPanel.add(password); - panel.add(combo); - panel.add(myPanel); - - if(JOptionPane.showConfirmDialog(fenetre, panel, "login", JOptionPane.OK_CANCEL_OPTION) != JOptionPane.OK_OPTION){ - fenetre.dispose(); - return null; - } - User choose=null; - switch(combo.getSelectedIndex()){ - case 0: - choose=use[0]; - break; - case 1: - choose=use[1]; - break; - case 2: - choose=use[2]; - break; - } - if(choose==User.ROOT){ - if(password.getText().equals("root")){ - fenetre.dispose(); - return User.ROOT; - } - } - if(choose==User.PROF){ - if(password.getText().equals("prof")){ - fenetre.dispose(); - return User.PROF; - } - } - if(choose==User.ETUDIANT){ - if(password.getText().equals("etuiutsen")){ - fenetre.dispose(); - return User.ETUDIANT; - } - } - User ret=Connexion.retry(choose, fenetre); - fenetre.dispose(); - return ret; - } - - private static User retry(User first, JFrame fenetre){ - JPanel panel = new JPanel(new GridLayout(2,1)); - User[] use=new User[3]; - if(first==User.ETUDIANT){ - use[0]=User.ETUDIANT; - use[1]=User.ROOT; - use[2]=User.PROF; - } - - if(first==User.ROOT){ - use[1]=User.ETUDIANT; - use[0]=User.ROOT; - use[2]=User.PROF; - } - - if(first==User.PROF){ - use[1]=User.ETUDIANT; - use[2]=User.ROOT; - use[0]=User.PROF; - } - JComboBox combo=new JComboBox(use); - - JPanel myPanel = new JPanel(); - JTextField password = new JPasswordField(20); - myPanel.add(new JLabel("Password:")); - myPanel.add(password); - JLabel erre=new JLabel("mdp incorect", SwingConstants.RIGHT); - erre.setForeground(Color.RED); - myPanel.add(erre); - - panel.add(combo); - panel.add(myPanel); - - if(JOptionPane.showConfirmDialog(fenetre, panel, "login", JOptionPane.OK_CANCEL_OPTION) != JOptionPane.OK_OPTION){ - return null; - } - User choose=null; - switch(combo.getSelectedIndex()){ - case 0: - choose=use[0]; - break; - case 1: - choose=use[1]; - break; - case 2: - choose=use[2]; - break; - } - if(choose==User.ROOT){ - if(password.getText().equals("root")){ - fenetre.dispose(); - return User.ROOT; - } - } - if(choose==User.PROF){ - if(password.getText().equals("prof")){ - fenetre.dispose(); - return User.PROF; - } - } - if(choose==User.ETUDIANT){ - if(password.getText().equals("etuiutsen")){ - fenetre.dispose(); - return User.ETUDIANT; - } - } - User ret=Connexion.retry(choose, fenetre); - fenetre.dispose(); - return ret; - } - - public static int Persistant(){ - JFrame fenetre=new JFrame(); - fenetre.setSize(10,10); - fenetre.setVisible(true); - String[] value=new String[2]; - value[0]="Modèle Persistant"; - value[1]="Modèle Non Persistant"; - String result; - if((result=(String)JOptionPane.showInputDialog(fenetre, "Choisir un modèle de donnée", "Model de Donnée", JOptionPane.QUESTION_MESSAGE, null, value, value[0]))==null){ - fenetre.dispose(); - return 0; - } - if(result.equals(value[0])){ - fenetre.dispose(); - return 1; - } - if(result.equals(value[1])){ - fenetre.dispose(); - return 2; - } - return 0; - } - -}