package ilarkesto.form; import ilarkesto.form.validator.Validator; import java.util.Collection; import java.util.Map; import org.apache.commons.fileupload.FileItem; public class TextFormField extends AFormField { private String value; private boolean trim = true; private boolean emptyIsNull = true; private Validator validator; private int width = 40; private String suffix; private InputAssistant inputAssistant; private InputAssistantButton inputAssistantButton; public TextFormField(String name) { super(name); inputAssistantButton = (InputAssistantButton) new InputAssistantButton(Form.BUTTON_PREFIX + Form.INPUTASSISTANT_BUTTON_NAME_PREFIX + name).setValidateForm(false).setLabel("Auswahl...").setIcon( "inputAssistant"); } public InputAssistantButton getInputAssistantButton() { return inputAssistantButton; } public TextFormField setSuffix(String suffix) { this.suffix = suffix; return this; } public TextFormField setInputAssistant(InputAssistant inputAssistant) { this.inputAssistant = inputAssistant; return this; } public boolean isInputAssistantSet() { return inputAssistant != null; } public InputAssistant getInputAssistant() { return inputAssistant; } public String getSuffix() { return suffix; } public TextFormField setTrim(boolean trim) { this.trim = trim; return this; } public TextFormField setWidth(int value) { this.width = value; return this; } public TextFormField setValidator(Validator validator) { this.validator = validator; return this; } public TextFormField setValue(String value) { this.value = value; return this; } public int getWidth() { return width; } public void update(Map<String, String> data, Collection<FileItem> uploadedFiles) { value = preProcessValue(data.get(getName())); } protected String preProcessValue(String s) { if (s == null) return null; if (trim) { s = s.trim(); } if (emptyIsNull && s.length() == 0) { return null; } return s; } public void validate() throws ValidationException { if (value == null) { if (isRequired()) { throw new ValidationException("Eingabe erforderlich"); } } else { if (validator != null) { validator.validate(value); } } } public String getValueAsString() { return value; } public class InputAssistantButton extends FormButton { public InputAssistantButton(String name) { super(name); } public TextFormField getField() { return TextFormField.this; } } }