package org.ovirt.engine.ui.userportal.client.views.extended.templates.components;
import java.util.HashMap;
import java.util.Map;
import org.ovirt.engine.core.compat.Event;
import org.ovirt.engine.core.compat.EventArgs;
import org.ovirt.engine.core.compat.IEventListener;
import org.ovirt.engine.core.compat.PropertyChangedEventArgs;
import org.ovirt.engine.ui.uicommon.models.EntityModel;
import org.ovirt.engine.ui.uicommon.models.userportal.UserPortalTemplateListModel;
import org.ovirt.engine.ui.userportal.client.binders.SubTabView;
import org.ovirt.engine.ui.userportal.client.components.GridController;
import org.ovirt.engine.ui.userportal.client.components.Tab;
import org.ovirt.engine.ui.userportal.client.components.TabPanel;
public class TemplateItemSubTabs extends TabPanel {
private Map<EntityModel,DetailTab> tabsToModels = new HashMap<EntityModel, DetailTab>();
UserPortalTemplateListModel tlm;
public TemplateItemSubTabs(final UserPortalTemplateListModel tlm, final GridController gridController) {
setHeight(180);
hide();
this.tlm = tlm;
tlm.getPropertyChangedEvent().addListener(new IEventListener() {
@Override
public void eventRaised(Event ev, Object sender, EventArgs args) {
PropertyChangedEventArgs pargs = (PropertyChangedEventArgs)args;
if (pargs.PropertyName.equals("DetailModels")) {
show();
for (EntityModel model : tlm.getDetailModels()) {
if (!(model.getTitle().equals("Storage") || model.getTitle().equals("Virtual Machines")))
addTab(new DetailTab(new SubTabView(model, gridController), model));
}
}
}
});
}
class DetailTab extends Tab {
EntityModel model;
public DetailTab(SubTabView subTabView, EntityModel model) {
super();
setTitle(model.getTitle());
tabsToModels.put(model, this);
this.model = model;
setPane(subTabView.getLayout());
}
@Override
public void select() {
super.select();
tlm.setActiveDetailModel(model);
}
}
}