package de.tud.kom.socom.web.client.events;
import com.google.gwt.event.shared.GwtEvent;
import de.tud.kom.socom.web.client.HistoryToken;
import de.tud.kom.socom.web.client.baseelements.Presenter;
import de.tud.kom.socom.web.client.eventhandler.ViewChangeWithinPresenterEventHandler;
/** thrown BEFORE the Presenter currently loaded may change it's display/state due to the changed History event thrown.
* This event is basically useful for the currently loaded Presenter.
* Other components should not subscribe (i.e. un-subscribe) as long as they are not the current Presenter.
* The current Presenter can use this to listen to changes/clicks of his own Components that cause a HistoryToken change
* (all Hyperlinks etc.)
*
* @author jkonert
*
*/
public class ViewChangeWithinPresenterEvent extends GwtEvent<ViewChangeWithinPresenterEventHandler> {
public static final Type<ViewChangeWithinPresenterEventHandler> TYPE = new Type<ViewChangeWithinPresenterEventHandler>();
private Presenter currentPresenter;
private HistoryToken oldHistoryValue;
private HistoryToken newHistoryValue;
public ViewChangeWithinPresenterEvent(Presenter currentPresenter, HistoryToken oldHistoryValue, HistoryToken newHistoryValue)
{
this.currentPresenter = currentPresenter;
this.oldHistoryValue = oldHistoryValue;
this.newHistoryValue = newHistoryValue;
}
public Presenter getCurrentPresenter() {
return currentPresenter;
}
public HistoryToken getOldHistoryValue() {
return oldHistoryValue;
}
public HistoryToken getNewHistoryValue() {
return newHistoryValue;
}
@Override
public Type<ViewChangeWithinPresenterEventHandler> getAssociatedType() {
return TYPE;
}
@Override
protected void dispatch(ViewChangeWithinPresenterEventHandler handler) {
handler.onViewChangeWithinPresenterEvent(this);
}
}