package org.ovirt.engine.ui.webadmin.section.main.presenter.popup.configure;
import org.ovirt.engine.core.common.mode.ApplicationMode;
import org.ovirt.engine.ui.common.presenter.AbstractPopupPresenterWidget;
import org.ovirt.engine.ui.uicommonweb.models.ApplicationModeHelper;
import org.ovirt.engine.ui.webadmin.uicommon.model.ClusterPolicyClusterModelProvider;
import org.ovirt.engine.ui.webadmin.uicommon.model.ClusterPolicyModelProvider;
import org.ovirt.engine.ui.webadmin.uicommon.model.InstanceTypeModelProvider;
import org.ovirt.engine.ui.webadmin.uicommon.model.RoleModelProvider;
import org.ovirt.engine.ui.webadmin.uicommon.model.RolePermissionModelProvider;
import org.ovirt.engine.ui.webadmin.uicommon.model.SharedMacPoolModelProvider;
import org.ovirt.engine.ui.webadmin.uicommon.model.SystemPermissionModelProvider;
import com.google.gwt.event.shared.EventBus;
import com.google.inject.Inject;
/**
* Implements the WebAdmin configure dialog.
*/
public class ConfigurePopupPresenterWidget extends AbstractPopupPresenterWidget<ConfigurePopupPresenterWidget.ViewDef> {
public interface ViewDef extends AbstractPopupPresenterWidget.ViewDef {
void hideClusterPolicyTab();
}
private RoleModelProvider roleModelProvider;
private RolePermissionModelProvider permissionModelProvider;
private SystemPermissionModelProvider systemPermissionModelProvider;
private ClusterPolicyModelProvider clusterPolicyModelProvider;
private ClusterPolicyClusterModelProvider clusterPolicyClusterModelProvider;
private InstanceTypeModelProvider instanceTypeModelProvider;
private SharedMacPoolModelProvider sharedMacPoolModelProvider;
@Inject
public ConfigurePopupPresenterWidget(EventBus eventBus, ViewDef view,
RoleModelProvider roleModelProvider,
RolePermissionModelProvider permissionModelProvider,
SystemPermissionModelProvider systemPermissionModelProvider,
ClusterPolicyModelProvider clusterPolicyModelProvider,
ClusterPolicyClusterModelProvider clusterPolicyClusterModelProvider,
InstanceTypeModelProvider instanceTypeModelProvider,
SharedMacPoolModelProvider sharedMacPoolModelProvider) {
super(eventBus, view);
this.roleModelProvider = roleModelProvider;
this.permissionModelProvider = permissionModelProvider;
this.systemPermissionModelProvider = systemPermissionModelProvider;
this.clusterPolicyModelProvider = clusterPolicyModelProvider;
this.clusterPolicyClusterModelProvider = clusterPolicyClusterModelProvider;
this.instanceTypeModelProvider = instanceTypeModelProvider;
this.sharedMacPoolModelProvider = sharedMacPoolModelProvider;
}
@Override
protected void onReveal() {
super.onReveal();
roleModelProvider.getModel().search();
systemPermissionModelProvider.refresh();
systemPermissionModelProvider.getModel().search();
if (ApplicationModeHelper.isModeSupported(ApplicationMode.VirtOnly)) {
clusterPolicyModelProvider.getModel().search();
} else {
getView().hideClusterPolicyTab();
}
instanceTypeModelProvider.getModel().search();
sharedMacPoolModelProvider.getModel().search();
}
@Override
protected void onHide() {
super.onHide();
roleModelProvider.getModel().stopRefresh();
permissionModelProvider.getModel().stopRefresh();
systemPermissionModelProvider.getModel().stopRefresh();
clusterPolicyModelProvider.getModel().stopRefresh();
clusterPolicyClusterModelProvider.getModel().stopRefresh();
instanceTypeModelProvider.getModel().stopRefresh();
sharedMacPoolModelProvider.getModel().stopRefresh();
}
}