Я знаю, что этот вопрос не о конкретной проблеме, которая у меня есть.Это скорее вопрос команде GWT SDK.Насколько я помню, StackOverflow теперь является их официальным каналом связи с инженерным сообществом:)
Проблема:
Для таких редакторов с псевдонимами, как ValueBoxEditorDecorator
, вы получите дубликатошибки в вашем HasEditorErrors.showErrors()
- одна для самого ValueBoxEditorDecorator, а другая для вложенного ValueBoxEditor.Текущая реализация ValueBoxEditorDecorator
перебирает список ошибок и отклоняет те, которые не принадлежат вложенному редактору.Для меня это выглядит как хакерский обходной путь:)
Вопрос:
Я думаю, что дубликаты должны быть отброшены где-то раньше, например, в SimpleViolation.pushViolations
или DelegateMap.of
илиErrorCollector.endVisit
.
Сначала я подумал, почему бы не оставить одного делегата на каждый уникальный EditorContext.getAbsolutePath
и отбросить остальные.Затем я понял, что, возможно, есть сценарий использования, когда ValueBoxEditorDecorator и его внутренний ValueBoxEditor будут получать разные ошибки, хотя я не могу придумать сценарий, как это может произойти из-за моего краткого знания источников gwt.
Так вот что я думаю.Почему бы нам не использовать карту в ErrorCollector.errorStack
вместо List
, где ключом будет комбинация EditorError.getAbsolutePath () и EditorError.getUserData ()?Это решило бы две проблемы IMO:
- Нам не нужно будет отфильтровывать ошибки дублирования в наших редакторах.
- ErrorCollector.visit () не будет предполагать, что редакторы как этотпройдены в иерархическом порядке.Я не вижу в документации нигде, чтобы посетители всегда работали таким образом.
Что вы думаете?