From 6c05981b8d4d46d2f602c435b710f02216dc61dc Mon Sep 17 00:00:00 2001 From: martins Date: Thu, 17 Nov 2022 10:34:29 +0100 Subject: [PATCH] debut affichage arborescence --- java/APIGroupe/Makefile | 6 ++++- .../TreeSelectionListenerGroupe.java | 20 +++++++++++++++ .../projetIHM2022FI2/Graphic/Model/Model.java | 25 ++++++++++++++----- .../Graphic/View/JTreeGroupe.java | 19 ++++++++++++++ .../MNP/AbstractChangementFactoryNP.java | 4 +-- 5 files changed, 65 insertions(+), 9 deletions(-) create mode 100644 java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/TreeSelectionListenerGroupe.java create mode 100644 java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/JTreeGroupe.java diff --git a/java/APIGroupe/Makefile b/java/APIGroupe/Makefile index 6668c42..f3094cb 100644 --- a/java/APIGroupe/Makefile +++ b/java/APIGroupe/Makefile @@ -144,6 +144,9 @@ ${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 + ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/Controller/TreeSelectionListenerGroupe.java ##.... @@ -153,7 +156,8 @@ ${BUILD}/Graphic/Model/Model.class : ${SRC}/Graphic/Model/Model.java \ ${BUILD}/Graphic/View/FenetreGroupe.class \ ${BUILD}/Graphic/View/FenetreEtudiant.class \ ${BUILD}/Graphic/View/Chargement.class \ - ${BUILD}/Graphic/Util/BD.class + ${BUILD}/Graphic/Util/BD.class \ + ${BUILD}/Graphic/Controller/TreeSelectionListenerGroupe.class ${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/Model/Model.java diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/TreeSelectionListenerGroupe.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/TreeSelectionListenerGroupe.java new file mode 100644 index 0000000..47d30bb --- /dev/null +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/TreeSelectionListenerGroupe.java @@ -0,0 +1,20 @@ +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; + } + @Override + public void valueChanged(TreeSelectionEvent e) { + Groupe g=(Groupe)e.getSource(); + m.showGroupe(g); + } + +} 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 3eeec2e..117b48c 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Model/Model.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Model/Model.java @@ -1,19 +1,20 @@ package fr.iutfbleau.projetIHM2022FI2.Graphic.Model; import java.sql.PreparedStatement; import java.sql.SQLException; -import java.util.LinkedList; import java.util.Set; import java.sql.Connection; import java.sql.ResultSet; -import javax.swing.JFrame; + import javax.swing.*; import java.awt.*; - +import javax.swing.tree.*; +import javax.swing.event.*; import fr.iutfbleau.projetIHM2022FI2.API.AbstractGroupeFactory; import fr.iutfbleau.projetIHM2022FI2.API.Etudiant; import fr.iutfbleau.projetIHM2022FI2.API.Groupe; import fr.iutfbleau.projetIHM2022FI2.API.TypeGroupe; import fr.iutfbleau.projetIHM2022FI2.Graphic.Controller.ObservateurFenetre; +import fr.iutfbleau.projetIHM2022FI2.Graphic.Controller.TreeSelectionListenerGroupe; import fr.iutfbleau.projetIHM2022FI2.Graphic.Util.BD; import fr.iutfbleau.projetIHM2022FI2.Graphic.View.Chargement; import fr.iutfbleau.projetIHM2022FI2.Graphic.View.FenetreEtudiant; @@ -35,6 +36,7 @@ public class Model{ Chargement ch=new Chargement(); 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); @@ -51,7 +53,7 @@ public class Model{ this.fenetre.setLayout(new GridLayout(1,2)); this.fenetre.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); this.fenetre.setMinimumSize(this.fenetre.getSize()); - this.fenetre.add(this.fenGr); + this.fenetre.add(tree.add(this.fenGr)); JScrollPane scroll=new JScrollPane(this.fenEtu); scroll.getVerticalScrollBar().setUnitIncrement(15); this.fenetre.add(scroll); @@ -60,7 +62,9 @@ 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 @@ -68,10 +72,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); + 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(); - this.fenetre.add(this.fenGr); + this.fenetre.add(arbre); JScrollPane scroll=new JScrollPane(this.fenEtu); scroll.getVerticalScrollBar().setUnitIncrement(15); this.fenetre.add(scroll); diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/JTreeGroupe.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/JTreeGroupe.java new file mode 100644 index 0000000..e2e79f1 --- /dev/null +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/JTreeGroupe.java @@ -0,0 +1,19 @@ +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.Model.Model; + +public class JTreeGroupe extends JTree{ + private Groupe groupe; + private Model model; + @Override + protected void fireValueChanged(TreeSelectionEvent e) { + TreeSelectionListener[] list=this.getTreeSelectionListeners(); + list[0].valueChanged(e, g); + + } +} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractChangementFactoryNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractChangementFactoryNP.java index a586c32..b185d66 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractChangementFactoryNP.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/AbstractChangementFactoryNP.java @@ -38,7 +38,7 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory { // la méthode value() d'un hashmap retourne la collection des valeurs. // Il faut transformer la collection en Set. // Un constructeur de HashSet permet de faire cette opération. - Set out = new HashSet(this.brain.values()); + Set out = new HashSet(this.brain.values()); return out; } @@ -96,7 +96,7 @@ public class AbstractChangementFactoryNP implements AbstractChangementFactory { 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(e,"L'étudiant ne peut pas être null"); - + Changement c = new ChangementNP(A,e,B); this.brain.put(Integer.valueOf(c.getId()),c); }