package eu.dnetlib.dlms.swing.wizard;

import java.awt.Color;
import java.util.ArrayList;
import java.util.List;

import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.Border;

public class StepsPanel extends JPanel {
	private static final long serialVersionUID = 6221733188697670082L;
	
	private List<JLabel> labels = new ArrayList<JLabel>();
	
	/*
	 * The Dialog Wizard.
	 */
	private AbstractDialogWizard<?> wizard;
	
	public StepsPanel(AbstractDialogWizard<?> wizard) {
		super();
		
		this.wizard = wizard;
		
		Box box = Box.createVerticalBox();
		Border borderPadding = BorderFactory.createEmptyBorder(10,20,10,20);
	
		int i = 1;
		for (String step : wizard.getSteps()) {
			JLabel l = new JLabel(i + ". " + step);
			l.setBorder(borderPadding);
			l.setBackground(Color.LIGHT_GRAY);
			l.setOpaque(false);
			box.add(l);
			labels.add(l);
			i++;
		}

		setBorder(BorderFactory.createEtchedBorder());
		setBackground(Color.WHITE);
		add(box);
		updateStatus();
	}

	
	public void updateStatus() {
		for(JLabel l : labels) {
			l.setOpaque(false);
		}
		labels.get(wizard.getCurrentStep()).setOpaque(true);
		repaint();
	}
}
