
// Tom Monin et Clément Martins
// paintChoix V1
// class pour l'affichage de la selection des lignes, collonnes et nombre de mines

import java.awt.*;
import javax.swing.*;
import javax.swing.JComponent;

public class paintChoix extends JComponent{
	private boolean selectionner;	//si la case est survoler
	private paintChoix pinceau;		//le composant suivant
	private boolean clique;		//si la casse a été cliquer
	private int x;		//sa position
	private int fonction;		//sa fonction (pour éviter le surplus de classe inutiles)
	public paintChoix(int x0, int fonction0){
		this.clique=false;	//de base le composant n'est pas cliquer
		this.pinceau=null;	//il n'a pas de suivant
		this.selectionner=false;	//il n'est pas selectionner
		this.x=30-x0;	//sa position est la différence de 30 - celle donner (car ordre decroisant)
		this.fonction=fonction0;
		//de base ce n'est pas selectionner
	}

	// fonction permetant positionner la case et ses voisoins sur selectionner
	public void selectionner(boolean verif){
		//on postionne la case en selectionner = @params
		this.selectionner=verif;
		//si il a un suivant
		if(this.pinceau!=null){
			//on lui transmet le message
			this.pinceau.selectionner(verif);
		}
		//on repaint la case
		this.repaint();
	}
	public void setPaintChoix(paintChoix pinceau0){
		//pour positionner le composant suivant
		this.pinceau=pinceau0;
	}
	public void setClique(boolean verif){
		//même principe que selectionner
		this.clique=verif;
		if(this.pinceau!=null){
			this.pinceau.setClique(verif);
		}
		this.repaint();
	}
	public int getFonction(){
		return this.fonction;
	}
	public int getN(){
		return this.x;
	}
  	@Override
	protected void paintComponent(Graphics pinceau) {
    	// obligatoire : on crée un nouveau pinceau pour pouvoir le modifier plus tard
    	Graphics secondPinceau = pinceau.create();
    	// obligatoire : si le composant n'est pas censé être transparent
    	if (this.isOpaque()) {
      	// obligatoire : on repeint toute la surface avec la couleur de fond
      	secondPinceau.setColor(this.getBackground());
      	secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight());
    	}
    	//si cliquer
		if(this.clique==true){
			//carrer bleu
			secondPinceau.setColor(new Color(0, 127, 255));
			secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight());
		}
		//si selectionner
		if(selectionner==true){
			//carrer orange
			secondPinceau.setColor(new Color(255, 127, 0));
			secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight());
		}
		//autrement carrer blanc
		secondPinceau.setColor(new Color(0,0,0));
		secondPinceau.drawRect(0, 0, this.getWidth(), this.getHeight());
		//si la fonction est de 8 (pour les premier menu)
		if(this.fonction==8){
			//fond blanc
    		secondPinceau.setColor(new Color(255, 255, 255));
    		secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight());
    		//on dessinne l'image correspondante
    		Image nouveau=Toolkit.getDefaultToolkit().getImage("./IMAGE/nouveau.jpg");
    		if(this.selectionner==true){
    			//si elle est survoler un l'agrandi pour une mailleur visibilite
    			secondPinceau.drawImage(nouveau, 0, 0, this.getWidth(), this.getHeight(), this);
    		}else{
    			secondPinceau.drawImage(nouveau, this.getWidth()/20, this.getHeight()/20, this.getWidth()/20*18, this.getHeight()/20*18, this);
    		}
    	}
    	//même principe pour les autre if suivant
    	if(this.fonction==9){
    		secondPinceau.setColor(new Color(255, 255, 255));
    		secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight());
    		Image quitter=Toolkit.getDefaultToolkit().getImage("./IMAGE/quitter.jpg");
    		if(this.selectionner==true){
    			secondPinceau.drawImage(quitter, 0, 0, this.getWidth(), this.getHeight(), this);
    		}else{
    			secondPinceau.drawImage(quitter, this.getWidth()/20, this.getHeight()/20, this.getWidth()/20*18, this.getHeight()/20*18, this);  			
    		}
    	}
    	if(this.fonction==10){
    		secondPinceau.setColor(new Color(255, 255, 255));
    		secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight());
    		Image reprendre=Toolkit.getDefaultToolkit().getImage("./IMAGE/reprendre.png");
    		if(this.selectionner==true){
    			secondPinceau.drawImage(reprendre, 0, 0, this.getWidth(), this.getHeight(), this);
    		}else{
    			secondPinceau.drawImage(reprendre, this.getWidth()/20, this.getHeight()/20, this.getWidth()/20*18, this.getHeight()/20*18, this);
    		}
    	}
	}
}