2012-10-22 91 views
0

的GWT的Javadoc文檔PlaceHistoryHandler#DefaultHistorian含糊不清,循環:GWT:DefaultHistorian vs Mapper對象?

默認實現PlaceHistoryHandler.DefaultHistorian的。

這並沒有真正地告訴我們它是什麼,或它做了什麼!

然後我們有PlaceHistoryMapperActivityMapper對象。我的瞭解的是PlaceHistoryMapper的工作是將URL標記映射到Place,並且ActivityMapper將那些Place映射到Actvitity實現。

所以我問:如果這兩個Mappers負責將URL標記綁定到特定的Activity,那麼DefaultHistorian在所有這一切中扮演什麼角色?

回答

1

Javadoc很容易在讀取時更正:DefaultHistorianHistorian的默認實現。

要了解它們如何一起玩,您首先必須明白,沒有歷史,也沒有活動,地方可以工作。

所以,在中央地方是地方PlaceController保持當前PlacegetWhere),它可以通過goTo和廣播更改事件被修改爲EventBus。聽衆可以通過Delegate(其默認實現使用Window.confirm)要求用戶確認(PlaceChangeRequestEventsetMessage)。

建立在PlaceRequestChangeEventPlaceChangeEvent之上的是活動。您可以有幾個ActivityManager,每個都有其ActivityMapper顯示區域,每個顯示相同給定/當前位置的不同活動。

另一方面,根據goTo和上述事件是歷史PlaceHistoryHandler收聽雙方的事件,並且更新歷史(通過Historian)或更新地點(通過PlaceControllergoTo)。 PlaceHistoryMapper映射在兩個世界之間。 HistorianDefaultHistorian)的默認實現使用com.google.gwt.user.client.Historycom.google.gwt.user.client.Window#addWindowClosingHandler。您可以提供您自己的實現,例如uses HTML5's pushState and onpopstate

參見: