package graphisme;

import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JPanel;

public class Panneau2d extends JPanel
{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Color couleur1, couleur2;
	private boolean cyclique = true;
	
	private int couleur1x = 100,
		couleur1y = 100,
		couleur2x = 200,
		couleur2y = 200;
	private EcouteSouris monEcouteSouris = new EcouteSouris();
	
	public Panneau2d()
	{
		//this.couleurCible = JColorChooser.showDialog(this, "Seconde couleur", Color.red);
		this.addMouseListener(monEcouteSouris);
	}
	
	public void paint(Graphics g)
	{
		Graphics2D g2d;
		Color premiere = ((couleur1 == null) ? Color.red : couleur1);
		Color seconde = ((couleur2 == null) ? Color.blue : couleur2);
		g2d = (Graphics2D) g;
		
		g2d.setPaint (new GradientPaint(couleur1x, couleur1y, premiere, couleur2x, couleur2y, seconde, cyclique));
		g2d.fillRect(15, 15, 500, 300);
		
		// Coordonn�es des clics
		g2d.setColor(Color.black);
		g2d.fillRect(couleur1x - 5, couleur1y - 5, 10, 10);
		g2d.fillOval(couleur2x - 5, couleur2y - 5, 10, 10);
		
		g2d.drawLine(couleur1x, couleur1y, couleur2x, couleur2y);
	}
	
	public void setCouleur1 (Color pCouleur)
	{
		this.couleur1 = pCouleur;
		this.repaint();
	}
	
	public Color getCouleur1()
	{
		return(this.couleur1);
	}
	
	public void setCouleur2 (Color pCouleur)
	{
		this.couleur2 = pCouleur;
		this.repaint();
	}
	
	public Color getCouleur2()
	{
		return (this.couleur2);
	}
	
	public void setCyclique (boolean pCyclique)
	{
		this.cyclique = pCyclique;
		this.repaint();
	}
	
	public void setCouleur1 (int px, int py)
	{
		if (px >= 0)
		{
			this.couleur1x = px;
		}
		if (py >= 0)
		{
			this.couleur1y = py;
		}
		this.repaint();
	}
	
	public void setCouleur2 (int px, int py)
	{
		if (px >= 0)
		{
			this.couleur2x = px;
		}
		if (py >= 0)
		{
			this.couleur2y = py;
		}
		this.repaint();
	}
	private class EcouteSouris implements MouseListener
	{
		@Override
		public void mouseClicked(MouseEvent arg0)
		{
			// TODO Auto-generated method stub
			if (arg0.getButton() == MouseEvent.BUTTON1)
			{
				//System.out.println("Bouton 1");
				setCouleur1(arg0.getX(), arg0.getY());
			}
			/*else if(arg0.getButton() == MouseEvent.BUTTON2)
			{
				System.out.println("Bouton 2");
			}*/
			else if(arg0.getButton() == MouseEvent.BUTTON3)
			{
				setCouleur2(arg0.getX(), arg0.getY());
			}
		}

		@Override
		public void mouseEntered(MouseEvent arg0)
		{
			// TODO Auto-generated method stub
			
		}

		@Override
		public void mouseExited(MouseEvent arg0)
		{
			// TODO Auto-generated method stub
			
		}

		@Override
		public void mousePressed(MouseEvent arg0)
		{
			// TODO Auto-generated method stub
			
		}

		@Override
		public void mouseReleased(MouseEvent arg0)
		{
			// TODO Auto-generated method stub
			
		}
	}
}
