package ilarkesto.form;
import java.util.ArrayList;
import java.util.List;
public abstract class AFormField implements FormField {
private String name;
private String label;
private String hintText;
private boolean required = false;
private String errorMessage;
private Form form;
private List<FormFieldChangeListener> listeners;
public AFormField(String name) {
this.name = name;
this.label = name;
}
public final FormField addFormFieldChangeListener(FormFieldChangeListener listener) {
if (listeners == null) listeners = new ArrayList(1);
listeners.add(listener);
return this;
}
protected final void fireFieldValueChanged() {
if (listeners == null) return;
for (FormFieldChangeListener listener : listeners)
listener.fieldValueChanged(this);
}
public final FormField setLabel(String value) {
this.label = value;
return this;
}
public final FormField setHintText(String value) {
this.hintText = value;
return this;
}
public final String getErrorMessage() {
return errorMessage;
}
public final void setErrorMessage(String errorMessage) {
this.errorMessage = errorMessage;
}
public final String getLabel() {
return label;
}
public final String getHintText() {
return hintText;
}
public final boolean isRequired() {
return required;
}
public final AFormField setRequired(boolean required) {
this.required = required;
return this;
}
public final String getName() {
return name;
}
public final Form getForm() {
return form;
}
public final void setForm(Form form) {
this.form = form;
}
}