package org.ovirt.engine.ui.webadmin.section.main.view; import org.ovirt.engine.ui.webadmin.ApplicationConstants; import org.ovirt.engine.ui.webadmin.idhandler.ElementIdHandler; import org.ovirt.engine.ui.webadmin.idhandler.WithElementId; import org.ovirt.engine.ui.webadmin.section.main.presenter.HeaderPresenterWidget; import org.ovirt.engine.ui.webadmin.view.AbstractSingleSlotView; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.event.dom.client.HasClickHandlers; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.Anchor; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.HTMLPanel; import com.google.gwt.user.client.ui.InlineLabel; import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.user.client.ui.Widget; import com.google.inject.Inject; public class HeaderView extends AbstractSingleSlotView implements HeaderPresenterWidget.ViewDef { interface ViewUiBinder extends UiBinder<Widget, HeaderView> { ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class); } interface ViewIdHandler extends ElementIdHandler<HeaderView> { ViewIdHandler idHandler = GWT.create(ViewIdHandler.class); } private static final int mainTabBarInitialOffset = 250; @UiField @WithElementId InlineLabel userNameLabel; @UiField(provided = true) final Anchor logoutLink; @UiField(provided = true) final Anchor configureLink; @UiField(provided = true) final Anchor aboutLink; @UiField(provided = true) final Anchor guideLink; @UiField SimplePanel searchPanelContainer; @UiField HTMLPanel mainTabBarPanel; @UiField FlowPanel mainTabContainer; @Inject public HeaderView(ApplicationConstants constants) { this.configureLink = new Anchor(constants.configureLinkLabel()); this.logoutLink = new Anchor(constants.logoutLinkLabel()); this.aboutLink = new Anchor(constants.aboutLinkLabel()); this.guideLink = new Anchor(constants.guideLinkLabel()); initWidget(ViewUiBinder.uiBinder.createAndBindUi(this)); mainTabBarPanel.getElement().getStyle().setZIndex(1); // Ensure proper main tab bar position setMainTabBarOffset(mainTabBarInitialOffset); ViewIdHandler.idHandler.generateAndSetIds(this); } @Override protected Object getContentSlot() { return HeaderPresenterWidget.TYPE_SetSearchPanel; } @Override protected void setContent(Widget content) { setPanelContent(searchPanelContainer, content); } @Override public void addTabWidget(Widget tabWidget, int index) { mainTabContainer.insert(tabWidget, index); } @Override public void removeTabWidget(Widget tabWidget) { mainTabContainer.getElement().removeChild(tabWidget.getElement()); } @Override public void setMainTabBarOffset(int left) { mainTabBarPanel.getElement().getStyle().setLeft(left, Unit.PX); mainTabBarPanel.getElement().getStyle().setWidth(Window.getClientWidth() - left, Unit.PX); } @Override public void setUserNameLabel(String userName) { userNameLabel.setText(userName); } @Override public HasClickHandlers getLogoutLink() { return logoutLink; } @Override public HasClickHandlers getAboutLink() { return aboutLink; } @Override public HasClickHandlers getGuideLink() { return guideLink; } @Override public HasClickHandlers getConfigureLink() { return configureLink; } }