package org.fugazi.ql.gui.widgets;
import org.fugazi.ql.evaluator.expression_value.ExpressionValue;
import org.fugazi.ql.evaluator.expression_value.StringValue;
import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
public class TextBox extends AbstractWidget {
private JTextField input;
public TextBox(String _label) {
JLabel label = new JLabel(_label);
this.input = new JTextField();
this.input.setColumns(7);
this.component.add(label);
this.component.add(input);
}
@Override
public void addEventListener(WidgetsEventListener _listener) {
this.input.getDocument().addDocumentListener(
new DocumentListener() {
public void insertUpdate(DocumentEvent e) {
_listener.stateChanged();
}
public void removeUpdate(DocumentEvent e) {}
public void changedUpdate(DocumentEvent e) {}
}
);
}
@Override
public StringValue getWidgetValue() {
return new StringValue(this.input.getText());
}
@Override
public void setWidgetValue(ExpressionValue _value) {
StringValue value = (StringValue) _value;
this.input.setText(value.getValue());
}
@Override
public void setReadOnly(boolean _isReadonly) {
this.input.setEditable(false);
this.input.setEditable(false);
}
}