2009-02-16 97 views
8

我正在学习GWT并已开始掌握它。我现在正处于我的代码变得意大利面混乱的地步,所以我要回去把它的合理位分解为复合材料。我遇到的第一个问题是我的工具支持未能为新的Composite类提供initWidget()方法。它确实包含了一个默认的构造函数。
目前,我只需填写我覆盖的initWidget()方法,并调用super(initWidget(w))我的项目按预期方式编译和运行,尽管我觉得我必须错过某些东西。GWT复合最佳实践

重写init时应该记住什么,以及如果我需要在构造函数中放置什么东西。除此之外还有什么我需要知道的,或者是否只是归结为普通的旧Java?

澄清 - 根据您是否打算将所说的Composite类作为库的一部分或只是您的独立应用程序的一部分,发现此问题可能有不同的答案。我特别无意在此时开发外部有用的组件(主要是因为我在这个特定的技术中非常绿)。

谢谢!

回答

7

我不知道我是否理解你在做什么。但对于我写的所有Composite,我从来没有重写过initWidget方法。由于复合材料本身并不需要用一个构造函数初始化,即无需调用super()我伸出复合的样子有点像小部件的构造:

public mywidget() { 
    SomePanel p = new SomePanel(); 
    .... 
    initWidget(p); 
} 

最佳做法是,国际海事组织,只有小部件延伸Composite应该将其称为“自己的”initWidget。

+0

我认为这可能是我关于自定义小部件的整套问题的答案。我也陷入了gui工具不能渲染我的许多自定义小部件的情况,很可能因为我的构造函数和init调用都不正确。当我回家时,我会检查出来... thx – 2009-02-17 20:36:10

2

GWT Conference: Best Practices for Building Libraries”给出了一些提示。你也应该看GWT的来源和GWT的其中一个库的来源(如gwt-ext

[编辑]我刚看到另一个选项:suco。从描述:

一个微库,有助于保持您的GWT客户端代码干净和模块化。

+0

yea me too,删除旧评论... – 2009-02-17 20:36:53