diff --git a/FIProjetIHM2022.iml b/FIProjetIHM2022.iml index 1313d69..57a8d21 100644 --- a/FIProjetIHM2022.iml +++ b/FIProjetIHM2022.iml @@ -1,8 +1,6 @@ - - - + @@ -10,7 +8,7 @@ - + \ No newline at end of file diff --git a/out/production/FIProjetIHM2022/Test/AdminView.class b/out/production/FIProjetIHM2022/Test/AdminView.class index b96a881..43be318 100644 Binary files a/out/production/FIProjetIHM2022/Test/AdminView.class and b/out/production/FIProjetIHM2022/Test/AdminView.class differ diff --git a/out/production/FIProjetIHM2022/Test/BDatabase.class b/out/production/FIProjetIHM2022/Test/BDatabase.class index d29a226..b2c74bb 100644 Binary files a/out/production/FIProjetIHM2022/Test/BDatabase.class and b/out/production/FIProjetIHM2022/Test/BDatabase.class differ diff --git a/out/production/FIProjetIHM2022/Test/BFrame.class b/out/production/FIProjetIHM2022/Test/BFrame.class index 0c4f3a5..511cc31 100644 Binary files a/out/production/FIProjetIHM2022/Test/BFrame.class and b/out/production/FIProjetIHM2022/Test/BFrame.class differ diff --git a/out/production/FIProjetIHM2022/Test/Controller$1.class b/out/production/FIProjetIHM2022/Test/Controller$1.class index f2eab1b..aef7f17 100644 Binary files a/out/production/FIProjetIHM2022/Test/Controller$1.class and b/out/production/FIProjetIHM2022/Test/Controller$1.class differ diff --git a/out/production/FIProjetIHM2022/Test/Controller.class b/out/production/FIProjetIHM2022/Test/Controller.class index 8654bd5..dea14a9 100644 Binary files a/out/production/FIProjetIHM2022/Test/Controller.class and b/out/production/FIProjetIHM2022/Test/Controller.class differ diff --git a/out/production/FIProjetIHM2022/Test/ProfView$1.class b/out/production/FIProjetIHM2022/Test/ProfView$1.class index 7603b24..82e1884 100644 Binary files a/out/production/FIProjetIHM2022/Test/ProfView$1.class and b/out/production/FIProjetIHM2022/Test/ProfView$1.class differ diff --git a/out/production/FIProjetIHM2022/Test/ProfView.class b/out/production/FIProjetIHM2022/Test/ProfView.class index f71b8f8..73233a2 100644 Binary files a/out/production/FIProjetIHM2022/Test/ProfView.class and b/out/production/FIProjetIHM2022/Test/ProfView.class differ diff --git a/src/Test/AdminView.java b/src/Test/AdminView.java index 58d5a61..92f41cd 100644 --- a/src/Test/AdminView.java +++ b/src/Test/AdminView.java @@ -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 e, ArrayList g, Controller listener) { super(); + this.setLayout(new GridBagLayout()); + this.listener = listener; this.g = g; this.e = e; diff --git a/src/Test/BDatabase.java b/src/Test/BDatabase.java index 60b4f54..9b093b5 100644 --- a/src/Test/BDatabase.java +++ b/src/Test/BDatabase.java @@ -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 forCount = this.fetchAll( + "SELECT nom FROM fi_eleves WHERE groupe=" + groupe_id); + + return forCount.size(); + } /** * Recuperer l'hote courant. @@ -251,20 +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 - */ - /** -* 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 forCount = this.fetchAll( - "SELECT nom FROM fi_eleves WHERE groupe=" + groupe_id); - - return forCount.size(); -} } \ No newline at end of file diff --git a/src/Test/BFrame.java b/src/Test/BFrame.java index 9569844..4d10cf0 100644 --- a/src/Test/BFrame.java +++ b/src/Test/BFrame.java @@ -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); diff --git a/src/Test/Controller.java b/src/Test/Controller.java index febd14e..e81c440 100644 --- a/src/Test/Controller.java +++ b/src/Test/Controller.java @@ -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 e; private ArrayList g; @@ -32,17 +32,15 @@ public class Controller implements ActionListener, ListSelectionListener { private ArrayList 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 @@ -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; } diff --git a/src/Test/MainMenu.java b/src/Test/MainMenu.java index f4469cf..319bfb9 100644 --- a/src/Test/MainMenu.java +++ b/src/Test/MainMenu.java @@ -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"); } } diff --git a/src/Test/ProfView.java b/src/Test/ProfView.java index 2d8118a..c3f0718 100644 --- a/src/Test/ProfView.java +++ b/src/Test/ProfView.java @@ -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 e, ArrayList g, Controller listener) { super(); + this.setLayout(new GridBagLayout()); + this.listener = listener; this.e = e; this.g = g; diff --git a/src/Test/StudentView.java b/src/Test/StudentView.java index 2a92a9f..d78fe98 100644 --- a/src/Test/StudentView.java +++ b/src/Test/StudentView.java @@ -8,23 +8,23 @@ 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; -public class ProfView extends JPanel { +public class StudentView extends JPanel { private final ArrayList e; private final ArrayList g; private final Controller listener; private JComboBox groupeOption; private JTextField text; - public ProfView(ArrayList e, ArrayList g, Controller listener) { + public StudentView(ArrayList e, ArrayList g, Controller listener) { super(); + this.setLayout(new GridBagLayout()); + this.listener = listener; this.e = e; this.g = g; @@ -110,20 +110,16 @@ public class ProfView extends JPanel { 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); - - if(this.db.insertRow(la_table, new String[]{"nom"}, new String[]{"felix"})) { - Affiche "OUHRAA" - } else { - Affiche "Marche ap" - } this.repaint(); - - - } }