Я хочу проверить зависимости полей с другим полем при изменении текущего поля.Eclipse Scout Neon on set set validation loop loop
Основная идея заключается в том, что если у меня есть поля A
и поля B,C,D,E,...
и есть некоторые сложные зависимости граф на этих полях, я хотел бы иметь его решить, как это:
- Когда я установить значение формы экспорта данные (текущее состояние формы)
- данные формы отправить разведчик серверу
- на скаутских зависимости сервера графа вычисляются и ПОСТАНОВИЛИ (мы получаем список в порядке убывания)
- вызов
setters
пол в упорядоченном л ist, которые «фиксируют» данные формы - Импортировать данные формы в конце.
Моя проблема заключается в том, что если я вызвать это событие в
@Override
protected void execChangedValue() {
// trigger export
// trigger server validation
// trigger import
}
я
2016-06-03 13:31:28,468 WARN scout-model-thread-22 o.e.s.rt.client.ui.form.fields.AbstractValueField - Loop detection in ...$FieldA with value 101191 [m4042 @ ]
java.lang.Exception: null
Как это исправить?
У меня даже есть проблема, что, если я получу ошибку, я хочу прервать импорт и установить прежнее значение.
@Override
protected void execChangedValue() {
// trigger export
// trigger server validation
if (error) {
setValueWithoutTrigger(oldValue)
} else {
// trigger import
}
}
Что oldValue
это не имеет значения, это может быть пустым. (поэтому значение сброса при ошибке). Метод setValueWithoutTrigger
такой же, как setValue()
, но до заданного значения она называется this.setValueChangeTriggerEnabled(false);
Я знаю, что это как-то можно было бы сделать, потому что я видел подобную функциональность в BSI коде.
Я не» t получить точку. Насколько я понимаю, вы хотите рассчитать значения полей B, C, D и E на сервере. Зачем вам тогда нужно определять методы execChangedValue() на клиенте? –
Я не понимаю вашего комментария. Что тогда будет запускать проверку на стороне сервера, если не execChangedValue()? Если я хочу проверить триггер на сервере, когда пользователь меняет некоторые данные в поле A, его нужно запускать с клиента, а execChangedValue кажется мне подходящим местом. –
Вы правы. Теперь я понимаю ваш вопрос. Спасибо. –