modif estetique et correction de bug
This commit is contained in:
parent
2618f46017
commit
df58be5b3e
@ -124,8 +124,12 @@ ${BUILD}/Graphic/Model.class : ${SRC}/Graphic/Model.java \
|
||||
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/Model.java
|
||||
|
||||
${BUILD}/Graphic/View/FenetreSelectionEtu.class : ${SRC}/Graphic/View/FenetreSelectionEtu.java \
|
||||
${BUILD}/Graphic/Controller/SelecteurEtudiant.class
|
||||
${BUILD}/Graphic/Controller/SelecteurEtudiant.class \
|
||||
${BUILD}/Graphic/Controller/ActionListenerNouveauEtu.class
|
||||
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/View/FenetreSelectionEtu.java
|
||||
|
||||
|
||||
|
||||
## Controller ##
|
||||
${BUILD}/Graphic/Controller/ObservateurFenetre.class : ${SRC}/Graphic/Controller/ObservateurFenetre.java
|
||||
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/Controller/ObservateurFenetre.java
|
||||
@ -139,6 +143,9 @@ ${BUILD}/Graphic/Controller/ObservateurChangeGroupe.class : ${SRC}/Graphic/Contr
|
||||
|
||||
${BUILD}/Graphic/Controller/SelecteurEtudiant.class : ${SRC}/Graphic/Controller/SelecteurEtudiant.java
|
||||
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/Controller/SelecteurEtudiant.java
|
||||
|
||||
${BUILD}/Graphic/Controller/ActionListenerNouveauEtu.class : ${SRC}/Graphic/Controller/ActionListenerNouveauEtu.java
|
||||
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/Controller/ActionListenerNouveauEtu.java
|
||||
##....
|
||||
|
||||
## TEST ##
|
||||
|
@ -0,0 +1,32 @@
|
||||
package fr.iutfbleau.projetIHM2022FI2.Graphic.Controller;
|
||||
|
||||
import java.awt.event.ActionListener;
|
||||
import fr.iutfbleau.projetIHM2022FI2.Graphic.View.FenetreSelectionEtu;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
|
||||
public class ActionListenerNouveauEtu implements ActionListener{
|
||||
private FenetreSelectionEtu pere;
|
||||
public ActionListenerNouveauEtu(FenetreSelectionEtu pere){
|
||||
this.pere=pere;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
JPanel myPanel = new JPanel();
|
||||
JTextField xField = new JTextField(20);
|
||||
JTextField yField = new JTextField(20);
|
||||
myPanel.add(new JLabel("Nom:"));
|
||||
myPanel.add(xField);
|
||||
myPanel.add(Box.createHorizontalStrut(15));
|
||||
myPanel.add(new JLabel("Prenom:"));
|
||||
myPanel.add(yField);
|
||||
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());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -26,9 +26,10 @@ public class ObservateurFenetre implements WindowListener{
|
||||
public void windowClosing(WindowEvent e) {
|
||||
JFrame fenetre= (JFrame) e.getSource();
|
||||
int confirmation = JOptionPane.showConfirmDialog(fenetre.getContentPane(), "Voulez vous quitter?", "Quitter", JOptionPane.YES_NO_OPTION);
|
||||
if(confirmation == JOptionPane.YES_OPTION);
|
||||
if(confirmation == JOptionPane.YES_OPTION){
|
||||
fenetre.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void windowDeactivated(WindowEvent e) {
|
||||
|
@ -4,7 +4,6 @@ import java.awt.event.*;
|
||||
import java.util.LinkedHashSet;
|
||||
import fr.iutfbleau.projetIHM2022FI2.API.*;
|
||||
import javax.swing.JOptionPane;
|
||||
|
||||
import fr.iutfbleau.projetIHM2022FI2.API.Groupe;
|
||||
import fr.iutfbleau.projetIHM2022FI2.Graphic.Model;
|
||||
import fr.iutfbleau.projetIHM2022FI2.Graphic.View.FenetreSelectionEtu;
|
||||
@ -20,10 +19,10 @@ public class ObservateurModifGroupe implements ActionListener{
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if(e.getActionCommand()=="suprimer ce groupe"){
|
||||
if(e.getActionCommand()=="supr"){
|
||||
this.m.delete(this.groupe);
|
||||
}
|
||||
if(e.getActionCommand()=="créer un sous groupe"){
|
||||
if(e.getActionCommand()=="new Groupe"){
|
||||
String g[]=new String[2];
|
||||
g[0]="Partition";
|
||||
g[1]="Free";
|
||||
@ -36,7 +35,7 @@ public class ObservateurModifGroupe implements ActionListener{
|
||||
JTextField yField = new JTextField(20);
|
||||
myPanel.add(new JLabel("Nombre:"));
|
||||
myPanel.add(xField);
|
||||
myPanel.add(Box.createHorizontalStrut(15)); // a spacer
|
||||
myPanel.add(Box.createHorizontalStrut(15));
|
||||
myPanel.add(new JLabel("Nom:"));
|
||||
myPanel.add(yField);
|
||||
int result = JOptionPane.showConfirmDialog(m.getFenetre(), myPanel,
|
||||
@ -60,7 +59,7 @@ public class ObservateurModifGroupe implements ActionListener{
|
||||
JTextField yField = new JTextField(20);
|
||||
myPanel.add(new JLabel("Nom:"));
|
||||
myPanel.add(yField);
|
||||
myPanel.add(Box.createHorizontalStrut(15)); // a spacer
|
||||
myPanel.add(Box.createHorizontalStrut(15));
|
||||
myPanel.add(new JLabel("Min:"));
|
||||
myPanel.add(xField);
|
||||
myPanel.add(new JLabel("Max:"));
|
||||
@ -75,7 +74,7 @@ public class ObservateurModifGroupe implements ActionListener{
|
||||
return;
|
||||
}
|
||||
Set<Etudiant> ajout=new LinkedHashSet<>();
|
||||
myPanel=new FenetreSelectionEtu(this.groupe.getPointPoint(), ajout);
|
||||
myPanel=new FenetreSelectionEtu(this.groupe, ajout);
|
||||
if(JOptionPane.showConfirmDialog(m.getFenetre(), new JScrollPane(myPanel), "Selectionner les étudiant a ajouter", JOptionPane.OK_CANCEL_OPTION) ==JOptionPane.YES_OPTION){
|
||||
if(ajout.size()>=min && ajout.size()<=max){
|
||||
m.free(groupe, yField.getText(), min, max, ajout);
|
||||
@ -93,22 +92,27 @@ public class ObservateurModifGroupe implements ActionListener{
|
||||
}
|
||||
}
|
||||
}
|
||||
if(e.getActionCommand()=="renomer"){
|
||||
if(e.getActionCommand()=="rename"){
|
||||
String nouveau=JOptionPane.showInputDialog(m.getFenetre(), "Rentrer le nouveau Nom");
|
||||
m.rename(nouveau, this.groupe);
|
||||
}
|
||||
if(e.getActionCommand()=="ajouter"){
|
||||
if(e.getActionCommand()=="add"){
|
||||
Set<Etudiant> ajout=new LinkedHashSet<>();
|
||||
JPanel myPanel=new FenetreSelectionEtu(this.groupe.getPointPoint(), ajout);
|
||||
JPanel myPanel=new FenetreSelectionEtu(this.groupe, ajout);
|
||||
myPanel.setMaximumSize(this.m.getFenetre().getSize());
|
||||
if(JOptionPane.showConfirmDialog(m.getFenetre(), new JScrollPane(myPanel), "Selectionner les étudiant a ajouter", JOptionPane.OK_CANCEL_OPTION) ==JOptionPane.YES_OPTION){
|
||||
if(this.groupe.getMax()<this.groupe.getEtudiants().size()+ajout.size()){
|
||||
JOptionPane.showMessageDialog(m.getFenetre(), "Il y a trop d'etudiant pour le groupe", "erreur", JOptionPane.ERROR_MESSAGE);
|
||||
return;
|
||||
}
|
||||
int i=0;
|
||||
for(Etudiant et:ajout){
|
||||
m.addEtudiant(this.groupe, et);
|
||||
if(m.addEtudiant(this.groupe, et)==false){
|
||||
i++;
|
||||
}
|
||||
}
|
||||
if(i>0){JOptionPane.showMessageDialog(m.getFenetre(), "erreur impossible d'ajouter "+i+" etudiants par manque de place dans le groupe de ses parents", "errer", JOptionPane.ERROR_MESSAGE);}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -43,7 +43,6 @@ public class Model{
|
||||
this.fenetre.add(ch, BorderLayout.CENTER);
|
||||
this.fenetre.setVisible(true);
|
||||
this.promo=this.getPromo(ch);
|
||||
//A Modif
|
||||
if(this.promo==null){
|
||||
this.fenGr=new FenetreGroupe(null, this);
|
||||
this.fenEtu=new FenetreEtudiant(null);
|
||||
@ -56,12 +55,14 @@ public class Model{
|
||||
this.fenetre.setSize(1200, 720);
|
||||
this.fenetre.setLocation(100,100);
|
||||
this.fenetre.addWindowListener(new ObservateurFenetre());
|
||||
this.fenetre.setLayout(new GridLayout(2,1));
|
||||
this.fenetre.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
|
||||
this.fenetre.add(new JScrollPane(this.fenGr));
|
||||
this.fenetre.add(new JScrollPane(this.fenEtu));
|
||||
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);
|
||||
JScrollPane scroll=new JScrollPane(this.fenEtu);
|
||||
scroll.getVerticalScrollBar().setUnitIncrement(15);
|
||||
this.fenetre.add(scroll);
|
||||
this.fenetre.setVisible(true);
|
||||
this.addEtudiant(this.promo.getPromotion().getSousGroupes().iterator().next(), new EtudiantNP("test", "test"));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -95,7 +96,7 @@ public class Model{
|
||||
//On créer la Factory
|
||||
agf=new AbstractGroupeFactoryNP(groupe);
|
||||
//On y ajoute les étudiants
|
||||
this.addBDEtudiant(groupe, cnx, agf);
|
||||
this.addBDEtudiant(groupe, cnx, true);
|
||||
}else{
|
||||
//Si aucune ligne et donc pas de promo:
|
||||
this.promo=null;
|
||||
@ -113,7 +114,8 @@ public class Model{
|
||||
}
|
||||
cnx.close();
|
||||
}catch(SQLException e){
|
||||
System.out.println("Erreur dans la connexion!");
|
||||
chargement.erreur();
|
||||
JOptionPane.showMessageDialog(this.fenetre, "erreur connection a la BD", "erreur connection", JOptionPane.YES_NO_OPTION);
|
||||
}
|
||||
}catch(ClassNotFoundException e){
|
||||
System.out.println("pilote non disponible");
|
||||
@ -177,7 +179,7 @@ public class Model{
|
||||
* @param g le groupe pour qui ajouter les Etudiant
|
||||
* @param cnx la connection (evite de surcharger la BD)
|
||||
*/
|
||||
private void addBDEtudiant(Groupe g, Connection cnx, AbstractGroupeFactory agf){
|
||||
private void addBDEtudiant(Groupe g, Connection cnx, boolean recursif){
|
||||
try{
|
||||
//On récupère les etudiants contenue du groupe
|
||||
PreparedStatement pst;
|
||||
@ -189,23 +191,23 @@ public class Model{
|
||||
try{
|
||||
//Pour tous les étudiants
|
||||
while(rs.next()){
|
||||
//si c'est la groupe de promo
|
||||
//On ne peut pas récuperer l'etudiant il est donc créer
|
||||
if(g==agf.getPromotion()){
|
||||
agf.addToGroupe(g, new EtudiantNP(rs.getString(1), rs.getString(2), rs.getInt(3)));
|
||||
}else{
|
||||
boolean exist=false;
|
||||
//autrement on recupere l'etudiant
|
||||
for(Etudiant e: g.getPointPoint().getEtudiants()){
|
||||
if(e.getId()==rs.getInt(3)){
|
||||
agf.addToGroupe(g, e);
|
||||
exist=true;
|
||||
g.addEtudiant(e);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(exist==false){
|
||||
g.addEtudiant(new EtudiantNP(rs.getString(1), rs.getString(2), rs.getInt(3)));
|
||||
}
|
||||
}
|
||||
//on ajout les étudiants a tous les sous groupe
|
||||
for(Groupe sous:g.getSousGroupes()){
|
||||
this.addBDEtudiant(sous, cnx, agf);
|
||||
if(recursif==true)
|
||||
this.addBDEtudiant(sous, cnx, true);
|
||||
}
|
||||
}catch(SQLException e){
|
||||
System.out.println("erreur dans la prise de resultat");
|
||||
@ -228,8 +230,10 @@ public class Model{
|
||||
this.fenGr=new FenetreGroupe(g, this);
|
||||
this.fenEtu=new FenetreEtudiant(g);
|
||||
this.fenetre.getContentPane().removeAll();
|
||||
this.fenetre.add(new JScrollPane(this.fenGr));
|
||||
this.fenetre.add(new JScrollPane(this.fenEtu));
|
||||
this.fenetre.add(this.fenGr);
|
||||
JScrollPane scroll=new JScrollPane(this.fenEtu);
|
||||
scroll.getVerticalScrollBar().setUnitIncrement(15);
|
||||
this.fenetre.add(scroll);
|
||||
this.fenetre.revalidate();
|
||||
}
|
||||
/**
|
||||
@ -284,6 +288,7 @@ public class Model{
|
||||
*/
|
||||
public void partition(Groupe g, int n, String name){
|
||||
this.promo.createPartition(g, name, n);
|
||||
this.refresh(g);
|
||||
this.fenGr.refresh();
|
||||
}
|
||||
|
||||
@ -307,8 +312,18 @@ public class Model{
|
||||
}
|
||||
}
|
||||
//on y ajoute les étudiant
|
||||
int n=0;
|
||||
for(Etudiant e:ajout){
|
||||
this.addEtudiant(creer, e);
|
||||
if(this.addEtudiant(creer, e)==false)
|
||||
n++;
|
||||
}
|
||||
if(n>0)
|
||||
JOptionPane.showMessageDialog(this.fenetre, "erreur impossible d'ajouter "+n+" etudiants par manque de place dans le groupe de ses parents", "erreur", JOptionPane.ERROR_MESSAGE);
|
||||
//Si finalement avec les etudiants qui n'ont pas pus être ajouter le min n'est pas atteint
|
||||
if(creer.getSize()<creer.getMin()){
|
||||
//On le supprime
|
||||
this.promo.deleteGroupe(creer);
|
||||
JOptionPane.showMessageDialog(this.fenetre, "en raison du manque d'etudiant pour le nombre min le groupe n'a pas pus être créer", "errer", JOptionPane.ERROR_MESSAGE);
|
||||
}
|
||||
this.fenGr.refresh();
|
||||
}
|
||||
@ -327,26 +342,77 @@ public class Model{
|
||||
* Fonction pour ajouter un étudiant au groupe
|
||||
* @param g
|
||||
* @param e
|
||||
* @return boolean pour savoir si il a pus être ajouter
|
||||
*/
|
||||
public void addEtudiant(Groupe g, Etudiant e){
|
||||
g.addEtudiant(e);
|
||||
public boolean addEtudiant(Groupe g, Etudiant e){
|
||||
if(g.getPointPoint()!=g)
|
||||
this.addEtuToParent(g.getPointPoint(), e);
|
||||
if(this.addEtuToParent(g.getPointPoint(), e)==false){return false;}
|
||||
g.addEtudiant(e);
|
||||
this.fenEtu.refresh();
|
||||
return true;
|
||||
}
|
||||
|
||||
private void addEtuToParent(Groupe g, Etudiant e){
|
||||
/**
|
||||
* Fonction recursive pour ajouter l'etudiant a ses parents si il ne l'ont pas
|
||||
* @param g groupe
|
||||
* @param e etudiant
|
||||
* @return true si possible
|
||||
*/
|
||||
private boolean addEtuToParent(Groupe g, Etudiant e){
|
||||
if(g.getMax()==g.getSize())
|
||||
return false;
|
||||
for(Etudiant et:g.getEtudiants()){
|
||||
if(et==e){
|
||||
return;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if(g.getPointPoint()!=g)
|
||||
this.addEtuToParent(g.getPointPoint(), e);
|
||||
if(this.addEtuToParent(g.getPointPoint(), e)==false){return false;}
|
||||
this.promo.addToGroupe(g, e);
|
||||
return true;
|
||||
}
|
||||
|
||||
private void refresh(Groupe g){
|
||||
try{
|
||||
Class.forName("org.mariadb.jdbc.Driver");
|
||||
try{
|
||||
Connection cnx = DriverManager.getConnection(
|
||||
"jdbc:mariadb://dwarves.iut-fbleau.fr/chaignea",
|
||||
"chaignea", "Chaigneauphpmyadmin");
|
||||
try{
|
||||
//on récupère le Groupe de la BD n'ayant pas de Parent (La promo donc)
|
||||
PreparedStatement pst = cnx.prepareStatement(
|
||||
"SELECT `id`, `nom`, `min`, `max`, `value`, `id-parent` FROM `Groupe` join `TYPE` on Groupe.Type=TYPE.name where Groupe.id=? ORDER BY Groupe.id ASC;");
|
||||
try{
|
||||
pst.setString(1, String.valueOf(g.getId()));
|
||||
ResultSet rs = pst.executeQuery();
|
||||
try{
|
||||
if(rs.first()){
|
||||
//On créer le groupe de promo
|
||||
Groupe groupe=new GroupeNP(rs.getInt(1), rs.getString(2), rs.getInt(3), rs.getInt(4), TypeGroupe.getType(rs.getString(5)), null);
|
||||
//On lui ajoute tout ses sous-groupe
|
||||
this.addSousGroupe(groupe, cnx, null, 100);
|
||||
//On y ajoute les étudiants
|
||||
this.addBDEtudiant(groupe, cnx, false);
|
||||
|
||||
}
|
||||
}catch(SQLException e){
|
||||
System.out.println("erreur dans la prise de resultat");
|
||||
}
|
||||
rs.close();
|
||||
}catch(SQLException e){
|
||||
System.out.println("erreur dans le resultat");
|
||||
}
|
||||
pst.close();
|
||||
}catch(SQLException e){
|
||||
System.out.println("erreur dans la preparation");
|
||||
}
|
||||
cnx.close();
|
||||
}catch(SQLException e){
|
||||
JOptionPane.showMessageDialog(this.fenetre, "erreur connection a la BD", "erreur connection", JOptionPane.YES_NO_OPTION);
|
||||
}
|
||||
}catch(ClassNotFoundException e){
|
||||
System.out.println("pilote non disponible");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -11,8 +11,10 @@ import java.awt.*;
|
||||
*/
|
||||
public class Chargement extends JComponent{
|
||||
private int pourcentage;
|
||||
private boolean erreur;
|
||||
|
||||
public Chargement(){
|
||||
this.erreur=false;
|
||||
this.pourcentage=0;
|
||||
}
|
||||
public void addPourcent(int n){
|
||||
@ -39,5 +41,15 @@ public class Chargement extends JComponent{
|
||||
secondPinceau.drawRect(this.getWidth()/10, this.getHeight()/2, this.getWidth()/10*8, this.getHeight()/10);
|
||||
float stat=(int) 8.F/100.F*(pourcentage);
|
||||
secondPinceau.fillRect(this.getWidth()/10, this.getHeight()/2, this.getWidth()/10*((int) stat), this.getHeight()/10);
|
||||
if(this.erreur==true){
|
||||
secondPinceau.setColor(Color.RED);
|
||||
secondPinceau.setFont(new Font(Font.SANS_SERIF, Font.BOLD, (this.getWidth()/20)));
|
||||
metrics = secondPinceau.getFontMetrics(secondPinceau.getFont());
|
||||
secondPinceau.drawString("erreur connection BD", (this.getWidth()/2-metrics.stringWidth("erreur connection BD")/2), (this.getHeight()-metrics.getHeight())/4*3+metrics.getAscent());
|
||||
}
|
||||
}
|
||||
|
||||
public void erreur(){
|
||||
this.erreur=true;
|
||||
}
|
||||
}
|
@ -26,7 +26,7 @@ public class FenetreEtudiant extends JPanel{
|
||||
|
||||
private void draw(){
|
||||
if(this.etu.size()!=0){
|
||||
this.setLayout(new GridLayout(this.etu.size()/2+1, 2, 10, 0));
|
||||
this.setLayout(new GridLayout(this.etu.size(), 1, 10, 0));
|
||||
for(Etudiant e: this.etu){
|
||||
PanelEtudiant p=new PanelEtudiant(e);
|
||||
this.add(p);
|
||||
|
@ -3,7 +3,8 @@ package fr.iutfbleau.projetIHM2022FI2.Graphic.View;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
import javax.swing.JScrollPane;
|
||||
import java.awt.Font;
|
||||
import java.awt.GridLayout;
|
||||
import fr.iutfbleau.projetIHM2022FI2.API.Groupe;
|
||||
import fr.iutfbleau.projetIHM2022FI2.API.TypeGroupe;
|
||||
@ -31,36 +32,49 @@ public class FenetreGroupe extends JPanel{
|
||||
}
|
||||
private void draw(){
|
||||
if(g!=null){
|
||||
this.setLayout(new GridLayout(11+g.getSousGroupes().size(), 1));
|
||||
JButton bout=new JButton("point point");
|
||||
int taille=5;
|
||||
if(g.getType()==TypeGroupe.PARTITION || g.getType()==TypeGroupe.ROOT)
|
||||
taille--;
|
||||
if(g.getSousGroupes().size()>0)
|
||||
this.setLayout(new GridLayout(8, 1));
|
||||
else{this.setLayout(new GridLayout(7, 1));}
|
||||
JPanel tache=new JPanel(new GridLayout(1,taille));
|
||||
if(g.getType()!=TypeGroupe.ROOT){
|
||||
JButton bout=new JButton("<-");
|
||||
bout.addActionListener(new ObservateurChangeGroupe(m, this.g.getPointPoint()));
|
||||
this.add(bout);
|
||||
this.add(new JLabel(g.getName(), JLabel.CENTER));
|
||||
tache.add(bout);
|
||||
}
|
||||
JButton renomer=new JButton("rename");
|
||||
renomer.addActionListener(new ObservateurModifGroupe(m, g));
|
||||
tache.add(renomer);
|
||||
JButton ajouter=new JButton("add");
|
||||
ajouter.addActionListener(new ObservateurModifGroupe(m, g));
|
||||
tache.add(ajouter);
|
||||
JButton supprimer=new JButton("supr");
|
||||
supprimer.addActionListener(new ObservateurModifGroupe(m, g));
|
||||
tache.add(supprimer);
|
||||
if(g.getType()!=TypeGroupe.PARTITION){
|
||||
JButton creer=new JButton("new Groupe");
|
||||
creer.addActionListener(new ObservateurModifGroupe(m, g));
|
||||
tache.add(creer);
|
||||
}
|
||||
this.add(tache);
|
||||
JLabel titre=new JLabel("Group : "+g.getName(), JLabel.CENTER);
|
||||
titre.setFont(new Font(Font.SERIF, Font.BOLD, titre.getFont().getSize()+10));
|
||||
this.add(titre);
|
||||
this.add(new JLabel("id= "+String.valueOf(g.getId()),JLabel.CENTER));
|
||||
this.add(new JLabel("min= "+String.valueOf(g.getMin()),JLabel.CENTER));
|
||||
this.add(new JLabel("max= "+String.valueOf(g.getMax()),JLabel.CENTER));
|
||||
this.add(new JLabel(g.getType().name(), JLabel.CENTER));
|
||||
this.add(new JLabel("Sous groupe",JLabel.CENTER));
|
||||
this.add(new JLabel("Sous groupe:",JLabel.CENTER));
|
||||
if(g.getSousGroupes().size()>0){
|
||||
JPanel sous=new JPanel(new GridLayout(g.getSousGroupes().size(), 1));
|
||||
for(Groupe gr: g.getSousGroupes()){
|
||||
JButton b=new JButton(gr.getName());
|
||||
b.addActionListener(new ObservateurChangeGroupe(m, gr));
|
||||
this.add(b);
|
||||
sous.add(b);
|
||||
}
|
||||
JButton supprimer=new JButton("suprimer ce groupe");
|
||||
supprimer.addActionListener(new ObservateurModifGroupe(m, g));
|
||||
this.add(supprimer);
|
||||
if(g.getType()!=TypeGroupe.PARTITION){
|
||||
JButton creer=new JButton("créer un sous groupe");
|
||||
creer.addActionListener(new ObservateurModifGroupe(m, g));
|
||||
this.add(creer);
|
||||
}
|
||||
JButton renomer=new JButton("renomer");
|
||||
renomer.addActionListener(new ObservateurModifGroupe(m, g));
|
||||
this.add(renomer);
|
||||
if(g!=g.getPointPoint()){
|
||||
JButton ajouter=new JButton("ajouter");
|
||||
ajouter.addActionListener(new ObservateurModifGroupe(m, g));
|
||||
this.add(ajouter);
|
||||
this.add(new JScrollPane(sous));
|
||||
}
|
||||
}else{
|
||||
this.add(new JLabel("Il n'y a pas encore de Groupe"));
|
||||
|
@ -2,32 +2,39 @@ package fr.iutfbleau.projetIHM2022FI2.Graphic.View;
|
||||
|
||||
import fr.iutfbleau.projetIHM2022FI2.API.Etudiant;
|
||||
import fr.iutfbleau.projetIHM2022FI2.API.Groupe;
|
||||
import fr.iutfbleau.projetIHM2022FI2.Graphic.Controller.ActionListenerNouveauEtu;
|
||||
import fr.iutfbleau.projetIHM2022FI2.Graphic.Controller.SelecteurEtudiant;
|
||||
import fr.iutfbleau.projetIHM2022FI2.MNP.EtudiantNP;
|
||||
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Set;
|
||||
import java.awt.GridLayout;
|
||||
|
||||
import java.awt.Color;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
public class FenetreSelectionEtu extends JPanel{
|
||||
private Set<Etudiant> liste;
|
||||
private Groupe racine;
|
||||
private Set<Etudiant> etu;
|
||||
public FenetreSelectionEtu(Groupe g, Set<Etudiant> liste){
|
||||
super(new GridLayout(g.getEtudiants().size()/3, 3));
|
||||
this.racine=g;
|
||||
this.liste=liste;
|
||||
int index=0;
|
||||
for(Etudiant e:g.getEtudiants()){
|
||||
JButton lab=new JButton(e.getNom()+" "+e.getPrenom()+" "+e.getId());
|
||||
lab.addMouseListener(new SelecteurEtudiant(index, this));
|
||||
this.add(lab);
|
||||
index++;
|
||||
super();
|
||||
this.etu=new LinkedHashSet<>();
|
||||
Groupe promo=g.getPointPoint();
|
||||
while(promo.getPointPoint()!=promo){
|
||||
promo=promo.getPointPoint();
|
||||
}
|
||||
for(Etudiant e:promo.getEtudiants()){
|
||||
this.etu.add(e);
|
||||
}
|
||||
for(Etudiant e:g.getEtudiants()){
|
||||
this.etu.remove(e);
|
||||
}
|
||||
this.liste=liste;
|
||||
this.draw();
|
||||
}
|
||||
public void addList(int index){
|
||||
int i=0;
|
||||
for(Etudiant e:racine.getEtudiants()){
|
||||
for(Etudiant e:this.etu){
|
||||
if(i==index){
|
||||
this.liste.add(e);
|
||||
return;
|
||||
@ -37,7 +44,7 @@ public class FenetreSelectionEtu extends JPanel{
|
||||
}
|
||||
public void removeList(int index){
|
||||
int i=0;
|
||||
for(Etudiant e:racine.getEtudiants()){
|
||||
for(Etudiant e:this.etu){
|
||||
if(i==index){
|
||||
this.liste.remove(e);
|
||||
return;
|
||||
@ -45,4 +52,26 @@ public class FenetreSelectionEtu extends JPanel{
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
public void addEtudiant(String nom, String prenom){
|
||||
this.etu.add(new EtudiantNP(nom, prenom));
|
||||
this.removeAll();
|
||||
this.draw();
|
||||
this.revalidate();
|
||||
}
|
||||
|
||||
private void draw(){
|
||||
this.setLayout(new GridLayout(this.etu.size()/5+1, 4));
|
||||
int index=0;
|
||||
for(Etudiant e:etu){
|
||||
JButton lab=new JButton(e.getNom()+" "+e.getPrenom()+" "+e.getId());
|
||||
lab.addMouseListener(new SelecteurEtudiant(index, this));
|
||||
this.add(lab);
|
||||
index++;
|
||||
}
|
||||
JButton nouveau=new JButton("Nouveau +");
|
||||
nouveau.setBackground(Color.RED);
|
||||
nouveau.addActionListener(new ActionListenerNouveauEtu(this));
|
||||
this.add(nouveau);
|
||||
}
|
||||
}
|
||||
|
@ -18,21 +18,19 @@ public class EtudiantNP implements Etudiant{
|
||||
Objects.requireNonNull(nom,"On ne peut pas créer un étudiant avec un nom null");
|
||||
Objects.requireNonNull(prenom,"On ne peut pas créer un étudiant avec un nom null");
|
||||
// auto incrément de l'id
|
||||
this.id=this.nextId+1;
|
||||
this.nextId++;
|
||||
this.id=++this.nextId;
|
||||
this.nom=nom;
|
||||
this.prenom=prenom;
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructeur.
|
||||
* Constructeur pour MPN
|
||||
*/
|
||||
public EtudiantNP(String nom, String prenom, int id){
|
||||
Objects.requireNonNull(nom,"On ne peut pas créer un étudiant avec un nom null");
|
||||
Objects.requireNonNull(prenom,"On ne peut pas créer un étudiant avec un nom null");
|
||||
// auto incrément de l'id
|
||||
this.id=id;
|
||||
this.nextId++;
|
||||
this.id=id;
|
||||
this.nom=nom;
|
||||
this.prenom=prenom;
|
||||
}
|
||||
|
@ -1,226 +1,32 @@
|
||||
package fr.iutfbleau.projetIHM2022FI2.Test;
|
||||
import fr.iutfbleau.projetIHM2022FI2.API.*;
|
||||
import fr.iutfbleau.projetIHM2022FI2.Graphic.Model;
|
||||
import fr.iutfbleau.projetIHM2022FI2.MNP.*;
|
||||
import java.util.*;
|
||||
import org.mariadb.jdbc.*;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.SQLException;
|
||||
import java.util.LinkedList;
|
||||
import java.util.Objects;
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
import java.sql.ResultSet;
|
||||
|
||||
public class TestTexteMNP{
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// morceaux de modèle
|
||||
|
||||
// Notez que à gauche d'une déclaration on utilise une interface et à droite une version concrète.
|
||||
// Il faut que votre vue se calque sur le fonctionnemment de ce main et ne fasse pas d'hypothèse sur l'implémentation concrète de l'interface.
|
||||
// i.e. entre les versions non persistantes (qui terminent par NP) et votre implémentation éventuelle persistante, le seul changement de comportement devrait être la persistance.
|
||||
//
|
||||
|
||||
////System.out.println("Test de l\'API");
|
||||
//System.out.print("Création des étudiants");
|
||||
Model ga=new Model();
|
||||
|
||||
Etudiant e1=new EtudiantNP("césar","lycurgus");
|
||||
Etudiant e2=new EtudiantNP("denis","uranus");
|
||||
Etudiant e3=new EtudiantNP("marcel","castor");
|
||||
Etudiant e4=new EtudiantNP("marin","eurydice");
|
||||
Etudiant e5=new EtudiantNP("constantin","akoni");
|
||||
Etudiant e6=new EtudiantNP("donat","anakoni");
|
||||
Etudiant e7=new EtudiantNP("alexandre","apikalia");
|
||||
Etudiant e8=new EtudiantNP("andré","ekewaka");
|
||||
Etudiant e9=new EtudiantNP("renard","elikapeka");
|
||||
Etudiant e10=new EtudiantNP("achille","haukea");
|
||||
|
||||
//System.out.print(".");
|
||||
|
||||
Etudiant e11=new EtudiantNP("agathe","iakopa");
|
||||
Etudiant e12=new EtudiantNP("sabine","spartacus");
|
||||
Etudiant e13=new EtudiantNP("michel","caligula");
|
||||
Etudiant e14=new EtudiantNP("marthe","alaric");
|
||||
Etudiant e15=new EtudiantNP("juliane","hannibal");
|
||||
Etudiant e16=new EtudiantNP("anne","juvenal");
|
||||
Etudiant e17=new EtudiantNP("sophie","bede");
|
||||
Etudiant e18=new EtudiantNP("louis","hamilcar");
|
||||
Etudiant e19=new EtudiantNP("diane","ladislas");
|
||||
Etudiant e20=new EtudiantNP("christine","mahatma");
|
||||
|
||||
//System.out.print(".");
|
||||
|
||||
Etudiant e21=new EtudiantNP("francine","napoleon");
|
||||
Etudiant e22=new EtudiantNP("louise","lalita");
|
||||
Etudiant e23=new EtudiantNP("chantal","laxman");
|
||||
Etudiant e24=new EtudiantNP("giselle","laxmi");
|
||||
Etudiant e25=new EtudiantNP("caroline","leela");
|
||||
Etudiant e26=new EtudiantNP("claude","lila");
|
||||
Etudiant e27=new EtudiantNP("pauline","lilavati");
|
||||
Etudiant e28=new EtudiantNP("avril","lochan");
|
||||
Etudiant e29=new EtudiantNP("jacqueline","madhav");
|
||||
Etudiant e30=new EtudiantNP("denise","turlough");
|
||||
|
||||
//System.out.print(".");
|
||||
|
||||
Etudiant e31=new EtudiantNP("gabrielle","uaithne");
|
||||
Etudiant e32=new EtudiantNP("julie","uilleag");
|
||||
Etudiant e33=new EtudiantNP("madeleine","uilliam");
|
||||
Etudiant e34=new EtudiantNP("charlotte","uinseann");
|
||||
Etudiant e35=new EtudiantNP("bertrand","ulick");
|
||||
Etudiant e36=new EtudiantNP("lucile","ultan");
|
||||
Etudiant e37=new EtudiantNP("nicole","firdaus");
|
||||
Etudiant e38=new EtudiantNP("blanche","yasmin");
|
||||
Etudiant e39=new EtudiantNP("jeanine","javed");
|
||||
Etudiant e40=new EtudiantNP("roxane","naveed");
|
||||
|
||||
//System.out.print(".");
|
||||
|
||||
Etudiant e41=new EtudiantNP("adeline","shahnaz");
|
||||
Etudiant e42=new EtudiantNP("dion","ardashir");
|
||||
Etudiant e43=new EtudiantNP("liane","atefeh");
|
||||
Etudiant e44=new EtudiantNP("myriam","luigina");
|
||||
Etudiant e45=new EtudiantNP("danielle","luigino");
|
||||
Etudiant e46=new EtudiantNP("arlette","maddalena");
|
||||
Etudiant e47=new EtudiantNP("michelle","manfredo");
|
||||
Etudiant e48=new EtudiantNP("justine","manlio");
|
||||
Etudiant e49=new EtudiantNP("natalie","marcellino");
|
||||
Etudiant e50=new EtudiantNP("aline","mariangela");
|
||||
|
||||
//System.out.print(".");
|
||||
|
||||
Etudiant e51=new EtudiantNP("prosper","marzio");
|
||||
Etudiant e52=new EtudiantNP("mirabelle","massimiliano");
|
||||
Etudiant e53=new EtudiantNP("carine","matteo");
|
||||
Etudiant e54=new EtudiantNP("jeannine","melchiorre");
|
||||
Etudiant e55=new EtudiantNP("dianne","micaela");
|
||||
Etudiant e56=new EtudiantNP("evette","michela");
|
||||
Etudiant e57=new EtudiantNP("gisselle","michelangela");
|
||||
|
||||
////System.out.println("terminé.");
|
||||
|
||||
//System.out.print("Création de l\'usine à groupe");
|
||||
AbstractGroupeFactory agf = new AbstractGroupeFactoryNP("BUT2 FI", 15, 92);
|
||||
////System.out.println("terminé.");
|
||||
|
||||
//System.out.print("Création de l\'usine à changement");
|
||||
AbstractChangementFactory acf = new AbstractChangementFactoryNP(agf);
|
||||
////System.out.println("terminé.");
|
||||
|
||||
//System.out.print("Ajout des étudiants dans le groupe de la promotion racine");
|
||||
|
||||
agf.addToGroupe(agf.getPromotion(),e1);
|
||||
agf.addToGroupe(agf.getPromotion(),e2);
|
||||
agf.addToGroupe(agf.getPromotion(),e3);
|
||||
agf.addToGroupe(agf.getPromotion(),e4);
|
||||
agf.addToGroupe(agf.getPromotion(),e5);
|
||||
agf.addToGroupe(agf.getPromotion(),e6);
|
||||
agf.addToGroupe(agf.getPromotion(),e7);
|
||||
agf.addToGroupe(agf.getPromotion(),e8);
|
||||
agf.addToGroupe(agf.getPromotion(),e9);
|
||||
agf.addToGroupe(agf.getPromotion(),e10);
|
||||
|
||||
////System.out.print(".");
|
||||
|
||||
agf.addToGroupe(agf.getPromotion(),e11);
|
||||
agf.addToGroupe(agf.getPromotion(),e12);
|
||||
agf.addToGroupe(agf.getPromotion(),e13);
|
||||
agf.addToGroupe(agf.getPromotion(),e14);
|
||||
agf.addToGroupe(agf.getPromotion(),e15);
|
||||
agf.addToGroupe(agf.getPromotion(),e16);
|
||||
agf.addToGroupe(agf.getPromotion(),e17);
|
||||
agf.addToGroupe(agf.getPromotion(),e18);
|
||||
agf.addToGroupe(agf.getPromotion(),e19);
|
||||
agf.addToGroupe(agf.getPromotion(),e20);
|
||||
|
||||
//System.out.print(".");
|
||||
|
||||
agf.addToGroupe(agf.getPromotion(),e21);
|
||||
agf.addToGroupe(agf.getPromotion(),e22);
|
||||
agf.addToGroupe(agf.getPromotion(),e23);
|
||||
agf.addToGroupe(agf.getPromotion(),e24);
|
||||
agf.addToGroupe(agf.getPromotion(),e25);
|
||||
agf.addToGroupe(agf.getPromotion(),e26);
|
||||
agf.addToGroupe(agf.getPromotion(),e27);
|
||||
agf.addToGroupe(agf.getPromotion(),e28);
|
||||
agf.addToGroupe(agf.getPromotion(),e29);
|
||||
agf.addToGroupe(agf.getPromotion(),e30);
|
||||
agf.addToGroupe(agf.getPromotion(),e31);
|
||||
agf.addToGroupe(agf.getPromotion(),e32);
|
||||
agf.addToGroupe(agf.getPromotion(),e33);
|
||||
agf.addToGroupe(agf.getPromotion(),e34);
|
||||
agf.addToGroupe(agf.getPromotion(),e35);
|
||||
agf.addToGroupe(agf.getPromotion(),e36);
|
||||
agf.addToGroupe(agf.getPromotion(),e37);
|
||||
agf.addToGroupe(agf.getPromotion(),e38);
|
||||
agf.addToGroupe(agf.getPromotion(),e39);
|
||||
|
||||
//System.out.print(".");
|
||||
|
||||
agf.addToGroupe(agf.getPromotion(),e40);
|
||||
agf.addToGroupe(agf.getPromotion(),e41);
|
||||
agf.addToGroupe(agf.getPromotion(),e42);
|
||||
agf.addToGroupe(agf.getPromotion(),e43);
|
||||
agf.addToGroupe(agf.getPromotion(),e44);
|
||||
agf.addToGroupe(agf.getPromotion(),e45);
|
||||
agf.addToGroupe(agf.getPromotion(),e46);
|
||||
agf.addToGroupe(agf.getPromotion(),e47);
|
||||
agf.addToGroupe(agf.getPromotion(),e48);
|
||||
agf.addToGroupe(agf.getPromotion(),e49);
|
||||
agf.addToGroupe(agf.getPromotion(),e50);
|
||||
agf.addToGroupe(agf.getPromotion(),e51);
|
||||
agf.addToGroupe(agf.getPromotion(),e52);
|
||||
agf.addToGroupe(agf.getPromotion(),e53);
|
||||
agf.addToGroupe(agf.getPromotion(),e54);
|
||||
agf.addToGroupe(agf.getPromotion(),e55);
|
||||
agf.addToGroupe(agf.getPromotion(),e56);
|
||||
agf.addToGroupe(agf.getPromotion(),e57);/*
|
||||
////System.out.println("terminé.");
|
||||
|
||||
////System.out.println("Initialisation complète.");
|
||||
|
||||
////System.out.println("==========================");
|
||||
////System.out.println("Le groupe promotion");
|
||||
////System.out.println(agf.getPromotion().monPrint());
|
||||
|
||||
////System.out.println("==========================");
|
||||
////System.out.println("Partition du groupe racine en 3 groupes TD.");*/
|
||||
agf.createPartition(agf.getPromotion(), "TD",4);
|
||||
//////System.out.println(agf.getPromotion().monPrint());
|
||||
|
||||
Groupe racineDeLaPartition = agf.getPromotion().getSousGroupes().iterator().next();
|
||||
////System.out.println(racineDeLaPartition.monPrint());
|
||||
|
||||
////System.out.println("== Cette version ajoute les étudiants automatiquement pour une partition ");
|
||||
for(Groupe g : racineDeLaPartition.getSousGroupes()){
|
||||
////System.out.println(g.monPrint());
|
||||
}/*
|
||||
////System.out.println("==========================");
|
||||
////System.out.println("Création d'un changement");
|
||||
new Model();
|
||||
/*
|
||||
Iterator<Groupe> itgr = racineDeLaPartition.getSousGroupes().iterator();
|
||||
Groupe A = itgr.next(); // premier sous-groupe
|
||||
Groupe B = itgr.next(); // second sous-groupe
|
||||
B = itgr.next(); // troisième sous-groupe
|
||||
Etudiant e = A.getEtudiants().iterator().next();// premier étudiant du premier sous-groupe.
|
||||
acf.createChangement(A,e,B);
|
||||
////System.out.println("Récupération des changements (en fait un seul pour l'instant)");
|
||||
System.out.println("Récupération des changements (en fait un seul pour l'instant)");
|
||||
Iterator<Changement> itch = acf.getAllChangements().iterator();
|
||||
Changement c = itch.next();
|
||||
////System.out.println(c.monPrint());
|
||||
////System.out.println("Application du changement");
|
||||
System.out.println(c.monPrint());
|
||||
System.out.println("Application du changement");
|
||||
acf.applyChangement(c);
|
||||
////System.out.println("==========================");
|
||||
////System.out.println("== nouveau contenu des groupes de la partition ");
|
||||
System.out.println("==========================");
|
||||
System.out.println("== nouveau contenu des groupes de la partition ");
|
||||
for(Groupe g : racineDeLaPartition.getSousGroupes()){
|
||||
System.out.println(g.monPrint());
|
||||
}
|
||||
|
||||
////System.out.println("==========================");
|
||||
////System.out.println("Création de 2 changements");
|
||||
System.out.println("==========================");
|
||||
System.out.println("Création de 2 changements");
|
||||
itgr = racineDeLaPartition.getSousGroupes().iterator();
|
||||
A = itgr.next(); // premier sous-groupe
|
||||
B = itgr.next(); // second sous-groupe
|
||||
@ -230,14 +36,14 @@ public class TestTexteMNP{
|
||||
acf.createChangement(B,etu2,A);
|
||||
// Impression des changements.
|
||||
for (Changement cgt : acf.getAllChangements()){
|
||||
////System.out.println(cgt.monPrint());
|
||||
System.out.println(cgt.monPrint());
|
||||
}
|
||||
itch = acf.getAllChangements().iterator();
|
||||
c = itch.next();
|
||||
////System.out.println("Suppression d'un changement. Il reste :");
|
||||
System.out.println("Suppression d'un changement. Il reste :");
|
||||
acf.deleteChangement(itch.next());
|
||||
for (Changement cgt : acf.getAllChangements()){
|
||||
////System.out.println(cgt.monPrint());
|
||||
System.out.println(cgt.monPrint());
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user