This commit is contained in:
pro.boooooo
2022-11-26 19:46:16 +01:00
parent bf08cd64a8
commit 044219ec0b
93 changed files with 6330 additions and 9753 deletions

View File

@@ -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();
}
}
}
}
}