diff --git a/java/APIGroupe/Makefile b/java/APIGroupe/Makefile index f4b3dcc..566075a 100644 --- a/java/APIGroupe/Makefile +++ b/java/APIGroupe/Makefile @@ -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 ## diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ActionListenerNouveauEtu.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ActionListenerNouveauEtu.java new file mode 100644 index 0000000..8b70ce1 --- /dev/null +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ActionListenerNouveauEtu.java @@ -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()); + } + } + +} diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ObservateurFenetre.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ObservateurFenetre.java index 031f04b..bfc6b90 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ObservateurFenetre.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ObservateurFenetre.java @@ -26,8 +26,9 @@ 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 diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ObservateurModifGroupe.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ObservateurModifGroupe.java index 0d21c50..2b8a3ab 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ObservateurModifGroupe.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Controller/ObservateurModifGroupe.java @@ -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 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,21 +92,26 @@ 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 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()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);} } } } diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Model.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Model.java index 541108e..1fedfec 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Model.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/Model.java @@ -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")); } /** @@ -73,7 +74,7 @@ public class Model{ AbstractGroupeFactory agf=null; //On se Connecte a la BD try{ - Class.forName("org.mariadb.jdbc.Driver"); + Class.forName("org.mariadb.jdbc.Driver"); try{ Connection cnx = DriverManager.getConnection( "jdbc:mariadb://dwarves.iut-fbleau.fr/chaignea", @@ -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{ - //autrement on recupere l'etudiant - for(Etudiant e: g.getPointPoint().getEtudiants()){ - if(e.getId()==rs.getInt(3)){ - agf.addToGroupe(g, e); - break; - } + boolean exist=false; + //autrement on recupere l'etudiant + for(Etudiant e: g.getPointPoint().getEtudiants()){ + if(e.getId()==rs.getInt(3)){ + 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()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())); + 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)); - for(Groupe gr: g.getSousGroupes()){ - JButton b=new JButton(gr.getName()); - b.addActionListener(new ObservateurChangeGroupe(m, gr)); - this.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 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)); + sous.add(b); + } + this.add(new JScrollPane(sous)); } }else{ this.add(new JLabel("Il n'y a pas encore de Groupe")); diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/FenetreSelectionEtu.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/FenetreSelectionEtu.java index 6fd8e96..049fce6 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/FenetreSelectionEtu.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Graphic/View/FenetreSelectionEtu.java @@ -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 liste; - private Groupe racine; + private Set etu; public FenetreSelectionEtu(Groupe g, Set 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); + } } diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/EtudiantNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/EtudiantNP.java index 1626d15..74a2647 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/EtudiantNP.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/MNP/EtudiantNP.java @@ -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; } diff --git a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Test/TestTexteMNP.java b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Test/TestTexteMNP.java index cfb20d5..a86f94b 100644 --- a/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Test/TestTexteMNP.java +++ b/java/APIGroupe/src/fr/iutfbleau/projetIHM2022FI2/Test/TestTexteMNP.java @@ -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 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 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()); }