POssibiliter Grupe: Renomer, supprimer, créer, ajouter des Etudiant
This commit is contained in:
parent
e9fac29412
commit
323c6e43e2
@ -97,31 +97,45 @@ ${BUILD}/MNP/AbstractChangementFactoryNP.class : ${SRC}/MNP/AbstractChangementFa
|
||||
## View ##
|
||||
${BUILD}/Graphic/View/FenetreGroupe.class : ${SRC}/Graphic/View/FenetreGroupe.java \
|
||||
${BUILD}/Graphic/Controller/ObservateurFenetre.class \
|
||||
${BUILD}/Graphic/Controller/ObservateurChangeGroupe.class
|
||||
${BUILD}/Graphic/Controller/ObservateurChangeGroupe.class \
|
||||
${BUILD}/Graphic/Controller/ObservateurModifGroupe.class
|
||||
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/View/FenetreGroupe.java
|
||||
|
||||
${BUILD}/Graphic/View/FenetreEtudiant.class :${SRC}/Graphic/View/FenetreEtudiant.java \
|
||||
${BUILD}/Graphic/Controller/ObservateurFenetre.class \
|
||||
${BUILD}/Graphic/Controller/ObservateurChangeGroupe.class
|
||||
${BUILD}/Graphic/Controller/ObservateurChangeGroupe.class \
|
||||
${BUILD}/Graphic/View/PanelEtudiant.class
|
||||
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/View/FenetreEtudiant.java
|
||||
|
||||
${BUILD}/Graphic/View/PanelEtudiant.class : ${SRC}/Graphic/View/PanelEtudiant.java
|
||||
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/View/PanelEtudiant.java
|
||||
|
||||
${BUILD}/Graphic/View/Chargement.class : ${SRC}/Graphic/View/Chargement.java
|
||||
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/View/Chargement.java
|
||||
|
||||
|
||||
${BUILD}/Graphic/Model.class : ${SRC}/Graphic/Model.java \
|
||||
${BUILD}/Graphic/View/FenetreGroupe.class \
|
||||
${BUILD}/Graphic/View/FenetreEtudiant.class \
|
||||
${BUILD}/Graphic/View/Chargement.class
|
||||
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/Model.java
|
||||
|
||||
${BUILD}/Graphic/View/FenetreSelectionEtu.class : ${SRC}/Graphic/View/FenetreSelectionEtu.java \
|
||||
${BUILD}/Graphic/Controller/SelecteurEtudiant.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
|
||||
|
||||
${BUILD}/Graphic/Controller/ObservateurModifGroupe.class : ${SRC}/Graphic/Controller/ObservateurModifGroupe.java \
|
||||
${BUILD}/Graphic/View/FenetreSelectionEtu.class
|
||||
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/Controller/ObservateurModifGroupe.java
|
||||
|
||||
${BUILD}/Graphic/Controller/ObservateurChangeGroupe.class : ${SRC}/Graphic/Controller/ObservateurChangeGroupe.java
|
||||
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/Controller/ObservateurChangeGroupe.java
|
||||
|
||||
|
||||
${BUILD}/Graphic/Controller/SelecteurEtudiant.class : ${SRC}/Graphic/Controller/SelecteurEtudiant.java
|
||||
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/Controller/SelecteurEtudiant.java
|
||||
##....
|
||||
|
||||
## TEST ##
|
||||
|
@ -90,6 +90,13 @@ public interface Groupe extends MonPrint {
|
||||
*/
|
||||
public Set<Etudiant> getEtudiants();
|
||||
|
||||
/**
|
||||
* Change le nom du groupe
|
||||
* @param s le nouveau nom
|
||||
*/
|
||||
public void setName(String s);
|
||||
|
||||
|
||||
/**
|
||||
* @see MonPrint
|
||||
* NB. On n'utilise le mécanisme des méthodes par défaut pour donner du code dans une interface. C'est un petit peu laid et à contre-emploi mais pratique ici.
|
||||
|
@ -0,0 +1,108 @@
|
||||
package fr.iutfbleau.projetIHM2022FI2.Graphic.Controller;
|
||||
|
||||
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;
|
||||
import javax.swing.*;
|
||||
import java.util.Set;
|
||||
public class ObservateurModifGroupe implements ActionListener{
|
||||
private Model m;
|
||||
private Groupe groupe;
|
||||
public ObservateurModifGroupe(Model m, Groupe g){
|
||||
this.m=m;
|
||||
this.groupe=g;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if(e.getActionCommand()=="suprimer ce groupe"){
|
||||
Groupe pointpoint=this.groupe.getPointPoint();
|
||||
this.m.delete(this.groupe);
|
||||
this.m.showGroupe(pointpoint);
|
||||
}
|
||||
if(e.getActionCommand()=="créer un sous groupe"){
|
||||
String g[]=new String[2];
|
||||
g[0]="Partition";
|
||||
g[1]="Free";
|
||||
int rep=JOptionPane.showOptionDialog(m.getFenetre(), "Type du nouveau Groupe","Type", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, g, g[0]);
|
||||
if(rep==JOptionPane.YES_OPTION){
|
||||
try{
|
||||
|
||||
JPanel myPanel = new JPanel();
|
||||
JTextField xField = new JTextField(5);
|
||||
JTextField yField = new JTextField(20);
|
||||
myPanel.add(new JLabel("Nombre:"));
|
||||
myPanel.add(xField);
|
||||
myPanel.add(Box.createHorizontalStrut(15)); // a spacer
|
||||
myPanel.add(new JLabel("Nom:"));
|
||||
myPanel.add(yField);
|
||||
int result = JOptionPane.showConfirmDialog(m.getFenetre(), myPanel,
|
||||
"Entrer le nombre et le nom des Partitions", JOptionPane.OK_CANCEL_OPTION);
|
||||
if (result == JOptionPane.OK_OPTION) {
|
||||
int nb=Integer.parseInt(xField.getText());
|
||||
if(nb>this.groupe.getEtudiants().size()){
|
||||
JOptionPane.showMessageDialog(m.getFenetre(), "nombre de partition trop grand", "erreur", JOptionPane.ERROR_MESSAGE);
|
||||
return;
|
||||
}
|
||||
m.partition(this.groupe, nb, yField.getText());
|
||||
m.showGroupe(this.groupe);
|
||||
}
|
||||
}catch(NumberFormatException er){
|
||||
JOptionPane.showMessageDialog(m.getFenetre(), "erreur dans le nombre de partition", "erreur", JOptionPane.ERROR_MESSAGE);
|
||||
}
|
||||
}else{
|
||||
try{
|
||||
JPanel myPanel = new JPanel();
|
||||
JTextField xField = new JTextField(5);
|
||||
JTextField zField = new JTextField(5);
|
||||
JTextField yField = new JTextField(20);
|
||||
myPanel.add(new JLabel("Nom:"));
|
||||
myPanel.add(yField);
|
||||
myPanel.add(Box.createHorizontalStrut(15)); // a spacer
|
||||
myPanel.add(new JLabel("Min:"));
|
||||
myPanel.add(xField);
|
||||
myPanel.add(new JLabel("Max:"));
|
||||
myPanel.add(zField);
|
||||
int result = JOptionPane.showConfirmDialog(m.getFenetre(), myPanel,
|
||||
"Entrer le nombre et le nom des Partitions", JOptionPane.OK_CANCEL_OPTION);
|
||||
if (result == JOptionPane.OK_OPTION) {
|
||||
int min=Integer.parseInt(xField.getText());
|
||||
int max=Integer.parseInt(zField.getText());
|
||||
if(min>this.groupe.getEtudiants().size() || max>this.groupe.getEtudiants().size()){
|
||||
JOptionPane.showMessageDialog(m.getFenetre(), "nombre de partition trop grand", "erreur", JOptionPane.ERROR_MESSAGE);
|
||||
return;
|
||||
}
|
||||
m.free(groupe, yField.getText(), min, max);
|
||||
m.showGroupe(this.groupe);
|
||||
}
|
||||
}catch(NumberFormatException er){
|
||||
JOptionPane.showMessageDialog(m.getFenetre(), "erreur dans le nombre de partition", "erreur", JOptionPane.ERROR_MESSAGE);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(e.getActionCommand()=="renomer"){
|
||||
String nouveau=JOptionPane.showInputDialog(m.getFenetre(), "Rentrer le nouveau Nom");
|
||||
this.groupe.setName(nouveau);
|
||||
m.showGroupe(this.groupe);
|
||||
}
|
||||
if(e.getActionCommand()=="ajouter"){
|
||||
Set<Etudiant> ajout=new LinkedHashSet<>();
|
||||
JPanel myPanel=new FenetreSelectionEtu(this.groupe.getPointPoint(), ajout);
|
||||
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);
|
||||
}
|
||||
for(Etudiant et:ajout){
|
||||
this.groupe.addEtudiant(et);
|
||||
}
|
||||
m.showGroupe(this.groupe);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,46 @@
|
||||
package fr.iutfbleau.projetIHM2022FI2.Graphic.Controller;
|
||||
import java.awt.Color;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.awt.event.MouseListener;
|
||||
|
||||
import fr.iutfbleau.projetIHM2022FI2.Graphic.View.FenetreSelectionEtu;
|
||||
|
||||
public class SelecteurEtudiant implements MouseListener{
|
||||
private FenetreSelectionEtu pere;
|
||||
private int index;
|
||||
public SelecteurEtudiant(int index, FenetreSelectionEtu pere){
|
||||
this.pere=pere;
|
||||
this.index=index;
|
||||
}
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent e) {
|
||||
if(e.getComponent().getBackground()!=Color.GREEN){
|
||||
e.getComponent().setBackground(Color.GREEN);
|
||||
this.pere.addList(this.index);
|
||||
}else{
|
||||
this.pere.removeList(this.index);
|
||||
e.getComponent().setBackground(e.getComponent().getParent().getBackground());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseEntered(MouseEvent e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseExited(MouseEvent e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mousePressed(MouseEvent e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseReleased(MouseEvent e) {
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -122,7 +122,6 @@ public class Model{
|
||||
int nbsous=rs.getRow();
|
||||
if(nbsous==0){
|
||||
ch.addPourcent(pourcent);
|
||||
System.out.println("add ce pourcentage: "+pourcent);
|
||||
return;
|
||||
}
|
||||
rs=pst.executeQuery();
|
||||
@ -149,7 +148,7 @@ public class Model{
|
||||
private void addEtudiant(Groupe g, Connection cnx){
|
||||
try{
|
||||
PreparedStatement pst= cnx.prepareStatement(
|
||||
"SELECT Etudiant.nom, Etudiant.id FROM `CONTIENT` JOIN Etudiant on CONTIENT.idEt=Etudiant.id WHERE CONTIENT.idGroupe=? Group BY Etudiant.nom; ");
|
||||
"SELECT Etudiant.nom, Etudiant.prenom, Etudiant.id FROM `CONTIENT` JOIN Etudiant on CONTIENT.idEt=Etudiant.id WHERE CONTIENT.idGroupe=? Group BY Etudiant.nom ORDER BY Etudiant.id ASC");
|
||||
try{
|
||||
pst.setInt(1, g.getId());
|
||||
ResultSet rs=pst.executeQuery();
|
||||
@ -166,7 +165,7 @@ public class Model{
|
||||
}
|
||||
//autrement on les crée
|
||||
}else{
|
||||
agf.addToGroupe(g, new EtudiantNP(rs.getString(1), rs.getString(2)));
|
||||
agf.addToGroupe(g, new EtudiantNP(rs.getString(1), rs.getString(2), rs.getInt(3)));
|
||||
}
|
||||
|
||||
}
|
||||
@ -192,4 +191,42 @@ public class Model{
|
||||
this.fenetre.add(new JScrollPane(this.fenEtu));
|
||||
this.fenetre.revalidate();
|
||||
}
|
||||
|
||||
public JFrame getFenetre() {
|
||||
return fenetre;
|
||||
}
|
||||
|
||||
public void delete(Groupe g){
|
||||
for(Groupe sous: this.promo){
|
||||
AbstractGroupeFactory agf=new AbstractGroupeFactoryNP(sous);
|
||||
if(agf.knows(g)){
|
||||
if(g==agf.getPromotion()){
|
||||
JOptionPane.showMessageDialog(this.fenetre, "impossible de supprimer la promotion", "alerte", JOptionPane.ERROR_MESSAGE);
|
||||
return;
|
||||
}
|
||||
LinkedList<Groupe> file=new LinkedList<>();
|
||||
this.deleteRecursif(file, g);
|
||||
for(Groupe sup:file){
|
||||
agf.deleteGroupe(sup);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void deleteRecursif(LinkedList<Groupe> file, Groupe bedelete){
|
||||
for(Groupe g: bedelete.getSousGroupes()){
|
||||
this.deleteRecursif(file, g);
|
||||
}
|
||||
file.add(bedelete);
|
||||
}
|
||||
|
||||
public void partition(Groupe g, int n, String name){
|
||||
AbstractGroupeFactory agf=new AbstractGroupeFactoryNP(g);
|
||||
agf.createPartition(g, name, n);
|
||||
}
|
||||
|
||||
public void free(Groupe g, String name, int min, int max){
|
||||
AbstractGroupeFactory agf=new AbstractGroupeFactoryNP(g);
|
||||
agf.createGroupe(g, name, min, max);
|
||||
}
|
||||
}
|
||||
|
@ -37,6 +37,7 @@ public class Chargement extends JComponent{
|
||||
FontMetrics metrics = secondPinceau.getFontMetrics(secondPinceau.getFont());
|
||||
secondPinceau.drawString("CHARGEMENT", (this.getWidth()/2-metrics.stringWidth("CHARGEMENT")/2), (this.getHeight()-metrics.getHeight())/3+metrics.getAscent());
|
||||
secondPinceau.drawRect(this.getWidth()/10, this.getHeight()/2, this.getWidth()/10*8, this.getHeight()/10);
|
||||
secondPinceau.fillRect(this.getWidth()/10, this.getHeight()/2, this.getWidth()/10*8/100*pourcentage, 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);
|
||||
}
|
||||
}
|
@ -4,7 +4,7 @@ package fr.iutfbleau.projetIHM2022FI2.Graphic.View;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
import java.awt.GridLayout;
|
||||
import java.awt.*;
|
||||
import java.util.Set;
|
||||
|
||||
import fr.iutfbleau.projetIHM2022FI2.API.Etudiant;
|
||||
@ -16,10 +16,11 @@ public class FenetreEtudiant extends JPanel{
|
||||
public FenetreEtudiant(Groupe g){
|
||||
super();
|
||||
if(g!=null){
|
||||
this.setLayout(new GridLayout(57, 1));
|
||||
this.etu=g.getEtudiants();
|
||||
this.setLayout(new GridLayout(this.etu.size(), 1, 10, 0));
|
||||
for(Etudiant e: this.etu){
|
||||
this.add(new JLabel(e.monPrint()));
|
||||
PanelEtudiant p=new PanelEtudiant(e);
|
||||
this.add(p);
|
||||
}
|
||||
}else{
|
||||
this.add(new JLabel("Il n'y a pas d'étudiant"));
|
||||
|
@ -6,8 +6,10 @@ import javax.swing.JPanel;
|
||||
|
||||
import java.awt.GridLayout;
|
||||
import fr.iutfbleau.projetIHM2022FI2.API.Groupe;
|
||||
import fr.iutfbleau.projetIHM2022FI2.API.TypeGroupe;
|
||||
import fr.iutfbleau.projetIHM2022FI2.Graphic.Model;
|
||||
import fr.iutfbleau.projetIHM2022FI2.Graphic.Controller.ObservateurChangeGroupe;
|
||||
import fr.iutfbleau.projetIHM2022FI2.Graphic.Controller.ObservateurModifGroupe;
|
||||
|
||||
|
||||
public class FenetreGroupe extends JPanel{
|
||||
@ -16,7 +18,7 @@ public class FenetreGroupe extends JPanel{
|
||||
super();
|
||||
this.g=g;
|
||||
if(g!=null){
|
||||
this.setLayout(new GridLayout(15, 1));
|
||||
this.setLayout(new GridLayout(11+g.getSousGroupes().size(), 1));
|
||||
JButton bout=new JButton("point point");
|
||||
bout.addActionListener(new ObservateurChangeGroupe(m, this.g.getPointPoint()));
|
||||
this.add(bout);
|
||||
@ -24,12 +26,27 @@ public class FenetreGroupe extends JPanel{
|
||||
this.add(new JLabel("id= "+String.valueOf(g.getId())));
|
||||
this.add(new JLabel("min= "+String.valueOf(g.getMin())));
|
||||
this.add(new JLabel("max= "+String.valueOf(g.getMax())));
|
||||
this.add(new JLabel(g.getType().name()));
|
||||
this.add(new JLabel("Sous groupe"));
|
||||
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);
|
||||
JButton ajouter=new JButton("ajouter");
|
||||
ajouter.addActionListener(new ObservateurModifGroupe(m, g));
|
||||
this.add(ajouter);
|
||||
}else{
|
||||
this.add(new JLabel("Il n'y a pas encore de Groupe"));
|
||||
}
|
||||
|
@ -0,0 +1,48 @@
|
||||
package fr.iutfbleau.projetIHM2022FI2.Graphic.View;
|
||||
|
||||
import fr.iutfbleau.projetIHM2022FI2.API.Etudiant;
|
||||
import fr.iutfbleau.projetIHM2022FI2.API.Groupe;
|
||||
import fr.iutfbleau.projetIHM2022FI2.Graphic.Controller.SelecteurEtudiant;
|
||||
|
||||
import java.util.Set;
|
||||
import java.awt.GridLayout;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
public class FenetreSelectionEtu extends JPanel{
|
||||
private Set<Etudiant> liste;
|
||||
private Groupe racine;
|
||||
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++;
|
||||
}
|
||||
}
|
||||
public void addList(int index){
|
||||
int i=0;
|
||||
for(Etudiant e:racine.getEtudiants()){
|
||||
if(i==index){
|
||||
this.liste.add(e);
|
||||
return;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
public void removeList(int index){
|
||||
int i=0;
|
||||
for(Etudiant e:racine.getEtudiants()){
|
||||
if(i==index){
|
||||
this.liste.remove(e);
|
||||
return;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
package fr.iutfbleau.projetIHM2022FI2.Graphic.View;
|
||||
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
import fr.iutfbleau.projetIHM2022FI2.API.Etudiant;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import java.awt.*;
|
||||
|
||||
public class PanelEtudiant extends JPanel{
|
||||
private JLabel nom;
|
||||
private Etudiant e;
|
||||
private JButton renomer;
|
||||
private JButton supprimer;
|
||||
private JButton deplacer;
|
||||
public PanelEtudiant(Etudiant e){
|
||||
super(new GridBagLayout());
|
||||
this.nom=new JLabel(e.getNom()+" "+e.getPrenom()+" "+e.getId(), JLabel.LEFT);
|
||||
|
||||
this.renomer=new JButton("r");
|
||||
this.supprimer=new JButton("-");
|
||||
this.deplacer=new JButton("c");
|
||||
GridBagConstraints cbg=new GridBagConstraints();
|
||||
|
||||
cbg.gridy=0;
|
||||
cbg.anchor=GridBagConstraints.EAST;
|
||||
cbg.fill=GridBagConstraints.BOTH;
|
||||
|
||||
this.add(this.nom, cbg);
|
||||
|
||||
cbg.gridwidth=0;
|
||||
cbg.gridheight=0;
|
||||
cbg.anchor=GridBagConstraints.EAST;
|
||||
cbg.fill=GridBagConstraints.NONE;
|
||||
|
||||
this.add(this.renomer, cbg);
|
||||
this.add(this.supprimer, cbg);
|
||||
this.add(this.deplacer, cbg);
|
||||
}
|
||||
}
|
@ -32,8 +32,8 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory {
|
||||
* @param g le groupe (methode récursive)
|
||||
*/
|
||||
private void addSousGroupe(Groupe g){
|
||||
this.brain.put(g.getId(), g);
|
||||
for(Groupe s:g.getSousGroupes()){
|
||||
this.brain.put(g.getId(), g);
|
||||
this.addSousGroupe(s);
|
||||
}
|
||||
}
|
||||
@ -84,7 +84,7 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory {
|
||||
if (this.getPromotion().equals(g)){
|
||||
throw new IllegalArgumentException("Impossible de détruire le groupe de toute la promotion");
|
||||
}
|
||||
if (g.getSize()>0){
|
||||
if (g.getSousGroupes().size()>0){
|
||||
throw new IllegalStateException("Impossible de détruire un groupe contenant un groupe");
|
||||
}
|
||||
g.getPointPoint().removeSousGroupe(g);
|
||||
|
@ -22,6 +22,19 @@ public class EtudiantNP implements Etudiant{
|
||||
this.nom=nom;
|
||||
this.prenom=prenom;
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructeur.
|
||||
*/
|
||||
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.nom=nom;
|
||||
this.prenom=prenom;
|
||||
}
|
||||
|
||||
/**
|
||||
* permet de récupérer l'identifiant de l'étudiant.
|
||||
|
@ -207,6 +207,14 @@ public class GroupeNP implements Groupe {
|
||||
public Set<Etudiant> getEtudiants(){
|
||||
return this.membresDuGroupe;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Change le nom du groupe
|
||||
* @param s le nouveau nom
|
||||
*/
|
||||
@Override
|
||||
public void setName(String s){
|
||||
this.name=s;
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user