This commit is contained in:
pro.boooooo
2022-12-07 20:47:08 +01:00
parent 276fc19076
commit 51407d32cc
11 changed files with 167 additions and 10 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+42
View File
@@ -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;
}
}
+44
View File
@@ -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;
}
}
+13 -7
View File
@@ -10,18 +10,12 @@ import javax.swing.JLabel;
import javax.swing.JPanel; import javax.swing.JPanel;
public class AdminView extends JPanel { public class AdminView extends JPanel {
private final ArrayList<Etudiant> e;
private final ArrayList<Groupe> g;
private final Controller listener; private final Controller listener;
public AdminView(ArrayList<Etudiant> e, ArrayList<Groupe> g, Controller listener) { public AdminView(Controller listener) {
super(); super();
this.setLayout(new GridBagLayout()); this.setLayout(new GridBagLayout());
this.listener = listener; this.listener = listener;
this.g = g;
this.e = e;
Display(); Display();
} }
@@ -84,6 +78,18 @@ public class AdminView extends JPanel {
delGrup.setActionCommand("av::delGrup"); delGrup.setActionCommand("av::delGrup");
this.add(delGrup, settings); 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(); this.repaint();
} }
} }
+29
View File
@@ -219,6 +219,35 @@ public class BDatabase {
return listGroupe; return listGroupe;
} }
/**
* Recuperer les requetes
*
* @return la liste des requetes
* */
public ArrayList<Requete> getRequestList() {
ArrayList<Requete> toReturn = new ArrayList<>();
ArrayList<String> requestId = this.fetchAll("SELECT id FROM fi_demandes");
ArrayList<String> requestEtu = this.fetchAll("SELECT id_eleve FROM fi_demandes");
ArrayList<String> requestWitchGrup = this.fetchAll("SELECT id_groupe FROM fi_demandes");
ArrayList<String> requestMessage = this.fetchAll("SELECT message FROM fi_demandes");
ArrayList<String> requestType = this.fetchAll("SELECT type FROM fi_demandes");
ArrayList<String> 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. * Recuperer l'hote courant.
* *
+39 -3
View File
@@ -32,6 +32,7 @@ public class Controller implements ActionListener, ListSelectionListener {
private ArrayList<Etudiant> e; private ArrayList<Etudiant> e;
private ArrayList<Groupe> g; private ArrayList<Groupe> g;
private ArrayList<Requete> r;
private JTable currentJTableUse; private JTable currentJTableUse;
private JComboBox<String> list; private JComboBox<String> list;
@@ -51,9 +52,10 @@ public class Controller implements ActionListener, ListSelectionListener {
this.db = db; this.db = db;
this.e = this.db.getEtuList(); this.e = this.db.getEtuList();
this.g = this.db.getGroupeList(); this.g = this.db.getGroupeList();
this.r = this.db.getRequestList();
this.sv = new StudentView(this.e, this.g, this); this.sv = new StudentView(this.e, this.g, this);
this.pv = new ProfView(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); this.parent = new MainMenu(this);
} }
@@ -61,9 +63,10 @@ public class Controller implements ActionListener, ListSelectionListener {
this.db = db; this.db = db;
this.e = this.db.getEtuList(); this.e = this.db.getEtuList();
this.g = this.db.getGroupeList(); this.g = this.db.getGroupeList();
this.r = this.db.getRequestList();
this.sv = new StudentView(this.e, this.g, this); this.sv = new StudentView(this.e, this.g, this);
this.pv = new ProfView(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); this.parent = new MainMenu(this, selectedView);
} }
@@ -618,6 +621,32 @@ public class Controller implements ActionListener, ListSelectionListener {
DisplayWithListner(this.createJTable(data, titre)); 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 @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) { private void deleteGrup(TableModel tm, int[] cell) {
int choice = JOptionPane.showConfirmDialog(this.parent, "Etes-vous sur ?"); 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.g = this.db.getGroupeList();
this.parent.updateTable(this.initTable()); this.parent.updateTable(this.initTable());
} }
public JTable initTable() { public JTable initTable() {
Object[][] data = new Object[this.e.size()][3]; Object[][] data = new Object[this.e.size()][3];
String[] title = { String[] title = {