debut changement
This commit is contained in:
parent
c215672e38
commit
1351345df5
@ -150,7 +150,8 @@ ${BUILD}/ROOT/Controller/ObservateurFenetre.class : ${SRC}/ROOT/Controller/Obser
|
|||||||
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/ROOT/Controller/ObservateurFenetre.java
|
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/ROOT/Controller/ObservateurFenetre.java
|
||||||
|
|
||||||
${BUILD}/ROOT/Controller/ObservateurModifGroupe.class : ${SRC}/ROOT/Controller/ObservateurModifGroupe.java \
|
${BUILD}/ROOT/Controller/ObservateurModifGroupe.class : ${SRC}/ROOT/Controller/ObservateurModifGroupe.java \
|
||||||
${BUILD}/ROOT/View/FenetreSelectionEtu.class
|
${BUILD}/ROOT/View/FenetreSelectionEtu.class \
|
||||||
|
${BUILD}/ROOT/Controller/SelecteurEtudiant.class
|
||||||
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/ROOT/Controller/ObservateurModifGroupe.java
|
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/ROOT/Controller/ObservateurModifGroupe.java
|
||||||
|
|
||||||
${BUILD}/ROOT/Controller/ObservateurChangeGroupe.class : ${SRC}/ROOT/Controller/ObservateurChangeGroupe.java
|
${BUILD}/ROOT/Controller/ObservateurChangeGroupe.class : ${SRC}/ROOT/Controller/ObservateurChangeGroupe.java
|
||||||
@ -212,10 +213,14 @@ ${BUILD}/ETU/View/Chargement.class : ${SRC}/ETU/View/Chargement.java
|
|||||||
${BUILD}/ETU/Controller/ActionListenerChangeEtu.class : ${SRC}/ETU/Controller/ActionListenerChangeEtu.java
|
${BUILD}/ETU/Controller/ActionListenerChangeEtu.class : ${SRC}/ETU/Controller/ActionListenerChangeEtu.java
|
||||||
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/ETU/Controller/ActionListenerChangeEtu.java
|
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/ETU/Controller/ActionListenerChangeEtu.java
|
||||||
|
|
||||||
|
${BUILD}/ETU/Controller/ControllerGroupeBChangement.class : ${SRC}/ETU/Controller/ControllerGroupeBChangement.java
|
||||||
|
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/ETU/Controller/ControllerGroupeBChangement.java
|
||||||
|
|
||||||
${BUILD}/ETU/Controller/ObservateurFenetre.class : ${SRC}/ETU/Controller/ObservateurFenetre.java
|
${BUILD}/ETU/Controller/ObservateurFenetre.class : ${SRC}/ETU/Controller/ObservateurFenetre.java
|
||||||
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/ETU/Controller/ObservateurFenetre.java
|
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/ETU/Controller/ObservateurFenetre.java
|
||||||
|
|
||||||
${BUILD}/ETU/Controller/ObservateurChangeGroupe.class : ${SRC}/ETU/Controller/ObservateurChangeGroupe.java
|
${BUILD}/ETU/Controller/ObservateurChangeGroupe.class : ${SRC}/ETU/Controller/ObservateurChangeGroupe.java \
|
||||||
|
${BUILD}/ETU/Controller/ControllerGroupeBChangement.class
|
||||||
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/ETU/Controller/ObservateurChangeGroupe.java
|
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/ETU/Controller/ObservateurChangeGroupe.java
|
||||||
|
|
||||||
##....
|
##....
|
||||||
|
@ -1,20 +1,65 @@
|
|||||||
package fr.iutfbleau.projetIHM2022FI2.ETU.Controller;
|
package fr.iutfbleau.projetIHM2022FI2.ETU.Controller;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
import java.awt.event.ActionListener;
|
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.Etudiant;
|
||||||
|
import fr.iutfbleau.projetIHM2022FI2.API.Groupe;
|
||||||
import fr.iutfbleau.projetIHM2022FI2.ETU.Model.Model;
|
import fr.iutfbleau.projetIHM2022FI2.ETU.Model.Model;
|
||||||
|
|
||||||
public class ActionListenerChangeEtu implements ActionListener {
|
public class ActionListenerChangeEtu implements ActionListener {
|
||||||
public Etudiant etudiant;
|
private Etudiant etudiant;
|
||||||
public Model model;
|
private Model model;
|
||||||
|
private Groupe B;
|
||||||
|
private Set<JButton> bout;
|
||||||
|
private JPanel myPanel;
|
||||||
public ActionListenerChangeEtu(Model m, Etudiant e){
|
public ActionListenerChangeEtu(Model m, Etudiant e){
|
||||||
this.model=m;
|
this.model=m;
|
||||||
this.etudiant=e;
|
this.etudiant=e;
|
||||||
|
this.B=null;
|
||||||
|
this.bout=null;
|
||||||
|
myPanel=null;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
System.out.println(this.etudiant.toString());
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,19 @@
|
|||||||
|
package fr.iutfbleau.projetIHM2022FI2.ETU.Controller;
|
||||||
|
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import fr.iutfbleau.projetIHM2022FI2.API.Groupe;
|
||||||
|
|
||||||
|
public class ControllerGroupeBChangement implements ActionListener{
|
||||||
|
private ActionListenerChangeEtu parent;
|
||||||
|
private Groupe b;
|
||||||
|
public ControllerGroupeBChangement(Groupe b, ActionListenerChangeEtu observateur){
|
||||||
|
this.parent=observateur;
|
||||||
|
this.b=b;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
this.parent.setGroupeB(this.b);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,16 +1,20 @@
|
|||||||
package fr.iutfbleau.projetIHM2022FI2.ETU.Model;
|
package fr.iutfbleau.projetIHM2022FI2.ETU.Model;
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
|
|
||||||
|
import fr.iutfbleau.projetIHM2022FI2.API.AbstractChangementFactory;
|
||||||
import fr.iutfbleau.projetIHM2022FI2.API.AbstractGroupeFactory;
|
import fr.iutfbleau.projetIHM2022FI2.API.AbstractGroupeFactory;
|
||||||
import fr.iutfbleau.projetIHM2022FI2.API.Etudiant;
|
import fr.iutfbleau.projetIHM2022FI2.API.Etudiant;
|
||||||
import fr.iutfbleau.projetIHM2022FI2.API.Groupe;
|
import fr.iutfbleau.projetIHM2022FI2.API.Groupe;
|
||||||
import fr.iutfbleau.projetIHM2022FI2.API.TypeGroupe;
|
import fr.iutfbleau.projetIHM2022FI2.API.TypeGroupe;
|
||||||
|
import fr.iutfbleau.projetIHM2022FI2.MNP.AbstractChangementFactoryNP;
|
||||||
import fr.iutfbleau.projetIHM2022FI2.MNP.AbstractGroupeFactoryNP;
|
import fr.iutfbleau.projetIHM2022FI2.MNP.AbstractGroupeFactoryNP;
|
||||||
import fr.iutfbleau.projetIHM2022FI2.MNP.GroupeNP;
|
import fr.iutfbleau.projetIHM2022FI2.MNP.GroupeNP;
|
||||||
import fr.iutfbleau.projetIHM2022FI2.ETU.Controller.ObservateurFenetre;
|
import fr.iutfbleau.projetIHM2022FI2.ETU.Controller.ObservateurFenetre;
|
||||||
@ -28,9 +32,10 @@ public class Model{
|
|||||||
private FenetreGroupe fenGr;
|
private FenetreGroupe fenGr;
|
||||||
private FenetreEtudiant fenEtu;
|
private FenetreEtudiant fenEtu;
|
||||||
private AbstractGroupeFactory promo;
|
private AbstractGroupeFactory promo;
|
||||||
|
private AbstractChangementFactory changement;
|
||||||
private JFrame fenetre;
|
private JFrame fenetre;
|
||||||
private Etudiant Selected;
|
private Etudiant Selected;
|
||||||
//private JTree tree;
|
|
||||||
private BD bd;
|
private BD bd;
|
||||||
public Model(){
|
public Model(){
|
||||||
this.fenetre=new JFrame();
|
this.fenetre=new JFrame();
|
||||||
@ -48,10 +53,12 @@ public class Model{
|
|||||||
this.initEtu(null);
|
this.initEtu(null);
|
||||||
if(this.promo==null){
|
if(this.promo==null){
|
||||||
this.fenGr=new FenetreGroupe(null, this, null);
|
this.fenGr=new FenetreGroupe(null, this, null);
|
||||||
this.fenEtu=new FenetreEtudiant(null, this.Selected);
|
this.fenEtu=new FenetreEtudiant(null, this.Selected, this);
|
||||||
|
this.changement=null;
|
||||||
}else{
|
}else{
|
||||||
|
this.changement=new AbstractChangementFactoryNP(promo, this.fenetre);
|
||||||
this.fenGr=new FenetreGroupe(this.promo.getPromotion(), this,this.promo.getGroupesOfEtudiant(this.Selected));
|
this.fenGr=new FenetreGroupe(this.promo.getPromotion(), this,this.promo.getGroupesOfEtudiant(this.Selected));
|
||||||
this.fenEtu=new FenetreEtudiant(this.promo.getPromotion(), this.Selected);
|
this.fenEtu=new FenetreEtudiant(this.promo.getPromotion(), this.Selected, this);
|
||||||
}
|
}
|
||||||
this.panGroupe=new JPanel(new GridLayout(1,1));
|
this.panGroupe=new JPanel(new GridLayout(1,1));
|
||||||
if(this.promo!=null){
|
if(this.promo!=null){
|
||||||
@ -70,7 +77,7 @@ public void showGroupe(Groupe g){
|
|||||||
g=this.bd.refreshALL(g);
|
g=this.bd.refreshALL(g);
|
||||||
this.panGroupe.removeAll();
|
this.panGroupe.removeAll();
|
||||||
this.fenGr=new FenetreGroupe(g, this, this.promo.getGroupesOfEtudiant(this.Selected));
|
this.fenGr=new FenetreGroupe(g, this, this.promo.getGroupesOfEtudiant(this.Selected));
|
||||||
this.fenEtu=new FenetreEtudiant(g, this.Selected);
|
this.fenEtu=new FenetreEtudiant(g, this.Selected, this);
|
||||||
this.fenetre.getContentPane().removeAll();
|
this.fenetre.getContentPane().removeAll();
|
||||||
this.panGroupe.add(this.fenGr.getPan());
|
this.panGroupe.add(this.fenGr.getPan());
|
||||||
this.panGroupe.revalidate();
|
this.panGroupe.revalidate();
|
||||||
@ -153,7 +160,7 @@ public void showGroupe(Groupe g){
|
|||||||
}
|
}
|
||||||
panel.add(myPanel);
|
panel.add(myPanel);
|
||||||
|
|
||||||
if(JOptionPane.showConfirmDialog(null, panel, "login", JOptionPane.OK_CANCEL_OPTION) != JOptionPane.OK_OPTION){
|
if(JOptionPane.showConfirmDialog(this.fenetre, panel, "login", JOptionPane.OK_CANCEL_OPTION) != JOptionPane.OK_OPTION){
|
||||||
this.fenetre.dispose();
|
this.fenetre.dispose();
|
||||||
System.exit(0);
|
System.exit(0);
|
||||||
}else{
|
}else{
|
||||||
@ -261,6 +268,7 @@ public void showGroupe(Groupe g){
|
|||||||
if(JOptionPane.showConfirmDialog(this.fenetre, "Attention ête vous sûr de vouloir supprimer la promo", "Attention", JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){
|
if(JOptionPane.showConfirmDialog(this.fenetre, "Attention ête vous sûr de vouloir supprimer la promo", "Attention", JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){
|
||||||
this.promo.deleteGroupe(g);
|
this.promo.deleteGroupe(g);
|
||||||
this.promo=null;
|
this.promo=null;
|
||||||
|
this.changement=null;
|
||||||
this.showGroupe(null);
|
this.showGroupe(null);
|
||||||
}else{
|
}else{
|
||||||
return;
|
return;
|
||||||
@ -352,6 +360,7 @@ public void showGroupe(Groupe g){
|
|||||||
public void addPromo(int min, int max, String name, Set<Etudiant> ajout){
|
public void addPromo(int min, int max, String name, Set<Etudiant> ajout){
|
||||||
Chargement ch=new Chargement(this.fenetre);
|
Chargement ch=new Chargement(this.fenetre);
|
||||||
this.promo=new AbstractGroupeFactoryNP(name, min, max, this.fenetre);
|
this.promo=new AbstractGroupeFactoryNP(name, min, max, this.fenetre);
|
||||||
|
this.changement=new AbstractChangementFactoryNP(promo, this.fenetre);
|
||||||
this.fenetre.setVisible(false);
|
this.fenetre.setVisible(false);
|
||||||
ch.addPourcent(20);
|
ch.addPourcent(20);
|
||||||
int pourcent=85/ajout.size();
|
int pourcent=85/ajout.size();
|
||||||
@ -364,4 +373,32 @@ public void showGroupe(Groupe g){
|
|||||||
this.showGroupe(this.promo.getPromotion());
|
this.showGroupe(this.promo.getPromotion());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// **************************
|
||||||
|
// FONCTION POUR LES CHANGEMENTS
|
||||||
|
// ******************************
|
||||||
|
public void changeGroupe(Etudiant e, Groupe b){
|
||||||
|
if(b==null)
|
||||||
|
return;
|
||||||
|
b=this.bd.refreshGroupe(b);
|
||||||
|
if(b.getEtudiants()!=null && b.getMax()>b.getEtudiants().size()+1){
|
||||||
|
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());
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<Groupe> getGroupePartition(){
|
||||||
|
Set<Groupe> 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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -11,15 +11,19 @@ import java.util.Set;
|
|||||||
import fr.iutfbleau.projetIHM2022FI2.API.Etudiant;
|
import fr.iutfbleau.projetIHM2022FI2.API.Etudiant;
|
||||||
import fr.iutfbleau.projetIHM2022FI2.API.Groupe;
|
import fr.iutfbleau.projetIHM2022FI2.API.Groupe;
|
||||||
import fr.iutfbleau.projetIHM2022FI2.API.TypeGroupe;
|
import fr.iutfbleau.projetIHM2022FI2.API.TypeGroupe;
|
||||||
|
import fr.iutfbleau.projetIHM2022FI2.ETU.Model.Model;
|
||||||
|
import fr.iutfbleau.projetIHM2022FI2.ETU.Controller.ActionListenerChangeEtu;
|
||||||
|
|
||||||
|
|
||||||
public class FenetreEtudiant{
|
public class FenetreEtudiant{
|
||||||
private Set<Etudiant> etu;
|
private Set<Etudiant> etu;
|
||||||
private JPanel pan;
|
private JPanel pan;
|
||||||
private Etudiant concerner;
|
private Etudiant concerner;
|
||||||
|
private Model model;
|
||||||
private boolean partition;
|
private boolean partition;
|
||||||
public FenetreEtudiant(Groupe g, Etudiant e){
|
public FenetreEtudiant(Groupe g, Etudiant e, Model m){
|
||||||
this.pan=new JPanel();
|
this.pan=new JPanel();
|
||||||
|
this.model=m;
|
||||||
if(g!=null){
|
if(g!=null){
|
||||||
this.etu=g.getEtudiants();
|
this.etu=g.getEtudiants();
|
||||||
}else{
|
}else{
|
||||||
@ -38,7 +42,7 @@ public class FenetreEtudiant{
|
|||||||
if(this.etu.size()!=0){
|
if(this.etu.size()!=0){
|
||||||
this.pan.setLayout(new GridLayout(this.etu.size(), 1, 30, 0));
|
this.pan.setLayout(new GridLayout(this.etu.size(), 1, 30, 0));
|
||||||
PanelEtudiant p=new PanelEtudiant(this.concerner, this.partition);
|
PanelEtudiant p=new PanelEtudiant(this.concerner, this.partition);
|
||||||
p.addActionChangeListener(null);
|
p.addActionChangeListener(new ActionListenerChangeEtu(this.model, this.concerner));
|
||||||
this.pan.add(p);
|
this.pan.add(p);
|
||||||
for(Etudiant e: this.etu){
|
for(Etudiant e: this.etu){
|
||||||
if(this.concerner.getId() != e.getId()){
|
if(this.concerner.getId() != e.getId()){
|
||||||
|
@ -1,5 +1,13 @@
|
|||||||
package fr.iutfbleau.projetIHM2022FI2.MNP;
|
package fr.iutfbleau.projetIHM2022FI2.MNP;
|
||||||
import fr.iutfbleau.projetIHM2022FI2.API.*;
|
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.*;
|
import java.util.*;
|
||||||
/**
|
/**
|
||||||
* Usine abstraite gérant l'ensemble des changements.
|
* Usine abstraite gérant l'ensemble des changements.
|
||||||
@ -10,14 +18,15 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory {
|
|||||||
|
|
||||||
// l'usine à groupe travaillant en tandem avec cette usine.
|
// l'usine à groupe travaillant en tandem avec cette usine.
|
||||||
private AbstractGroupeFactory agf;
|
private AbstractGroupeFactory agf;
|
||||||
|
private JFrame fenetre;
|
||||||
// On utilise une table de hachage pour retrouver facilement un changement (à partir de son id).
|
// 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.
|
// Si il y a beaucoup de changements c'est plus rapide que de parcourir toute une liste.
|
||||||
private HashMap<Integer,Changement> brain;
|
private HashMap<Integer,Changement> brain;
|
||||||
|
|
||||||
public AbstractChangementFactoryNP(AbstractGroupeFactory agf){
|
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");
|
Objects.requireNonNull(agf,"On ne peut pas créer une usine à changement dont l'usine à groupe parternaire est null");
|
||||||
this.agf=agf;
|
this.agf=agf;
|
||||||
|
this.fenetre=fenetre;
|
||||||
this.brain=new HashMap<Integer,Changement>();
|
this.brain=new HashMap<Integer,Changement>();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,9 +105,71 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory {
|
|||||||
Objects.requireNonNull(A,"Le groupe d'origine ne peut pas être null");
|
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(B,"Le groupe d'arrivée 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");
|
||||||
|
|
||||||
Changement c = new ChangementNP(A,e,B);
|
Changement c = new ChangementNP(A,e,B);
|
||||||
this.brain.put(Integer.valueOf(c.getId()),c);
|
this.brain.put(Integer.valueOf(c.getId()),c);
|
||||||
|
Connection cnx=this.cnx();
|
||||||
|
try{
|
||||||
|
PreparedStatement pst=cnx.prepareStatement("INSERT INTO `Changement` (`idGroupeA`, `idGroupeB`, `idEtudiant`) VALUES (?, ?, ?);");
|
||||||
|
pst.setInt(1, A.getId());
|
||||||
|
pst.setInt(2, B.getId());
|
||||||
|
pst.setInt(3, e.getId());
|
||||||
|
pst.executeUpdate();
|
||||||
|
pst.close();
|
||||||
|
}catch(SQLException er){
|
||||||
|
if(this.erreurSQL()){
|
||||||
|
this.createChangement(A, e, B);
|
||||||
|
}else{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.close(cnx);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// **********************
|
||||||
|
// FONCTION POUR SIMPLIFIER LES Modification BD
|
||||||
|
// ***********************
|
||||||
|
|
||||||
|
|
||||||
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void close(AutoCloseable clos){
|
||||||
|
try{
|
||||||
|
clos.close();
|
||||||
|
}catch(Exception e){
|
||||||
|
if(this.erreurCO()==true)
|
||||||
|
this.close(clos);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -375,13 +375,13 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void close(AutoCloseable clos){
|
private void close(AutoCloseable clos){
|
||||||
try{
|
try{
|
||||||
clos.close();
|
clos.close();
|
||||||
}catch(Exception e){
|
}catch(Exception e){
|
||||||
if(this.erreurCO()==true)
|
if(this.erreurCO()==true)
|
||||||
this.close(clos);
|
this.close(clos);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private boolean saveEtu(Etudiant etudiant, Groupe g){
|
private boolean saveEtu(Etudiant etudiant, Groupe g){
|
||||||
|
@ -10,6 +10,7 @@ import java.util.Set;
|
|||||||
|
|
||||||
import fr.iutfbleau.projetIHM2022FI2.API.Etudiant;
|
import fr.iutfbleau.projetIHM2022FI2.API.Etudiant;
|
||||||
import fr.iutfbleau.projetIHM2022FI2.API.Groupe;
|
import fr.iutfbleau.projetIHM2022FI2.API.Groupe;
|
||||||
|
import fr.iutfbleau.projetIHM2022FI2.API.TypeGroupe;
|
||||||
import fr.iutfbleau.projetIHM2022FI2.ROOT.Controller.ActionListenerChangeEtu;
|
import fr.iutfbleau.projetIHM2022FI2.ROOT.Controller.ActionListenerChangeEtu;
|
||||||
import fr.iutfbleau.projetIHM2022FI2.ROOT.Controller.ActionListenerSuprEtu;
|
import fr.iutfbleau.projetIHM2022FI2.ROOT.Controller.ActionListenerSuprEtu;
|
||||||
import fr.iutfbleau.projetIHM2022FI2.ROOT.Model.Model;
|
import fr.iutfbleau.projetIHM2022FI2.ROOT.Model.Model;
|
||||||
@ -19,12 +20,15 @@ public class FenetreEtudiant{
|
|||||||
private Set<Etudiant> etu;
|
private Set<Etudiant> etu;
|
||||||
private Model m;
|
private Model m;
|
||||||
private JPanel pan;
|
private JPanel pan;
|
||||||
|
private TypeGroupe type;
|
||||||
public FenetreEtudiant(Groupe g, Model m){
|
public FenetreEtudiant(Groupe g, Model m){
|
||||||
this.pan=new JPanel();
|
this.pan=new JPanel();
|
||||||
this.m=m;
|
this.m=m;
|
||||||
if(g!=null){
|
if(g!=null){
|
||||||
|
this.type=g.getPointPoint().getType();
|
||||||
this.etu=g.getEtudiants();
|
this.etu=g.getEtudiants();
|
||||||
}else{
|
}else{
|
||||||
|
this.type=null;
|
||||||
this.etu=new LinkedHashSet<>();
|
this.etu=new LinkedHashSet<>();
|
||||||
}
|
}
|
||||||
this.draw();
|
this.draw();
|
||||||
@ -34,7 +38,12 @@ public class FenetreEtudiant{
|
|||||||
if(this.etu.size()!=0){
|
if(this.etu.size()!=0){
|
||||||
this.pan.setLayout(new GridLayout(this.etu.size(), 1, 10, 0));
|
this.pan.setLayout(new GridLayout(this.etu.size(), 1, 10, 0));
|
||||||
for(Etudiant e: this.etu){
|
for(Etudiant e: this.etu){
|
||||||
PanelEtudiant p=new PanelEtudiant(e);
|
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.addActionDeleteListener(new ActionListenerSuprEtu(m, e));
|
||||||
p.addActionChangeListener(new ActionListenerChangeEtu(m, e));
|
p.addActionChangeListener(new ActionListenerChangeEtu(m, e));
|
||||||
this.pan.add(p);
|
this.pan.add(p);
|
||||||
|
@ -11,16 +11,17 @@ import java.awt.event.ActionListener;
|
|||||||
public class PanelEtudiant extends JPanel{
|
public class PanelEtudiant extends JPanel{
|
||||||
private JButton supprimer;
|
private JButton supprimer;
|
||||||
private JButton deplacer;
|
private JButton deplacer;
|
||||||
public PanelEtudiant(Etudiant e){
|
public PanelEtudiant(Etudiant e, boolean change){
|
||||||
super(new GridLayout(1,2,20,10));
|
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);
|
JLabel label=new JLabel(" "+e.getNom()+" "+e.getPrenom()+" "+e.getId(), JLabel.LEFT);
|
||||||
this.supprimer=new JButton("supr");
|
this.supprimer=new JButton("supr");
|
||||||
this.deplacer=new JButton("change");
|
this.deplacer=new JButton("change");
|
||||||
|
if(change==true){
|
||||||
|
bouton.add(this.deplacer);
|
||||||
|
}
|
||||||
this.add(label);
|
this.add(label);
|
||||||
JPanel bouton=new JPanel(new GridLayout(1,2));
|
|
||||||
bouton.add(this.supprimer);
|
bouton.add(this.supprimer);
|
||||||
bouton.add(this.deplacer);
|
|
||||||
this.add(bouton);
|
this.add(bouton);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user