package com.uvigo.mhp;

import com.uvigo.mhp.ui.*;
import java.awt.*;
import java.awt.event.*;

// La clase TestOption permite definir objetos de cualquier indole que pueden
// integrarse en una pregunta de un test. Puede contener texto, videos, botones...
// pero siempre ha de contener y exportar un HSwitch que determine si la opcion
// esta marcada o no.

public class TestOption extends HPanel implements ActionListener
{
    private HSwitch s;
    private boolean correct;
    private TestQuestion question;
    
    public TestOption()
    {
        correct=false;
    }
    
    public HSwitch getAnswerSwitch()
    {
        return s;
    }
    
    public void setAnswerSwitch(HSwitch ns)
    {
        if (s!=ns)
        {
            if (s!=null)
                s.removeActionListener(this);
            
            HSwitch old=s;
            s=ns;
            s.addActionListener(this);
            firePropertyChange("answerSwitch", old, s);
        }
    }
    
    public TestQuestion getOwnerQuestion()
    {
        return question;
    }
    
    public void setOwnerQuestion(TestQuestion q)
    {
        TestQuestion old=question;
        question=q;
        firePropertyChange("ownerQuestion", old, q);
    }
    
    public boolean isCorrect()
    {
        return correct;
    }
    
    public void setCorrect(boolean b)
    {
        boolean old=correct;
        correct=b;
        firePropertyChange("correct", new Boolean(old), new Boolean(b));
    }
    
    public void actionPerformed(ActionEvent evt)
    {
        if (question!=null)
            question.tick(this);
    }
}