package org.ovirt.engine.ui.userportal.section.main.presenter.tab.extended;
import java.util.List;
import org.ovirt.engine.core.common.businessentities.VM;
import org.ovirt.engine.ui.common.widget.HasEditorDriver;
import org.ovirt.engine.ui.uicommonweb.models.resources.ResourcesModel;
import org.ovirt.engine.ui.uicommonweb.place.UserPortalApplicationPlaces;
import org.ovirt.engine.ui.userportal.ApplicationConstants;
import org.ovirt.engine.ui.userportal.gin.AssetProvider;
import org.ovirt.engine.ui.userportal.section.main.presenter.AbstractModelActivationPresenter;
import org.ovirt.engine.ui.userportal.section.main.presenter.tab.MainTabExtendedPresenter;
import org.ovirt.engine.ui.userportal.uicommon.model.UserPortalDataBoundModelProvider;
import org.ovirt.engine.ui.userportal.uicommon.model.UserPortalDataBoundModelProvider.DataChangeListener;
import com.google.gwt.event.shared.EventBus;
import com.google.inject.Inject;
import com.gwtplatform.mvp.client.TabData;
import com.gwtplatform.mvp.client.TabDataBasic;
import com.gwtplatform.mvp.client.View;
import com.gwtplatform.mvp.client.annotations.NameToken;
import com.gwtplatform.mvp.client.annotations.ProxyCodeSplit;
import com.gwtplatform.mvp.client.annotations.TabInfo;
import com.gwtplatform.mvp.client.proxy.TabContentProxyPlace;
public class SideTabExtendedResourcePresenter extends AbstractModelActivationPresenter<VM, ResourcesModel,
SideTabExtendedResourcePresenter.ViewDef, SideTabExtendedResourcePresenter.ProxyDef> implements DataChangeListener<VM> {
private static final ApplicationConstants constants = AssetProvider.getConstants();
private final UserPortalDataBoundModelProvider<VM, ResourcesModel> modelProvider;
@ProxyCodeSplit
@NameToken(UserPortalApplicationPlaces.extendedResourceSideTabPlace)
public interface ProxyDef extends TabContentProxyPlace<SideTabExtendedResourcePresenter> {
}
public interface ViewDef extends View, HasEditorDriver<ResourcesModel> {
}
@TabInfo(container = MainTabExtendedPresenter.class)
static TabData getTabData() {
return new TabDataBasic(constants.extendedResourceSideTabLabel(), 2);
}
@Inject
public SideTabExtendedResourcePresenter(EventBus eventBus, ViewDef view, ProxyDef proxy,
UserPortalDataBoundModelProvider<VM, ResourcesModel> modelProvider) {
super(eventBus, view, proxy, modelProvider, MainTabExtendedPresenter.TYPE_SetTabContent);
this.modelProvider = modelProvider;
modelProvider.setDataChangeListener(this);
}
@Override
public void onDataChange(List<VM> items) {
getView().edit(modelProvider.getModel());
}
}