package eu.dnetlib.dlms.swing.dialogs;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.Box;
import javax.swing.ButtonGroup;
import javax.swing.JComponent;
import javax.swing.JRadioButton;

import eu.dnetlib.dlms.swing.DorotyCategories;
import eu.dnetlib.dlms.swing.wizard.MainStepPanel;

public class AddSetDialogStep1 extends MainStepPanel<SetDialogResult> implements ActionListener {
	private static final long serialVersionUID = -2749001453383981317L;
	
	private DorotyCategories tmpResult = null;

	
	public AddSetDialogStep1(SetDialogResult result) {
		super(result);
		tmpResult = null;
	}
	
	
	@Override
	public JComponent getForm() {
		Box box = Box.createVerticalBox();
		box.setAlignmentX(LEFT_ALIGNMENT);
		ButtonGroup group = new ButtonGroup();
		initRadioButton(box, group, DorotyCategories.Atoms);
		initRadioButton(box, group, DorotyCategories.Structures);
		initRadioButton(box, group, DorotyCategories.Relations);
		initRadioButton(box, group, DorotyCategories.Unions);
		return box;
	}

	@Override
	public String getTitle() {
		return "Choose Typology for new Set";
	}

	private void initRadioButton(Box box, ButtonGroup group, DorotyCategories cat) {
		String text = cat.toString();
		JRadioButton radio = new JRadioButton(text);
		radio.setActionCommand(text);
		group.add(radio);
		box.add(radio);
		radio.addActionListener(this);
		if (group.getSelection() == null) {
			group.setSelected(radio.getModel(), true);
			tmpResult = cat;
		}
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		tmpResult  =  Enum.valueOf(DorotyCategories.class, e.getActionCommand());
	}

	@Override
	public void abortStep() {
		tmpResult = null;
		result.setTypology(null);
	}

	@Override
	public void executeStep() {
		result.setTypology(tmpResult);
	}


}
