package org.ovirt.engine.ui.uicommonweb.models.users;
import java.util.Collections;
import org.ovirt.engine.core.compat.*;
import org.ovirt.engine.ui.uicompat.*;
import org.ovirt.engine.core.common.businessentities.*;
import org.ovirt.engine.core.common.vdscommands.*;
import org.ovirt.engine.core.common.queries.*;
import org.ovirt.engine.core.common.action.*;
import org.ovirt.engine.ui.frontend.*;
import org.ovirt.engine.ui.uicommonweb.*;
import org.ovirt.engine.ui.uicommonweb.models.*;
import org.ovirt.engine.core.common.*;
import org.ovirt.engine.core.common.businessentities.*;
import org.ovirt.engine.ui.uicommonweb.*;
import org.ovirt.engine.ui.uicommonweb.models.*;
@SuppressWarnings("unused")
public class UserPermissionListModel extends SearchableListModel
{
private UICommand privateRemoveCommand;
public UICommand getRemoveCommand()
{
return privateRemoveCommand;
}
private void setRemoveCommand(UICommand value)
{
privateRemoveCommand = value;
}
public DbUser getEntity()
{
return (DbUser)((super.getEntity() instanceof DbUser) ? super.getEntity() : null);
}
public void setEntity(DbUser value)
{
super.setEntity(value);
}
public UserPermissionListModel()
{
setTitle("Permissions");
setRemoveCommand(new UICommand("Remove", this));
UpdateActionAvailability();
}
@Override
protected void OnEntityChanged()
{
super.OnEntityChanged();
getSearchCommand().Execute();
}
@Override
public void Search()
{
if (getEntity() != null)
{
super.Search();
}
}
@Override
protected void SyncSearch()
{
if (getEntity() == null)
{
return;
}
super.SyncSearch(VdcQueryType.GetPermissionsByAdElementId, new MultilevelAdministrationByAdElementIdParameters(getEntity().getuser_id()));
}
@Override
protected void AsyncSearch()
{
super.AsyncSearch();
setAsyncResult(Frontend.RegisterQuery(VdcQueryType.GetPermissionsByAdElementId, new MultilevelAdministrationByAdElementIdParameters(getEntity().getuser_id())));
setItems(getAsyncResult().getData());
}
public void remove()
{
if (getWindow() != null)
{
return;
}
ConfirmationModel model = new ConfirmationModel();
setWindow(model);
model.setTitle("Remove Permission");
model.setHashName("remove_permission");
model.setMessage("Permission");
java.util.ArrayList<String> list = new java.util.ArrayList<String>();
for (permissions a : Linq.<permissions>Cast(getSelectedItems()))
{
list.add("Role " + a.getRoleName() + " on User " + a.getOwnerName());
}
model.setItems(list);
UICommand tempVar = new UICommand("OnRemove", this);
tempVar.setTitle("OK");
tempVar.setIsDefault(true);
model.getCommands().add(tempVar);
UICommand tempVar2 = new UICommand("Cancel", this);
tempVar2.setTitle("Cancel");
tempVar2.setIsCancel(true);
model.getCommands().add(tempVar2);
}
private void OnRemove()
{
if (getSelectedItems() != null && getSelectedItems().size() > 0)
{
ConfirmationModel model = (ConfirmationModel)getWindow();
if (model.getProgress() != null)
{
return;
}
java.util.ArrayList<VdcActionParametersBase> list = new java.util.ArrayList<VdcActionParametersBase>();
for (Object perm : getSelectedItems())
{
PermissionsOperationsParametes tempVar = new PermissionsOperationsParametes();
tempVar.setPermission((permissions)perm);
list.add(tempVar);
}
model.StartProgress(null);
Frontend.RunMultipleAction(VdcActionType.RemovePermission, list,
new IFrontendMultipleActionAsyncCallback() {
@Override
public void Executed(FrontendMultipleActionAsyncResult result) {
ConfirmationModel localModel = (ConfirmationModel)result.getState();
localModel.StopProgress();
Cancel();
}
}, model);
}
else
{
Cancel();
}
}
public void Cancel()
{
setWindow(null);
}
@Override
protected void OnSelectedItemChanged()
{
super.OnSelectedItemChanged();
UpdateActionAvailability();
}
@Override
protected void SelectedItemsChanged()
{
super.SelectedItemsChanged();
UpdateActionAvailability();
}
private void UpdateActionAvailability()
{
boolean isInherited = false;
permissions p = (permissions)getSelectedItem();
if (p != null && getEntity() != null) {
isInherited = p.getad_element_id().equals(getEntity().getuser_id());
}
getRemoveCommand().setIsExecutionAllowed(isInherited && (getSelectedItem() != null
|| (getSelectedItems() != null && getSelectedItems().size() > 0)));
}
@Override
public void ExecuteCommand(UICommand command)
{
super.ExecuteCommand(command);
if (command == getRemoveCommand())
{
remove();
}
if (StringHelper.stringsEqual(command.getName(), "OnRemove"))
{
OnRemove();
}
if (StringHelper.stringsEqual(command.getName(), "Cancel"))
{
Cancel();
}
}
@Override
protected String getListName() {
return "UserPermissionListModel";
}
}