package org.mdl4ui.fields.sample.editor;
import org.mdl4ui.base.model.FieldID;
import org.mdl4ui.fields.model.Field;
import org.mdl4ui.fields.model.component.PasswordField;
import org.mdl4ui.fields.model.event.FieldEvent;
import org.mdl4ui.fields.model.validation.FieldValidation;
import org.mdl4ui.fields.sample.InjectSampleEditor;
import org.mdl4ui.fields.sample.OnField;
import org.mdl4ui.fields.sample.context.SampleContext;
import org.mdl4ui.fields.sample.i18n.ValidationMessages;
import org.mdl4ui.ui.sample.EFieldSample;
@InjectSampleEditor(@OnField(EFieldSample.PASSWORD))
public class PasswordEditor extends SampleEditor {
private final ValidationMessages messages;
public PasswordEditor(ValidationMessages messages) {
this.messages = messages;
}
@Override
public String value(FieldID field, SampleContext context, FieldEvent fieldEvent) {
return context.getUserAccount().getPassword();
}
@Override
public void updateFromContext(Field field, SampleContext context, FieldEvent fieldEvent) {
PasswordField textbox = field.getComponent();
textbox.setValue(context.getUserAccount().getPassword());
}
@Override
public void updateContext(Field field, SampleContext context, FieldEvent fieldEvent) {
PasswordField textbox = field.getComponent();
context.getUserAccount().setPassword(textbox.getValue());
}
@Override
public FieldValidation validate(Field field, SampleContext context, FieldEvent fieldEvent) {
PasswordField textbox = field.getComponent();
if (textbox.isEmpty()) {
return error(field, messages.please_specify_your_password());
}
return valid(field);
}
}