降低GWT的代码复杂性

时间:2009-09-15 09:26:56

标签: gwt mvp gwt-mvp code-complexity

我开始在google上通过示例学习GWT,我的第一个结论是:代码太多

像这样:

stocks.add(symbol);
        stocksFlexTable.setText(row, 0, symbol);
        stocksFlexTable.setWidget(row, 2, new Label());
        stocksFlexTable.getCellFormatter().addStyleName(row, 1,
                "watchListNumericColumn");
        stocksFlexTable.getCellFormatter().addStyleName(row, 2,
                "watchListNumericColumn");
        stocksFlexTable.getCellFormatter().addStyleName(row, 3,
                "watchListRemoveColumn");

GWT是否有任何扩展来减少代码大小并简化创建GWT表单?

5 个答案:

答案 0 :(得分:11)

使用CSS和HTML的GWT UI设计的好例子(过于简化但概念清晰)是Tags First GWT

我同意你的观点,如果遵循Google文档中的通用示例,那就不是一种愉快的体验。最近事情发生了变化,但它们尚未在Google文档中得到充分反映。请尝试以下操作:在继续GWT开发之前,请观看以下两个演示文稿:Best PracticesPerformance Tips

不使用基于CSS的UI设计,事件总线,基于命令模式的GWT-RPC,MVP表示层和google-gin(Guice的GWT实现),就像在任何其他重型GUI中一样,很难克服GWT的复杂性框架。

如果你喜欢这些想法(在上面的演示文稿中描述),你可能需要考虑实施其中一些模式的gwt-dispatchgwt-presenter

很少有例子:GWT MVP ExampleApache Labs Hupa GWT-based webmail

更新: 最新的GWT MVP设计在GWT 2.1和/或GWT MVP框架中查找gwt-platform(以及其他可能适合您的框架)。

答案 1 :(得分:7)

UiBinder(GWT 2.0)可能会有所帮助

答案 2 :(得分:1)

Geez可能会对您有所帮助。

Geez为GWT提供了易于使用的样式布局,并提供了一系列静态方法来构建常用的小部件。

答案 3 :(得分:0)

我们使用FormBuilder类在代码中轻松紧凑地构造表单:

ListBox type = ...
TextBox notes = ...

FormBuilder b = new FormBuilder();
b.label("Chart type").field(type).endRow();
b.label("Notes").field(notes).wrap().endRow();
b.add("Some help text").style("help").wrap().endRow();

FlexTable form = b.getForm();
...

它跟踪当前行和列,根据用于添加它们的方法(标签,字段等)一致地设置单元格样式,确保一致的间距等等。每个方法返回一个FormBuilder以支持链接调用。 wrap()之类的内容适用于之前添加的单元格。

此类是GWT Portlets框架的一部分。

答案 4 :(得分:0)

与UiBinder结合使用http://code.google.com/p/gwt-pectin/