package org.nlamah.QL.View.Widgets;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.NumberFormat;
import javax.swing.JFormattedTextField;
import javax.swing.JTextField;
import org.nlamah.QBase.Constants.QBaseQuestionType;
import org.nlamah.QBase.Constants.UIConstants;
import org.nlamah.QL.Model.Expression.Literal.NumberLiteral;
import org.nlamah.QL.View.Form.Abstract.WidgetView;
@SuppressWarnings("serial")
public class NumberFieldWidgetView extends WidgetView implements ActionListener
{
private JTextField textField;
public NumberFieldWidgetView()
{
super(QBaseQuestionType.NUMBER);
initializeComponents();
addComponentsToView();
layoutView();
}
@Override
public void layoutView()
{
textField.setPreferredSize(new Dimension(UIConstants.widgetWidth(), UIConstants.maximumTextFieldHeight()));
textField.setMaximumSize(new Dimension(UIConstants.widgetWidth(), UIConstants.maximumTextFieldHeight()));
}
@Override
public void initializeComponents()
{
textField = new JFormattedTextField(NumberFormat.getNumberInstance());
textField.addActionListener(this);
NumberLiteral defaultValue = (NumberLiteral)UIConstants.defaultValueForQuestionType(QBaseQuestionType.NUMBER);
textField.setText(defaultValue.toString());
}
@Override
public void addComponentsToView()
{
add(textField);
}
@Override
public void actionPerformed(ActionEvent e)
{
String insertedNumberString = textField.getText();
widgetViewDelegate.valueChanged(new NumberLiteral(Integer.parseInt(insertedNumberString)));
}
}