Mise à jour de 'src/Test/MainMenu.java'
This commit is contained in:
parent
8b68a2a163
commit
302e2617d6
@ -1,239 +1,240 @@
|
||||
package Test;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
|
||||
public class MainMenu extends JFrame {
|
||||
private final static Dimension MINIMUM_SIZE = new Dimension(960, 600);
|
||||
private final CardLayout cards = new CardLayout(), adminCards = new CardLayout(), profCards = new CardLayout(), studentCards = new CardLayout();
|
||||
private final JPanel adminPanel = new JPanel(), profPanel = new JPanel(), studentPanel = new JPanel();
|
||||
private final JMenuBar menuBar = new JMenuBar();
|
||||
private Controller listener;
|
||||
private AdminView av;
|
||||
private ProfView pv;
|
||||
private StudentView sv;
|
||||
private JTable table;
|
||||
private int cardIndex = 0;
|
||||
|
||||
private final JButton[] buttonTab = {
|
||||
new JButton("Admin"),
|
||||
new JButton("Prof"),
|
||||
new JButton("Student")
|
||||
};
|
||||
|
||||
|
||||
public MainMenu(Controller listener) {
|
||||
super();
|
||||
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
|
||||
this.setExtendedState(MAXIMIZED_BOTH);
|
||||
this.setMinimumSize(MINIMUM_SIZE);
|
||||
init(listener);
|
||||
this.setVisible(true);
|
||||
}
|
||||
|
||||
|
||||
private void init(Controller listener) {
|
||||
this.listener = listener;
|
||||
|
||||
this.av = this.listener.getAdminView();
|
||||
this.pv = this.listener.getProfView();
|
||||
this.sv = this.listener.getStudentView();
|
||||
|
||||
this.table = this.listener.initTable();
|
||||
|
||||
this.setLayout(cards);
|
||||
|
||||
this.add(firstCard());
|
||||
this.add(adminPanel);
|
||||
this.add(profPanel);
|
||||
this.add(studentView());
|
||||
|
||||
cards.first(this.getContentPane());
|
||||
}
|
||||
|
||||
|
||||
private void createJMenuBar() {
|
||||
JMenu menu = new JMenu("Menu"), file = new JMenu("File"), edit = new JMenu("Edit"), view = new JMenu("View");
|
||||
|
||||
JMenuItem adminMenuItem = new JMenuItem("Admin View");
|
||||
adminMenuItem.addActionListener((event) -> changeView(1));
|
||||
|
||||
JMenuItem profMenuItem = new JMenuItem("Professor View");
|
||||
profMenuItem.addActionListener((event) -> changeView(2));
|
||||
|
||||
JMenuItem studentMenuItem = new JMenuItem("Student View");
|
||||
studentMenuItem.addActionListener((event) -> changeView(3));
|
||||
|
||||
JMenuItem quitMenuItem = new JMenuItem("Quit");
|
||||
quitMenuItem.addActionListener((event) -> System.exit(0));
|
||||
|
||||
menu.add(adminMenuItem);
|
||||
menu.add(profMenuItem);
|
||||
menu.add(studentMenuItem);
|
||||
menu.add(quitMenuItem);
|
||||
|
||||
file.add(new JMenuItem("Ca c'est juste du style"));
|
||||
edit.add(new JMenuItem("Ca aussi c'est du style"));
|
||||
view.add(new JMenuItem("Encore du style"));
|
||||
|
||||
menuBar.add(menu);
|
||||
menuBar.add(file);
|
||||
menuBar.add(edit);
|
||||
menuBar.add(view);
|
||||
|
||||
this.setJMenuBar(menuBar);
|
||||
}
|
||||
|
||||
|
||||
private JPanel cardWithTable(JPanel sidePanel) {
|
||||
JPanel panel = new JPanel();
|
||||
JScrollPane scrollPane = new JScrollPane();
|
||||
|
||||
panel.setLayout(new GridLayout(1, 2));
|
||||
|
||||
panel.add(sidePanel);
|
||||
panel.add(this.table);
|
||||
panel.add(scrollPane);
|
||||
scrollPane.setViewportView(this.table);
|
||||
|
||||
return panel;
|
||||
}
|
||||
|
||||
|
||||
private void changeView(int index) {
|
||||
table = this.listener.initTable();
|
||||
|
||||
if (index == 1) {
|
||||
cardIndex = index;
|
||||
this.setTitle("Administrator");
|
||||
adminPanel.setLayout(adminCards);
|
||||
adminPanel.add(cardWithTable(adminView()));
|
||||
adminCards.next(adminPanel);
|
||||
menuBar.setBackground(Color.RED);
|
||||
|
||||
} else if (index == 2) {
|
||||
cardIndex = index;
|
||||
this.setTitle("Professor");
|
||||
profPanel.setLayout(profCards);
|
||||
profPanel.add(cardWithTable(profView()));
|
||||
profCards.next(profPanel);
|
||||
menuBar.setBackground(Color.MAGENTA);
|
||||
|
||||
} else if (index == 3){
|
||||
cardIndex = index;
|
||||
this.setTitle("Student");
|
||||
studentPanel.setLayout(studentCards);
|
||||
studentPanel.add(cardWithTable(studentView()));
|
||||
studentCards.next(studentPanel);
|
||||
menuBar.setBackground(Color.BLUE);
|
||||
}
|
||||
travelThroughCards(index);
|
||||
}
|
||||
|
||||
|
||||
public void updateTable(JTable table) {
|
||||
if (cardIndex == 1) {
|
||||
this.table = table;
|
||||
adminPanel.add(cardWithTable(adminView()));
|
||||
adminCards.next(adminPanel);
|
||||
} else if (cardIndex == 2) {
|
||||
this.table = table;
|
||||
profPanel.add(cardWithTable(profView()));
|
||||
profCards.next(profPanel);
|
||||
} else {
|
||||
this.table = table;
|
||||
studentPanel.add(cardWithTable(profView()));
|
||||
studentCards.next(studentPanel);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private JPanel firstCard() {
|
||||
JPanel mainPanel = new JPanel(), centerPanel = new JPanel();
|
||||
Dimension buttonDimension = new Dimension(300, 50);
|
||||
|
||||
mainPanel.setLayout(new BorderLayout());
|
||||
centerPanel.setLayout(new GridBagLayout());
|
||||
|
||||
Insets insets = new Insets(10, 10, 10, 10);
|
||||
GridBagConstraints gbc = new GridBagConstraints();
|
||||
gbc.insets = insets;
|
||||
gbc.gridwidth = 1;
|
||||
gbc.gridx = 0;
|
||||
|
||||
for (int i = 0; i < buttonTab.length; i++) {
|
||||
gbc.gridy = i;
|
||||
buttonTab[i].setPreferredSize(buttonDimension);
|
||||
buttonTab[i].addActionListener(this::action);
|
||||
centerPanel.add(buttonTab[i], gbc);
|
||||
}
|
||||
|
||||
mainPanel.add(centerPanel, BorderLayout.CENTER);
|
||||
|
||||
return mainPanel;
|
||||
}
|
||||
|
||||
|
||||
private JPanel adminView() {
|
||||
JPanel mainPanel = new JPanel();
|
||||
mainPanel.setLayout(new BorderLayout());
|
||||
mainPanel.add(this.av, BorderLayout.CENTER);
|
||||
return mainPanel;
|
||||
}
|
||||
|
||||
|
||||
private JPanel profView() {
|
||||
JPanel mainPanel = new JPanel();
|
||||
mainPanel.setLayout(new BorderLayout());
|
||||
mainPanel.add(this.pv, BorderLayout.CENTER);
|
||||
return mainPanel;
|
||||
}
|
||||
|
||||
|
||||
private JPanel studentView() {
|
||||
JPanel mainPanel = new JPanel();
|
||||
mainPanel.setLayout(new BorderLayout());
|
||||
mainPanel.add(this.sv, BorderLayout.CENTER);
|
||||
return mainPanel;
|
||||
}
|
||||
|
||||
|
||||
private void action(ActionEvent e) {
|
||||
JButton origin = (JButton) e.getSource();
|
||||
createJMenuBar();
|
||||
|
||||
if (origin.getText().equals("Admin")) {
|
||||
this.setTitle("Administrator");
|
||||
menuBar.setBackground(Color.RED);
|
||||
adminPanel.setLayout(adminCards);
|
||||
adminPanel.add(cardWithTable(adminView()));
|
||||
cardIndex = 1;
|
||||
|
||||
} else if (origin.getText().equals("Prof")) {
|
||||
this.setTitle("Professor");
|
||||
menuBar.setBackground(Color.MAGENTA);
|
||||
profPanel.setLayout(profCards);
|
||||
profPanel.add(cardWithTable(profView()));
|
||||
cardIndex = 2;
|
||||
|
||||
} else {
|
||||
this.setTitle("Student");
|
||||
menuBar.setBackground(Color.BLUE);
|
||||
studentPanel.setLayout(studentCards);
|
||||
studentPanel.add(cardWithTable(studentView()));
|
||||
cardIndex = 3;
|
||||
}
|
||||
|
||||
travelThroughCards(cardIndex);
|
||||
}
|
||||
|
||||
|
||||
private void travelThroughCards(int index) {
|
||||
cards.first(this.getContentPane());
|
||||
|
||||
for (int i = 0; i < index; i++) {
|
||||
cards.next(this.getContentPane());
|
||||
}
|
||||
}
|
||||
}
|
||||
package Test;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
|
||||
public class MainMenu extends JFrame {
|
||||
private final static Dimension MINIMUM_SIZE = new Dimension(960, 600);
|
||||
private final CardLayout cards = new CardLayout(), adminCards = new CardLayout(), profCards = new CardLayout(), studentCards = new CardLayout();
|
||||
private final JPanel adminPanel = new JPanel(), profPanel = new JPanel(), studentPanel = new JPanel();
|
||||
private final JMenuBar menuBar = new JMenuBar();
|
||||
private Controller listener;
|
||||
private AdminView av;
|
||||
private ProfView pv;
|
||||
private StudentView sv;
|
||||
private JTable table;
|
||||
private int cardIndex = 0;
|
||||
private String[] viewName = {"Administrateur", "Professeur", "Etudiant"}
|
||||
|
||||
private final JButton[] buttonTab = {
|
||||
new JButton(viewName[0]),
|
||||
new JButton(viewName[1]),
|
||||
new JButton(viewName[2])
|
||||
};
|
||||
|
||||
|
||||
public MainMenu(Controller listener) {
|
||||
super();
|
||||
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
|
||||
this.setExtendedState(MAXIMIZED_BOTH);
|
||||
this.setMinimumSize(MINIMUM_SIZE);
|
||||
init(listener);
|
||||
this.setVisible(true);
|
||||
}
|
||||
|
||||
|
||||
private void init(Controller listener) {
|
||||
this.listener = listener;
|
||||
|
||||
this.av = this.listener.getAdminView();
|
||||
this.pv = this.listener.getProfView();
|
||||
this.sv = this.listener.getStudentView();
|
||||
|
||||
this.table = this.listener.initTable();
|
||||
|
||||
this.setLayout(cards);
|
||||
|
||||
this.add(firstCard());
|
||||
this.add(adminPanel);
|
||||
this.add(profPanel);
|
||||
this.add(studentView());
|
||||
|
||||
cards.first(this.getContentPane());
|
||||
}
|
||||
|
||||
|
||||
private void createJMenuBar() {
|
||||
JMenu menu = new JMenu("Menu"), file = new JMenu("File"), edit = new JMenu("Edit"), view = new JMenu("View");
|
||||
|
||||
JMenuItem adminMenuItem = new JMenuItem("Vu "+viewName[0]);
|
||||
adminMenuItem.addActionListener((event) -> changeView(1));
|
||||
|
||||
JMenuItem profMenuItem = new JMenuItem("Vu "+viewName[0]);
|
||||
profMenuItem.addActionListener((event) -> changeView(2));
|
||||
|
||||
JMenuItem studentMenuItem = new JMenuItem("Vu "+viewName[0]);
|
||||
studentMenuItem.addActionListener((event) -> changeView(3));
|
||||
|
||||
JMenuItem quitMenuItem = new JMenuItem("Quitter");
|
||||
quitMenuItem.addActionListener((event) -> System.exit(0));
|
||||
|
||||
menu.add(adminMenuItem);
|
||||
menu.add(profMenuItem);
|
||||
menu.add(studentMenuItem);
|
||||
menu.add(quitMenuItem);
|
||||
|
||||
file.add(new JMenuItem("Ca c'est juste du style"));
|
||||
edit.add(new JMenuItem("Ca aussi c'est du style"));
|
||||
view.add(new JMenuItem("Encore du style"));
|
||||
|
||||
menuBar.add(menu);
|
||||
menuBar.add(file);
|
||||
menuBar.add(edit);
|
||||
menuBar.add(view);
|
||||
|
||||
this.setJMenuBar(menuBar);
|
||||
}
|
||||
|
||||
|
||||
private JPanel cardWithTable(JPanel sidePanel) {
|
||||
JPanel panel = new JPanel();
|
||||
JScrollPane scrollPane = new JScrollPane();
|
||||
|
||||
panel.setLayout(new GridLayout(1, 2));
|
||||
|
||||
panel.add(sidePanel);
|
||||
panel.add(this.table);
|
||||
panel.add(scrollPane);
|
||||
scrollPane.setViewportView(this.table);
|
||||
|
||||
return panel;
|
||||
}
|
||||
|
||||
|
||||
private void changeView(int index) {
|
||||
table = this.listener.initTable();
|
||||
|
||||
if (index == 1) {
|
||||
cardIndex = index;
|
||||
this.setTitle(viewName[0]);
|
||||
adminPanel.setLayout(adminCards);
|
||||
adminPanel.add(cardWithTable(adminView()));
|
||||
adminCards.next(adminPanel);
|
||||
menuBar.setBackground(Color.RED);
|
||||
|
||||
} else if (index == 2) {
|
||||
cardIndex = index;
|
||||
this.setTitle(viewName[1]);
|
||||
profPanel.setLayout(profCards);
|
||||
profPanel.add(cardWithTable(profView()));
|
||||
profCards.next(profPanel);
|
||||
menuBar.setBackground(Color.MAGENTA);
|
||||
|
||||
} else if (index == 3){
|
||||
cardIndex = index;
|
||||
this.setTitle(viewName[2]);
|
||||
studentPanel.setLayout(studentCards);
|
||||
studentPanel.add(cardWithTable(studentView()));
|
||||
studentCards.next(studentPanel);
|
||||
menuBar.setBackground(Color.BLUE);
|
||||
}
|
||||
travelThroughCards(index);
|
||||
}
|
||||
|
||||
|
||||
public void updateTable(JTable table) {
|
||||
if (cardIndex == 1) {
|
||||
this.table = table;
|
||||
adminPanel.add(cardWithTable(adminView()));
|
||||
adminCards.next(adminPanel);
|
||||
} else if (cardIndex == 2) {
|
||||
this.table = table;
|
||||
profPanel.add(cardWithTable(profView()));
|
||||
profCards.next(profPanel);
|
||||
} else {
|
||||
this.table = table;
|
||||
studentPanel.add(cardWithTable(profView()));
|
||||
studentCards.next(studentPanel);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private JPanel firstCard() {
|
||||
JPanel mainPanel = new JPanel(), centerPanel = new JPanel();
|
||||
Dimension buttonDimension = new Dimension(300, 50);
|
||||
|
||||
mainPanel.setLayout(new BorderLayout());
|
||||
centerPanel.setLayout(new GridBagLayout());
|
||||
|
||||
Insets insets = new Insets(10, 10, 10, 10);
|
||||
GridBagConstraints gbc = new GridBagConstraints();
|
||||
gbc.insets = insets;
|
||||
gbc.gridwidth = 1;
|
||||
gbc.gridx = 0;
|
||||
|
||||
for (int i = 0; i < buttonTab.length; i++) {
|
||||
gbc.gridy = i;
|
||||
buttonTab[i].setPreferredSize(buttonDimension);
|
||||
buttonTab[i].addActionListener(this::action);
|
||||
centerPanel.add(buttonTab[i], gbc);
|
||||
}
|
||||
|
||||
mainPanel.add(centerPanel, BorderLayout.CENTER);
|
||||
|
||||
return mainPanel;
|
||||
}
|
||||
|
||||
|
||||
private JPanel adminView() {
|
||||
JPanel mainPanel = new JPanel();
|
||||
mainPanel.setLayout(new BorderLayout());
|
||||
mainPanel.add(this.av, BorderLayout.CENTER);
|
||||
return mainPanel;
|
||||
}
|
||||
|
||||
|
||||
private JPanel profView() {
|
||||
JPanel mainPanel = new JPanel();
|
||||
mainPanel.setLayout(new BorderLayout());
|
||||
mainPanel.add(this.pv, BorderLayout.CENTER);
|
||||
return mainPanel;
|
||||
}
|
||||
|
||||
|
||||
private JPanel studentView() {
|
||||
JPanel mainPanel = new JPanel();
|
||||
mainPanel.setLayout(new BorderLayout());
|
||||
mainPanel.add(this.sv, BorderLayout.CENTER);
|
||||
return mainPanel;
|
||||
}
|
||||
|
||||
|
||||
private void action(ActionEvent e) {
|
||||
JButton origin = (JButton) e.getSource();
|
||||
createJMenuBar();
|
||||
|
||||
if (origin.getText().equals("Admin")) {
|
||||
this.setTitle(viewName[0]);
|
||||
menuBar.setBackground(Color.RED);
|
||||
adminPanel.setLayout(adminCards);
|
||||
adminPanel.add(cardWithTable(adminView()));
|
||||
cardIndex = 1;
|
||||
|
||||
} else if (origin.getText().equals("Prof")) {
|
||||
this.setTitle(viewName[1]);
|
||||
menuBar.setBackground(Color.MAGENTA);
|
||||
profPanel.setLayout(profCards);
|
||||
profPanel.add(cardWithTable(profView()));
|
||||
cardIndex = 2;
|
||||
|
||||
} else {
|
||||
this.setTitle(viewName[2]);
|
||||
menuBar.setBackground(Color.BLUE);
|
||||
studentPanel.setLayout(studentCards);
|
||||
studentPanel.add(cardWithTable(studentView()));
|
||||
cardIndex = 3;
|
||||
}
|
||||
|
||||
travelThroughCards(cardIndex);
|
||||
}
|
||||
|
||||
|
||||
private void travelThroughCards(int index) {
|
||||
cards.first(this.getContentPane());
|
||||
|
||||
for (int i = 0; i < index; i++) {
|
||||
cards.next(this.getContentPane());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user