2009-02-16 201 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