0

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

天真地,这似乎需要两个不同的编辑器来处理同一个属性。假设我有一个PersonwhichAddress getAddress()setAddress(Address)。我的PersonEditor班级需要有两个名为address不同类型的子编辑;一个选择一个现有的人,另一个是编辑器的组合以进入该Address类型并允许编辑其属性。

通过阅读 上的文档CompositeEditor,似乎我必须利用它来动态选择子编辑器。但是,文档不够详细,无法让我真正理解应该如何实现接口。我已经尝试查看线索的实现方式ListEditor和实施方式,但还是有用的。由于我的副编辑编辑不同的路径,这似乎不太合适。OptionalFieldEditorListEditor

例如,尝试使用CompositeEditor,我不清楚在我的情况下应该返回什么createEditorForTraversal以及getPathElement应该返回什么。

如何动态地将两种不同类型的编辑器之一附加到一个属性?

4

1 回答 1

0

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

于 2013-01-23T20:40:12.883 回答