ajout tous les étudiant et correction bug

This commit is contained in:
martins 2022-11-16 17:03:05 +01:00
parent 4b6321d9b8
commit 5c4413a6fb
6 changed files with 92 additions and 83 deletions

View File

@ -14,18 +14,22 @@ public class ActionListenerNouveauEtu implements ActionListener{
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
JPanel myPanel = new JPanel(); if(e.getActionCommand()=="tous"){
JTextField xField = new JTextField(20); this.pere.addAll();
JTextField yField = new JTextField(20); }else{
myPanel.add(new JLabel("Nom:")); JPanel myPanel = new JPanel();
myPanel.add(xField); JTextField xField = new JTextField(20);
myPanel.add(Box.createHorizontalStrut(15)); JTextField yField = new JTextField(20);
myPanel.add(new JLabel("Prenom:")); myPanel.add(new JLabel("Nom:"));
myPanel.add(yField); myPanel.add(xField);
int result = JOptionPane.showConfirmDialog(this.pere, myPanel, myPanel.add(Box.createHorizontalStrut(15));
"Entrer le nombre et le nom des Partitions", JOptionPane.OK_CANCEL_OPTION); myPanel.add(new JLabel("Prenom:"));
if(result==JOptionPane.YES_OPTION){ myPanel.add(yField);
this.pere.addEtudiant(xField.getText(), yField.getText()); 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());
}
} }
} }

View File

@ -145,7 +145,19 @@ public class ObservateurModifGroupe implements ActionListener{
if(zField.getText().length()==0){ if(zField.getText().length()==0){
JOptionPane.showMessageDialog(m.getFenetre(), "erreur entre un nom", "erreur", JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(m.getFenetre(), "erreur entre un nom", "erreur", JOptionPane.ERROR_MESSAGE);
}else{ }else{
m.addPromo(min, max, zField.getText()); if(min>max){
JOptionPane.showMessageDialog(m.getFenetre(), "erreur min>max", "erreur", JOptionPane.ERROR_MESSAGE);
}else{
Set<Etudiant> 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<ajout.size()){
JOptionPane.showMessageDialog(m.getFenetre(), "Il y a trop/pas assez d'etudiant pour le groupe", "erreur", JOptionPane.ERROR_MESSAGE);
return;
}
m.addPromo(min, max, yField.getText(), ajout);
}
}
} }
} }
}catch(NumberFormatException er){ }catch(NumberFormatException er){

View File

@ -89,11 +89,15 @@ public class Model{
* @param g le groupe a supprimer * @param g le groupe a supprimer
*/ */
public void delete(Groupe g){ public void delete(Groupe g){
//On ne peut pas supprimer la promo avec la factory //On ne peut pas supprimer la promo normallement
if(g==this.promo.getPromotion()){ if(g==this.promo.getPromotion()){
this.promo=null; if(JOptionPane.showConfirmDialog(this.fenetre, "Attention ête vous sûr de vouloir supprimer la promo", "Attention", JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){
this.bd.suprGroupe(g); this.promo=null;
this.showGroupe(null); this.bd.suprGroupe(g);
this.showGroupe(null);
}else{
return;
}
//JOptionPane.showMessageDialog(this.fenetre, "impossible de supprimer la promotion", "alerte", JOptionPane.ERROR_MESSAGE); //JOptionPane.showMessageDialog(this.fenetre, "impossible de supprimer la promotion", "alerte", JOptionPane.ERROR_MESSAGE);
}else{ }else{
//autrement on récupere les groupe a supprimer par ordre avec une fonction recursive //autrement on récupere les groupe a supprimer par ordre avec une fonction recursive
@ -159,7 +163,6 @@ public class Model{
this.bd.createGroupe(creer); this.bd.createGroupe(creer);
//on y ajoute les étudiant //on y ajoute les étudiant
int n=0; int n=0;
int size=100/ajout.size()+1;
for(Etudiant e:ajout){ for(Etudiant e:ajout){
if(this.addEtudiant(creer, e)==false) if(this.addEtudiant(creer, e)==false)
n++; n++;
@ -190,14 +193,20 @@ public class Model{
public void addPromo(int min, int max, String name){ public void addPromo(int min, int max, String name, Set<Etudiant> ajout){
Chargement ch=new Chargement(); Chargement ch=new Chargement();
this.promo=new AbstractGroupeFactoryNP(name, min, max); this.promo=new AbstractGroupeFactoryNP(name, min, max);
this.fenetre.setVisible(false); this.fenetre.setVisible(false);
this.bd.saveGroupe(this.promo.getPromotion(), this.getTailleGroupe(this.promo.getPromotion()), ch); this.bd.saveGroupe(this.promo.getPromotion(), this.getTailleGroupe(this.promo.getPromotion()), ch);
ch.addPourcent(20);
int pourcent=85/ajout.size();
for(Etudiant e:ajout){
this.addEtudiant(this.promo.getPromotion(), e);
ch.addPourcent(pourcent);
}
ch.dispose(); ch.dispose();
this.fenetre.setVisible(true); this.fenetre.setVisible(true);
this.showGroupe(this.bd.refreshALL(this.promo.getPromotion())); this.showGroupe(this.promo.getPromotion());
} }
/** /**
@ -208,8 +217,9 @@ public class Model{
*/ */
public boolean addEtudiant(Groupe g, Etudiant e){ public boolean addEtudiant(Groupe g, Etudiant e){
//Si on a la place //Si on a la place
if(this.addEtuToParent(g.getPointPoint(), e)==false) if(g!=g.getPointPoint())
return false; if(this.addEtuToParent(g.getPointPoint(), e)==false)
return false;
//On induqe a la BD de sauvegarder cette modification //On induqe a la BD de sauvegarder cette modification
this.bd.saveEtu(e, g); this.bd.saveEtu(e, g);
return true; return true;
@ -225,13 +235,16 @@ public class Model{
if(g.getMax()==g.getSize()) if(g.getMax()==g.getSize())
return false; return false;
for(Etudiant et:g.getEtudiants()){ for(Etudiant et:g.getEtudiants()){
if(et==e){ if(et.getId()==e.getId()){
return true; return true;
} }
} }
if(g.getPointPoint()!=g) if(g.getPointPoint()!=g){
if(this.addEtuToParent(g.getPointPoint(), e)==false){return false;} if(this.addEtuToParent(g.getPointPoint(), e)==false){
this.promo.addToGroupe(g, e); return false;
}
}
this.bd.saveEtu(e, g);
return true; return true;
} }
@ -267,12 +280,10 @@ public class Model{
this.promo=null; this.promo=null;
} }
}catch(SQLException e){ }catch(SQLException e){
System.out.println("hooo");
} }
rs.close(); rs.close();
pst.close(); pst.close();
}catch(SQLException e){ }catch(SQLException e){
System.out.println("erreur dans le resultat");
} }
this.bd.close(cnx); this.bd.close(cnx);
return agf; return agf;

View File

@ -225,21 +225,6 @@ public class BD {
pst.setInt(2, etudiant.getId()); pst.setInt(2, etudiant.getId());
pst.setInt(1, g.getId()); pst.setInt(1, g.getId());
pst.executeUpdate(); pst.executeUpdate();
boolean la=false;
while(g!=g.getPointPoint() || la==false){
g=g.getPointPoint();
for(Etudiant e:g.getEtudiants()){
if(e==etudiant){
la=true;
break;
}
}
if(la==false){
pst.setInt(2, etudiant.getId());
pst.setInt(1, g.getId());
pst.executeUpdate();
}
}
}else{ }else{
pst.close(); pst.close();
pst=cnx.prepareStatement( pst=cnx.prepareStatement(
@ -248,18 +233,6 @@ public class BD {
pst.setString(2, etudiant.getNom()); pst.setString(2, etudiant.getNom());
pst.setString(3, etudiant.getPrenom()); pst.setString(3, etudiant.getPrenom());
pst.executeUpdate(); pst.executeUpdate();
pst.close();
pst=cnx.prepareStatement(
"INSERT INTO `CONTIENT` (`idGroupe`, `idEt`) VALUES (?, ?);");
pst.setInt(2, etudiant.getId());
pst.setInt(1, g.getId());
pst.executeUpdate();
while(g.getPointPoint()!=g){
g=g.getPointPoint();
pst.setInt(2, etudiant.getId());
pst.setInt(1, g.getId());
pst.executeUpdate();
}
} }
rs.close(); rs.close();
pst.close(); pst.close();

View File

@ -6,11 +6,12 @@ import fr.iutfbleau.projetIHM2022FI2.Graphic.Controller.ActionListenerNouveauEtu
import fr.iutfbleau.projetIHM2022FI2.Graphic.Controller.SelecteurEtudiant; import fr.iutfbleau.projetIHM2022FI2.Graphic.Controller.SelecteurEtudiant;
import fr.iutfbleau.projetIHM2022FI2.MNP.EtudiantNP; import fr.iutfbleau.projetIHM2022FI2.MNP.EtudiantNP;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set; import java.util.Set;
import java.awt.GridLayout; import java.awt.GridLayout;
import java.awt.Color; import java.awt.Color;
import javax.swing.JButton; import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
import javax.swing.JPanel; import javax.swing.JPanel;
@ -76,12 +77,34 @@ public class FenetreSelectionEtu extends JPanel{
this.add(lab); this.add(lab);
index++; index++;
} }
if(etu.size()==0){
this.add(new JLabel("Ce groupe possède tous les étudiants déja présent"));
}
JButton nouveau=new JButton("Nouveau +"); JButton nouveau=new JButton("Nouveau +");
nouveau.setBackground(Color.RED); nouveau.setBackground(Color.RED);
nouveau.addActionListener(new ActionListenerNouveauEtu(this)); nouveau.addActionListener(new ActionListenerNouveauEtu(this));
JButton all=new JButton("tous");
this.add(all);
all.addActionListener(new ActionListenerNouveauEtu(this));
this.add(nouveau); this.add(nouveau);
} }
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();
}
} }

View File

@ -9,33 +9,19 @@ import javax.swing.JButton;
import java.awt.*; import java.awt.*;
public class PanelEtudiant extends JPanel{ public class PanelEtudiant extends JPanel{
private JLabel nom;
private Etudiant e; private Etudiant e;
private JButton renomer;
private JButton supprimer; private JButton supprimer;
private JButton deplacer; private JButton deplacer;
public PanelEtudiant(Etudiant e){ public PanelEtudiant(Etudiant e){
super(new GridBagLayout()); super(new GridLayout(1,2,20,10));
this.nom=new JLabel(e.getNom()+" "+e.getPrenom()+" "+e.getId(), JLabel.LEFT); this.e=e;
JLabel label=new JLabel(" "+e.getNom()+" "+e.getPrenom()+" "+e.getId(), JLabel.LEFT);
this.renomer=new JButton("r"); this.supprimer=new JButton("supr");
this.supprimer=new JButton("-"); this.deplacer=new JButton("change");
this.deplacer=new JButton("c"); this.add(label);
GridBagConstraints cbg=new GridBagConstraints(); JPanel bouton=new JPanel(new GridLayout(1,2));
bouton.add(this.supprimer);
cbg.gridy=0; bouton.add(this.deplacer);
cbg.anchor=GridBagConstraints.EAST; this.add(bouton);
cbg.fill=GridBagConstraints.BOTH;
this.add(this.nom, cbg);
cbg.gridwidth=0;
cbg.gridheight=0;
cbg.anchor=GridBagConstraints.EAST;
cbg.fill=GridBagConstraints.NONE;
this.add(this.renomer, cbg);
this.add(this.supprimer, cbg);
this.add(this.deplacer, cbg);
} }
} }