package G1.market_final;

import java.awt.Dimension;
import java.awt.Graphics;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import javax.swing.JPanel;

public class MarketPanel extends JPanel {

	Random randGen = new Random();
	List<Market> markets = new ArrayList<Market>();
	List<Salesman> salesmen = new ArrayList<Salesman>();

	List<Drawable> drawables = new ArrayList<Drawable>();

	public MarketPanel(int w, int h) {
		super();
		setPreferredSize(new Dimension(w, h));
		markets.add(new Market(0, 250, 20, 40, 20 * 40, 780));
		markets.add(new Market(450, 250, 20, 30, 20 * 30, 500));
		markets.add(new Market(250, 0, 40, 40, 40 * 40, 500));
		markets.add(new Market(250, 400, 30, 50, 30 * 50, 10));
		boolean ok;
		for (int i = 0; i < 50; i++) {
			ok = false;
			Salesman s=null;
			while (!ok) {
				s = new Salesman(randGen.nextInt(w), randGen.nextInt(h), 10,
						randGen.nextBoolean(), randGen.nextInt(3) - 1,
						randGen.nextInt(3) - 1, this);
				if (this.getMarket(s.getX(), s.getY()) == null)
					ok = true;
			}
			salesmen.add(s);
		}

		for (Salesman s : salesmen)
			s.start();

		drawables.addAll(markets);
		drawables.addAll(salesmen);
	}

	@Override
	public void paint(Graphics g) {
		super.paint(g);
		for (Drawable d : drawables)
			d.drawSelf(g);
	}

	public Market getMarket(int x, int y) {
		for (Market m : markets)
			if (m.contains(x, y))
				return m;
		return null;
	}
}
