package org.ovirt.engine.ui.webadmin.section.main.presenter; import org.ovirt.engine.ui.uicommonweb.models.CommonModel; import org.ovirt.engine.ui.webadmin.section.main.presenter.SetDynamicTabContentUrlEvent.SetDynamicTabContentUrlHandler; import com.google.gwt.event.shared.EventBus; import com.google.gwt.event.shared.GwtEvent.Type; import com.google.inject.Provider; import com.gwtplatform.mvp.client.View; import com.gwtplatform.mvp.client.proxy.PlaceManager; import com.gwtplatform.mvp.client.proxy.RevealContentHandler; public class DynamicUrlContentTabPresenter extends WebAdminDynamicTabPresenter<DynamicUrlContentTabPresenter.ViewDef, DynamicUrlContentTabProxy> implements SetDynamicTabContentUrlHandler { public interface ViewDef extends View { void setContentUrl(String url); } private final boolean isMainTab; private final Provider<CommonModel> commonModelProvider; public DynamicUrlContentTabPresenter(EventBus eventBus, ViewDef view, DynamicUrlContentTabProxy proxy, PlaceManager placeManager, Type<RevealContentHandler<?>> slot, boolean isMainTab, String contentUrl, Provider<CommonModel> commonModelProvider) { super(eventBus, view, proxy, placeManager, slot); this.isMainTab = isMainTab; this.commonModelProvider = commonModelProvider; setContentUrl(contentUrl); } @Override protected void onBind() { super.onBind(); registerHandler(getEventBus().addHandler(SetDynamicTabContentUrlEvent.getType(), this)); } @Override public void onSetDynamicTabContentUrl(SetDynamicTabContentUrlEvent event) { if (getProxy().getTargetHistoryToken().equals(event.getHistoryToken())) { setContentUrl(event.getContentUrl()); } } @Override protected void onReveal() { super.onReveal(); if (isMainTab) { commonModelProvider.get().setPluginTabSelected(getProxy().getTargetHistoryToken()); } } @Override protected boolean isMainTab() { return isMainTab; } public void setContentUrl(String contentUrl) { getView().setContentUrl(contentUrl); } }