Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
840a9e00f3 | ||
|
e14573036e | ||
|
8a858b2153 | ||
|
16a83ebdbd |
@ -1,8 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<output url="file://$MODULE_DIR$/out/production/FIProjetIHM2022" />
|
||||
<output-test url="file://$MODULE_DIR$/out/test/FIProjetIHM2022" />
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
@ -10,7 +8,7 @@
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" name="mariadb-connector" level="project" />
|
||||
<orderEntry type="library" name="FI_PRJ" level="project" />
|
||||
<orderEntry type="library" name="mariadb-connector2" level="project" />
|
||||
<orderEntry type="library" name="mariadb-connector1" level="project" />
|
||||
</component>
|
||||
</module>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -2,6 +2,8 @@ package Test;
|
||||
|
||||
import API.Etudiant;
|
||||
import API.Groupe;
|
||||
|
||||
import java.awt.*;
|
||||
import java.util.ArrayList;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JLabel;
|
||||
@ -15,6 +17,8 @@ public class AdminView extends JPanel {
|
||||
public AdminView(ArrayList<Etudiant> e, ArrayList<Groupe> g, Controller listener) {
|
||||
super();
|
||||
|
||||
this.setLayout(new GridBagLayout());
|
||||
|
||||
this.listener = listener;
|
||||
this.g = g;
|
||||
this.e = e;
|
||||
|
@ -219,6 +219,19 @@ public class BDatabase {
|
||||
return listGroupe;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Recuperer le nombre de membre d'un groupe
|
||||
*
|
||||
* @param groupe_id le groupes
|
||||
* @return le nombre de membre
|
||||
* */
|
||||
public int getMemberCount(int groupe_id) {
|
||||
ArrayList<String> forCount = this.fetchAll(
|
||||
"SELECT nom FROM fi_eleves WHERE groupe=" + groupe_id);
|
||||
|
||||
return forCount.size();
|
||||
}
|
||||
|
||||
/**
|
||||
* Recuperer l'hote courant.
|
||||
@ -251,16 +264,4 @@ public class BDatabase {
|
||||
public String toString() {
|
||||
return this.db_host + "\n" + this.db_name + "\n" + this.db_user + "\n";
|
||||
}
|
||||
/***
|
||||
* Recupere le nombre d'etudiant par groupe
|
||||
* @return
|
||||
*/
|
||||
public ArrayList<NBGroupe> getNbrEtuGroupes() {
|
||||
ArrayList<NBGroupe> NGroupe = new ArrayList<>();
|
||||
ArrayList<String> groupeNB = this.fetchAll("SELECT COUNT(DISTINCT groupe) FROM fi_eleves;");
|
||||
for(int i = 0; i <= NGroupe.Goupe(groupeNB); i++) {
|
||||
ArrayList<String> grpnb = this.fetchAll("Select count(id) from fi_eleves where groupe="+i+";");
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -108,7 +108,7 @@ public class BFrame extends JFrame {
|
||||
* @param daron La fenetre qui va etre bloquer
|
||||
* @param content Contenu de la fenetre
|
||||
* */
|
||||
public BFrame(String title, int loca_x, int loca_y, int size_x, int size_y, BFrame daron, JPanel content) {
|
||||
public BFrame(String title, int loca_x, int loca_y, int size_x, int size_y, JFrame daron, JPanel content) {
|
||||
JDialog frame = new JDialog(daron, title, true);
|
||||
frame.setLocation(loca_x, loca_y);
|
||||
frame.setSize(size_x, size_y);
|
||||
|
@ -18,11 +18,11 @@ import java.util.Objects;
|
||||
public class Controller implements ActionListener, ListSelectionListener {
|
||||
private final BDatabase db;
|
||||
|
||||
private ProfView pv = null;
|
||||
private AdminView av = null;
|
||||
private ProfView pv;
|
||||
private AdminView av;
|
||||
private StudentView sv;
|
||||
private BFrame currentModal;
|
||||
|
||||
private MainMenu parent;
|
||||
private JFrame parent;
|
||||
|
||||
private ArrayList<Etudiant> e;
|
||||
private ArrayList<Groupe> g;
|
||||
@ -32,17 +32,15 @@ public class Controller implements ActionListener, ListSelectionListener {
|
||||
|
||||
private ArrayList<String> tmpStud;
|
||||
|
||||
public Controller(BDatabase db, MainMenu frame) {
|
||||
public Controller(BDatabase db) {
|
||||
this.db = db;
|
||||
this.e = this.db.getEtuList();
|
||||
this.g = this.db.getGroupeList();
|
||||
parent = frame;
|
||||
|
||||
// Les 3 fenetres s'ouvriront en meme temps (Pour le contexte du projet)
|
||||
//this.pv = new ProfView(this.e, this.g, this);
|
||||
//System.out.println("[+] Demarrage de la vue professeur -> " + this.pv);
|
||||
//this.av = new AdminView(this.e, this.g, this);
|
||||
//System.out.println("[+] Demarrage de la vue Administrateur -> " + this.av);
|
||||
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.parent = new MainMenu(this);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -58,11 +56,9 @@ public class Controller implements ActionListener, ListSelectionListener {
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Pour afficher une JTable sans listener
|
||||
*
|
||||
* @param parent La fenetre qui sera bloque
|
||||
* @param frameTitle Le titre de la fenetre
|
||||
* @param size_x Taille en x
|
||||
* @param size_y Taille en y
|
||||
@ -81,13 +77,12 @@ public class Controller implements ActionListener, ListSelectionListener {
|
||||
|
||||
forModal.add(liste);
|
||||
|
||||
BFrame frame = new BFrame(frameTitle, loca_x, loca_y, size_x, size_y, parent, forModal);
|
||||
BFrame frame = new BFrame(frameTitle, loca_x, loca_y, size_x, size_y, this.parent, forModal);
|
||||
}
|
||||
|
||||
/**
|
||||
* Pour afficher une JTable contenant un listener
|
||||
*
|
||||
* @param parent La fenetre qui sera bloque
|
||||
* @param frameTitle Le titre de la fenetre
|
||||
* @param size_x Taille en x
|
||||
* @param size_y Taille en y
|
||||
@ -113,7 +108,6 @@ public class Controller implements ActionListener, ListSelectionListener {
|
||||
/**
|
||||
* Pour afficher une modale classique pour plus de liberte (panel a creer au prealable)
|
||||
*
|
||||
* @param parent La fenetre qui sera bloque
|
||||
* @param frameTitle Le titre de la fenetre
|
||||
* @param size_x Taille en x
|
||||
* @param size_y Taille en y
|
||||
@ -286,7 +280,7 @@ public class Controller implements ActionListener, ListSelectionListener {
|
||||
}
|
||||
|
||||
else if(Objects.equals(command, "av::AddStudGrup")) {
|
||||
ArrayList<ArrayList<String>> data = new ArrayList();
|
||||
ArrayList<ArrayList<String>> data = new ArrayList<>();
|
||||
|
||||
String[] titre = {
|
||||
"Nom",
|
||||
@ -436,18 +430,16 @@ public class Controller implements ActionListener, ListSelectionListener {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void setAv (AdminView av) {
|
||||
if (this.av == null) {
|
||||
this.av = av;
|
||||
}
|
||||
public ProfView getProfView() {
|
||||
return this.pv;
|
||||
}
|
||||
|
||||
public StudentView getStudentView() {
|
||||
return this.sv;
|
||||
}
|
||||
|
||||
public void setPv (ProfView pv) {
|
||||
if (this.pv == null) {
|
||||
this.pv = pv;
|
||||
}
|
||||
public AdminView getAdminView() {
|
||||
return this.av;
|
||||
}
|
||||
|
||||
|
||||
|
@ -6,50 +6,58 @@ import java.awt.event.ActionEvent;
|
||||
|
||||
public class MainMenu extends JFrame {
|
||||
private final static Dimension MINIMUM_SIZE = new Dimension(960, 540);
|
||||
private CardLayout cards = new CardLayout();
|
||||
private CardLayout cards;
|
||||
|
||||
private AdminView av;
|
||||
private StudentView sv;
|
||||
private ProfView pv;
|
||||
|
||||
private BLayout settings;
|
||||
|
||||
private JButton[] buttonTab = {
|
||||
new JButton("Admin"),
|
||||
new JButton("Prof"),
|
||||
new JButton("Student")
|
||||
};
|
||||
private final Controller listener;
|
||||
|
||||
private JButton[] buttonTab;
|
||||
|
||||
public MainMenu() {
|
||||
public MainMenu(Controller listener) {
|
||||
super();
|
||||
|
||||
this.av = listener.getAdminView();
|
||||
this.pv = listener.getProfView();
|
||||
this.sv = listener.getStudentView();
|
||||
|
||||
this.cards = new CardLayout();
|
||||
|
||||
this.listener = listener;
|
||||
|
||||
this.buttonTab = new JButton[] {
|
||||
new JButton("Admin"),
|
||||
new JButton("Prof"),
|
||||
new JButton("Student")
|
||||
};
|
||||
|
||||
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
|
||||
this.setExtendedState(MAXIMIZED_BOTH);
|
||||
this.setMinimumSize(MINIMUM_SIZE);
|
||||
init();
|
||||
this.init();
|
||||
this.setVisible(true);
|
||||
}
|
||||
|
||||
|
||||
private void init() {
|
||||
BDatabase db = new BDatabase();
|
||||
Controller listener = new Controller(db, this);
|
||||
|
||||
av = new AdminView(listener.getEtudiants(), listener.getGroupes(), listener);
|
||||
pv = new ProfView(listener.getEtudiants(), listener.getGroupes(), listener);
|
||||
|
||||
listener.setAv(av);
|
||||
listener.setPv(pv);
|
||||
|
||||
this.setLayout(cards);
|
||||
this.setLayout(this.cards);
|
||||
|
||||
this.add(first());
|
||||
this.add(adminView());
|
||||
this.add(profView());
|
||||
this.add(studentView());
|
||||
|
||||
cards.first(this.getContentPane());
|
||||
this.cards.first(this.getContentPane());
|
||||
}
|
||||
|
||||
|
||||
private JPanel first() {
|
||||
JPanel mainPanel = new JPanel(), centerPanel = new JPanel();
|
||||
JPanel mainPanel = new JPanel();
|
||||
JPanel centerPanel = new JPanel();
|
||||
Dimension buttonDimension = new Dimension(300, 50);
|
||||
|
||||
mainPanel.setLayout(new BorderLayout());
|
||||
@ -75,18 +83,22 @@ public class MainMenu extends JFrame {
|
||||
|
||||
|
||||
private JPanel adminView() {
|
||||
JPanel mainPanel = new JPanel();
|
||||
mainPanel.add(av);
|
||||
JPanel mainPanel = new JPanel(new GridBagLayout());
|
||||
mainPanel.add(this.av, this.settings);
|
||||
return mainPanel;
|
||||
}
|
||||
|
||||
|
||||
private JPanel profView() {
|
||||
JPanel mainPanel = new JPanel();
|
||||
mainPanel.add(pv);
|
||||
JPanel mainPanel = new JPanel(new GridBagLayout());
|
||||
mainPanel.add(this.pv, this.settings);
|
||||
return mainPanel;
|
||||
}
|
||||
|
||||
private JPanel studentView() {
|
||||
JPanel mainPanel = new JPanel(new GridBagLayout());
|
||||
mainPanel.add(this.sv, this.settings);
|
||||
return mainPanel;
|
||||
}
|
||||
|
||||
private void action(ActionEvent e) {
|
||||
JButton origin = (JButton) e.getSource();
|
||||
@ -98,8 +110,13 @@ public class MainMenu extends JFrame {
|
||||
} else if (origin.getText() == "Prof") {
|
||||
cards.next(this.getContentPane());
|
||||
cards.next(this.getContentPane());
|
||||
} else if (origin.getText() == "Student") {
|
||||
cards.next(this.getContentPane());
|
||||
cards.next(this.getContentPane());
|
||||
cards.next(this.getContentPane());
|
||||
}
|
||||
|
||||
} else {
|
||||
else {
|
||||
JOptionPane.showMessageDialog(null, "En travaux");
|
||||
}
|
||||
}
|
||||
|
@ -8,9 +8,7 @@ import javax.swing.JButton;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Insets;
|
||||
import java.awt.GridBagConstraints;
|
||||
import java.awt.*;
|
||||
import java.awt.event.KeyAdapter;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.util.ArrayList;
|
||||
@ -25,6 +23,8 @@ public class ProfView extends JPanel {
|
||||
public ProfView(ArrayList<Etudiant> e, ArrayList<Groupe> g, Controller listener) {
|
||||
super();
|
||||
|
||||
this.setLayout(new GridBagLayout());
|
||||
|
||||
this.listener = listener;
|
||||
this.e = e;
|
||||
this.g = g;
|
||||
|
125
src/Test/StudentView.java
Normal file
125
src/Test/StudentView.java
Normal file
@ -0,0 +1,125 @@
|
||||
package Test;
|
||||
|
||||
import API.Etudiant;
|
||||
import API.Groupe;
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JTextField;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.KeyAdapter;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class StudentView extends JPanel {
|
||||
private final ArrayList<Etudiant> e;
|
||||
private final ArrayList<Groupe> g;
|
||||
private final Controller listener;
|
||||
private JComboBox<String> groupeOption;
|
||||
private JTextField text;
|
||||
|
||||
public StudentView(ArrayList<Etudiant> e, ArrayList<Groupe> g, Controller listener) {
|
||||
super();
|
||||
|
||||
this.setLayout(new GridBagLayout());
|
||||
|
||||
this.listener = listener;
|
||||
this.e = e;
|
||||
this.g = g;
|
||||
|
||||
this.Display();
|
||||
}
|
||||
|
||||
public String getComboSelection() {
|
||||
return (String) this.groupeOption.getSelectedItem();
|
||||
}
|
||||
|
||||
public String getSearchStud() {
|
||||
return this.text.getText();
|
||||
}
|
||||
|
||||
public int getComboSelectionIndex() {
|
||||
return this.groupeOption.getSelectedIndex();
|
||||
}
|
||||
|
||||
public void Display() {
|
||||
BLayout settings = new BLayout();
|
||||
settings.setPositionX(0);
|
||||
settings.setPositionY(6);
|
||||
|
||||
settings.setPositionY(0);
|
||||
JButton studList = new JButton("Voir la liste des etudiants");
|
||||
studList.setActionCommand("pv::GetStudList");
|
||||
studList.addActionListener(this.listener);
|
||||
this.add(studList, settings);
|
||||
|
||||
settings.setPositionY(1);
|
||||
this.add(new JLabel(" "), settings);
|
||||
|
||||
settings.setPositionY(2);
|
||||
JLabel gs = new JLabel("Afficher les etudiants se trouvant dans le groupe :");
|
||||
this.add(gs, settings);
|
||||
|
||||
settings.setPositionY(3);
|
||||
settings.setPadding(new Insets(0, 0, 0, 50));
|
||||
String[] groupeList = new String[this.g.size()];
|
||||
|
||||
for(int i = 0; i <= this.g.size()-1; i++) {
|
||||
groupeList[i] = this.g.get(i).getName();
|
||||
}
|
||||
|
||||
this.groupeOption = new JComboBox<>(groupeList);
|
||||
this.groupeOption.setPreferredSize(new Dimension(110, 30));
|
||||
this.add(groupeOption, settings);
|
||||
|
||||
settings.setPositionY(3);
|
||||
settings.setPadding(new Insets(0, 0, 0, 0));
|
||||
settings.setAnchor(GridBagConstraints.EAST);
|
||||
JButton confirm = new JButton("Rechercher");
|
||||
confirm.setActionCommand("pv::GetListFiltered");
|
||||
confirm.addActionListener(this.listener);
|
||||
this.add(confirm, settings);
|
||||
|
||||
settings.setAnchor(GridBagConstraints.CENTER);
|
||||
|
||||
settings.setPositionY(4);
|
||||
this.add(new JLabel(" "), settings);
|
||||
|
||||
settings.setPositionY(5);
|
||||
JLabel pf = new JLabel("Rechercher un etudiant : ");
|
||||
this.add(pf, settings);
|
||||
|
||||
settings.setPositionY(6);
|
||||
settings.setPadding(new Insets(0, 0, 0, 50));
|
||||
this.text = new JTextField();
|
||||
this.text.setPreferredSize(new Dimension(110, 30));
|
||||
text.addKeyListener(new KeyAdapter() {
|
||||
public void keyTyped(KeyEvent e) {
|
||||
if (text.getText().length() >= 3 )
|
||||
e.consume();
|
||||
}
|
||||
});
|
||||
this.add(this.text, settings);
|
||||
|
||||
settings.setPositionY(6);
|
||||
settings.setPadding(new Insets(0, 0, 0, 0));
|
||||
settings.setAnchor(GridBagConstraints.EAST);
|
||||
JButton searchTLetters = new JButton("Rechercher");
|
||||
searchTLetters.addActionListener(this.listener);
|
||||
searchTLetters.setActionCommand("pv::SearchStudentPer3Letters");
|
||||
this.add(searchTLetters, settings);
|
||||
settings.setAnchor(GridBagConstraints.CENTER);
|
||||
|
||||
settings.setPositionY(7);
|
||||
this.add(new JLabel(" "), settings);
|
||||
|
||||
settings.setPositionY(8);
|
||||
JButton changGrp = new JButton("Changer de groupe");
|
||||
changGrp.addActionListener(this.listener);
|
||||
this.add(changGrp, settings);
|
||||
|
||||
this.repaint();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user