diff --git a/build/API/Requete.class b/build/API/Requete.class new file mode 100644 index 0000000..bf9ae91 Binary files /dev/null and b/build/API/Requete.class differ diff --git a/build/MNP/RequeteNP.class b/build/MNP/RequeteNP.class new file mode 100644 index 0000000..89620bb Binary files /dev/null and b/build/MNP/RequeteNP.class differ diff --git a/build/Test/AdminView.class b/build/Test/AdminView.class index 5d13f8a..4a8b88d 100644 Binary files a/build/Test/AdminView.class and b/build/Test/AdminView.class differ diff --git a/build/Test/BDatabase.class b/build/Test/BDatabase.class index 0db23e2..05e4d13 100644 Binary files a/build/Test/BDatabase.class and b/build/Test/BDatabase.class differ diff --git a/build/Test/Controller$1.class b/build/Test/Controller$1.class index 37dfe35..2cd4142 100644 Binary files a/build/Test/Controller$1.class and b/build/Test/Controller$1.class differ diff --git a/build/Test/Controller.class b/build/Test/Controller.class index edc44f9..7917bea 100644 Binary files a/build/Test/Controller.class and b/build/Test/Controller.class differ diff --git a/src/API/Requete.java b/src/API/Requete.java new file mode 100644 index 0000000..786994e --- /dev/null +++ b/src/API/Requete.java @@ -0,0 +1,42 @@ +package API; + +public interface Requete extends MonPrint { + /** + * Recuperer l'id de l'etudiant + * + * @return l'id de l'etudiant a l'origine du message + * */ + public int getEtuId(); + + /** + * Recuperer le message + * */ + public String getMessage(); + + /** + * Recuperer l'id d'un message + * + * @return l'id du message + * */ + public int getIdMessage(); + + /** + * Recuperer le type de la requete + * + * @return le type de la requete 2 ou 1 + * */ + public int getType(); + + /** + * Recuperer le groupe que l'etudiant veut rejoindre + * */ + public int getWitchGroupe(); + + /** + * @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. + */ + public default String monPrint() { + return null; + } +} diff --git a/src/MNP/RequeteNP.java b/src/MNP/RequeteNP.java new file mode 100644 index 0000000..0230d1f --- /dev/null +++ b/src/MNP/RequeteNP.java @@ -0,0 +1,44 @@ +package MNP; + +import API.Requete; + +public class RequeteNP implements Requete { + private final int id; + private final String message; + private final int etuSource; + private final int type; + private final int witchGroupe; + + public RequeteNP(int id, String message, int etuSource, int type, int witchGroupe) { + this.id = id; + this.message = message; + this.etuSource = etuSource; + this.type = type; + this.witchGroupe = witchGroupe; + } + + @Override + public int getEtuId() { + return this.etuSource; + } + + @Override + public String getMessage() { + return this.message; + } + + @Override + public int getIdMessage() { + return this.id; + } + + @Override + public int getType() { + return this.type; + } + + @Override + public int getWitchGroupe() { + return this.witchGroupe; + } +} diff --git a/src/Test/AdminView.java b/src/Test/AdminView.java index 9cd5376..517372a 100644 --- a/src/Test/AdminView.java +++ b/src/Test/AdminView.java @@ -10,18 +10,12 @@ import javax.swing.JLabel; import javax.swing.JPanel; public class AdminView extends JPanel { - private final ArrayList e; - private final ArrayList g; private final Controller listener; - public AdminView(ArrayList e, ArrayList g, Controller listener) { + public AdminView(Controller listener) { super(); - this.setLayout(new GridBagLayout()); - this.listener = listener; - this.g = g; - this.e = e; Display(); } @@ -84,6 +78,18 @@ public class AdminView extends JPanel { delGrup.setActionCommand("av::delGrup"); this.add(delGrup, settings); + settings.setPositionY(12); + this.add(new JLabel(" "), settings); + + settings.setPositionY(13); + this.add(new JLabel(" "), settings); + + settings.setPositionY(14); + CustomJButton showRequest = new CustomJButton("Consulter les requetes"); + showRequest.addActionListener(this.listener); + showRequest.setActionCommand("av::ShowRequestFromStudent"); + this.add(showRequest, settings); + this.repaint(); } } diff --git a/src/Test/BDatabase.java b/src/Test/BDatabase.java index 0a9866e..df2a7ea 100644 --- a/src/Test/BDatabase.java +++ b/src/Test/BDatabase.java @@ -219,6 +219,35 @@ public class BDatabase { return listGroupe; } + /** + * Recuperer les requetes + * + * @return la liste des requetes + * */ + public ArrayList getRequestList() { + ArrayList toReturn = new ArrayList<>(); + ArrayList requestId = this.fetchAll("SELECT id FROM fi_demandes"); + ArrayList requestEtu = this.fetchAll("SELECT id_eleve FROM fi_demandes"); + ArrayList requestWitchGrup = this.fetchAll("SELECT id_groupe FROM fi_demandes"); + ArrayList requestMessage = this.fetchAll("SELECT message FROM fi_demandes"); + ArrayList requestType = this.fetchAll("SELECT type FROM fi_demandes"); + ArrayList requestStatut = this.fetchAll("SELECT statut FROM fi_demandes"); + + for(int i = 0; i <= requestId.size()-1; i++) { + toReturn.add( + new RequeteNP( + Integer.parseInt(requestId.get(i)), + requestMessage.get(i), + Integer.parseInt(requestEtu.get(i)), + Integer.parseInt(requestType.get(i)), + Integer.parseInt(requestWitchGrup.get(i)) + ) + ); + } + + return toReturn; + } + /** * Recuperer l'hote courant. * diff --git a/src/Test/Controller.java b/src/Test/Controller.java index 350dd1a..98a8de8 100644 --- a/src/Test/Controller.java +++ b/src/Test/Controller.java @@ -32,6 +32,7 @@ public class Controller implements ActionListener, ListSelectionListener { private ArrayList e; private ArrayList g; + private ArrayList r; private JTable currentJTableUse; private JComboBox list; @@ -51,9 +52,10 @@ public class Controller implements ActionListener, ListSelectionListener { this.db = db; this.e = this.db.getEtuList(); this.g = this.db.getGroupeList(); + this.r = this.db.getRequestList(); this.sv = new StudentView(this.e, this.g, this); this.pv = new ProfView(this.e, this.g, this); - this.av = new AdminView(this.e, this.g, this); + this.av = new AdminView(this); this.parent = new MainMenu(this); } @@ -61,9 +63,10 @@ public class Controller implements ActionListener, ListSelectionListener { this.db = db; this.e = this.db.getEtuList(); this.g = this.db.getGroupeList(); + this.r = this.db.getRequestList(); this.sv = new StudentView(this.e, this.g, this); this.pv = new ProfView(this.e, this.g, this); - this.av = new AdminView(this.e, this.g, this); + this.av = new AdminView(this); this.parent = new MainMenu(this, selectedView); } @@ -618,6 +621,32 @@ public class Controller implements ActionListener, ListSelectionListener { DisplayWithListner(this.createJTable(data, titre)); } + + else if(Objects.equals(command, "av::ShowRequestFromStudent")) { + Object[][] data = new Object[this.r.size()][5]; + + String[] titre = { + "Etudiant", + "Groupe demande", + "Message", + "Type", + "Action" + }; + + for(int i = 0; i <= this.r.size()-1; i++) { + Object[] info = { + this.getEtuNameById(this.r.get(i).getEtuId()), + this.getGroupeById(this.r.get(i).getWitchGroupe()), + this.r.get(i).getMessage(), + this.r.get(i).getType(), + "[DECISION]" + }; + + data[i] = info; + } + + DisplayWithListner(this.createJTable(data, titre)); + } } @Override @@ -652,6 +681,13 @@ public class Controller implements ActionListener, ListSelectionListener { } } + public String getEtuNameById(int id) { + String nom = this.db.fetchAll("SELECT nom FROM fi_eleves WHERE id = " + id).get(0); + String prenom = this.db.fetchAll("SELECT prenom FROM fi_eleves WHERE id = " + id).get(0); + + return nom + " " + prenom; + } + private void deleteGrup(TableModel tm, int[] cell) { int choice = JOptionPane.showConfirmDialog(this.parent, "Etes-vous sur ?"); @@ -805,7 +841,7 @@ public class Controller implements ActionListener, ListSelectionListener { this.g = this.db.getGroupeList(); this.parent.updateTable(this.initTable()); } - + public JTable initTable() { Object[][] data = new Object[this.e.size()][3]; String[] title = {