GWT SuggestBox自定义非文本编辑器

时间:2012-08-31 14:32:48

标签: gwt

在我的应用程序中,我有十几个地方需要显示国家建议框。建议框的所有代码(包括自定义SuggestOracle的创建,它的初始化和各种处理程序)占用了大约100行,并且在整个项目中复制它对我来说似乎相当硬。 所以我决定编写一个自定义CountrySuggestBox扩展SuggestBox包含自定义SuggestOracle的构造,并自行完成所有点击/键处理。在此之后,我计划在@UiFiled(provided=true) CountrySuggestBox = new CountrySuggestBox(countryList);的行中写一些内容并完成它。但为此,我还需要CountrySuggestBox来实现LeafValueEditor<Country>,这是我无法做到的,因为SuggestBox实现了HasText,并且这些接口彼此不“相似”。

那么我怎样才能使CountrySuggestBox成为国家/地区类型属性的编辑器,而无需在使用它的类中编写自定义编辑器方法。

1 个答案:

答案 0 :(得分:3)

首选合成而不是继承。

CountrySuggestBox扩展Composite(或简单地实现IsWidget)并打包SuggestBox。 然后,您可以将其设为LeafValueEditor<Country>IsEditor<LeafValueEditor<Country>>(以及TakesValue<Country>HasValue<Country>