package org.ovirt.engine.ui.webadmin.section.main.presenter.popup.configure; import org.ovirt.engine.core.common.businessentities.permissions; import org.ovirt.engine.core.common.businessentities.roles; import org.ovirt.engine.ui.webadmin.gin.ClientGinjector; import org.ovirt.engine.ui.webadmin.uicommon.model.RoleModelProvider; import org.ovirt.engine.ui.webadmin.uicommon.model.RolePermissionModelProvider; import org.ovirt.engine.ui.webadmin.widget.table.AbstractActionTable; import org.ovirt.engine.ui.webadmin.widget.table.SimpleActionTable; import com.google.gwt.event.shared.EventBus; import com.google.gwt.view.client.SelectionChangeEvent; import com.google.inject.Inject; import com.gwtplatform.mvp.client.PresenterWidget; import com.gwtplatform.mvp.client.View; public class RolePresenterWidget extends PresenterWidget<RolePresenterWidget.ViewDef> { public interface ViewDef extends View { void setRoleModelProvider(RoleModelProvider modelProvider); SimpleActionTable<roles> getRoleTable(); void setSubTabVisibility(boolean b); void setRolePermissionModelProvider(RolePermissionModelProvider permissionModelProvider); AbstractActionTable<permissions> getRolePermissionTable(); } private final RoleModelProvider roleModelProvider; private final RolePermissionModelProvider permissionModelProvider; @Inject public RolePresenterWidget(EventBus eventBus, ViewDef view, ClientGinjector ginjector, RoleModelProvider modelProvider, RolePermissionModelProvider permissionModelProvider) { super(eventBus, view); this.roleModelProvider = modelProvider; this.permissionModelProvider = permissionModelProvider; } @Override protected void onBind() { super.onBind(); getView().setRoleModelProvider(roleModelProvider); getView().setRolePermissionModelProvider(permissionModelProvider); registerHandler(getView().getRoleTable() .getSelectionModel() .addSelectionChangeHandler(new SelectionChangeEvent.Handler() { @Override public void onSelectionChange(SelectionChangeEvent event) { roleModelProvider.setSelectedItems(getView().getRoleTable() .getSelectionModel().getSelectedList()); if (getView().getRoleTable() .getSelectionModel().getSelectedList().size() > 0) { getView().setSubTabVisibility(true); } else { getView().setSubTabVisibility(false); } } })); registerHandler(getView().getRolePermissionTable() .getSelectionModel() .addSelectionChangeHandler(new SelectionChangeEvent.Handler() { @Override public void onSelectionChange(SelectionChangeEvent event) { permissionModelProvider.setSelectedItems(getView().getRolePermissionTable() .getSelectionModel().getSelectedList()); } })); } }