package org.ovirt.engine.ui.common.widget.tab;
import com.google.gwt.event.shared.EventBus;
import com.gwtplatform.mvp.client.TabData;
/**
* Simple factory that abstracts from tab widget creation details.
*/
public abstract class TabFactory {
public static TabDefinition createTab(TabData tabData, AbstractTabPanel tabPanel, EventBus eventBus) {
if (tabData instanceof ModelBoundTabData) {
// Tab widget bound to UiCommon model
return new ModelBoundTab((ModelBoundTabData) tabData, tabPanel, eventBus);
} else if (tabData instanceof DynamicTabData) {
// Tab widget added dynamically during runtime
return new DynamicTab((DynamicTabData) tabData, tabPanel, eventBus);
} else {
// Fall back to default tab widget implementation
return new SimpleTab(tabData, tabPanel);
}
}
}