如何在交换机上为同一属性创建两个编辑器?

时间:2013-01-22 10:08:40

标签: gwt gwt-editors

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

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

通过阅读CompositeEditor上的文档,我似乎必须利用它来动态选择子编辑器。但是,文档不够详细,我不能真正理解如何实现接口。我已经尝试过查看ListEditorOptionalFieldEditor如何实现线索,但是可以利用。由于我的副编辑编辑了不同的路径,ListEditor看起来并不合适。

例如,尝试使用CompositeEditor时,我不清楚createEditorForTraversalgetPathElement应该返回的情况。

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

1 个答案:

答案 0 :(得分:0)

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