/* * Copyright 2011 ArcBees Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.gwtplatform.samples.nested.client.application.contact; import com.google.web.bindery.event.shared.EventBus; import com.gwtplatform.mvp.client.Presenter; import com.gwtplatform.mvp.client.View; import com.gwtplatform.mvp.client.annotations.ProxyEvent; import com.gwtplatform.mvp.client.presenter.slots.NestedSlot; import com.gwtplatform.mvp.client.proxy.NavigationEvent; import com.gwtplatform.mvp.client.proxy.Proxy; /** * The base class of {@link ContactPresenter}. The goal of this class is just to show that {@code @ProxyEvent} can be * used in base classes. See Issue 180. * * @param <Proxy_> The {@link Proxy} type. */ public abstract class ContactPresenterBase<Proxy_ extends Proxy<?>> extends Presenter<ContactPresenterBase.MyView, Proxy_> { private String navigationHistory = ""; /** * {@link ContactPresenter}'s view. */ public interface MyView extends View { void setNavigationHistory(String navigationHistory); } ContactPresenterBase( EventBus eventBus, MyView view, Proxy_ proxy, NestedSlot slot) { super(eventBus, view, proxy, slot); } /** * We keep track of the previously visited pages. * * @param event The {@link com.gwtplatform.mvp.client.proxy.LockInteractionEvent}. */ @ProxyEvent public void onNavigation(NavigationEvent event) { if (navigationHistory.length() > 0) { navigationHistory += ", "; } navigationHistory += event.getRequest().getNameToken(); getView().setNavigationHistory(navigationHistory); } }