debut affichage arborescence

This commit is contained in:
martins 2022-11-17 10:34:29 +01:00
parent 5c4413a6fb
commit 6c05981b8d
5 changed files with 65 additions and 9 deletions

View File

@ -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

View File

@ -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);
}
}

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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<Changement> out = new HashSet(this.brain.values());
Set<Changement> out = new HashSet<Changement>(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);
}