This commit is contained in:
Bilou 2022-12-08 03:58:56 +01:00
parent 37eec841b8
commit dd088c00a2
38 changed files with 53533 additions and 53544 deletions

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.

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.

View File

@ -17,7 +17,9 @@ import java.util.Iterator;
import org.mariadb.jdbc.*; import org.mariadb.jdbc.*;
/** /**
* <p>Methodes pour les interaction avec une base de donnees</p> * <p>
* Methodes pour les interaction avec une base de donnees
* </p>
* *
* @author <a href="https://github.com/lalBi94">Bilal Boudjemline</a> * @author <a href="https://github.com/lalBi94">Bilal Boudjemline</a>
*/ */
@ -43,7 +45,8 @@ public class BDatabase {
} }
try { try {
this.sharedObject = DriverManager.getConnection(this.db_host + this.db_name, this.db_user, this.db_password); this.sharedObject = DriverManager.getConnection(this.db_host + this.db_name, this.db_user,
this.db_password);
this.status = true; this.status = true;
} catch (SQLException e) { } catch (SQLException e) {
System.out.println("Erreur de liaison avec la base de donnees."); System.out.println("Erreur de liaison avec la base de donnees.");
@ -113,7 +116,8 @@ public class BDatabase {
} }
/** /**
* Faire des requetes de type UPDATE SET (il y aura plus d'argument prochainement). * Faire des requetes de type UPDATE SET (il y aura plus d'argument
* prochainement).
* *
* @param request La requete * @param request La requete
* @return Si oui ou non ca a fonctionne * @return Si oui ou non ca a fonctionne
@ -121,6 +125,7 @@ public class BDatabase {
public boolean updateRow(String request) { public boolean updateRow(String request) {
try { try {
this.sharedObject.prepareStatement(request).executeQuery(); this.sharedObject.prepareStatement(request).executeQuery();
System.out.println("Succes:" + request);
return true; return true;
} catch (SQLException e) { } catch (SQLException e) {
return false; return false;
@ -149,7 +154,7 @@ public class BDatabase {
* Recuperer la liste des etudiants (FIProjet Contexte) * Recuperer la liste des etudiants (FIProjet Contexte)
* *
* @return La liste des etudiants * @return La liste des etudiants
* */ */
public ArrayList<Etudiant> getEtuList() { public ArrayList<Etudiant> getEtuList() {
ArrayList<Etudiant> listEtu = new ArrayList<>(); ArrayList<Etudiant> listEtu = new ArrayList<>();
ArrayList<String> studPrenom = this.fetchAll("SELECT prenom FROM fi_eleves"); ArrayList<String> studPrenom = this.fetchAll("SELECT prenom FROM fi_eleves");
@ -163,17 +168,13 @@ public class BDatabase {
new EtudiantNP( new EtudiantNP(
studNom.get(i), studNom.get(i),
studPrenom.get(i), studPrenom.get(i),
Integer.parseInt(studGroupe.get(i), 10) Integer.parseInt(studGroupe.get(i), 10)));
)
);
} catch (NumberFormatException ignore) { } catch (NumberFormatException ignore) {
listEtu.add( listEtu.add(
new EtudiantNP( new EtudiantNP(
studNom.get(i), studNom.get(i),
studPrenom.get(i), studPrenom.get(i),
-1 -1));
)
);
} }
} else { } else {
System.out.println("[!] Erreur lors du chargement de la liste des etudiants."); System.out.println("[!] Erreur lors du chargement de la liste des etudiants.");
@ -190,32 +191,28 @@ public class BDatabase {
* Recuperer la liste des groupes (FIProjet contexte) * Recuperer la liste des groupes (FIProjet contexte)
* *
* @return La liste des groupes * @return La liste des groupes
* */ */
public ArrayList<Groupe> getGroupeList() { public ArrayList<Groupe> getGroupeList() {
ArrayList<Groupe> listGroupe = new ArrayList<>(); ArrayList<Groupe> listGroupe = new ArrayList<>();
ArrayList<String> groupeId = this.fetchAll("SELECT id FROM fi_groupe"); ArrayList<String> groupeId = this.fetchAll("SELECT id FROM fi_groupe");
ArrayList<String> groupeNom = this.fetchAll("SELECT nom FROM fi_groupe"); ArrayList<String> groupeNom = this.fetchAll("SELECT nom FROM fi_groupe");
ArrayList<String> groupeMin = this.fetchAll("SELECT min FROM fi_groupe"); ArrayList<String> groupeMin = this.fetchAll("SELECT min FROM fi_groupe");
ArrayList<String> groupeMax = this.fetchAll("SELECT max FROM fi_groupe"); ArrayList<String> groupeMax = this.fetchAll("SELECT max FROM fi_groupe");
for (int i = 0; i <= groupeNom.size() - 1; i++) { for (int i = 0; i <= groupeNom.size() - 1; i++) {
if(groupeId.get(i) != null && groupeNom.get(i) != null && groupeMin.get(i) != null && groupeMax.get(i) != null) { if (groupeId.get(i) != null && groupeNom.get(i) != null && groupeMin.get(i) != null
&& groupeMax.get(i) != null) {
listGroupe.add( listGroupe.add(
new GroupeNP( new GroupeNP(
Integer.parseInt(groupeId.get(i), 10), Integer.parseInt(groupeId.get(i), 10),
groupeNom.get(i), groupeNom.get(i),
Integer.parseInt(groupeMin.get(i), 10), Integer.parseInt(groupeMin.get(i), 10),
Integer.parseInt(groupeMax.get(i), 10) Integer.parseInt(groupeMax.get(i), 10)));
)
);
} else { } else {
System.out.println("[!] Erreur lors du chargement de la liste des groupes."); System.out.println("[!] Erreur lors du chargement de la liste des groupes.");
System.exit(-1); System.exit(-1);
} }
} }
System.out.println("[+] Liste des groupes chargees."); System.out.println("[+] Liste des groupes chargees.");
return listGroupe; return listGroupe;
} }
@ -223,7 +220,7 @@ public class BDatabase {
* Recuperer les requetes * Recuperer les requetes
* *
* @return la liste des requetes * @return la liste des requetes
* */ */
public ArrayList<Requete> getRequestList() { public ArrayList<Requete> getRequestList() {
ArrayList<Requete> toReturn = new ArrayList<>(); ArrayList<Requete> toReturn = new ArrayList<>();
ArrayList<String> requestId = this.fetchAll("SELECT id FROM fi_demandes"); ArrayList<String> requestId = this.fetchAll("SELECT id FROM fi_demandes");
@ -241,9 +238,7 @@ public class BDatabase {
Integer.parseInt(requestEtu.get(i)), Integer.parseInt(requestEtu.get(i)),
Integer.parseInt(requestType.get(i)), Integer.parseInt(requestType.get(i)),
Integer.parseInt(requestWitchGrup.get(i)), Integer.parseInt(requestWitchGrup.get(i)),
requestStatut.get(i) requestStatut.get(i)));
)
);
} }
return toReturn; return toReturn;

View File

@ -15,7 +15,6 @@ import java.awt.event.ActionListener;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Objects; import java.util.Objects;
/** /**
* Récupérer les actions des utilisateurs avec des ActionListener * Récupérer les actions des utilisateurs avec des ActionListener
* et ListSelectionListener afin de lancer la vue demandée ou les * et ListSelectionListener afin de lancer la vue demandée ou les
@ -76,7 +75,7 @@ public class Controller implements ActionListener, ListSelectionListener {
* *
* @param id le groupe * @param id le groupe
* @return le nombre de membres * @return le nombre de membres
* */ */
public int getMemberCount(int id) { public int getMemberCount(int id) {
int j = 0; int j = 0;
@ -88,11 +87,13 @@ public class Controller implements ActionListener, ListSelectionListener {
return j; return j;
} }
/** /**
* Pour créer une JTable * Pour créer une JTable
*
* @param data Les données * @param data Les données
* @param title Les titres * @param title Les titres
* */ */
private JTable createJTable(Object[][] data, String[] title) { private JTable createJTable(Object[][] data, String[] title) {
return new JTable(data, title) { return new JTable(data, title) {
public boolean editCellAt(int row, int column, java.util.EventObject e) { public boolean editCellAt(int row, int column, java.util.EventObject e) {
@ -105,7 +106,7 @@ public class Controller implements ActionListener, ListSelectionListener {
* Pour afficher une JTable sans listener * Pour afficher une JTable sans listener
* *
* @param liste La JTable * @param liste La JTable
* */ */
private void Display(JTable liste) { private void Display(JTable liste) {
liste.getTableHeader().setReorderingAllowed(false); liste.getTableHeader().setReorderingAllowed(false);
liste.setFillsViewportHeight(true); liste.setFillsViewportHeight(true);
@ -117,7 +118,7 @@ public class Controller implements ActionListener, ListSelectionListener {
* Pour afficher une JTable contenant un listener * Pour afficher une JTable contenant un listener
* *
* @param liste La JTable * @param liste La JTable
* */ */
private void DisplayWithListner(JTable liste) { private void DisplayWithListner(JTable liste) {
ListSelectionModel lsm = liste.getSelectionModel(); ListSelectionModel lsm = liste.getSelectionModel();
lsm.addListSelectionListener(this); lsm.addListSelectionListener(this);
@ -129,7 +130,8 @@ public class Controller implements ActionListener, ListSelectionListener {
} }
/** /**
* Pour afficher une modale classique pour plus de libertées (panel a créer au préalable) * Pour afficher une modale classique pour plus de libertées (panel a créer au
* préalable)
* *
* @param frameTitle Le titre de la fenêtre * @param frameTitle Le titre de la fenêtre
* @param size_x Taille en x * @param size_x Taille en x
@ -137,7 +139,7 @@ public class Controller implements ActionListener, ListSelectionListener {
* @param loca_x Localisation en x * @param loca_x Localisation en x
* @param loca_y Localisation en y * @param loca_y Localisation en y
* @param forModal Le panel a mettre dans la fenêtre (libre) * @param forModal Le panel a mettre dans la fenêtre (libre)
* */ */
private void DisplayModal(String frameTitle, int size_x, int size_y, int loca_x, int loca_y, JPanel forModal) { private void DisplayModal(String frameTitle, int size_x, int size_y, int loca_x, int loca_y, JPanel forModal) {
this.currentModal = new BFrame(frameTitle, loca_x, loca_y, size_x, size_y, this.parent, forModal); this.currentModal = new BFrame(frameTitle, loca_x, loca_y, size_x, size_y, this.parent, forModal);
} }
@ -216,14 +218,16 @@ public class Controller implements ActionListener, ListSelectionListener {
this.pv, this.pv,
"Veuillez écrire 3 lettres", "Veuillez écrire 3 lettres",
"Erreur.", "Erreur.",
JOptionPane.ERROR_MESSAGE JOptionPane.ERROR_MESSAGE);
);
} else { } else {
char[] beg = text.toCharArray(); char[] beg = text.toCharArray();
ArrayList<String> filtreEleveNom = db.fetchAll("SELECT nom FROM fi_eleves WHERE nom LIKE '" + beg[0] + beg[1] + beg[2] + "%'"); ArrayList<String> filtreEleveNom = db
ArrayList<String> filtreElevePrenom = db.fetchAll("SELECT prenom FROM fi_eleves WHERE nom LIKE '" + beg[0] + beg[1] + beg[2] + "%'"); .fetchAll("SELECT nom 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] + "%'"); 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()); System.out.println(filtreEleveGroupe.size() + filtreElevePrenom.size() + filtreEleveGroupe.size());
@ -232,8 +236,7 @@ public class Controller implements ActionListener, ListSelectionListener {
this.pv, this.pv,
"Elève introuvable !", "Elève introuvable !",
"Erreur.", "Erreur.",
JOptionPane.ERROR_MESSAGE JOptionPane.ERROR_MESSAGE);
);
} else { } else {
String[] titre = { String[] titre = {
"Nom", "Nom",
@ -312,32 +315,30 @@ public class Controller implements ActionListener, ListSelectionListener {
else if (Objects.equals(command, "crtll::ActionAddAndMoveGrup")) { else if (Objects.equals(command, "crtll::ActionAddAndMoveGrup")) {
this.tmpStud.add(String.valueOf(this.list.getSelectedIndex())); this.tmpStud.add(String.valueOf(this.list.getSelectedIndex()));
String query = String query = "UPDATE fi_eleves SET groupe=" + this.tmpStud.get(2) +
"UPDATE fi_eleves SET groupe=" + this.tmpStud.get(2) +
" WHERE nom='" + this.tmpStud.get(0) + " WHERE nom='" + this.tmpStud.get(0) +
"' AND prenom='" + this.tmpStud.get(1) + "'" "' AND prenom='" + this.tmpStud.get(1) + "'";
;
System.out.println(query); System.out.println(query);
if (db.updateRow(query)) { if (db.updateRow(query)) {
JOptionPane.showMessageDialog( JOptionPane.showMessageDialog(
this.currentModal, this.currentModal,
this.tmpStud.get(0) + " " + this.tmpStud.get(1) + " a bien ete deplace dans le " + this.list.getSelectedItem(), this.tmpStud.get(0) + " " + this.tmpStud.get(1) + " a bien ete deplace dans le "
+ this.list.getSelectedItem(),
"Déplacement effectué", "Déplacement effectué",
JOptionPane.INFORMATION_MESSAGE JOptionPane.INFORMATION_MESSAGE);
);
this.e = this.db.getEtuList(); this.e = this.db.getEtuList();
System.out.println("[+] Modification de " + this.tmpStud.get(1) + " " + this.tmpStud.get(0) + " effectue"); System.out.println(
"[+] Modification de " + this.tmpStud.get(1) + " " + this.tmpStud.get(0) + " effectue");
} else { } else {
JOptionPane.showMessageDialog( JOptionPane.showMessageDialog(
this.currentModal, this.currentModal,
this.tmpStud.get(0) + " " + this.tmpStud.get(1) + " n'a pas pu etre deplace", this.tmpStud.get(0) + " " + this.tmpStud.get(1) + " n'a pas pu etre deplace",
"Erreur lors du déplacement", "Erreur lors du déplacement",
JOptionPane.ERROR_MESSAGE JOptionPane.ERROR_MESSAGE);
);
} }
} }
@ -372,7 +373,7 @@ public class Controller implements ActionListener, ListSelectionListener {
* - possible ou nn * - possible ou nn
* - message * - message
* - Valider * - Valider
* */ */
settings.setPositionY(1); settings.setPositionY(1);
JLabel requestT = new JLabel("Dans quel groupe souhaitez-vous aller ?"); JLabel requestT = new JLabel("Dans quel groupe souhaitez-vous aller ?");
@ -410,8 +411,7 @@ public class Controller implements ActionListener, ListSelectionListener {
500, 500,
this.parent.getLocation().x + (this.parent.getSize().width - 750) / 2, this.parent.getLocation().x + (this.parent.getSize().width - 750) / 2,
this.parent.getLocation().y + (this.parent.getSize().height - 500) / 2, this.parent.getLocation().y + (this.parent.getSize().height - 500) / 2,
forModal forModal);
);
} }
else if (Objects.equals(command, "sv::SendRequest")) { else if (Objects.equals(command, "sv::SendRequest")) {
@ -433,22 +433,21 @@ public class Controller implements ActionListener, ListSelectionListener {
} }
if (this.db.insertRow("fi_demandes", new String[] { if (this.db.insertRow("fi_demandes", new String[] {
"id_eleve", "id_groupe", "message", "type"}, new String[] { "id_eleve", "id_groupe", "message", "type" },
new String[] {
String.valueOf(id), String.valueOf(groupe), message, String.valueOf(type) String.valueOf(id), String.valueOf(groupe), message, String.valueOf(type)
})) { })) {
JOptionPane.showMessageDialog( JOptionPane.showMessageDialog(
this.pv, this.pv,
"Votre requête a été envoyé avec succès !", "Votre requête a été envoyé avec succès !",
"Requête.", "Requête.",
JOptionPane.INFORMATION_MESSAGE JOptionPane.INFORMATION_MESSAGE);
);
} else { } else {
JOptionPane.showMessageDialog( JOptionPane.showMessageDialog(
this.sv, this.sv,
"Une erreur est survenue lors de l'envoi de votre message...\nVeuillez réessayer plus tard.", "Une erreur est survenue lors de l'envoi de votre message...\nVeuillez réessayer plus tard.",
"Erreur avec la base de données.", "Erreur avec la base de données.",
JOptionPane.ERROR_MESSAGE JOptionPane.ERROR_MESSAGE);
);
} }
} }
@ -531,8 +530,7 @@ public class Controller implements ActionListener, ListSelectionListener {
500, 500,
this.parent.getLocation().x + (this.parent.getSize().width - 750) / 2, this.parent.getLocation().x + (this.parent.getSize().width - 750) / 2,
this.parent.getLocation().y + (this.parent.getSize().height - 500) / 2, this.parent.getLocation().y + (this.parent.getSize().height - 500) / 2,
forModal forModal);
);
} }
else if (Objects.equals(command, "av::CreateGrupOnDatabase")) { else if (Objects.equals(command, "av::CreateGrupOnDatabase")) {
@ -540,13 +538,14 @@ public class Controller implements ActionListener, ListSelectionListener {
String max = this.l2.getText(); String max = this.l2.getText();
String min = this.l3.getText(); String min = this.l3.getText();
this.db.updateRow("ALTER TABLE fi_groupe AUTO_INCREMENT=" + this.g.size());
if (this.db.insertRow("fi_groupe", new String[] { "nom", "min", "max" }, new String[] { nom, min, max })) { if (this.db.insertRow("fi_groupe", new String[] { "nom", "min", "max" }, new String[] { nom, min, max })) {
JOptionPane.showMessageDialog( JOptionPane.showMessageDialog(
this.parent, this.parent,
"Groupe" + nom + "creer !", "Groupe" + nom + "creer !",
"Succes", "Succes",
JOptionPane.INFORMATION_MESSAGE JOptionPane.INFORMATION_MESSAGE);
);
this.g = this.db.getGroupeList(); this.g = this.db.getGroupeList();
} else { } else {
@ -554,8 +553,7 @@ public class Controller implements ActionListener, ListSelectionListener {
this.parent, this.parent,
"La creation du groupe : " + nom + " à échoué.", "La creation du groupe : " + nom + " à échoué.",
"Erreur", "Erreur",
JOptionPane.ERROR_MESSAGE JOptionPane.ERROR_MESSAGE);
);
} }
} }
@ -588,15 +586,13 @@ public class Controller implements ActionListener, ListSelectionListener {
this.parent, this.parent,
"Le groupe : " + grupToChange + " a bien ete renommé par : " + newName, "Le groupe : " + grupToChange + " a bien ete renommé par : " + newName,
"Succes", "Succes",
JOptionPane.INFORMATION_MESSAGE JOptionPane.INFORMATION_MESSAGE);
);
} else { } else {
JOptionPane.showMessageDialog( JOptionPane.showMessageDialog(
this.parent, this.parent,
"Echec du changement de nom du groupe : " + grupToChange, "Echec du changement de nom du groupe : " + grupToChange,
"Erreur", "Erreur",
JOptionPane.ERROR_MESSAGE JOptionPane.ERROR_MESSAGE);
);
} }
this.g = this.db.getGroupeList(); this.g = this.db.getGroupeList();
@ -698,7 +694,8 @@ public class Controller implements ActionListener, ListSelectionListener {
String grupDelName = (String) tm.getValueAt(cell[0], 0); String grupDelName = (String) tm.getValueAt(cell[0], 0);
if (this.db.updateRow("DELETE FROM fi_groupe WHERE nom = '" + grupDelName + "'")) { if (this.db.updateRow("DELETE FROM fi_groupe WHERE nom = '" + grupDelName + "'")) {
if(this.db.updateRow("UPDATE fi_eleves SET groupe = -1 WHERE groupe = " + this.getIDGroupeByName(grupDelName))) { if (this.db.updateRow(
"UPDATE fi_eleves SET groupe = -1 WHERE groupe = " + this.getIDGroupeByName(grupDelName))) {
this.e = this.db.getEtuList(); this.e = this.db.getEtuList();
this.g = this.db.getGroupeList(); this.g = this.db.getGroupeList();
@ -706,15 +703,13 @@ public class Controller implements ActionListener, ListSelectionListener {
this.parent, this.parent,
"Le groupe : " + grupDelName + " a bien ete supprime", "Le groupe : " + grupDelName + " a bien ete supprime",
"Succes", "Succes",
JOptionPane.INFORMATION_MESSAGE JOptionPane.INFORMATION_MESSAGE);
);
} else { } else {
JOptionPane.showMessageDialog( JOptionPane.showMessageDialog(
this.parent, this.parent,
"Echec de la suppression du groupe : " + grupDelName, "Echec de la suppression du groupe : " + grupDelName,
"Erreur", "Erreur",
JOptionPane.ERROR_MESSAGE JOptionPane.ERROR_MESSAGE);
);
} }
} }
} }
@ -741,7 +736,6 @@ public class Controller implements ActionListener, ListSelectionListener {
settings.setPositionY(3); settings.setPositionY(3);
forModal.add(new JLabel(" "), settings); forModal.add(new JLabel(" "), settings);
settings.setPositionY(4); settings.setPositionY(4);
forModal.add(new JLabel(" "), settings); forModal.add(new JLabel(" "), settings);
@ -756,8 +750,7 @@ public class Controller implements ActionListener, ListSelectionListener {
300, 300,
this.parent.getLocation().x + (this.parent.getSize().width - 600) / 2, this.parent.getLocation().x + (this.parent.getSize().width - 600) / 2,
this.parent.getLocation().y + (this.parent.getSize().height - 300) / 2, this.parent.getLocation().y + (this.parent.getSize().height - 300) / 2,
forModal forModal);
);
} }
private void addMoveStudent(TableModel tm, int[] cell, String action) { private void addMoveStudent(TableModel tm, int[] cell, String action) {
@ -793,8 +786,7 @@ public class Controller implements ActionListener, ListSelectionListener {
JLabel intro = new JLabel( JLabel intro = new JLabel(
stringSet[0] + tm.getValueAt(cell[0], 0) + " " + stringSet[0] + tm.getValueAt(cell[0], 0) + " " +
tm.getValueAt(cell[0], 1) + tm.getValueAt(cell[0], 1) +
" dans le groupe : " " dans le groupe : ");
);
forModal.add(intro, settings); forModal.add(intro, settings);
settings.setPositionX(1); settings.setPositionX(1);
@ -838,8 +830,7 @@ public class Controller implements ActionListener, ListSelectionListener {
250, 250,
this.parent.getLocation().x + (this.parent.getSize().width - 500) / 2, this.parent.getLocation().x + (this.parent.getSize().width - 500) / 2,
this.parent.getLocation().y + (this.parent.getSize().height - 250) / 2, this.parent.getLocation().y + (this.parent.getSize().height - 250) / 2,
forModal forModal);
);
this.g = this.db.getGroupeList(); this.g = this.db.getGroupeList();
this.parent.updateTable(this.initTable()); this.parent.updateTable(this.initTable());
@ -858,6 +849,7 @@ public class Controller implements ActionListener, ListSelectionListener {
this.e.get(i).getPrenom(), this.e.get(i).getPrenom(),
this.getGroupeById(this.e.get(i).getGroupe()) this.getGroupeById(this.e.get(i).getGroupe())
}; };
data[i] = info; data[i] = info;
} }
return createJTable(data, title); return createJTable(data, title);
@ -901,5 +893,7 @@ public class Controller implements ActionListener, ListSelectionListener {
return this.g; return this.g;
} }
public void setMainMenu(MainMenu m) {this.parent = m;} public void setMainMenu(MainMenu m) {
this.parent = m;
}
} }