package menaretrash;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class menaretrash {

	
	class Emetteur extends JFrame implements ActionListener{
    
		private ConteneurEmetteur pan;
		private JButton bouton;
		private Thread laTache;
		//private String localisation;
	
	
		public Emetteur(){
			super();
			proprietesEmetteur();
			propBouton();
		}

		public void proprietesEmetteur(){
			this.setSize(400,300);
			this.setResizable(false); // on peut pas redimensionner la fenetre
			this.setLocationRelativeTo(null); //centree a l'ecran
			this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // fermer le programme si exit
			this.setAlwaysOnTop(true);
			pan = new ConteneurEmetteur();
			this.setContentPane(pan);
			laTache = new Thread(pan);
			laTache.start();
		}
	
	    public void propBouton(){
	    	this.bouton = new JButton();
	    	this.bouton.setText("Appuyer");
	    	this.bouton.setBounds(40,50,90,20);
	    	this.add(bouton);
	    	bouton.addActionListener(this);
	    }
	    
	    /**public String getLocalisation() {
	    	return localisation;
	    }**/

		@Override
		public void actionPerformed(ActionEvent e) {
			if (e.getSource()==bouton){
				if(pan.getActivity()==true){
					laTache.suspend();
					pan.setActivity(false);
				}
				else{
					laTache.resume();
					pan.setActivity(true);

				}
			}
			
		}
}	
	
	class Recepteur extends JFrame implements ActionListener{
	    ConteneurRecepteur pan2;
	    ConteneurEmetteur pan;
	    Emetteur emetteur;
	    private Thread laTache;
	    
	    
	    public Recepteur(Emetteur emetteur){
	        super();
	        proprietesRecepteur();
	        this.emetteur = emetteur; 
	    }

	    public void proprietesRecepteur(){
	        this.setSize(200,200);
	        this.setResizable(true);
	        this.setLocationRelativeTo(null);
	        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	        this.setAlwaysOnTop(true);
	        pan2 = new ConteneurRecepteur(emetteur);
	        this.setContentPane(pan2);
	        laTache = new Thread(pan2);
	        laTache.start();
	    }

		@Override
		public void actionPerformed(ActionEvent e) {
			// TODO Auto-generated method stub
			
		}
	}
	
	class ConteneurEmetteur extends JPanel implements Runnable {
	    
		private JLabel etiquette1;
	    private JLabel etiquette2;
		private String [] array = new String[100];
		//private String localisation;
		private boolean activity;
		
	    public ConteneurEmetteur(){
	        super();
	        this.proprietesConteneur();
	        array = new String [100];
	        for(int i=0;i<100;i++) {
	        	array[i]=""+i+"";
	        }
	    }
	    private void proprietesConteneur(){
	        this.setLayout(null);
	        this.proprietesEtiquette1();
	        this.proprietesEtiquette2();
	    }
	    private void proprietesEtiquette1(){
	        etiquette1 = new JLabel();
	        this.etiquette1.setBounds(20,10,350,20);
	        this.etiquette1.setText("Utilisateur en danger");
	        this.add(etiquette1);
	    }

	    private void proprietesEtiquette2(){
	        etiquette2 = new JLabel();
	        this.etiquette2.setBounds(20,30,350,20);
	        this.etiquette2.setText("");
	        this.add(etiquette2);
	    }

	    @Override
	    public void run() {
	    	activity= true;
	    	Random rand = new Random();
	    	
	        while(true)
	    	    {
	        	this.etiquette2.setText(array[rand.nextInt(array.length)]);
	        	//localisation = array[rand.nextInt(array.length)];
	    		try{Thread.sleep(1000);}
	    		catch (InterruptedException telleExcp)
	    		    {telleExcp.printStackTrace();}
	    	    }
	        
	    }
	    
	    /**public String getLocalisation() {
	    	return localisation;
	    }**/
		
	    public boolean getActivity() {
			// TODO Auto-generated method stub
			return activity;
		}
		
	    public void setActivity(boolean valeur) {
	    	activity = valeur;
	    }
		

	}
	
	class ConteneurRecepteur extends JPanel implements Runnable{
	    private JLabel etiquette1, etiquette2;
	    private Emetteur emetteur;
	    //private int  localisation;

	    public ConteneurRecepteur(Emetteur emetteur){
	        super();
	        this.proprietesConteneur();
	        this.emetteur = emetteur;
	    }
	    
	    public void proprietesConteneur(){
	        this.setLayout(null);
	        this.proprietesEtiquette1();
	        this.proprietesEtiquette2();
	    }
	    
	    public void proprietesEtiquette1(){
	        etiquette1 = new JLabel();
	        this.etiquette1.setBounds(20,10,350,20);
	        this.etiquette1.setText("Utilisateurs proches");
	        this.add(etiquette1);
	    }
	    
	    public void proprietesEtiquette2(){
	        etiquette2 = new JLabel();
	        this.etiquette2.setBounds(20,30,350,20);
	        this.etiquette2.setText("0");//localisation);
	        this.add(etiquette2);
	    }


		@Override
		public void run() {
			// TODO Auto-generated method stub
			//localisation = Integer.parseInt(emetteur.getLocalisation());
		}
	
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Emetteur emetteur = new Emetteur();
        emetteur.setVisible(true);
        Recepteur recepteur = new Recepteur(emetteur);
        recepteur.setVisible(true);
	}
}

