我有大约6种与UIBinder设计的表格看起来几乎相同,不同的是两个或三个字段。我正在考虑使用所有可能的字段构建一个表单,并根据具体情况隐藏或显示字段。
您如何看待这种方法?
答案 0 :(得分:2)
它可以很好地工作。您可以使用实现BaseForm
的UiBinder定义HasWidgets
类,然后使用类似
<custom:BaseForm>
<g:TextBox ui:field="componentSpecificToThisForm" />
<g:Button>A button!</g:button>
</custom:BaseForm>
和具有类似
之类的SpecificForm2.ui.xml<custom:BaseForm>
<g:Label>Something totally different</g:Label>
<g:Button>A button!</g:button>
</custom:BaseForm>
效果很好!
答案 1 :(得分:1)
我尝试了类似的东西,构建一个我隐藏/显示相应字段的表单是最简单的解决方案。另一个想法是创建一个工厂,然后根据您的需要构建您的表单。
因此,您基本上创建了表单所组成的组件,并且工厂通过构造函数依赖注入将它们连接在一起。对我来说工作得很好,而且还有一个额外的好处就是可以很容易地扩展你的表格。
(我稍后会添加一个例子)。