SAE21_2022/Affichage.java

71 lines
2.7 KiB
Java

/**
* Class pour modifier l'affichage
* @version 1.1
* @author Matthis Fauvet
*/
public class Affichage {
private Cellules cetteCellules;
private PanneauModification cePanel;
private boolean cetEtat;
private int[] caseEntrortie;
/** Constructeur de la class affichage
* @param uneCellules premet de récupérer la cellules a afficher
* @param unPanel panneau de modification pour récupérer les valeurs demandés
* @param tabEntre tableau qui permet de savoir si un entré est déjà placé
* @param unEtat variable qui permet de savoir si un case est un mu ou un couloir
*/
public Affichage(Cellules uneCellules, PanneauModification unPanel, int[] tabEntre, boolean unEtat){
//permet la distribution des différents attributs
this.cetteCellules = uneCellules;
this.cePanel = unPanel;
this.cetEtat = unEtat;
this.caseEntrortie = tabEntre;
repaint();
}
/**
* Renvoie l'etat des cellules entre et sortie, si oui ou non elles sont posé ou pas
*/
public int[] getGateState(){
return this.caseEntrortie;
}
/**
* La fonctions repaint permet de changer les Cellules pour leur mettres leurs bonne couleurs.
*/
public void repaint(){
// Accéder aux boutons radios de l'objet Options
boolean radio1Selected = this.cePanel.GetButtonBW().isSelected(); // MUR / COULOIR
boolean radio2Selected = this.cePanel.GetButtonE().isSelected(); // ENTREE
boolean radio3Selected = this.cePanel.GetButtonS().isSelected(); //SORTIE
if(radio2Selected==true && this.caseEntrortie[0]==0){
this.cetEtat=Cellules.LIBRE;
this.cetteCellules.setType(Cellules.ENTREE);
this.cetteCellules.peindre(Cellules.ENTREE);
this.caseEntrortie[0]=1;
} else if(radio3Selected==true && this.caseEntrortie[1]==0){
this.cetEtat=Cellules.LIBRE;
this.cetteCellules.setType(Cellules.SORTIE);
this.cetteCellules.peindre(Cellules.SORTIE);
this.caseEntrortie[1]=1;
} else if(this.cetEtat == Cellules.LIBRE && radio1Selected==true){
if(this.cetteCellules.getType()==Cellules.ENTREE){
this.caseEntrortie[0]=0;
} else if(this.cetteCellules.getType()==Cellules.SORTIE){
this.caseEntrortie[1]=0;
}
this.cetteCellules.setType(Cellules.COULOIR);
this.cetteCellules.peindre(Cellules.COULOIR);
} else if(this.cetEtat == Cellules.OCCUPE && radio1Selected==true){
this.cetteCellules.setType(Cellules.MUR);
this.cetteCellules.peindre(Cellules.MUR);
}
}
}