Я новичок в Vaadin Framework.Попытка проверить столбец сетки, используя preCommit()
метод grid.getEditorFieldGroup().addCommitHandler()
.Когда я проверил первый раз, проверка прошла успешно, и сообщение об ошибке, а также сообщение об ошибке были показаны успешно.Но опять же, если я сохраняю немедленно, соответствующее значение становится нулевым при достижении метода preCommit ().Как решить эту проблему?
Я пробовал с вторичным объектом.Поэтому я подумал, что это не повлияет на исходный объект.Но это не помогло мне.
grid.getEditorFieldGroup().addCommitHandler(new FieldGroup.CommitHandler() {
@Override
public void preCommit(FieldGroup.CommitEvent commitEvent) throws
FieldGroup.CommitException {
BeanItem item = (BeanItem)
commitEvent.getFieldBinder().getItemDataSource();
MyClass qm = (MyClass) item.getBean();
grid.getColumn("myColumn").
setEditorField(generateMachineCode(qm.myColumnValue());
}
private Field << ? > generateMachineCode(String machineCode) {
TextField editableTextFiled = new TextField();
editableTextFiled.setEnabled(true);
if (StringUtils.isNotEmpty(machineCode) && !machineCode.equals("12345")) {
editableTextFiled.addValidator(new StringLengthValidator("It must be 6
characters ", 6, 6, false));
}
}
}