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.queries.*;
import org.ovirt.engine.core.common.interfaces.*;
import org.ovirt.engine.core.common.businessentities.*;
import org.ovirt.engine.ui.uicommonweb.dataprovider.*;
import org.ovirt.engine.ui.uicompat.*;
import org.ovirt.engine.ui.uicommonweb.*;
import org.ovirt.engine.ui.uicommonweb.models.*;
@SuppressWarnings("unused")
public class AdElementListModel extends SearchableListModel
{
private Iterable privateExcludeItems;
public Iterable getExcludeItems()
{
return privateExcludeItems;
}
public void setExcludeItems(Iterable value)
{
privateExcludeItems = value;
}
private ListModel privateDomain;
public ListModel getDomain()
{
return privateDomain;
}
private void setDomain(ListModel value)
{
privateDomain = value;
}
private ListModel privateRole;
public ListModel getRole()
{
return privateRole;
}
private void setRole(ListModel value)
{
privateRole = value;
}
private EntityModel privateSelectAll;
public EntityModel getSelectAll()
{
return privateSelectAll;
}
public void setSelectAll(EntityModel value)
{
privateSelectAll = value;
}
//This is required for the webadmin.
private EntityModel privateIsRoleListHiddenModel;
public EntityModel getIsRoleListHiddenModel()
{
return privateIsRoleListHiddenModel;
}
private void setIsRoleListHiddenModel(EntityModel value)
{
privateIsRoleListHiddenModel = value;
}
private EntityModel privateIsEveryoneSelectionHidden;
public EntityModel getIsEveryoneSelectionHidden()
{
return privateIsEveryoneSelectionHidden;
}
private void setIsEveryoneSelectionHidden(EntityModel value)
{
privateIsEveryoneSelectionHidden = value;
}
private boolean isRoleListHidden;
public boolean getIsRoleListHidden()
{
return isEveryoneSelected;
}
public void setIsRoleListHidden(boolean value)
{
if (isRoleListHidden != value)
{
isRoleListHidden = value;
OnPropertyChanged(new PropertyChangedEventArgs("IsRoleListHidden"));
}
if (getIsRoleListHiddenModel() != null)
{
getIsRoleListHiddenModel().setEntity(value);
}
}
private boolean isEveryoneSelected;
public boolean getIsEveryoneSelected()
{
return isEveryoneSelected;
}
public void setIsEveryoneSelected(boolean value)
{
if (isEveryoneSelected != value)
{
isEveryoneSelected = value;
OnPropertyChanged(new PropertyChangedEventArgs("IsEveryoneSelected"));
}
}
public AdElementListModel()
{
setRole(new ListModel());
setDomain(new ListModel());
setSelectAll(new EntityModel());
getSelectAll().setEntity(false);
getSelectAll().getEntityChangedEvent().addListener(this);
setIsRoleListHiddenModel(new EntityModel());
getIsRoleListHiddenModel().setEntity(false);
setIsEveryoneSelectionHidden(new EntityModel());
getIsEveryoneSelectionHidden().setEntity(false);
setIsTimerDisabled(true);
AsyncQuery _asyncQuery = new AsyncQuery();
_asyncQuery.setModel(this);
_asyncQuery.asyncCallback = new INewAsyncCallback() { public void OnSuccess(Object model, Object result)
{
AdElementListModel adElementListModel = (AdElementListModel)model;
java.util.ArrayList<String> domains = (java.util.ArrayList<String>)result;
adElementListModel.getDomain().setItems(domains);
adElementListModel.getDomain().setSelectedItem(Linq.FirstOrDefault(domains));
AsyncQuery _asyncQuery1 = new AsyncQuery();
_asyncQuery1.setModel(adElementListModel);
_asyncQuery1.asyncCallback = new INewAsyncCallback() { public void OnSuccess(Object model1, Object result1)
{
AdElementListModel adElementListModel1 = (AdElementListModel)model1;
roles roleValue = null;
boolean first = true;
java.util.ArrayList<roles> roles = (java.util.ArrayList<roles>)result1;
for (roles r : roles)
{
if (first)
{
roleValue = r;
first = false;
}
if (r.getId() != null && r.getId().equals(new Guid("00000000-0000-0000-0001-000000000001")))
{
roleValue = r;
break;
}
}
adElementListModel1.getRole().setItems(roles);
adElementListModel1.getRole().setSelectedItem(roleValue);
}};
AsyncDataProvider.GetRoleList(_asyncQuery1);
}};
AsyncDataProvider.GetDomainList(_asyncQuery, false);
}
@Override
protected void SyncSearch()
{
super.SyncSearch();
// var exclude = ExcludeItems != null ? ExcludeItems.Cast<DbUser>() : new List<DbUser>();
String domain = (String) getDomain().getSelectedItem();
AsyncQuery _asyncQuery = new AsyncQuery();
_asyncQuery.setModel(this);
_asyncQuery.asyncCallback = new INewAsyncCallback() { public void OnSuccess(Object model, Object ReturnValue)
{
AdElementListModel adElementListModel = (AdElementListModel) model;
java.util.HashSet<Guid> excludeUsers = new java.util.HashSet<Guid>();
if (getExcludeItems() != null)
{
for (Object item : getExcludeItems())
{
DbUser a = (DbUser) item;
excludeUsers.add(a.getuser_id());
}
}
setusers(new java.util.ArrayList<EntityModel>());
for (IVdcQueryable item : (java.util.ArrayList<IVdcQueryable>)((VdcQueryReturnValue)ReturnValue).getReturnValue())
{
AdUser a = (AdUser) item;
if (!excludeUsers.contains(a.getUserId()))
{
DbUser tempVar = new DbUser();
tempVar.setuser_id(a.getUserId());
tempVar.setIsGroup(false);
tempVar.setname(a.getName());
tempVar.setsurname(a.getSurName());
tempVar.setusername(a.getUserName());
tempVar.setdomain(a.getDomainControler());
DbUser user = tempVar;
EntityModel tempVar2 = new EntityModel();
tempVar2.setEntity(user);
getusers().add(tempVar2);
}
}
OnUserAndAdGroupsLoaded(adElementListModel);
}};
Frontend.RunQuery(VdcQueryType.Search, new SearchParameters("ADUSER@" + domain + ": allnames=" + (StringHelper.isNullOrEmpty(getSearchString()) ? "*" : getSearchString()), SearchType.AdUser), _asyncQuery);
_asyncQuery = new AsyncQuery();
_asyncQuery.setModel(this);
_asyncQuery.asyncCallback = new INewAsyncCallback() { public void OnSuccess(Object model, Object ReturnValue)
{
AdElementListModel adElementListModel = (AdElementListModel) model;
java.util.HashSet<Guid> excludeUsers = new java.util.HashSet<Guid>();
if (adElementListModel.getExcludeItems() != null)
{
for (Object item : adElementListModel.getExcludeItems())
{
DbUser a = (DbUser) item;
excludeUsers.add(a.getuser_id());
}
}
adElementListModel.setgroups(new java.util.ArrayList<EntityModel>());
for (IVdcQueryable item : (java.util.ArrayList<IVdcQueryable>)((VdcQueryReturnValue)ReturnValue).getReturnValue())
{
ad_groups a = (ad_groups) item;
if (!excludeUsers.contains(a.getid()))
{
DbUser tempVar3 = new DbUser();
tempVar3.setuser_id(a.getid());
tempVar3.setIsGroup(true);
tempVar3.setname(a.getname());
tempVar3.setsurname("");
tempVar3.setusername("");
tempVar3.setdomain(a.getdomain());
DbUser user = tempVar3;
EntityModel tempVar4 = new EntityModel();
tempVar4.setEntity(user);
adElementListModel.getgroups().add(tempVar4);
}
}
OnUserAndAdGroupsLoaded(adElementListModel);
}};
Frontend.RunQuery(VdcQueryType.Search, new SearchParameters("ADGROUP@" + domain + ": name=" + (StringHelper.isNullOrEmpty(getSearchString()) ? "*" : getSearchString()), SearchType.AdGroup), _asyncQuery);
}
private void OnUserAndAdGroupsLoaded(AdElementListModel adElementListModel)
{
if (adElementListModel.getusers() != null && adElementListModel.getgroups() != null)
{
java.util.ArrayList<EntityModel> items = new java.util.ArrayList<EntityModel>();
items.addAll(getusers());
items.addAll(getgroups());
adElementListModel.getSelectAll().setEntity(false);
adElementListModel.setItems(items);
setusers(null);
setgroups(getusers());
setIsEmpty(items.isEmpty());
}
}
@Override
protected void AsyncSearch()
{
super.AsyncSearch();
SyncSearch();
}
private java.util.ArrayList<EntityModel> privateusers;
public java.util.ArrayList<EntityModel> getusers()
{
return privateusers;
}
public void setusers(java.util.ArrayList<EntityModel> value)
{
privateusers = value;
}
private java.util.ArrayList<EntityModel> privategroups;
public java.util.ArrayList<EntityModel> getgroups()
{
return privategroups;
}
public void setgroups(java.util.ArrayList<EntityModel> value)
{
privategroups = value;
}
@Override
public void eventRaised(Event ev, Object sender, EventArgs args)
{
super.eventRaised(ev, sender, args);
if (sender == getSelectAll())
{
if (getItems() == null)
{
return;
}
boolean selectAll = (Boolean) getSelectAll().getEntity();
EntityModel entityModel;
for (Object item : getItems())
{
entityModel = (EntityModel)item;
entityModel.setIsSelected(selectAll);
}
}
}
@Override
protected String getListName() {
return "AdElementListModel";
}
}