package tetra;

import java.awt.Color;

import javax.swing.Box;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;

abstract public class TetraControl extends JPanel {
	private static final long serialVersionUID = 42L;
	JSlider speed;

	TetraControl(int min, int max, int start) {
		JPanel options = new JPanel();
		options.setBackground(Color.BLUE);
		speed = createSlider(min, max, start, "Speed: ");
		speed.addChangeListener(new ChangeListener() {
			public void stateChanged(ChangeEvent e) {onSpeedChange(speed.getValue());};
		});
		onSpeedChange(speed.getValue());
	}
	
	protected abstract void onSpeedChange(int value);
		
	private JSlider createSlider(int min, int max, int start, String name) {
		Box panel = Box.createHorizontalBox();
		add(panel);
		panel.add(new JLabel(name));
		JSlider s = new JSlider(min,max,start);
		panel.add(s);
		return s;
	}
}
