This commit is contained in:
martins 2022-11-23 15:06:55 +01:00
parent 3c518bd6d1
commit 203fca24cd

View File

@ -1,6 +1,7 @@
package fr.iutfbleau.projetIHM2022FI2.Graphic.Model; package fr.iutfbleau.projetIHM2022FI2.Graphic.Model;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.HashMap;
import java.util.Set; import java.util.Set;
import java.sql.Connection; import java.sql.Connection;
import java.sql.ResultSet; import java.sql.ResultSet;
@ -26,66 +27,68 @@ import fr.iutfbleau.projetIHM2022FI2.MNP.GroupeNP;
*/ */
public class Model{ public class Model{
private JPanel panGroupe; private JPanel panGroupe;
private FenetreGroupe fenGr; private FenetreGroupe fenGr;
private FenetreEtudiant fenEtu; private FenetreEtudiant fenEtu;
private AbstractGroupeFactory promo; private AbstractGroupeFactory promo;
private JFrame fenetre; private JFrame fenetre;
private JTree tree; //private JTree tree;
private BD bd; private BD bd;
private HashMap<Integer,DefaultMutableTreeNodeGroupe> brain;
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());
this.brain=new HashMap<>();
this.bd=new BD(this.fenetre); this.bd=new BD(this.fenetre);
Chargement ch=new Chargement(this.fenetre.getSize()); Chargement ch=new Chargement(this.fenetre.getSize());
this.promo=this.getPromo(ch); this.promo=this.getPromo(ch);
ch.dispose(); ch.dispose();
this.fenetre.setVisible(true); this.fenetre.setVisible(true);
if(this.promo==null){ if(this.promo==null){
this.fenGr=new FenetreGroupe(null, this); this.fenGr=new FenetreGroupe(null, this);
this.fenEtu=new FenetreEtudiant(null, this); this.fenEtu=new FenetreEtudiant(null, this);
}else{ }else{
this.fenGr=new FenetreGroupe(this.promo.getPromotion(), this); this.fenGr=new FenetreGroupe(this.promo.getPromotion(), this);
this.fenEtu=new FenetreEtudiant(this.promo.getPromotion(), this); this.fenEtu=new FenetreEtudiant(this.promo.getPromotion(), this);
} }
this.panGroupe=new JPanel(new GridLayout(2,1)); this.panGroupe=new JPanel(new GridLayout(1,1));
this.initJtree(this.promo.getPromotion()); if(this.promo!=null){
if(this.promo!=null){ //this.initJtree(this.promo.getPromotion());
this.showGroupe(this.promo.getPromotion()); }else{
}else{ //this.initJtree(null);
this.showGroupe(null); }
} if(this.promo!=null){
this.showGroupe(this.promo.getPromotion());
}else{
this.showGroupe(null);
} }
/**
* Fonction pour refresh/changer de groupe d'affichage
* @param g le groupe a afficher
*/
public void showGroupe(Groupe g){
if(g!=null)
g=this.bd.refreshALL(g);
//this.initJtree(this.promo.getPromotion());
this.panGroupe.removeAll();
this.fenGr=new FenetreGroupe(g, this);
this.fenEtu=new FenetreEtudiant(g, this);
this.fenetre.getContentPane().removeAll();
this.panGroupe.add(this.tree);
this.panGroupe.add(this.fenGr);
this.panGroupe.revalidate();
this.fenetre.add(this.panGroupe);
JScrollPane scroll=new JScrollPane(this.fenEtu);
scroll.getVerticalScrollBar().setUnitIncrement(15);
this.fenetre.add(scroll);
this.fenetre.revalidate();
} }
/**
* Fonction pour refresh/changer de groupe d'affichage
* @param g le groupe a afficher
*/
public void showGroupe(Groupe g){
if(g!=null)
g=this.bd.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.tree);
this.panGroupe.add(this.fenGr);
this.panGroupe.revalidate();
this.fenetre.add(this.panGroupe);
JScrollPane scroll=new JScrollPane(this.fenEtu);
scroll.getVerticalScrollBar().setUnitIncrement(15);
this.fenetre.add(scroll);
this.fenetre.revalidate();
}
/** /**
* getteur de la fenetre * getteur de la fenetre
* @return JFrame la fenetre * @return JFrame la fenetre
@ -102,7 +105,9 @@ public class Model{
if(g==this.promo.getPromotion()){ if(g==this.promo.getPromotion()){
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=null; this.promo=null;
this.bd.suprGroupe(g); if(this.bd.suprGroupe(g)){
this.initJtree(null);
}
this.showGroupe(null); this.showGroupe(null);
}else{ }else{
return; return;
@ -112,7 +117,9 @@ public class Model{
//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
//elle contiendra les sous-groupe remontant j'usqau groupe a supprimer //elle contiendra les sous-groupe remontant j'usqau groupe a supprimer
//On initialise la liste //On initialise la liste
this.bd.suprGroupe(g); if(this.bd.suprGroupe(g)){
//this.refreshTree(this.brain.get(g.getId()), g);
}
this.showGroupe(g.getPointPoint()); this.showGroupe(g.getPointPoint());
} }
} }
@ -139,7 +146,9 @@ public class Model{
for(Groupe gr: g.getSousGroupes()){ for(Groupe gr: g.getSousGroupes()){
if(gr.getSousGroupes().size()>0 && gr.getSousGroupes().iterator().next().getName().contains(name)){ if(gr.getSousGroupes().size()>0 && gr.getSousGroupes().iterator().next().getName().contains(name)){
this.fenetre.setVisible(false); this.fenetre.setVisible(false);
this.bd.saveGroupe(gr, 100/this.getTailleGroupe(gr)+1, ch); if(this.bd.saveGroupe(gr, 100/this.getTailleGroupe(gr)+1, ch)){
//this.refreshTree(this.brain.get(g.getId()), g);
}
ch.dispose(); ch.dispose();
this.fenetre.setVisible(true); this.fenetre.setVisible(true);
break; break;
@ -331,28 +340,34 @@ public class Model{
return true; return true;
} }
private void initJtree(Groupe g){ private void initJtree(Groupe g){/*
this.brain=new HashMap<>();
DefaultMutableTreeNodeGroupe mut; DefaultMutableTreeNodeGroupe mut;
if(g!=null){ if(g!=null){
mut=new DefaultMutableTreeNodeGroupe(g, g.getName()); mut=new DefaultMutableTreeNodeGroupe(g, g.getName());
this.brain.put(g.getId(), mut);
for(Groupe sous:g.getSousGroupes()){ for(Groupe sous:g.getSousGroupes()){
this.treeRecursif(sous, mut); this.treeRecursif(sous, mut);
} }
}else{ }else{
mut=new DefaultMutableTreeNodeGroupe(g, null); mut=new DefaultMutableTreeNodeGroupe(g, null);
} }
this.tree=new JTreeGroupe(this, mut); //this.tree=new JTreeGroupe(this, mut);*/
} }
private void treeRecursif(Groupe g, DefaultMutableTreeNodeGroupe m){ private void treeRecursif(Groupe g, DefaultMutableTreeNodeGroupe m){/*
this.brain.put(g.getId(), m);
DefaultMutableTreeNodeGroupe mut=new DefaultMutableTreeNodeGroupe(g, g.getName()); DefaultMutableTreeNodeGroupe mut=new DefaultMutableTreeNodeGroupe(g, g.getName());
m.add(mut); m.add(mut);
for(Groupe sous: g.getSousGroupes()){ for(Groupe sous: g.getSousGroupes()){
this.treeRecursif(sous, mut); this.treeRecursif(sous, mut);
} }*/
} }
private void refreshTree(Groupe g){ private void refreshTree(DefaultMutableTreeNodeGroupe m, Groupe g){
/* m.removeAllChildren();
for(Groupe sous:g.getSousGroupes()){
this.treeRecursif(sous, m);
}*/
} }
} }