2023-04-23 23:34:51 +02:00
|
|
|
import java.awt.event.MouseEvent;
|
2023-04-28 20:24:36 +02:00
|
|
|
/**
|
2023-04-28 23:16:23 +02:00
|
|
|
* Le principe de cette classe est de, sous certaines conditions, modifier le tableau de boolean afin d'ensuite modifier l'affichage graphique
|
2023-04-28 20:24:36 +02:00
|
|
|
* pour regarder le parcours qu'emprunte l'algorithme
|
|
|
|
* @version 1.1
|
|
|
|
* @author Matthis Fauvet
|
|
|
|
*/
|
2023-04-23 23:34:51 +02:00
|
|
|
public class ModificationsTab {
|
|
|
|
|
|
|
|
private boolean[][] cetteGrille;
|
|
|
|
private MouseEvent cetEvent;
|
|
|
|
private int[] tabEtat;
|
|
|
|
|
|
|
|
private int cetteLigne;
|
|
|
|
private int cetteColone;
|
|
|
|
private Affichage rafraichir;
|
|
|
|
private PanneauModification cePanel;
|
|
|
|
|
|
|
|
// -------------------------------------------------------------------------------------------------------------------------------------------------
|
2023-04-28 23:16:23 +02:00
|
|
|
|
2023-04-28 20:34:30 +02:00
|
|
|
/**
|
2023-04-28 23:16:23 +02:00
|
|
|
* Dans cette classe, on récupère la valeur de notre tableau en fontion de la ligne et de la colone de la cellule cliqué, ensuite, on modifie notre tableau de boolean
|
|
|
|
* en metant a true si false et inversement dans le but de changer les mur en couloir etc.
|
|
|
|
* @param panneauModification permet de transferrer cette interface afin de récupérer l'etat des radio boutons
|
|
|
|
* @param grilleTab c'est la grille de true et false
|
|
|
|
* @param unTab tableau simple qui contient les valeurs des entrés et des sorties
|
|
|
|
* @param unEvent permet de récupérer la grille cliqué
|
2023-04-28 20:34:30 +02:00
|
|
|
*/
|
2023-04-23 23:34:51 +02:00
|
|
|
public ModificationsTab(PanneauModification panneauModification, boolean[][] grilleTab, int[] unTab, MouseEvent unEvent){
|
|
|
|
this.cetteGrille = grilleTab;
|
|
|
|
this.cetEvent = unEvent;
|
|
|
|
|
|
|
|
this.cePanel = panneauModification;
|
|
|
|
|
|
|
|
Cellules notreCellule = (Cellules) cetEvent.getSource();
|
|
|
|
this.cetteLigne = notreCellule.getLigne();
|
|
|
|
this.cetteColone = notreCellule.getColone();
|
|
|
|
|
|
|
|
this.tabEtat = unTab;
|
|
|
|
|
|
|
|
/* ========================================= */
|
2023-04-26 13:13:15 +02:00
|
|
|
|
2023-04-26 17:35:23 +02:00
|
|
|
boolean radio1Selected = this.cePanel.GetButtonBW().isSelected();
|
2023-04-23 23:34:51 +02:00
|
|
|
boolean radio2Selected = this.cePanel.GetButtonE().isSelected(); // ENTREE
|
|
|
|
boolean radio3Selected = this.cePanel.GetButtonS().isSelected(); //SORTIE
|
2023-04-26 13:13:15 +02:00
|
|
|
|
2023-04-23 23:34:51 +02:00
|
|
|
/* ========================================= */
|
2023-04-26 17:35:23 +02:00
|
|
|
|
|
|
|
//System.out.println("Etat de la case avant cliqué : "+this.cetteGrille[this.cetteLigne][this.cetteColone]);
|
2023-04-27 21:19:45 +02:00
|
|
|
if(this.cetteGrille[this.cetteLigne][this.cetteColone] == Cellules.OCCUPE){
|
|
|
|
this.cetteGrille[this.cetteLigne][this.cetteColone] = Cellules.LIBRE;
|
2023-04-26 17:35:23 +02:00
|
|
|
} else {
|
|
|
|
if(notreCellule.getType()==Cellules.ENTREE || notreCellule.getType()==Cellules.SORTIE){
|
2023-04-27 21:19:45 +02:00
|
|
|
this.cetteGrille[this.cetteLigne][this.cetteColone] = Cellules.LIBRE;
|
2023-04-26 17:35:23 +02:00
|
|
|
} else if (radio1Selected==true) {
|
2023-04-27 21:19:45 +02:00
|
|
|
this.cetteGrille[this.cetteLigne][this.cetteColone] = Cellules.OCCUPE;
|
2023-04-26 17:35:23 +02:00
|
|
|
}
|
2023-04-23 23:34:51 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
this.rafraichir = new Affichage(notreCellule, panneauModification, unTab, this.cetteGrille[this.cetteLigne][this.cetteColone]);
|
|
|
|
}
|
|
|
|
}
|