import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Random;

import javax.swing.*;

public class Manav {
	
	public static int urunSayisi = 9;

	public static Random r = new Random((4000)+500);

	public static JPanel anapanel;
	public static JPanel sepetPaneli = new JPanel();
	public static JFrame frame;
	
	public static String[] urunler = new String[urunSayisi];
	public static double[] fiyat = new double[urunSayisi];
	public static JLabel[] secilenUrun = new JLabel[urunSayisi];
	
	public static ArrayList<String> kasaListesi = new ArrayList<String>();
	public static ArrayList<JLabel> kasaListesiLabel = new ArrayList<JLabel>(); 

	public Manav() {
		
		urunler[0] = "carlistonbiber";
		urunler[1] = "domates";
		urunler[2] = "havuc";
		urunler[3] = "kivircik";
		urunler[4] = "maydanoz";
		urunler[5] = "patates";
		urunler[6] = "patlican";
		urunler[7] = "roka";
		urunler[8] = "salatalik";
		
		for(int i = 0; i<urunSayisi; i++) secilenUrun[i] = new JLabel("");
		
		fiyat[0] = 15.90;
		fiyat[1] = 20.50;
		fiyat[2] = 17.60;
		fiyat[3] = 12.00; 
		fiyat[4] = 16.20;
		fiyat[5] = 15.50;
		fiyat[6] = 25.30;
		fiyat[7] = 10.90;
		fiyat[8] = 13.50;
		
		frame = new JFrame("Manav");
		frame.setLayout(null); 
		
		anapanel = new JPanel();
		anapanel.setLayout(null);
		anapanel.setBounds(0,0,1000,600);
		anapanel.setBackground(new Color(72, 86, 87));
		
		anapanel.add(urunPanel());
		anapanel.add(sepetPanel());
				
		frame.add(anapanel);
		
		frame.setSize(1000,600);
		frame.setResizable(true);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	
	}
	
	public static JPanel urunPanel() {
		
		JPanel urunPaneli = new JPanel();
		urunPaneli.setBounds(10,10,530,540);
		urunPaneli.setBackground(new Color(247, 178, 104));
		urunPaneli.setLayout(null);
		
		JButton[] urunButon = new JButton[9];
		
		int indexx = 0;
		int indexy = 0;
		
		for(int i = 0; i<9; i++) urunButon[i] = new JButton(); 
		
		for(int i = 0; i<9; i++) {
			
			urunButon[i].setIcon(new ImageIcon(new ImageIcon("src/images/images_"+urunler[i]+".jpg").getImage().getScaledInstance(125, 125, Image.SCALE_DEFAULT)));
			urunButon[i].setVerticalTextPosition(AbstractButton.BOTTOM);
			urunButon[i].setHorizontalTextPosition(AbstractButton.CENTER);
			
			urunButon[i].setText(urunler[i].toUpperCase());
			urunButon[i].setHorizontalAlignment(SwingConstants.CENTER);
				  
			urunButon[i].setFont(new Font("Arial", Font.BOLD, 15));
			urunButon[i].setForeground(new Color(45, 65, 5));
		        
			urunButon[i].setBounds(20+(170*(indexx%3)), 20+(170*indexy), 150, 160);
				
			urunPaneli.add(urunButon[i]);
			
			urunButon[i].addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent olay) {
					
					String urunIsmi = olay.getActionCommand();
					
					double agirlik = 0.0;
					
					switch(urunIsmi) {
					
					case "CARLISTONBIBER" : 
						
						agirlik = terazi();
						
						System.out.println(urunler[0] + " seçildi.");
						System.out.println("Fiyat : " + fiyat[0] + " Agirlik : " + agirlik);
						System.out.println("Toplam : " + (fiyat[0] * agirlik));
						
						kasaListesi.add(urunler[0]);
						
						break;
				         
				    case "DOMATES" : 
				    	
				    	System.out.println(urunler[1] + " seçildi. Agirlik : " + terazi());
				    	
				    	kasaListesi.add(urunler[1]);
				    	
				    	break;
				         
				    case "HAVUC" : 
				    	
				    	System.out.println(urunler[2] + " seçildi. Agirlik : " + terazi());
				    	
				    	kasaListesi.add(urunler[2]);
				    	
				    	break;
				         
				    case "KIVIRCIK" : 
				    	
				    	System.out.println(urunler[3] + " seçildi. Agirlik : " + terazi());
				    	
				    	break;
				         
				    case "MAYDANOZ" : 
				    	
				    	System.out.println(urunler[4] + " seçildi.Agirlik : " + terazi());
				    	
				    	break;
				        
				    case "PATATES" : 
				    	
				    	System.out.println(urunler[5] + " seçildi. Agirlik : " + terazi());
				    	
				    	break;
				         
				    case "PATLICAN" :
				    	
				    	System.out.println(urunler[6] + " seçildi. Agirlik : " + terazi());
				    	
				    	break;
				         
				    case "ROKA" : 
				    	
				    	System.out.println(urunler[7] + " seçildi. Agirlik : " + terazi());
				    	
				    	break;
				         
				    case "SALATALIK" : 
				    	
				    	System.out.println(urunler[8] + " seçildi. Agirlik : " + terazi());
				    	
				    	break; 
				         
				         
					}
				
					anapanel.add(sepetPanel());
					
					anapanel.revalidate(); // For Java 1.7 or above.
					anapanel.repaint();
					
					}
				});
				
			indexx++;
			if((indexx%3) == 0) indexy++;
			
		}
		
		return urunPaneli;
	
	}
	
	public static JPanel sepetPanel() {
		
		
		sepetPaneli.setBounds(550,10,435,540);
		sepetPaneli.setBackground(new Color(242, 204, 99));
		sepetPaneli.setLayout(null);
		
		JLabel logo = new JLabel(new ImageIcon(new ImageIcon("src/images/greengrocerlogo.png").getImage().getScaledInstance(415, 100, Image.SCALE_DEFAULT)));
	 	logo.setBounds(10,10,415,100);
		
		sepetPaneli.add(logo);
		
		System.out.println("Kasa Listesi : " + kasaListesi);	// Test amaçli console çiktisi için...
																// maç ArrayList'e eklenen ürünleri görmek.
																// Daha sonra JLabel ile sepetPanel'e eklenecek.
		
		sepetPaneli.repaint();
								
		return sepetPaneli;
	}
	
	public static double terazi() {
		
		double agirlik = 0.0;
				
		agirlik = (r.nextDouble()*4.5)+0.5;		// 500 Gr. ile 5000 Gr. arasi bi agirlik ayarliyoruz.
												// 4.376300693703864 küsurat kismi 3 basamak ayarlanacak.
		return agirlik;
		
	}
	
}
