package nl.uva.polyql.view;
import java.awt.Insets;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JComponent;
import javax.swing.JTextField;
import nl.uva.polyql.ast.Question;
import nl.uva.polyql.ast.values.StringValue;
public class StringValueView extends QuestionView {
private JTextField mTextField;
public StringValueView(final Question question) {
super(question);
}
@Override
protected void init() {
mTextField = new JTextField();
mTextField.setMargin(new Insets(2, 5, 2, 0));
mTextField.addKeyListener(new KeyListener() {
@Override
public void keyTyped(final KeyEvent e) {}
@Override
public void keyReleased(final KeyEvent e) {
onNewInput(new StringValue(mTextField.getText()));
}
@Override
public void keyPressed(final KeyEvent e) {}
});
}
@Override
protected JComponent getValueComponent() {
return mTextField;
}
@Override
public void setComponentValue(final StringValue value) {
mTextField.setText(value.getValue());
}
@Override
protected void onEditableChanged(final boolean enabled) {
mTextField.setEnabled(enabled);
}
}