$
This commit is contained in:
BIN
src/.DS_Store
vendored
BIN
src/.DS_Store
vendored
Binary file not shown.
47
src/Test/AdminView.java
Normal file
47
src/Test/AdminView.java
Normal file
@@ -0,0 +1,47 @@
|
||||
package Test;
|
||||
|
||||
import API.*;
|
||||
import MNP.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JTable;
|
||||
import javax.swing.JScrollPane;
|
||||
import java.awt.*;
|
||||
|
||||
public class AdminView extends BFrame {
|
||||
private final ArrayList<Etudiant> e;
|
||||
private final ArrayList<Groupe> g;
|
||||
private final Controller listener;
|
||||
|
||||
public AdminView(ArrayList<Etudiant> e, ArrayList<Groupe> g, Controller listener) {
|
||||
super(
|
||||
"Vue Administrateur",
|
||||
150,
|
||||
300,
|
||||
500,
|
||||
500,
|
||||
3
|
||||
);
|
||||
|
||||
this.listener = listener;
|
||||
this.g = g;
|
||||
this.e = e;
|
||||
|
||||
Display();
|
||||
}
|
||||
|
||||
public void Display() {
|
||||
BLayout settings = new BLayout();
|
||||
settings.setPositionX(0);
|
||||
|
||||
settings.setPositionY(0);
|
||||
JButton moveStud = new JButton("Deplacer un etudiant");
|
||||
moveStud.addActionListener(this.listener);
|
||||
moveStud.setActionCommand("fi::MoveStudent");
|
||||
this.add(moveStud, settings);
|
||||
|
||||
this.openBFrame();
|
||||
this.refreshBFrame();
|
||||
}
|
||||
}
|
@@ -121,7 +121,6 @@ public class BDatabase {
|
||||
public boolean updateRow(String request) {
|
||||
try {
|
||||
this.sharedObject.prepareStatement(request).executeQuery();
|
||||
System.out.println("Succes: " + request);
|
||||
return true;
|
||||
} catch(SQLException e) {
|
||||
return false;
|
||||
|
@@ -157,7 +157,7 @@ public class BFrame extends JFrame {
|
||||
* Rafraichir la fenetre
|
||||
*/
|
||||
public void refreshBFrame() {
|
||||
SwingUtilities.updateComponentTreeUI(this);
|
||||
this.repaint();
|
||||
}
|
||||
|
||||
/**
|
||||
|
191
src/Test/Controller.java
Normal file
191
src/Test/Controller.java
Normal file
@@ -0,0 +1,191 @@
|
||||
package Test;
|
||||
|
||||
import API.Etudiant;
|
||||
import API.Groupe;
|
||||
|
||||
import javax.swing.JTable;
|
||||
import javax.swing.JScrollPane;
|
||||
import javax.swing.JOptionPane;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Objects;
|
||||
|
||||
public class Controller implements ActionListener {
|
||||
private final BDatabase db;
|
||||
private final ProfView pv;
|
||||
private final AdminView av;
|
||||
private final ArrayList<Etudiant> e;
|
||||
private final ArrayList<Groupe> g;
|
||||
|
||||
public Controller(ArrayList<Etudiant> e, ArrayList<Groupe> g) {
|
||||
this.e = e;
|
||||
this.g = g;
|
||||
this.db = new BDatabase();
|
||||
this.pv = new ProfView(e, g, this);
|
||||
System.out.println("[+] Demarrage de la vue professeur -> " + pv);
|
||||
this.av = new AdminView(e, g, this);
|
||||
System.out.println("[+] Demarrage de la vue Administrateur -> " + av);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
String command = e.getActionCommand();
|
||||
|
||||
String groupeOption = this.pv.getComboSelection();
|
||||
int groupeIndex = this.pv.getComboSelectionIndex();
|
||||
String text = this.pv.getSearchStud();
|
||||
|
||||
if (Objects.equals(command, "fi::GetStudList")) {
|
||||
BFrame frame = new BFrame(
|
||||
"Liste des eleves",
|
||||
1,
|
||||
1,
|
||||
500,
|
||||
500,
|
||||
"GridLayout",
|
||||
1,
|
||||
1,
|
||||
2
|
||||
);
|
||||
|
||||
String[][] data = new String[this.e.size()][2];
|
||||
|
||||
String[] titre = {
|
||||
"Nom",
|
||||
"Prenom",
|
||||
"Groupe"
|
||||
};
|
||||
|
||||
for(int i = 0; i <= this.e.size()-1; i++) {
|
||||
String[] info = {
|
||||
this.e.get(i).getNom(),
|
||||
this.e.get(i).getPrenom(),
|
||||
String.valueOf(this.e.get(i).getGroupe())
|
||||
};
|
||||
|
||||
data[i] = info;
|
||||
}
|
||||
|
||||
Display(frame, data, titre);
|
||||
}
|
||||
|
||||
else if(Objects.equals(command, "fi::GetListFiltered")) {
|
||||
BFrame frame = new BFrame(
|
||||
"Liste des eleves du " + groupeOption,
|
||||
1,
|
||||
1,
|
||||
500,
|
||||
500,
|
||||
"GridLayout",
|
||||
1,
|
||||
1,
|
||||
2
|
||||
);
|
||||
|
||||
String[][] data = new String[this.e.size()][1];
|
||||
|
||||
String[] titre = {
|
||||
"Nom",
|
||||
"Prenom"
|
||||
};
|
||||
|
||||
int i, j;
|
||||
|
||||
for(i = 0, j = 0; i <= this.e.size()-1; i++) {
|
||||
if(this.e.get(i).getGroupe() == groupeIndex) {
|
||||
String[] info = {
|
||||
this.e.get(i).getNom(),
|
||||
this.e.get(i).getPrenom()
|
||||
};
|
||||
|
||||
data[j] = info;
|
||||
j++;
|
||||
}
|
||||
}
|
||||
|
||||
String[][] data_final = new String[j][1];
|
||||
for(int x = 0; x <= j-1; x++) {
|
||||
data_final[x] = data[x];
|
||||
}
|
||||
|
||||
Display(frame, data_final, titre);
|
||||
}
|
||||
|
||||
else if(Objects.equals(command, "fi::SearchStudentPer3Letters")) {
|
||||
if(text.length() < 3 || text == null) {
|
||||
JOptionPane.showMessageDialog(
|
||||
this.pv,
|
||||
"Veuillez ecrire 3 lettres",
|
||||
"Erreur.",
|
||||
JOptionPane.ERROR_MESSAGE
|
||||
);
|
||||
} else {
|
||||
char[] beg = text.toCharArray();
|
||||
|
||||
BFrame frame = new BFrame(
|
||||
"Liste d'eleves d'ou les noms commence par " + beg[0] + beg[1] + beg[2],
|
||||
1,
|
||||
1,
|
||||
500,
|
||||
500,
|
||||
"GridLayout",
|
||||
1,
|
||||
1,
|
||||
2
|
||||
);
|
||||
|
||||
ArrayList<String> filtreEleveNom = db.fetchAll("SELECT nom FROM fi_eleves WHERE nom LIKE '" + beg[0] + beg[1] + beg[2] + "%'");
|
||||
ArrayList<String> filtreElevePrenom = db.fetchAll("SELECT prenom FROM fi_eleves WHERE nom LIKE '" + beg[0] + beg[1] + beg[2] + "%'");
|
||||
ArrayList<String> filtreEleveGroupe = db.fetchAll("SELECT groupe FROM fi_eleves WHERE nom LIKE '" + beg[0] + beg[1] + beg[2] + "%'");
|
||||
|
||||
System.out.println(filtreEleveGroupe.size() + filtreElevePrenom.size() + filtreEleveGroupe.size());
|
||||
|
||||
if(filtreEleveGroupe.size() == 0 || filtreEleveNom.size() == 0 || filtreElevePrenom.size() == 0) {
|
||||
JOptionPane.showMessageDialog(
|
||||
this.pv,
|
||||
"Eleve introuvable !",
|
||||
"Erreur.",
|
||||
JOptionPane.ERROR_MESSAGE
|
||||
);
|
||||
|
||||
frame.closeBFrame();
|
||||
} else {
|
||||
String[] titre = {
|
||||
"Nom",
|
||||
"Prenom",
|
||||
"Groupe"
|
||||
};
|
||||
|
||||
String[][] data = new String[filtreEleveNom.size()][2];
|
||||
|
||||
for(int i = 0; i <= filtreEleveNom.size()-1; i++){
|
||||
data[i] = new String[]{
|
||||
filtreEleveNom.get(i),
|
||||
filtreElevePrenom.get(i),
|
||||
String.valueOf(filtreEleveGroupe.get(i))
|
||||
};
|
||||
}
|
||||
|
||||
Display(frame, data, titre);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void Display(BFrame frame, String[][] data, String[] titre) {
|
||||
JTable liste = new JTable(data, titre) {
|
||||
public boolean editCellAt(int row, int column, java.util.EventObject e) {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
liste.getTableHeader().setReorderingAllowed(false);
|
||||
liste.setFillsViewportHeight(true);
|
||||
|
||||
JScrollPane scroll = new JScrollPane(liste);
|
||||
frame.getContentPane().add(scroll);
|
||||
|
||||
frame.openBFrame();
|
||||
}
|
||||
}
|
@@ -19,28 +19,40 @@ import java.awt.event.KeyEvent;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class ProfView extends BFrame implements ActionListener {
|
||||
public class ProfView extends BFrame {
|
||||
private final ArrayList<Etudiant> e;
|
||||
private final ArrayList<Groupe> g;
|
||||
private JComboBox groupeOption;
|
||||
private JComboBox<String> groupeOption;
|
||||
private final Controller listener;
|
||||
private JTextField text;
|
||||
private BDatabase db;
|
||||
|
||||
public ProfView(ArrayList<Etudiant> e, ArrayList<Groupe> g, BDatabase db) {
|
||||
public ProfView(ArrayList<Etudiant> e, ArrayList<Groupe> g, Controller listener) {
|
||||
super(
|
||||
"Vue professeur",
|
||||
1,
|
||||
1,
|
||||
"Vue Professeur",
|
||||
700,
|
||||
300,
|
||||
500,
|
||||
500,
|
||||
3
|
||||
);
|
||||
|
||||
this.listener = listener;
|
||||
this.e = e;
|
||||
this.g = g;
|
||||
this.db = db;
|
||||
|
||||
Display();
|
||||
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() {
|
||||
@@ -51,7 +63,7 @@ public class ProfView extends BFrame implements ActionListener {
|
||||
settings.setPositionY(0);
|
||||
JButton studList = new JButton("Voir la liste des etudiants");
|
||||
studList.setActionCommand("fi::GetStudList");
|
||||
studList.addActionListener(this);
|
||||
studList.addActionListener(this.listener);
|
||||
this.add(studList, settings);
|
||||
|
||||
settings.setPositionY(1);
|
||||
@@ -78,7 +90,7 @@ public class ProfView extends BFrame implements ActionListener {
|
||||
settings.setAnchor(GridBagConstraints.EAST);
|
||||
JButton confirm = new JButton("Rechercher");
|
||||
confirm.setActionCommand("fi::GetListFiltered");
|
||||
confirm.addActionListener(this);
|
||||
confirm.addActionListener(this.listener);
|
||||
this.add(confirm, settings);
|
||||
|
||||
settings.setAnchor(GridBagConstraints.CENTER);
|
||||
@@ -96,7 +108,7 @@ public class ProfView extends BFrame implements ActionListener {
|
||||
this.text.setPreferredSize(new Dimension(110, 30));
|
||||
text.addKeyListener(new KeyAdapter() {
|
||||
public void keyTyped(KeyEvent e) {
|
||||
if (text.getText().length() >= 3 ) // limit textfield to 3 characters
|
||||
if (text.getText().length() >= 3 )
|
||||
e.consume();
|
||||
}
|
||||
});
|
||||
@@ -106,184 +118,11 @@ public class ProfView extends BFrame implements ActionListener {
|
||||
settings.setPadding(new Insets(0, 0, 0, 0));
|
||||
settings.setAnchor(GridBagConstraints.EAST);
|
||||
JButton searchTLetters = new JButton("Rechercher");
|
||||
searchTLetters.addActionListener(this);
|
||||
searchTLetters.addActionListener(this.listener);
|
||||
searchTLetters.setActionCommand("fi::SearchStudentPer3Letters");
|
||||
this.add(searchTLetters, settings);
|
||||
|
||||
this.openBFrame();
|
||||
this.refreshBFrame();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
String command = e.getActionCommand();
|
||||
|
||||
if (command == "fi::GetStudList") {
|
||||
BFrame frame = new BFrame(
|
||||
"Liste des eleves",
|
||||
1,
|
||||
1,
|
||||
500,
|
||||
500,
|
||||
"GridLayout",
|
||||
1,
|
||||
1,
|
||||
2
|
||||
);
|
||||
|
||||
String[][] data = new String[this.e.size()][2];
|
||||
|
||||
String[] titre = {
|
||||
"Nom",
|
||||
"Prenom",
|
||||
"Groupe"
|
||||
};
|
||||
|
||||
for(int i = 0; i <= this.e.size()-1; i++) {
|
||||
String[] info = {
|
||||
this.e.get(i).getNom(),
|
||||
this.e.get(i).getPrenom(),
|
||||
String.valueOf(this.e.get(i).getGroupe())
|
||||
};
|
||||
|
||||
data[i] = info;
|
||||
}
|
||||
|
||||
JTable liste = new JTable(data, titre) {
|
||||
public boolean editCellAt(int row, int column, java.util.EventObject e) {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
liste.getTableHeader().setReorderingAllowed(false);
|
||||
liste.setFillsViewportHeight(true);
|
||||
|
||||
JScrollPane scroll = new JScrollPane(liste);
|
||||
frame.getContentPane().add(scroll);
|
||||
|
||||
frame.openBFrame();
|
||||
} else if(command == "fi::GetListFiltered") {
|
||||
BFrame frame = new BFrame(
|
||||
"Liste des eleves du " + this.groupeOption.getSelectedItem(),
|
||||
1,
|
||||
1,
|
||||
500,
|
||||
500,
|
||||
"GridLayout",
|
||||
1,
|
||||
1,
|
||||
2
|
||||
);
|
||||
|
||||
String[][] data = new String[this.e.size()][1];
|
||||
|
||||
String[] titre = {
|
||||
"Nom",
|
||||
"Prenom"
|
||||
};
|
||||
|
||||
int i, j;
|
||||
|
||||
for(i = 0, j = 0; i <= this.e.size()-1; i++) {
|
||||
if(this.e.get(i).getGroupe() == this.groupeOption.getSelectedIndex()) {
|
||||
String[] info = {
|
||||
this.e.get(i).getNom(),
|
||||
this.e.get(i).getPrenom()
|
||||
};
|
||||
|
||||
data[j] = info;
|
||||
j++;
|
||||
}
|
||||
}
|
||||
|
||||
String[][] data_final = new String[j][1];
|
||||
for(int x = 0; x <= j-1; x++) {
|
||||
data_final[x] = data[x];
|
||||
}
|
||||
|
||||
JTable liste = new JTable(data_final, titre) {
|
||||
public boolean editCellAt(int row, int column, java.util.EventObject e) {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
liste.getTableHeader().setReorderingAllowed(false);
|
||||
liste.setFillsViewportHeight(true);
|
||||
|
||||
JScrollPane scroll = new JScrollPane(liste);
|
||||
frame.getContentPane().add(scroll);
|
||||
|
||||
frame.openBFrame();
|
||||
} else if(command == "fi::SearchStudentPer3Letters") {
|
||||
if(this.text.getText().length() < 3 || this.text.getText() == null) {
|
||||
JOptionPane.showMessageDialog(
|
||||
this,
|
||||
"Veuillez ecrire au moins 3 lettres",
|
||||
"Erreur.",
|
||||
JOptionPane.ERROR_MESSAGE
|
||||
);
|
||||
} else {
|
||||
char[] beg = this.text.getText().toCharArray();
|
||||
|
||||
BFrame frame = new BFrame(
|
||||
"Liste d'eleves d'ou les noms commence par " + beg[0] + beg[1] + beg[2],
|
||||
1,
|
||||
1,
|
||||
500,
|
||||
500,
|
||||
"GridLayout",
|
||||
1,
|
||||
1,
|
||||
2
|
||||
);
|
||||
|
||||
ArrayList<String> filtreEleveNom = db.fetchAll("SELECT nom FROM fi_eleves WHERE nom LIKE '" + beg[0] + beg[1] + beg[2] + "%'");
|
||||
ArrayList<String> filtreElevePrenom = db.fetchAll("SELECT prenom FROM fi_eleves WHERE nom LIKE '" + beg[0] + beg[1] + beg[2] + "%'");
|
||||
ArrayList<String> filtreEleveGroupe = db.fetchAll("SELECT groupe FROM fi_eleves WHERE nom LIKE '" + beg[0] + beg[1] + beg[2] + "%'");
|
||||
|
||||
System.out.println(filtreEleveGroupe.size() + filtreElevePrenom.size() + filtreEleveGroupe.size());
|
||||
|
||||
if(filtreEleveGroupe.size() == 0 || filtreEleveNom.size() == 0 || filtreElevePrenom.size() == 0) {
|
||||
JOptionPane.showMessageDialog(
|
||||
this,
|
||||
"Eleve introuvable !",
|
||||
"Erreur.",
|
||||
JOptionPane.ERROR_MESSAGE
|
||||
);
|
||||
|
||||
frame.closeBFrame();
|
||||
} else {
|
||||
String[] titre = {
|
||||
"Nom",
|
||||
"Prenom",
|
||||
"Groupe"
|
||||
};
|
||||
|
||||
String[][] data = new String[filtreEleveNom.size()][2];
|
||||
|
||||
for(int i = 0; i <= filtreEleveNom.size()-1; i++){
|
||||
data[i] = new String[]{
|
||||
filtreEleveNom.get(i),
|
||||
filtreElevePrenom.get(i),
|
||||
String.valueOf(filtreEleveGroupe.get(i))
|
||||
};
|
||||
}
|
||||
|
||||
JTable liste = new JTable(data, titre) {
|
||||
public boolean editCellAt(int row, int column, java.util.EventObject e) {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
liste.getTableHeader().setReorderingAllowed(false);
|
||||
liste.setFillsViewportHeight(true);
|
||||
|
||||
JScrollPane scroll = new JScrollPane(liste);
|
||||
frame.getContentPane().add(scroll);
|
||||
|
||||
frame.openBFrame();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -21,13 +21,23 @@ public class TestTexteMNP {
|
||||
|
||||
for(int i = 0; i <= studPrenom.size()-1; i++) {
|
||||
if(studPrenom.get(i) != null && studNom.get(i) != null && studGroupe.get(i) != null) {
|
||||
listEtu.add(
|
||||
try {
|
||||
listEtu.add(
|
||||
new EtudiantNP(
|
||||
studNom.get(i),
|
||||
studPrenom.get(i),
|
||||
Integer.parseInt(studGroupe.get(i), 10)
|
||||
studNom.get(i),
|
||||
studPrenom.get(i),
|
||||
Integer.parseInt(studGroupe.get(i), 10)
|
||||
)
|
||||
);
|
||||
);
|
||||
} catch(NumberFormatException ignore) {
|
||||
listEtu.add(
|
||||
new EtudiantNP(
|
||||
studNom.get(i),
|
||||
studPrenom.get(i),
|
||||
-1
|
||||
)
|
||||
);
|
||||
}
|
||||
} else {
|
||||
System.out.println("[!] Erreur lors du chargement de la liste des etudiants.");
|
||||
System.exit(-1);
|
||||
@@ -64,8 +74,8 @@ public class TestTexteMNP {
|
||||
System.out.println("[+] Liste des groupes chargees.");
|
||||
|
||||
/**
|
||||
* Redirection vers ProfView (vue professeur)
|
||||
* Demarrage de l'appli
|
||||
* */
|
||||
new ProfView(listEtu, listGroupe, bd);
|
||||
Controller listener = new Controller(listEtu, listGroupe);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user