package com.form.language.gui.widget;
import java.awt.Dimension;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import com.form.language.ast.statement.question.Question;
import com.form.language.ast.values.GenericValue;
import com.form.language.ast.values.StringValue;
import com.form.language.memory.Context;
public class TextField extends Widget {
private JTextField textfield;
public TextField(Question question, Context context) {
super(question,context);
this.textfield = new JTextField();
this.textfield.setName(question.getId());
this.textfield.setMaximumSize(new Dimension(200, 20));
TextFieldListener textfieldListener = new TextFieldListener();
this.textfield.getDocument().addDocumentListener(textfieldListener);
setContextValue(new StringValue());
}
public JTextField getTextField()
{
return textfield;
}
private class TextFieldListener implements DocumentListener {
public void actionPerformed(DocumentEvent e) {
setContextValue(new StringValue(textfield.getText()));
checkComputedQuestion();
checkDependencyVisibility();
}
@Override
public void insertUpdate(DocumentEvent e) {
actionPerformed(e);
}
@Override
public void removeUpdate(DocumentEvent e) {
}
@Override
public void changedUpdate(DocumentEvent e) {
}
}
@Override
public void displayComputedValue(GenericValue value) {
textfield.setText(value.toString());
textfield.setEnabled(false);
}
}