package com.proj.track;

import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
import java.awt.image.ImageProducer;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JPanel;

public class TrackPanel1 extends JPanel implements Runnable{
	private List<Integer> list = new ArrayList<>();
	private Track track;
	
	public TrackPanel1(Track track) {
		list.add(0, 0);
		this.track = track;
	}

	@Override
	protected void paintComponent(Graphics g) {
		super.paintComponent(g);
		Dimension dimension = this.getSize();
		g.drawImage(new ImageIcon("img/horse.jpg").getImage(), 0, 0, (int)dimension.getHeight() - 20, (int)dimension.getHeight() - 20,  this);
	}
	
	public void setData(int data) {
		Graphics g = this.getGraphics();		
		Dimension dimension = this.getSize();
		list.add(1, data);
		g.clearRect(list.get(0),  0, (int)dimension.getHeight() - 20, (int)dimension.getHeight() - 20);
		g.drawImage(new ImageIcon("img/horse.jpg").getImage(), list.get(1), 0, (int)dimension.getHeight() - 20, (int)dimension.getHeight() - 20,  this);
		list.add(0, list.get(1));
	}
	
	public void init() {
		Graphics g = this.getGraphics();	
		
		list.set(0, 0);
		list.remove(1);
		paintComponent(g);
	}
	
	@Override
	public void run() {
		while(true) {
			int pos = track.getList().get(0).getCurPos();
			if(pos > 1500) break;
			setData(pos);
		}
	}
}
