2009-05-31 103 views
5

我對自定義部件電流的過程是這樣的:減少GWT自定義部件冗長

  1. 創建我的widget類 - 延長複合材料;
  2. 爲這個小部件創建一個監聽器接口;
  3. 創建一個監聽器集合接口 - 私有內部類到widget;
  4. 在小部件上創建add/removeListener方法;
  5. 在小部件內部,觸發監聽器上的事件。

我的聽衆激發細微的事件,如onEntityDisplayRequested(Entity entity),所以我不能使用股票聽衆。

雖然這實現了對小部件的低耦合並允許重用,但它非常冗長。有沒有更好的方式來處理自定義小部件的設計?

回答

3

對於每個新窗口小部件,您都不需要單獨的偵聽器接口。例如。 ClickListener被各種不同的窗口小部件類使用。顯然,一些自定義小部件將需要新的偵聽器類型,但不應該是自動的。

+0

感謝您的回答。我正在使用這些偵聽器來觸發自定義事件,例如onEntityDisplayRequested(實體e),所以我不能使用股票聽衆。 – 2009-05-31 12:13:14

2

我覺得Java在前一段時間面臨同樣的問題,一個解決方案是有PropertyChange事件。他們與 - PropertyEvent,包含來源,屬性名稱和舊的+新值 - PropertyChangeListener - 一個PropertyChangeSupport,您可以委派事件觸發,以及註冊和註銷偵聽器。

你鬆散了一些特殊性(事件與它們的名字匹配作爲一個字符串),但是你仍然可以觸發細粒度的事件並且有一些外部類的支持。

我還沒有在GWT中廣泛使用過,所以我無法評論效率方面。