﻿package com.example.xi06.myapplication;

import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private TextView msg1 = null;     	/*
										on déclare en private, on déclare ici seulement pour la classe dans laquelle on se trouve.
                                        En protected on sera visible dans une classe fille, 
										en public on sera visible de partout. 
										Si on ne spécifie rien  on est en package friendly et on sera visible dans tout le package.
										pour simplifier, on peut faire private Button btn1, btn2, btn3 etc. ;
										*/
	private Button btn1; 									
    private Button btn2;
    private Button btn3;
    private String RGE = "ROUGE :)";
    private String MSG = "MERCI d'avoir cliqué sur ";
    private LinearLayout LL;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

			//Initialisation des pointeurs vers les objets XML
        msg1 = (TextView) findViewById(R.id.msg1);      
        btn1 = (Button) findViewById(R.id.btn1); 
			/*findViewById est une méthode dérivée d'activity. VIEW est une classe de base dont dérive tout les WIDGET.
			btn1 constante dans une sous classe Statique = id
			sous JAVA vous retrouveriez ID car les classes ont des majuscules, mais pas ici.
			findView est donc capable de trouver n'importe quel objet qui est un View (une vue) un Widget, 
			----Avant:---il fallait lui dire de quel type de View on parlait ici (Button)------------
			Miantenant il n'est plus necessaire de spécifier le type d'objets (de View) dont on fait référence, donc plus la peine de mettre (Button)*/
        
		btn2 = (Button) findViewById(R.id.btn2);        
        btn3 = (Button) findViewById(R.id.btn3);
        LL = (LinearLayout) findViewById(R.id.LL);




        btn1.setOnClickListener(new View.OnClickListener() { 
						// l'interface d'écoute qui est implémentée est OnclickListener est ici déclarée sur la classe View. (Rappel View est la Classe mère de tous composants graphiques)
						// OnclickListener est une interface, on ne peut pas instancier une interface, donc il faut dériver cette interface. On a ici une classe anonyme pour un "click"
            @Override                                         
            public void onClick(View v) {
                Log.i("DEBUG BTN1", "Bouton BTN1 cliqué");
						// log. est une classe android qui vient de (android.util) et qui permet de faire des log pour suivre l'activité de votre programme:
						// c'est moi qui ai choisi le nom du tag     //on a d pour debug, i pour info, e pour error, v pour verbose, on aurait pu d'ailleurs utiliser un log.d
                msg1.setText("BLEU");                                
                LL.setBackgroundColor(Color.BLUE);
                btn1.setText("BLEU:)");
                Toast.makeText(getApplicationContext(),"Merci d'avoir cliqué sur bleu!",Toast.LENGTH_SHORT).show();

            }
        }); // ici on a un ; car on a défini un attribut qui est basé sur une dérivation à "la volée".

        btn3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.i("DEBUG BTN3", "Bouton BTN3 cliqué");
                msg1.setText("VERT");
                LL.setBackgroundColor(Color.GREEN);
                btn3.setText("VERT:)");
                Toast.makeText(getApplicationContext(),"merci d'avoir cliqué sur vert!",Toast.LENGTH_SHORT).show();

            }
        });

        btn2.setOnClickListener(new View.OnClickListener() {    // ici sur btn2, j'ai mis dans des variables les différents messages que je souhaite faire apparaître. variable RGE et MSG
            @Override
            public void onClick(View v) {
                Log.i("DEBUG BTN2", "Bouton BTN2 cliqué");
                msg1.setText(RGE);
                LL.setBackgroundColor(Color.RED);
                btn2.setText(RGE);
                Toast.makeText(getApplicationContext(), MSG+RGE,Toast.LENGTH_SHORT).show();

            }
        });








    }
}
