
com.jpattern.gwt.client.navigationevent.ANavigationEvent Maven / Gradle / Ivy
package com.jpattern.gwt.client.navigationevent;
import java.util.Map;
import com.jpattern.gwt.client.ApplicationProxy;
import com.jpattern.gwt.client.IApplicationProvider;
import com.jpattern.gwt.client.presenter.IPresenter;
/**
*
* @author Francesco Cina
*
* 01/ago/2011
*/
public abstract class ANavigationEvent implements INavigationEvent {
private IApplicationProvider provider;
private final String eventName;
private IPresenter presenter;
public ANavigationEvent(String eventName) {
this(eventName, ApplicationProxy.getInstance().getApplicationProvider());
}
public ANavigationEvent(String eventName, IApplicationProvider provider) {
this.eventName = eventName;
this.provider = provider;
}
@Override
public final void notifyNavigationEvent(IPresenter parentPresenter, Map queryStringValues, String[] childrenEvent, boolean registerEvent) {
getProvider().getHistoryService().getHistoryManager().registerHistory(parentPresenter, queryStringValues, childrenEvent, registerEvent, this);
}
@Override
public IPresenter launch(IPresenter parentPresenter, Map queryStringValues, String[] childrenEvent) {
IPresenter presenter = getPresenter(queryStringValues);
presenter.launchNavigationEvent(childrenEvent, false, queryStringValues);
initPresenter(parentPresenter, presenter);
return presenter;
}
private void initPresenter(IPresenter parentPresenter, IPresenter presenter) {
presenter.setParent(parentPresenter);
presenter.initPresenter();
parentPresenter.getView().onNavigationEvent(getName());
}
private IPresenter getPresenter(Map queryStringValues) {
presenter = exec(queryStringValues);
presenter.setApplicationProvider(getProvider());
return presenter;
}
/**
* Return the newly created presenter
* @return
*/
protected abstract IPresenter exec(Map queryStringValues);
protected IApplicationProvider getProvider() {
if (provider == null) {
provider = ApplicationProxy.getInstance().getApplicationProvider();
}
return provider;
}
public final String getName() {
return eventName;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy