我知道这个问题与我遇到的特定问题无关。这对 GWT SDK 团队来说是个问题。据我所知,StackOverflow 现在是他们与工程社区的官方沟通渠道 :)
问题:
对于别名编辑器,例如ValueBoxEditorDecorator
您将在您的HasEditorErrors.showErrors()
- ValueBoxEditorDecorator 本身和嵌套 ValueBoxEditor 中收到重复错误。当前的实现ValueBoxEditorDecorator
遍历错误列表并拒绝不属于嵌套编辑器的错误。对我来说,这看起来像是一个 hacky 解决方法:)
问题:
我认为应该在更早的地方丢弃重复项,例如在SimpleViolation.pushViolations
orDelegateMap.of
或ErrorCollector.endVisit
.
最初我想为什么不只为每个唯一的代表保留一个代表EditorContext.getAbsolutePath
而放弃其余的代表。然后我意识到,当 ValueBoxEditorDecorator 及其内部的 ValueBoxEditor 会出现不同的错误时,也许有一个用例,尽管由于我对 gwt 来源的短时间了解,我无法想出它是如何发生的场景。
所以这就是我的想法。为什么我们不使用 map inErrorCollector.errorStack
而不是List
键是 EditorError.getAbsolutePath() 和 EditorError.getUserData() 的组合?它将解决 IMO 的两个问题:
- 我们不需要过滤掉编辑器中的重复错误。
- ErrorCollector.visit() 不会假设像这样的编辑器是按层次顺序遍历的。我在文档中看不到访问者总是以这种方式工作的任何地方。
你怎么看 ?