diff --git a/java/APIGroupe/Makefile b/java/APIGroupe/Makefile index f3094cb..607cf0c 100644 --- a/java/APIGroupe/Makefile +++ b/java/APIGroupe/Makefile @@ -103,6 +103,11 @@ ${BUILD}/Graphic/Util/BD.class : ${SRC}/Graphic/Util/BD.java ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/Util/BD.java ## View ## +${BUILD}/Graphic/View/JTreeGroupe.class : ${SRC}/Graphic/View/JTreeGroupe.java \ + ${BUILD}/Graphic/Controller/TreeSelectionListenerGroupe.class \ + ${BUILD}/Graphic/Controller/TreeSelectionEventGroupe.class + ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/View/JTreeGroupe.java + ${BUILD}/Graphic/View/FenetreGroupe.class : ${SRC}/Graphic/View/FenetreGroupe.java \ ${BUILD}/Graphic/Controller/ObservateurFenetre.class \ ${BUILD}/Graphic/Controller/ObservateurChangeGroupe.class \ @@ -112,10 +117,12 @@ ${BUILD}/Graphic/View/FenetreGroupe.class : ${SRC}/Graphic/View/FenetreGroupe.ja ${BUILD}/Graphic/View/FenetreEtudiant.class :${SRC}/Graphic/View/FenetreEtudiant.java \ ${BUILD}/Graphic/Controller/ObservateurFenetre.class \ ${BUILD}/Graphic/Controller/ObservateurChangeGroupe.class \ - ${BUILD}/Graphic/View/PanelEtudiant.class + ${BUILD}/Graphic/View/PanelEtudiant.class \ + ${BUILD}/Graphic/Controller/ActionListenerChangeEtu.class ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/View/FenetreEtudiant.java -${BUILD}/Graphic/View/PanelEtudiant.class : ${SRC}/Graphic/View/PanelEtudiant.java +${BUILD}/Graphic/View/PanelEtudiant.class : ${SRC}/Graphic/View/PanelEtudiant.java \ + ${BUILD}/Graphic/Controller/ActionListenerSuprEtu.class ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/View/PanelEtudiant.java ${BUILD}/Graphic/View/Chargement.class : ${SRC}/Graphic/View/Chargement.java @@ -129,6 +136,14 @@ ${BUILD}/Graphic/View/FenetreSelectionEtu.class : ${SRC}/Graphic/View/FenetreSel ## Controller ## +${BUILD}/Graphic/Controller/ActionListenerChangeEtu.class : ${SRC}/Graphic/Controller/ActionListenerChangeEtu.java + ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/Controller/ActionListenerChangeEtu.java + +${BUILD}/Graphic/Controller/ActionListenerSuprEtu.class : ${SRC}/Graphic/Controller/ActionListenerSuprEtu.java \ + ${BUILD}/API/Etudiant.class + ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/Controller/ActionListenerSuprEtu.java + + ${BUILD}/Graphic/Controller/ObservateurFenetre.class : ${SRC}/Graphic/Controller/ObservateurFenetre.java ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/Controller/ObservateurFenetre.java @@ -145,8 +160,12 @@ ${BUILD}/Graphic/Controller/SelecteurEtudiant.class : ${SRC}/Graphic/Controller/ ${BUILD}/Graphic/Controller/ActionListenerNouveauEtu.class : ${SRC}/Graphic/Controller/ActionListenerNouveauEtu.java ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/Controller/ActionListenerNouveauEtu.java -${BUILD}/Graphic/Controller/TreeSelectionListenerGroupe.class : ${SRC}/Graphic/Controller/TreeSelectionListenerGroupe.java +${BUILD}/Graphic/Controller/TreeSelectionListenerGroupe.class : ${SRC}/Graphic/Controller/TreeSelectionListenerGroupe.java \ + ${BUILD}/Graphic/Controller/TreeSelectionEventGroupe.class ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/Controller/TreeSelectionListenerGroupe.java + +${BUILD}/Graphic/Controller/TreeSelectionEventGroupe.class : ${SRC}/Graphic/Controller/TreeSelectionEventGroupe.java + ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/Controller/TreeSelectionEventGroupe.java ##.... @@ -157,7 +176,8 @@ ${BUILD}/Graphic/Model/Model.class : ${SRC}/Graphic/Model/Model.java \ ${BUILD}/Graphic/View/FenetreEtudiant.class \ ${BUILD}/Graphic/View/Chargement.class \ ${BUILD}/Graphic/Util/BD.class \ - ${BUILD}/Graphic/Controller/TreeSelectionListenerGroupe.class + ${BUILD}/Graphic/Controller/TreeSelectionListenerGroupe.class \ + ${BUILD}/Graphic/View/JTreeGroupe.class ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/Model/Model.java diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ActionListenerChangeEtu.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ActionListenerChangeEtu.java new file mode 100644 index 0000000..a60abfa --- /dev/null +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ActionListenerChangeEtu.java @@ -0,0 +1,20 @@ +package fr.iutfbleau.projetIHM2022FI2.Graphic.Controller; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import fr.iutfbleau.projetIHM2022FI2.API.Etudiant; +import fr.iutfbleau.projetIHM2022FI2.Graphic.Model.Model; + +public class ActionListenerChangeEtu implements ActionListener { + public Etudiant etudiant; + public Model model; + public ActionListenerChangeEtu(Model m, Etudiant e){ + this.model=m; + this.etudiant=e; + } + @Override + public void actionPerformed(ActionEvent e) { + System.out.println(this.etudiant.toString()); + } + +} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ActionListenerSuprEtu.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ActionListenerSuprEtu.java new file mode 100644 index 0000000..d1c6440 --- /dev/null +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ActionListenerSuprEtu.java @@ -0,0 +1,23 @@ +package fr.iutfbleau.projetIHM2022FI2.Graphic.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.Graphic.Model.Model; +public class ActionListenerSuprEtu implements ActionListener { + public Etudiant etudiant; + public Model model; + public ActionListenerSuprEtu(Model m, Etudiant e){ + this.model=m; + this.etudiant=e; + } + @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/Graphic/Controller/TreeSelectionEventGroupe.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/TreeSelectionEventGroupe.java new file mode 100644 index 0000000..f9566ef --- /dev/null +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/TreeSelectionEventGroupe.java @@ -0,0 +1,27 @@ +package fr.iutfbleau.projetIHM2022FI2.Graphic.Controller; + +import javax.swing.event.*; +import javax.swing.tree.TreePath; + +import fr.iutfbleau.projetIHM2022FI2.API.Groupe; +import fr.iutfbleau.projetIHM2022FI2.Graphic.Model.Model; + +public class TreeSelectionEventGroupe extends TreeSelectionEvent{ + private Groupe groupe; + private Model model; + public TreeSelectionEventGroupe(Object source, TreePath[] paths, boolean[] areNew, TreePath oldLeadSelectionPath, + TreePath newLeadSelectionPath, Groupe g, Model m) { + super(source, paths, areNew, oldLeadSelectionPath, newLeadSelectionPath); + this.groupe=g; + this.model=m; + } + + public Groupe getGroupe() { + return groupe; + } + + public Model getModel() { + return model; + } + +} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/TreeSelectionListenerGroupe.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/TreeSelectionListenerGroupe.java index 47d30bb..fa7804e 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/TreeSelectionListenerGroupe.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/TreeSelectionListenerGroupe.java @@ -3,18 +3,15 @@ package fr.iutfbleau.projetIHM2022FI2.Graphic.Controller; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; -import fr.iutfbleau.projetIHM2022FI2.API.Groupe; -import fr.iutfbleau.projetIHM2022FI2.Graphic.Model.Model; public class TreeSelectionListenerGroupe implements TreeSelectionListener{ - private Model m; - public TreeSelectionListenerGroupe(Model m){ - this.m=m; + public TreeSelectionListenerGroupe(){ } + @Override public void valueChanged(TreeSelectionEvent e) { - Groupe g=(Groupe)e.getSource(); - m.showGroupe(g); + TreeSelectionEventGroupe k=(TreeSelectionEventGroupe)e; + k.getModel().showGroupe(k.getGroupe()); } } diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Model/Model.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Model/Model.java index 117b48c..f911085 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Model/Model.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Model/Model.java @@ -19,6 +19,7 @@ import fr.iutfbleau.projetIHM2022FI2.Graphic.Util.BD; import fr.iutfbleau.projetIHM2022FI2.Graphic.View.Chargement; import fr.iutfbleau.projetIHM2022FI2.Graphic.View.FenetreEtudiant; import fr.iutfbleau.projetIHM2022FI2.Graphic.View.FenetreGroupe; +import fr.iutfbleau.projetIHM2022FI2.Graphic.View.JTreeGroupe; import fr.iutfbleau.projetIHM2022FI2.MNP.AbstractGroupeFactoryNP; import fr.iutfbleau.projetIHM2022FI2.MNP.GroupeNP; @@ -32,21 +33,20 @@ public class Model{ private JFrame fenetre; private BD bd; public Model(){ + this.fenetre=new JFrame(); + this.fenetre.setSize(1200, 720); this.bd=new BD(this.fenetre); - Chargement ch=new Chargement(); + Chargement ch=new Chargement(this.fenetre.getSize()); this.promo=this.getPromo(ch); ch.dispose(); JTree tree=new JTree(); if(this.promo==null){ this.fenGr=new FenetreGroupe(null, this); - this.fenEtu=new FenetreEtudiant(null); + this.fenEtu=new FenetreEtudiant(null, this); }else{ this.fenGr=new FenetreGroupe(this.promo.getPromotion(), this); - this.fenEtu=new FenetreEtudiant(this.promo.getPromotion()); + this.fenEtu=new FenetreEtudiant(this.promo.getPromotion(), this); } - - this.fenetre=new JFrame(); - this.fenetre.setSize(1200, 720); this.bd.setFenetre(this.fenetre); this.fenetre.setLocation(100,100); this.fenetre.addWindowListener(new ObservateurFenetre()); @@ -62,9 +62,6 @@ public class Model{ this.showGroupe(this.promo.getPromotion()); } - private void nouvelleCible(TreePath e){ - System.out.println(e.getLastPathComponent().toString()); - } /** * Fonction pour refresh/changer de groupe d'affichage * @param g le groupe a afficher @@ -72,19 +69,19 @@ public class Model{ public void showGroupe(Groupe g){ if(g!=null) g=this.bd.refreshALL(g); - DefaultMutableTreeNode mut=new DefaultMutableTreeNode(g); - JTree arbre = new JTree(mut); + /* + JTree arbre = new JTreeGroupe(g, this); arbre.setEditable(true); arbre.setShowsRootHandles(true); arbre.getSelectionModel().setSelectionMode( TreeSelectionModel.SINGLE_TREE_SELECTION); - - arbre.addTreeSelectionListener(new TreeSelectionListenerGroupe(this)); - - this.fenGr=new FenetreGroupe(g, this); - this.fenEtu=new FenetreEtudiant(g); - this.fenetre.getContentPane().removeAll(); + arbre.addTreeSelectionListener(new TreeSelectionListenerGroupe()); this.fenetre.add(arbre); + */ + this.fenGr=new FenetreGroupe(g, this); + this.fenEtu=new FenetreEtudiant(g, this); + this.fenetre.getContentPane().removeAll(); + this.fenetre.add(this.fenGr); JScrollPane scroll=new JScrollPane(this.fenEtu); scroll.getVerticalScrollBar().setUnitIncrement(15); this.fenetre.add(scroll); @@ -136,7 +133,7 @@ public class Model{ * @param name le nom des partition */ public void partition(Groupe g, int n, String name){ - Chargement ch=new Chargement(); + Chargement ch=new Chargement(this.fenetre.getSize()); this.promo.createPartition(g, name, n); //On recherche le groupe Partitionner pour le sauvegarder dans la BD @@ -207,7 +204,7 @@ public class Model{ public void addPromo(int min, int max, String name, Set ajout){ - Chargement ch=new Chargement(); + Chargement ch=new Chargement(this.fenetre.getSize()); this.promo=new AbstractGroupeFactoryNP(name, min, max); this.fenetre.setVisible(false); this.bd.saveGroupe(this.promo.getPromotion(), this.getTailleGroupe(this.promo.getPromotion()), ch); @@ -313,4 +310,25 @@ public class Model{ this.init(gr, pourcentage, ch); } } + + public boolean deleteEtu(Etudiant e){ + if(this.deleteEtutoChildren(e, this.fenGr.getG())){ + this.bd.deleteEtu(e, this.fenGr.getG()); + this.showGroupe(this.fenGr.getG()); + return true; + }else{ + return false; + } + } + + private boolean deleteEtutoChildren(Etudiant e, Groupe g){ + if(g.getMax() etu; - public FenetreEtudiant(Groupe g){ + private Model m; + public FenetreEtudiant(Groupe g, Model m){ super(); + this.m=m; if(g!=null){ this.etu=g.getEtudiants(); }else{ @@ -29,6 +34,8 @@ public class FenetreEtudiant extends JPanel{ this.setLayout(new GridLayout(this.etu.size(), 1, 10, 0)); for(Etudiant e: this.etu){ PanelEtudiant p=new PanelEtudiant(e); + p.addActionDeleteListener(new ActionListenerSuprEtu(m, e)); + p.addActionChangeListener(new ActionListenerChangeEtu(m, e)); this.add(p); } }else{ diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/JTreeGroupe.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/JTreeGroupe.java index e2e79f1..b6b813e 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/JTreeGroupe.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/JTreeGroupe.java @@ -3,17 +3,27 @@ package fr.iutfbleau.projetIHM2022FI2.Graphic.View; import javax.swing.JTree; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; - import fr.iutfbleau.projetIHM2022FI2.API.Groupe; +import fr.iutfbleau.projetIHM2022FI2.Graphic.Controller.TreeSelectionEventGroupe; +import fr.iutfbleau.projetIHM2022FI2.Graphic.Controller.TreeSelectionListenerGroupe; import fr.iutfbleau.projetIHM2022FI2.Graphic.Model.Model; public class JTreeGroupe extends JTree{ private Groupe groupe; private Model model; + public JTreeGroupe(Groupe g, Model m){ + super(); + this.groupe=g; + this.model=m; + } + + @Override protected void fireValueChanged(TreeSelectionEvent e) { + e=new TreeSelectionEventGroupe(this, getSelectionPaths(), null, getLeadSelectionPath(), getLeadSelectionPath(), this.groupe, this.model); TreeSelectionListener[] list=this.getTreeSelectionListeners(); - list[0].valueChanged(e, g); - + TreeSelectionListenerGroupe l=(TreeSelectionListenerGroupe) list[0]; + l.valueChanged(e); } + } diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/PanelEtudiant.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/PanelEtudiant.java index b39423a..ede8a8e 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/PanelEtudiant.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/PanelEtudiant.java @@ -7,21 +7,28 @@ import fr.iutfbleau.projetIHM2022FI2.API.Etudiant; import javax.swing.JButton; import java.awt.*; - +import java.awt.event.ActionListener; public class PanelEtudiant extends JPanel{ - private Etudiant e; private JButton supprimer; private JButton deplacer; public PanelEtudiant(Etudiant e){ super(new GridLayout(1,2,20,10)); - this.e=e; JLabel label=new JLabel(" "+e.getNom()+" "+e.getPrenom()+" "+e.getId(), JLabel.LEFT); this.supprimer=new JButton("supr"); this.deplacer=new JButton("change"); + this.add(label); JPanel bouton=new JPanel(new GridLayout(1,2)); bouton.add(this.supprimer); bouton.add(this.deplacer); this.add(bouton); } + + public void addActionDeleteListener(ActionListener a){ + this.supprimer.addActionListener(a); + } + + public void addActionChangeListener(ActionListener a){ + this.deplacer.addActionListener(a); + } }