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 ##
|
## View ##
|
||||||
${BUILD}/Graphic/View/FenetreGroupe.class : ${SRC}/Graphic/View/FenetreGroupe.java \
|
${BUILD}/Graphic/View/FenetreGroupe.class : ${SRC}/Graphic/View/FenetreGroupe.java \
|
||||||
${BUILD}/Graphic/Controller/ObservateurFenetre.class \
|
${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
|
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/View/FenetreGroupe.java
|
||||||
|
|
||||||
${BUILD}/Graphic/View/FenetreEtudiant.class :${SRC}/Graphic/View/FenetreEtudiant.java \
|
${BUILD}/Graphic/View/FenetreEtudiant.class :${SRC}/Graphic/View/FenetreEtudiant.java \
|
||||||
${BUILD}/Graphic/Controller/ObservateurFenetre.class \
|
${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
|
${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
|
${BUILD}/Graphic/View/Chargement.class : ${SRC}/Graphic/View/Chargement.java
|
||||||
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/View/Chargement.java
|
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/View/Chargement.java
|
||||||
|
|
||||||
|
|
||||||
${BUILD}/Graphic/Model.class : ${SRC}/Graphic/Model.java \
|
${BUILD}/Graphic/Model.class : ${SRC}/Graphic/Model.java \
|
||||||
${BUILD}/Graphic/View/FenetreGroupe.class \
|
${BUILD}/Graphic/View/FenetreGroupe.class \
|
||||||
${BUILD}/Graphic/View/FenetreEtudiant.class \
|
${BUILD}/Graphic/View/FenetreEtudiant.class \
|
||||||
${BUILD}/Graphic/View/Chargement.class
|
${BUILD}/Graphic/View/Chargement.class
|
||||||
${JAVAC} ${JAVAC_OPTIONS} ${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
|
||||||
|
${JAVAC} ${JAVAC_OPTIONS} ${SRC}/Graphic/View/FenetreSelectionEtu.java
|
||||||
## Controller ##
|
## Controller ##
|
||||||
${BUILD}/Graphic/Controller/ObservateurFenetre.class : ${SRC}/Graphic/Controller/ObservateurFenetre.java
|
${BUILD}/Graphic/Controller/ObservateurFenetre.class : ${SRC}/Graphic/Controller/ObservateurFenetre.java
|
||||||
${JAVAC} ${JAVAC_OPTIONS} ${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
|
${BUILD}/Graphic/Controller/ObservateurChangeGroupe.class : ${SRC}/Graphic/Controller/ObservateurChangeGroupe.java
|
||||||
${JAVAC} ${JAVAC_OPTIONS} ${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 ##
|
## TEST ##
|
||||||
|
@ -90,6 +90,13 @@ public interface Groupe extends MonPrint {
|
|||||||
*/
|
*/
|
||||||
public Set<Etudiant> getEtudiants();
|
public Set<Etudiant> getEtudiants();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Change le nom du groupe
|
||||||
|
* @param s le nouveau nom
|
||||||
|
*/
|
||||||
|
public void setName(String s);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see MonPrint
|
* @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.
|
* 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();
|
int nbsous=rs.getRow();
|
||||||
if(nbsous==0){
|
if(nbsous==0){
|
||||||
ch.addPourcent(pourcent);
|
ch.addPourcent(pourcent);
|
||||||
System.out.println("add ce pourcentage: "+pourcent);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
rs=pst.executeQuery();
|
rs=pst.executeQuery();
|
||||||
@ -149,7 +148,7 @@ public class Model{
|
|||||||
private void addEtudiant(Groupe g, Connection cnx){
|
private void addEtudiant(Groupe g, Connection cnx){
|
||||||
try{
|
try{
|
||||||
PreparedStatement pst= cnx.prepareStatement(
|
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{
|
try{
|
||||||
pst.setInt(1, g.getId());
|
pst.setInt(1, g.getId());
|
||||||
ResultSet rs=pst.executeQuery();
|
ResultSet rs=pst.executeQuery();
|
||||||
@ -166,7 +165,7 @@ public class Model{
|
|||||||
}
|
}
|
||||||
//autrement on les crée
|
//autrement on les crée
|
||||||
}else{
|
}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.add(new JScrollPane(this.fenEtu));
|
||||||
this.fenetre.revalidate();
|
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());
|
FontMetrics metrics = secondPinceau.getFontMetrics(secondPinceau.getFont());
|
||||||
secondPinceau.drawString("CHARGEMENT", (this.getWidth()/2-metrics.stringWidth("CHARGEMENT")/2), (this.getHeight()-metrics.getHeight())/3+metrics.getAscent());
|
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.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.JLabel;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
|
|
||||||
import java.awt.GridLayout;
|
import java.awt.*;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import fr.iutfbleau.projetIHM2022FI2.API.Etudiant;
|
import fr.iutfbleau.projetIHM2022FI2.API.Etudiant;
|
||||||
@ -16,10 +16,11 @@ public class FenetreEtudiant extends JPanel{
|
|||||||
public FenetreEtudiant(Groupe g){
|
public FenetreEtudiant(Groupe g){
|
||||||
super();
|
super();
|
||||||
if(g!=null){
|
if(g!=null){
|
||||||
this.setLayout(new GridLayout(57, 1));
|
|
||||||
this.etu=g.getEtudiants();
|
this.etu=g.getEtudiants();
|
||||||
|
this.setLayout(new GridLayout(this.etu.size(), 1, 10, 0));
|
||||||
for(Etudiant e: this.etu){
|
for(Etudiant e: this.etu){
|
||||||
this.add(new JLabel(e.monPrint()));
|
PanelEtudiant p=new PanelEtudiant(e);
|
||||||
|
this.add(p);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
this.add(new JLabel("Il n'y a pas d'étudiant"));
|
this.add(new JLabel("Il n'y a pas d'étudiant"));
|
||||||
|
@ -6,8 +6,10 @@ import javax.swing.JPanel;
|
|||||||
|
|
||||||
import java.awt.GridLayout;
|
import java.awt.GridLayout;
|
||||||
import fr.iutfbleau.projetIHM2022FI2.API.Groupe;
|
import fr.iutfbleau.projetIHM2022FI2.API.Groupe;
|
||||||
|
import fr.iutfbleau.projetIHM2022FI2.API.TypeGroupe;
|
||||||
import fr.iutfbleau.projetIHM2022FI2.Graphic.Model;
|
import fr.iutfbleau.projetIHM2022FI2.Graphic.Model;
|
||||||
import fr.iutfbleau.projetIHM2022FI2.Graphic.Controller.ObservateurChangeGroupe;
|
import fr.iutfbleau.projetIHM2022FI2.Graphic.Controller.ObservateurChangeGroupe;
|
||||||
|
import fr.iutfbleau.projetIHM2022FI2.Graphic.Controller.ObservateurModifGroupe;
|
||||||
|
|
||||||
|
|
||||||
public class FenetreGroupe extends JPanel{
|
public class FenetreGroupe extends JPanel{
|
||||||
@ -16,7 +18,7 @@ public class FenetreGroupe extends JPanel{
|
|||||||
super();
|
super();
|
||||||
this.g=g;
|
this.g=g;
|
||||||
if(g!=null){
|
if(g!=null){
|
||||||
this.setLayout(new GridLayout(15, 1));
|
this.setLayout(new GridLayout(11+g.getSousGroupes().size(), 1));
|
||||||
JButton bout=new JButton("point point");
|
JButton bout=new JButton("point point");
|
||||||
bout.addActionListener(new ObservateurChangeGroupe(m, this.g.getPointPoint()));
|
bout.addActionListener(new ObservateurChangeGroupe(m, this.g.getPointPoint()));
|
||||||
this.add(bout);
|
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("id= "+String.valueOf(g.getId())));
|
||||||
this.add(new JLabel("min= "+String.valueOf(g.getMin())));
|
this.add(new JLabel("min= "+String.valueOf(g.getMin())));
|
||||||
this.add(new JLabel("max= "+String.valueOf(g.getMax())));
|
this.add(new JLabel("max= "+String.valueOf(g.getMax())));
|
||||||
|
this.add(new JLabel(g.getType().name()));
|
||||||
this.add(new JLabel("Sous groupe"));
|
this.add(new JLabel("Sous groupe"));
|
||||||
for(Groupe gr: g.getSousGroupes()){
|
for(Groupe gr: g.getSousGroupes()){
|
||||||
JButton b=new JButton(gr.getName());
|
JButton b=new JButton(gr.getName());
|
||||||
b.addActionListener(new ObservateurChangeGroupe(m, gr));
|
b.addActionListener(new ObservateurChangeGroupe(m, gr));
|
||||||
this.add(b);
|
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{
|
}else{
|
||||||
this.add(new JLabel("Il n'y a pas encore de Groupe"));
|
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)
|
* @param g le groupe (methode récursive)
|
||||||
*/
|
*/
|
||||||
private void addSousGroupe(Groupe g){
|
private void addSousGroupe(Groupe g){
|
||||||
for(Groupe s:g.getSousGroupes()){
|
|
||||||
this.brain.put(g.getId(), g);
|
this.brain.put(g.getId(), g);
|
||||||
|
for(Groupe s:g.getSousGroupes()){
|
||||||
this.addSousGroupe(s);
|
this.addSousGroupe(s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -84,7 +84,7 @@ public class AbstractGroupeFactoryNP implements AbstractGroupeFactory {
|
|||||||
if (this.getPromotion().equals(g)){
|
if (this.getPromotion().equals(g)){
|
||||||
throw new IllegalArgumentException("Impossible de détruire le groupe de toute la promotion");
|
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");
|
throw new IllegalStateException("Impossible de détruire un groupe contenant un groupe");
|
||||||
}
|
}
|
||||||
g.getPointPoint().removeSousGroupe(g);
|
g.getPointPoint().removeSousGroupe(g);
|
||||||
|
@ -23,6 +23,19 @@ public class EtudiantNP implements Etudiant{
|
|||||||
this.prenom=prenom;
|
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.
|
* permet de récupérer l'identifiant de l'étudiant.
|
||||||
* @return l'identifiant.
|
* @return l'identifiant.
|
||||||
|
@ -208,5 +208,13 @@ public class GroupeNP implements Groupe {
|
|||||||
return this.membresDuGroupe;
|
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