All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jpattern.gwt.client.navigationevent.RootNavigationEvent Maven / Gradle / Ivy

package com.jpattern.gwt.client.navigationevent;

import java.util.HashMap;
import java.util.Map;

import com.google.gwt.user.client.ui.HasWidgets;
import com.jpattern.gwt.client.IApplicationProvider;
import com.jpattern.gwt.client.history.IHistoryManager;
import com.jpattern.gwt.client.logger.ILogger;
import com.jpattern.gwt.client.presenter.APresenter;
import com.jpattern.gwt.client.presenter.IPresenter;
import com.jpattern.gwt.client.presenter.NullHierarchyStrategy;
import com.jpattern.gwt.client.presenter.NullPresenter;
import com.jpattern.gwt.client.view.IView;
import com.jpattern.gwt.client.view.NullShowViewStrategy;
import com.jpattern.gwt.client.view.NullView;

/**
 * 
 * @author Francesco Cina
 *
 * 03/ago/2011
 */
public class RootNavigationEvent extends ANavigationEvent {

	private final INavigationEvent mainNavigationEvent;
	private final HasWidgets target;
	public RootNavigationEvent(INavigationEvent mainNavigationEvent, HasWidgets target ) {
		super("");
		this.mainNavigationEvent = mainNavigationEvent;
		this.target = target;
	}
	
	public RootNavigationEvent(INavigationEvent mainNavigationEvent, HasWidgets target, IApplicationProvider applicationProvider) {
		super("" , applicationProvider);
		this.mainNavigationEvent = mainNavigationEvent;
		this.target = target;
	}
	
	/**
	 * Start the client GWT application
	 */
	public IPresenter startApplication() {
		return launch(new NullPresenter(), new HashMap(), new String[0]);
	}

	@Override
	protected IPresenter exec(Map queryStringValues) {
		ILogger logger = getProvider().getLoggerService().getLogger(getClass());
		logger.debug("exec", "root presenter generated");
		IPresenter rootPresenter = new RootPresenter(this);
		rootPresenter.setApplicationProvider(getProvider());
		IHistoryManager historyManager = getProvider().getHistoryService().getHistoryManager();
		historyManager.setRootPresenter(rootPresenter);
		historyManager.updateState();
		return rootPresenter;
	}
	
	class RootPresenter extends APresenter {
		
		ILogger logger;

		public RootPresenter(INavigationEvent navigationEvent) {
			super(new NullShowViewStrategy(new NullView()), navigationEvent);
			setHierarchyStrategy(new NullHierarchyStrategy());
			registerNavigationEvent(mainNavigationEvent, target, new NullNavigationEventCallback());
			ready();
		}

		@Override
		public void preRender() {
		}

		@Override
		public void init() {
		}

		@Override
		public void onUnloadPresenter() {
		}
	}
	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy