package org.uva.ql.view.listener;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.BadLocationException;
import org.uva.ql.ast.expression.literal.Identifier;
import org.uva.ql.ast.value.StrValue;
public class TextFieldListener implements DocumentListener {
protected WidgetListener widgetListener;
protected Identifier identifier;
public TextFieldListener(WidgetListener widgetListener, Identifier identifier) {
super();
this.widgetListener = widgetListener;
this.identifier = identifier;
}
@Override
public void insertUpdate(DocumentEvent e) {
notifyListener(e);
}
@Override
public void removeUpdate(DocumentEvent e) {
notifyListener(e);
}
@Override
public void changedUpdate(DocumentEvent e) {
}
public void notifyListener(DocumentEvent e) {
String s;
try {
s = e.getDocument().getText(0, e.getDocument().getLength());
widgetListener.widgetValueChanged(identifier, new StrValue(s));
} catch (BadLocationException e1) {
throw new IndexOutOfBoundsException("Index is out of bound at number textfield listener");
}
}
}