1
A
回答
3
我已使用Observer Pattern和中心Controller解決了此問題。中央控制器是唯一具有應用程序中所有小部件的知識並確定它們組合在一起的方法。如果某人改變了窗口小部件A上的某些內容,窗口小部件A將觸發一個事件在事件處理程序中,您可以通過'notifyObservers()'調用中央控制器來調用中央控制器,該中央控制器可以爲中央控制器提供信息(也可能包括其他控件,但爲了簡單起見,我不打算進行這種調用)某個動作(傳遞'MyEvent'枚舉實例) 已經發生了。
這樣,應用程序流程邏輯包含在一箇中心類中,並且小部件不需要引用彼此的意大利式麪條。
3
這是一個非常開放的問題 - 例如,您可以創建自己的靜態事件Handler類,這些類都是小部件自訂的。 e.g:
Class newMessageHandler {
void update(Widget caller, Widget subscriber) {
...
}
}
customEventHandler.addEventType("New Message", newMessageHandler);
Widget w;
customEventHandler.subscribe(w, "New Message");
...
Widget caller;
// Fire "New Message" event for all widgets which have
// subscribed
customEventHandler.fireEvent(caller, "New Message");
凡customEventHandler跟蹤訂閱每個命名事件的所有部件,並呼籲命名的類,然後可以調用任何你想要的其他方法的更新方法。您可能想要在析構函數中調用退訂 - 但您可以按照自己的喜好進行設置。
+0
這可能適用於我的想法,一定會試一試。 – Drejc 2008-09-17 21:09:49
1
因此,這裏是我的(樣本)實施, 首先讓我們創建一個新的事件:
import java.util.EventObject;
import com.google.gwt.user.client.ui.Widget;
public class NotificationEvent extends EventObject {
public NotificationEvent(String data) {
super(data);
}
}
然後,我們創建一個事件處理接口:
import com.google.gwt.user.client.EventListener;
public interface NotificationHandler extends EventListener {
void onNotification(NotificationEvent event);
}
如果我們現在有實現一個widget NotificationHanlder,我們可以通過撥打 觸發事件:
((NotificationHandler)widget).onNotification(event);
相關問題
- 1. 通過gadgets.rpc的OpenSocial小工具與小工具通信
- 2. Android小工具 - 需要4x2小工具獲取1x1小工具
- 3. QML MouseArea重疊其他小工具
- 4. PyQT使用按鈕小工具來修改網格中的其他小工具
- 5. 小工具將成爲與其他應用程序不同的小工具
- 6. 小工具/小工具管理器
- 7. Android小工具
- 8. 小工具
- 9. BAM小工具
- 10. JavaScript小工具
- 11. Android小工具
- 12. Javascript小工具
- 13. wxwidgets中的搜索工具小工具
- 14. UiBinder的小工具
- 15. Android小工具Bitmap大小
- 16. Android EditText小工具大小
- 17. 鎖屏小工具太小
- 18. WS02 BAM - 小工具生成工具
- 19. javascript打包工具與縮小工具
- 20. 連接小工具
- 21. Dojango/Dijit小工具
- 22. 重疊小工具
- 23. Restyle Pinterest小工具?
- 24. 小工具活動
- 25. 從Android小工具
- 26. 小工具安全
- 27. Android GPS小工具
- 28. jQuery MultiSelect小工具
- 29. 選擇小工具
- 30. 小工具和setOnClickPendingIntent
你和我一樣來到了同樣的解決方案。首先嚐試sendNotification,recieveNotification機制會變得複雜得多。觀察者模式非常合適,中央控制器更有意義。 – Drejc 2008-09-18 08:26:06