package org.ovirt.engine.ui.userportal.client.components;
import com.google.gwt.core.client.GWT;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.VLayout;
public class TabPanel extends VLayout {
private static final int TAB_BAR_THICKNESS = 27;
private static final int TABS_MARGIN = 5;
private HLayout tabsSection;
private HLayout viewSection;
private Tab selectedTab;
public TabPanel() {
tabsSection = new HLayout(TABS_MARGIN);
tabsSection.setWidth100();
tabsSection.setHeight(TAB_BAR_THICKNESS);
tabsSection.setLayoutLeftMargin(5);
tabsSection.setStyleName("tabPanelTabsSection");
viewSection = new HLayout();
viewSection.setWidth100();
viewSection.setHeight100();
viewSection.setBorder("1px solid #C0C3C7");
viewSection.setZIndex(-1);
setMembersMargin(-1);
addMember(tabsSection);
addMember(viewSection);
}
public void addTab(Tab tab) {
addTab(tab, false);
}
public void addTab(final Tab tab, boolean isHidden) {
tab.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
GWT.log("Active detail tab changed to " + tab.getTitle() + " by tab click");
select(tab);
}
});
tabsSection.addMember(tab);
tab.getPane().hide();
viewSection.addChild(tab.getPane());
if (isHidden)
hideTab(tab);
else
if (selectedTab == null)
select(tab);
}
public Tab getSelectedTab() {
return selectedTab;
}
public void select(Tab tab) {
if (selectedTab != null) {
if (selectedTab.equals(tab))
return;
selectedTab.getPane().hide();
selectedTab.deselect();
}
selectedTab = tab;
selectedTab.select();
tab.getPane().show();
}
public void hideTab(Tab tab) {
tab.hide();
}
public void showTab(Tab tab) {
tab.show();
}
}