如何设计具有几乎相似外观的几种形式?

时间:2011-09-06 15:46:45

标签: forms gwt uibinder

我有大约6种与UIBinder设计的表格看起来几乎相同,不同的是两个或三个字段。我正在考虑使用所有可能的字段构建一个表单,并根据具体情况隐藏或显示字段。

您如何看待这种方法?

2 个答案:

答案 0 :(得分:2)

它可以很好地工作。您可以使用实现BaseForm的UiBinder定义HasWidgets类,然后使用类似

的内容定义SpecificForm1.ui.xml
<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)

我尝试了类似的东西,构建一个我隐藏/显示相应字段的表单是最简单的解决方案。另一个想法是创建一个工厂,然后根据您的需要构建您的表单。

因此,您基本上创建了表单所组成的组件,并且工厂通过构造函数依赖注入将它们连接在一起。对我来说工作得很好,而且还有一个额外的好处就是可以很容易地扩展你的表格。

(我稍后会添加一个例子)。