package org.uva.sea.ql.gui.widget; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JComponent; import javax.swing.JTextField; import org.uva.sea.ql.ast.Identifier; import org.uva.sea.ql.evaluate.StringValue; import org.uva.sea.ql.evaluate.Value; import org.uva.sea.ql.gui.questionaire.State; public class StringWidget extends Widget{ private final JTextField textfield; public StringWidget(Identifier identifier, State state) { super(identifier, state); textfield = new JTextField(); textfield.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ setValue(textToStringValue()); } }); setValue(new StringValue("empty")); } @Override public JComponent UIElement() { return textfield; } @Override public void setEnabled(boolean isEnabled) { textfield.setEnabled(isEnabled); } public Value textToStringValue(){ return new StringValue(textfield.getText()); } @Override public void setValue(Value value) { textfield.setText(((StringValue) value).getValue()); setChanged(); getState().addIdentifier(getIdentifier(), value); getState().notify(getIdentifier()); } }