我正在尝试创建一个编辑器,用户可以选择现有项目或创建新内联项目。例如,想象一下典型的人地址关系。我想要一个表单,用户在编辑人员时,可以从一组现有地址中选择一个地址,也可以创建一个新地址,而无需移动到单独的表单。
天真地,这似乎需要两个不同的编辑器用于同一属性。假设我的Person
有Address getAddress()
和setAddress(Address)
。我的PersonEditor
类需要有两个名为address
的不同类型的子编辑器;一个用于选择一个现有人,另一个用于编辑器的组合,以下降到Address
类型并允许编辑其属性。
通过阅读CompositeEditor
上的文档,我似乎必须利用它来动态选择子编辑器。但是,文档不够详细,我不能真正理解如何实现接口。我已经尝试过查看ListEditor
和OptionalFieldEditor
如何实现线索,但是可以利用。由于我的副编辑编辑了不同的路径,ListEditor
看起来并不合适。
例如,尝试使用CompositeEditor
时,我不清楚createEditorForTraversal
和getPathElement
应该返回的情况。
如何将两种不同类型的编辑器中的一种动态附加到一个属性?
答案 0 :(得分:0)
我最终设法做到了这一点。我只是添加了两个具有相同@Path
注释的编辑器。我没想到编辑器框架允许这样做,但它似乎有效!