如何在交换机上为同一属性设置两个编辑器



我正在尝试创建一个编辑器,用户可以在其中选择现有项目或内联创建新项目。例如,假设典型的人员-地址关系。我想要一个表单,用户在编辑人员时可以从一组现有地址中选择一个地址,也可以创建一个新地址,而无需移动到单独的表单。

天真地,这似乎需要两个不同的编辑器来表示同一属性。假设我有一只Person,它有Address getAddress()setAddress(Address)。我的PersonEditor类需要有两个不同类型的address子编辑器;一个用于选择现有人员,另一个用于选择编辑器的组合以下降到Address类型并允许编辑其属性。

从阅读CompositeEditor的文档来看,似乎我必须利用它来动态选择子编辑器。但是,文档不够详细,无法让我真正理解应该如何实现该接口。我尝试查看ListEditorOptionalFieldEditor是如何实现的,以寻找线索,但要有用。 ListEditor似乎不太合适,因为我的子编辑器编辑不同的路径。

例如,尝试使用 CompositeEditor ,我不清楚在我的情况下应该返回什么createEditorForTraversalgetPathElement

如何将两种不同类型的编辑器之一动态附加到一个媒体资源?

我最终设法做到了这一点。我只是添加了两个具有相同@Path注释的编辑器。我没想到编辑器框架允许这样做,但它似乎有效!

最新更新