package com.quemb.qmbform.view;
import com.quemb.qmbform.descriptor.RowDescriptor;
import com.quemb.qmbform.descriptor.Value;
import android.content.Context;
import android.util.Log;
import java.text.NumberFormat;
import java.text.ParseException;
/**
* Created by tonimoeckel on 15.07.14.
*/
public class FormEditCurrencyFieldCell extends FormEditNumberFieldCell {
private static final String TAG = "FormEditCurrencyFieldCell";
public FormEditCurrencyFieldCell(Context context,
RowDescriptor rowDescriptor) {
super(context, rowDescriptor);
}
@Override
protected void updateEditView() {
@SuppressWarnings("unchecked") Value<Number> value = (Value<Number>) getRowDescriptor().getValue();
if (value != null && value.getValue() != null) {
NumberFormat format = NumberFormat.getCurrencyInstance();
String valueString = format.format(value.getValue());//String.valueOf(value.getValue());
getEditView().setText(valueString);
}
}
protected void onEditTextChanged(String string) {
try {
NumberFormat format = NumberFormat.getCurrencyInstance();
Number floatValue = (Number) format.parse(string);
onValueChanged(new Value<Number>(floatValue));
} catch (NumberFormatException e) {
Log.e(TAG, e.getMessage(), e);
} catch (ParseException e) {
Log.e(TAG, e.getMessage(), e);
} catch (ClassCastException e) {
Log.e(TAG, e.getMessage(), e);
}
}
}