package org.ovirt.engine.ui.webadmin.section.main.presenter; import org.ovirt.engine.ui.common.auth.LoggedInGatekeeper; import org.ovirt.engine.ui.common.widget.Align; import org.ovirt.engine.ui.uicommonweb.models.CommonModel; import com.google.gwt.event.shared.EventBus; import com.google.gwt.event.shared.GwtEvent; import com.google.gwt.event.shared.GwtEvent.Type; import com.google.gwt.event.shared.HasHandlers; import com.google.inject.Inject; import com.google.inject.Provider; import com.gwtplatform.mvp.client.ChangeTabHandler; import com.gwtplatform.mvp.client.RequestTabsHandler; import com.gwtplatform.mvp.client.proxy.PlaceManager; import com.gwtplatform.mvp.client.proxy.RevealContentHandler; public class DynamicUrlContentTabProxyFactory implements HasHandlers { private final PlaceManager placeManager; private final EventBus eventBus; private final LoggedInGatekeeper gatekeeper; private final Provider<DynamicUrlContentTabPresenter.ViewDef> viewProvider; private final Provider<CommonModel> commonModelProvider; @Inject public DynamicUrlContentTabProxyFactory(PlaceManager placeManager, EventBus eventBus, LoggedInGatekeeper gatekeeper, Provider<DynamicUrlContentTabPresenter.ViewDef> viewProvider, Provider<CommonModel> commonModelProvider) { this.placeManager = placeManager; this.eventBus = eventBus; this.gatekeeper = gatekeeper; this.viewProvider = viewProvider; this.commonModelProvider = commonModelProvider; } public DynamicUrlContentTabProxy create( Type<RequestTabsHandler> requestTabsEventType, Type<ChangeTabHandler> changeTabEventType, Type<RevealContentHandler<?>> slot, String label, float priority, String historyToken, boolean isMainTab, String contentUrl, Align align, String searchPrefix) { if (isMainTab) { DynamicMainTabAddedEvent.fire(this, historyToken, searchPrefix != null ? searchPrefix : label.replace(":", "")); //$NON-NLS-1$ //$NON-NLS-2$ } return new DynamicUrlContentTabProxy( placeManager, eventBus, gatekeeper, requestTabsEventType, changeTabEventType, slot, viewProvider, label, priority, historyToken, isMainTab, contentUrl, align, commonModelProvider); } @Override public void fireEvent(GwtEvent<?> event) { eventBus.fireEvent(event); } }