correction de bugs

This commit is contained in:
martins 2022-11-28 10:29:52 +01:00
parent 47742b1ddc
commit c215672e38
9 changed files with 45 additions and 55 deletions

View File

@ -107,8 +107,7 @@ ${BUILD}/MNP/AbstractChangementFactoryNP.class : ${SRC}/MNP/AbstractChangementFa
${BUILD}/ROOT/Util/BD.class : ${SRC}/ROOT/Util/BD.java ${BUILD}/ROOT/Util/BD.class : ${SRC}/ROOT/Util/BD.java
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/ROOT/Util/BD.java ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/ROOT/Util/BD.java
${BUILD}/ROOT/Util/User.class : ${SRC}/ROOT/Util/User.java
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/ROOT/Util/User.java
## View ## ## View ##
@ -172,8 +171,7 @@ ${BUILD}/ROOT/Model/Model.class : ${SRC}/ROOT/Model/Model.java \
${BUILD}/ROOT/View/FenetreGroupe.class \ ${BUILD}/ROOT/View/FenetreGroupe.class \
${BUILD}/ROOT/View/FenetreEtudiant.class \ ${BUILD}/ROOT/View/FenetreEtudiant.class \
${BUILD}/ROOT/View/Chargement.class \ ${BUILD}/ROOT/View/Chargement.class \
${BUILD}/ROOT/Util/BD.class \ ${BUILD}/ROOT/Util/BD.class
${BUILD}/ROOT/Util/User.class
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/ROOT/Model/Model.java ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/ROOT/Model/Model.java
@ -188,8 +186,6 @@ ${BUILD}/ROOT/Model/Model.class : ${SRC}/ROOT/Model/Model.java \
${BUILD}/ETU/Util/BD.class : ${SRC}/ETU/Util/BD.java ${BUILD}/ETU/Util/BD.class : ${SRC}/ETU/Util/BD.java
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/ETU/Util/BD.java ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/ETU/Util/BD.java
${BUILD}/ETU/Util/User.class : ${SRC}/ETU/Util/User.java
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/ETU/Util/User.java
## View ## ## View ##
@ -231,8 +227,7 @@ ${BUILD}/ETU/Model/Model.class : ${SRC}/ETU/Model/Model.java \
${BUILD}/ETU/View/FenetreGroupe.class \ ${BUILD}/ETU/View/FenetreGroupe.class \
${BUILD}/ETU/View/FenetreEtudiant.class \ ${BUILD}/ETU/View/FenetreEtudiant.class \
${BUILD}/ETU/View/Chargement.class \ ${BUILD}/ETU/View/Chargement.class \
${BUILD}/ETU/Util/BD.class \ ${BUILD}/ETU/Util/BD.class
${BUILD}/ETU/Util/User.class
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/ETU/Model/Model.java ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/ETU/Model/Model.java
@ -249,9 +244,13 @@ ${BUILD}/ETU/Model/Model.class : ${SRC}/ETU/Model/Model.java \
${BUILD}/MNP/AbstractChangementFactoryNP.class \ ${BUILD}/MNP/AbstractChangementFactoryNP.class \
${BUILD}/ROOT/Model/Model.class \ ${BUILD}/ROOT/Model/Model.class \
${BUILD}/ETU/Model/Model.class \ ${BUILD}/ETU/Model/Model.class \
${BUILD}/Test/Connexion.class ${BUILD}/Test/Connexion.class \
${BUILD}/Test/User.class
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Test/TestTexteMNP.java ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Test/TestTexteMNP.java
${BUILD}/Test/User.class : ${SRC}/Test/User.java
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Test/User.java
# ## JARS ## # ## JARS ##
${JAR_MNP} : ${BUILD}/Test/TestTexteMNP.class ${JAR_MNP} : ${BUILD}/Test/TestTexteMNP.class

View File

@ -119,4 +119,5 @@ public interface AbstractGroupeFactory {
* @return true si possible * @return true si possible
*/ */
public boolean changeNameGroupe(Groupe g, String name); public boolean changeNameGroupe(Groupe g, String name);
} }

View File

@ -118,9 +118,10 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory {
*/ */
public void deleteGroupe(Groupe g){ public void deleteGroupe(Groupe g){
Objects.requireNonNull(g,"On ne peut pas enlever un groupe null car null n'est pas un groupe autorisé"); Objects.requireNonNull(g,"On ne peut pas enlever un groupe null car null n'est pas un groupe autorisé");
if (!this.knows(g)){ //if (!this.knows(g)){
throw new IllegalArgumentException("Impossible d'enlever un groupe inconnu"); //throw new IllegalArgumentException("Impossible d'enlever un groupe inconnu");
} //possible maintenant
//}
g.getPointPoint().removeSousGroupe(g); g.getPointPoint().removeSousGroupe(g);
this.brain.remove(Integer.valueOf(g.getId())); this.brain.remove(Integer.valueOf(g.getId()));
this.suprGroupe(g); this.suprGroupe(g);
@ -140,9 +141,10 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory {
Objects.requireNonNull(pere,"Le groupe pere ne peut pas être null"); Objects.requireNonNull(pere,"Le groupe pere ne peut pas être null");
Objects.requireNonNull(name,"Le nouveau groupe ne peut pas avoir null comme nom"); Objects.requireNonNull(name,"Le nouveau groupe ne peut pas avoir null comme nom");
if (!this.knows(pere)){ //if (!this.knows(pere)){
throw new IllegalArgumentException("Interdit d'ajouter un fils à un groupe inconnu"); // throw new IllegalArgumentException("Interdit d'ajouter un fils à un groupe inconnu");
} //Possible maintenant
//}
if (pere.getType().equals(TypeGroupe.PARTITION)){ 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"); throw new IllegalArgumentException("Impossible d'ajouter un groupe à une parition. Il faut utiliser createPartition pour créer une partition");
} }
@ -175,9 +177,10 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory {
public void createPartition(Groupe pere, String name, int n){ public void createPartition(Groupe pere, String name, int n){
Objects.requireNonNull(pere,"Le groupe pere ne peut pas être null"); Objects.requireNonNull(pere,"Le groupe pere ne peut pas être null");
Objects.requireNonNull(name,"Le nouveau groupe ne peut pas avoir null comme nom"); Objects.requireNonNull(name,"Le nouveau groupe ne peut pas avoir null comme nom");
if (!this.knows(pere)){ //if (!this.knows(pere)){
throw new IllegalArgumentException("Impossible de partitionner ce groupe inconnu"); //throw new IllegalArgumentException("Impossible de partitionner ce groupe inconnu");
} //possible maintenant
//}
if (pere.getType().equals(TypeGroupe.PARTITION)){ 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."); 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.");
} }
@ -221,9 +224,10 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory {
public void addToGroupe(Groupe g, Etudiant e){ public void addToGroupe(Groupe g, Etudiant e){
Objects.requireNonNull(g,"Le groupe ne peut pas être null"); Objects.requireNonNull(g,"Le groupe ne peut pas être null");
Objects.requireNonNull(e,"L'étudiant ne peut pas être null"); Objects.requireNonNull(e,"L'étudiant ne peut pas être null");
if (!this.knows(g)){ //if (!this.knows(g)){
throw new IllegalArgumentException("Impossible d'ajouter l'étudiant car le est groupe inconnu"); //throw new IllegalArgumentException("Impossible d'ajouter l'étudiant car le est groupe inconnu");
} //rendu possible maintenant par la syncronisation en temps réel
//}
g.addEtudiant(e); g.addEtudiant(e);
this.saveEtu(e, g); this.saveEtu(e, g);
} }
@ -241,9 +245,10 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory {
public void dropFromGroupe(Groupe g, Etudiant e){ public void dropFromGroupe(Groupe g, Etudiant e){
Objects.requireNonNull(g,"Le groupe ne peut pas être null"); Objects.requireNonNull(g,"Le groupe ne peut pas être null");
Objects.requireNonNull(e,"L'étudiant ne peut pas être null"); Objects.requireNonNull(e,"L'étudiant ne peut pas être null");
if (!this.knows(g)){ //if (!this.knows(g)){
throw new IllegalArgumentException("Impossible d'ajouter l'étudiant car le est groupe inconnu"); //throw new IllegalArgumentException("Impossible de suprimer l'étudiant car le est groupe inconnu");
} //Possible maintenant
//}
g.removeEtudiant(e); g.removeEtudiant(e);
this.deleteEtu(e, g); this.deleteEtu(e, g);
} }
@ -292,8 +297,6 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory {
return ret; return ret;
} }
// ********************** // **********************
// FONCTION POUR SIMPLIFIER LES Modification BD // FONCTION POUR SIMPLIFIER LES Modification BD
// *********************** // ***********************
@ -339,28 +342,34 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory {
"DELETE FROM CONTIENT WHERE idGroupe=? AND idEt=?; " "DELETE FROM CONTIENT WHERE idGroupe=? AND idEt=?; "
); );
pst.setInt(2, et.getId()); pst.setInt(2, et.getId());
this.deleteEtu(pst, cnx, g); this.deleteEtu(pst, cnx, g.getId());
pst.close(); pst.close();
}catch(SQLException e){ }catch(SQLException e){
System.out.println(e.toString()); System.out.println(e.toString());
if(this.erreurSQL()){ if(this.erreurSQL()){
this.deleteEtu(et, g); this.deleteEtu(et, brain.get(g.getId()));
} }
} }
this.close(cnx); this.close(cnx);
} }
private void deleteEtu(PreparedStatement pst, Connection cnx, Groupe g){ private void deleteEtu(PreparedStatement pst, Connection cnx, int id){
try{ try{
pst.setInt(1, g.getId()); pst.setInt(1, id);
pst.executeUpdate(); pst.executeUpdate();
for(Groupe sous: g.getSousGroupes()){
this.deleteEtu(pst, cnx, sous); 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){ }catch(SQLException e){
System.out.println(e.toString()); System.out.println(e.toString());
if(this.erreurSQL()){ if(this.erreurSQL()){
this.deleteEtu(pst, cnx, g); this.deleteEtu(pst, cnx, id);
} }
} }
} }

View File

@ -44,8 +44,7 @@ public class ChangementNP implements Changement {
return this.a; return this.a;
} }
/** /** e
* permet de récupérer le groupe d'arrivée
* @return ce groupe. * @return ce groupe.
*/ */
public Groupe getB(){ public Groupe getB(){

View File

@ -1,6 +1,7 @@
package fr.iutfbleau.projetIHM2022FI2.ROOT.Model; package fr.iutfbleau.projetIHM2022FI2.ROOT.Model;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.Iterator;
import java.util.Set; import java.util.Set;
import java.sql.Connection; import java.sql.Connection;
import java.sql.ResultSet; import java.sql.ResultSet;
@ -29,17 +30,12 @@ public class Model{
private FenetreEtudiant fenEtu; private FenetreEtudiant fenEtu;
private AbstractGroupeFactory promo; private AbstractGroupeFactory promo;
private JFrame fenetre; private JFrame fenetre;
//private JTree tree;
private BD bd; private BD bd;
public Model(){ public Model(){
this.fenetre=new JFrame(); this.fenetre=new JFrame();
this.fenetre.setSize(1200, 720); this.fenetre.setSize(1200, 720);
this.fenetre.setLocation(100,100); this.fenetre.setLocation(100,100);
this.fenetre.addWindowListener(new ObservateurFenetre()); this.fenetre.addWindowListener(new ObservateurFenetre());
this.fenetre.setLayout(new GridLayout(1,2)); this.fenetre.setLayout(new GridLayout(1,2));
this.fenetre.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); this.fenetre.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
this.fenetre.setMinimumSize(this.fenetre.getSize()); this.fenetre.setMinimumSize(this.fenetre.getSize());

View File

@ -1,11 +0,0 @@
package fr.iutfbleau.projetIHM2022FI2.ROOT.Util;
public enum User {
ROOT("root"), PROF("proffeseur"), ETUDIANT("etudiant");
private final String name;
private User(String s) {
name = s;
}
}

View File

@ -1,6 +1,4 @@
package fr.iutfbleau.projetIHM2022FI2.Test; package fr.iutfbleau.projetIHM2022FI2.Test;
import fr.iutfbleau.projetIHM2022FI2.ROOT.Util.User;
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;

View File

@ -1,5 +1,4 @@
package fr.iutfbleau.projetIHM2022FI2.Test; package fr.iutfbleau.projetIHM2022FI2.Test;
import fr.iutfbleau.projetIHM2022FI2.ROOT.Util.User;
public class TestTexteMNP{ public class TestTexteMNP{

View File

@ -1,4 +1,4 @@
package fr.iutfbleau.projetIHM2022FI2.ETU.Util; package fr.iutfbleau.projetIHM2022FI2.Test;
public enum User { public enum User {
ROOT("root"), PROF("proffeseur"), ETUDIANT("etudiant"); ROOT("root"), PROF("proffeseur"), ETUDIANT("etudiant");