package com.rapidftr.controls; import net.rim.device.api.ui.Field; import net.rim.device.api.ui.FieldChangeListener; import net.rim.device.api.ui.XYEdges; import net.rim.device.api.ui.component.BasicEditField; import net.rim.device.api.ui.component.LabelField; import net.rim.device.api.ui.decor.Border; import net.rim.device.api.ui.decor.BorderFactory; import com.rapidftr.form.FormField; import com.rapidftr.utilities.Styles; public class TextboxFormField extends CustomField { protected BasicEditField editField; public TextboxFormField(final FormField field) { super(field); add(new LabelField(field.getDisplayName())); editField = new BasicEditField(); editField.setBorder(getFieldBorder()); add(editField); editField.setChangeListener(new FieldChangeListener() { public void fieldChanged(Field changedField, int context) { setFieldValue(editField.getText()); } }); } private Border getFieldBorder() { return BorderFactory.createRoundedBorder(shape(), backgroundColor(),style()); } private int style() { return Border.STYLE_SOLID; } private int backgroundColor() { return Styles.COLOR_FIELD_BACKGROUND; } private XYEdges shape() { return new XYEdges(10, 10, 10, 10); } public void setValue(String value) { if (value != null) { editField.setText(value); setFieldValue(value); } } }