package org.ovirt.engine.ui.webadmin.widget.tab;
import org.ovirt.engine.ui.common.widget.tab.AbstractTabPanel;
import org.ovirt.engine.ui.common.widget.tab.TabDefinition;
import org.ovirt.engine.ui.common.widget.tab.TabFactory;
import org.ovirt.engine.ui.common.widget.tab.TabWidgetHandler;
import org.ovirt.engine.ui.webadmin.gin.ClientGinjectorProvider;
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.Widget;
import com.gwtplatform.mvp.client.HasUiHandlers;
import com.gwtplatform.mvp.client.TabData;
public class SimpleTabPanel extends AbstractTabPanel implements HasUiHandlers<TabWidgetHandler> {
interface WidgetUiBinder extends UiBinder<Widget, SimpleTabPanel> {
WidgetUiBinder uiBinder = GWT.create(WidgetUiBinder.class);
}
@UiField
FlowPanel tabContainer;
TabWidgetHandler uiHandlers;
public SimpleTabPanel() {
initWidget();
}
protected void initWidget() {
initWidget(WidgetUiBinder.uiBinder.createAndBindUi(this));
}
public void setTabBar(IsWidget widget) {
tabContainer.clear();
if (widget != null) {
tabContainer.add(widget);
}
}
@Override
protected TabDefinition createNewTab(TabData tabData) {
return TabFactory.createTab(tabData, this, ClientGinjectorProvider.getEventBus());
}
@Override
public void setUiHandlers(TabWidgetHandler uiHandlers) {
this.uiHandlers = uiHandlers;
}
@Override
public void addTabWidget(IsWidget tabWidget, int index) {
if (uiHandlers != null) {
uiHandlers.addTabWidget(tabWidget, index);
}
}
@Override
public void removeTabWidget(IsWidget tabWidget) {
if (uiHandlers != null) {
uiHandlers.removeTabWidget(tabWidget);
}
}
}