package org.ovirt.engine.ui.userportal.section.main.presenter;
import org.ovirt.engine.ui.common.auth.CurrentUser;
import org.ovirt.engine.ui.common.presenter.AbstractHeaderPresenterWidget;
import org.ovirt.engine.ui.common.uicommon.model.OptionsProvider;
import org.ovirt.engine.ui.common.widget.tab.TabWidgetHandler;
import org.ovirt.engine.ui.uicommonweb.auth.CurrentUserRole;
import org.ovirt.engine.ui.userportal.ApplicationDynamicMessages;
import org.ovirt.engine.ui.userportal.auth.UserPortalCurrentUserRole;
import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.event.shared.EventBus;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.gwtplatform.mvp.client.proxy.RevealRootPopupContentEvent;
public class HeaderPresenterWidget extends AbstractHeaderPresenterWidget<HeaderPresenterWidget.ViewDef> implements TabWidgetHandler {
public interface ViewDef extends AbstractHeaderPresenterWidget.ViewDef, TabWidgetHandler {
HasClickHandlers getAboutLink();
void setMainTabPanelVisible(boolean visible);
}
private final UserPortalCurrentUserRole userRole;
private final Provider<AboutPopupPresenterWidget> aboutPopupProvider;
@Inject
public HeaderPresenterWidget(EventBus eventBus, ViewDef view, CurrentUser user,
CurrentUserRole userRole, Provider<AboutPopupPresenterWidget> aboutPopupProvider,
OptionsProvider optionsProvider, ApplicationDynamicMessages dynamicMessages) {
super(eventBus, view, user, optionsProvider, dynamicMessages.applicationDocTitle(), dynamicMessages.guideUrl());
this.userRole = (UserPortalCurrentUserRole) userRole;
this.aboutPopupProvider = aboutPopupProvider;
}
@Override
public void addTabWidget(IsWidget tabWidget, int index) {
getView().addTabWidget(tabWidget, index);
}
@Override
public void removeTabWidget(IsWidget tabWidget) {
getView().removeTabWidget(tabWidget);
}
@Override
protected void onBind() {
super.onBind();
registerHandler(getView().getAboutLink().addClickHandler(event ->
RevealRootPopupContentEvent.fire(HeaderPresenterWidget.this, aboutPopupProvider.get())));
}
@Override
protected void onReset() {
super.onReset();
getView().setMainTabPanelVisible(userRole.isExtendedUser());
}
}