package org.ovirt.engine.ui.uicommonweb.models.hosts;
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.ui.uicompat.*;
import org.ovirt.engine.ui.uicommonweb.validation.*;
import org.ovirt.engine.core.common.businessentities.*;
import org.ovirt.engine.ui.uicommonweb.*;
import org.ovirt.engine.ui.uicommonweb.models.*;
@SuppressWarnings("unused")
public class MoveHost extends ListModel
{
private ListModel privateCluster;
public ListModel getCluster()
{
return privateCluster;
}
private void setCluster(ListModel value)
{
privateCluster = value;
}
private java.util.ArrayList<VDS> privateSelectedHosts;
public java.util.ArrayList<VDS> getSelectedHosts()
{
return privateSelectedHosts;
}
public void setSelectedHosts(java.util.ArrayList<VDS> value)
{
privateSelectedHosts = value;
}
public MoveHost()
{
setCluster(new ListModel());
//Cluster.ValueChanged += new EventHandler(Cluster_ValueChanged);
getCluster().getSelectedItemChangedEvent().addListener(this);
}
private void Cluster_SelectedItemChanged()
{
if (getCluster().getSelectedItem() != null)
{
VDSGroup cluster = (VDSGroup)getCluster().getSelectedItem();
//IEnumerable<VDSGroup> clusters = Cluster.Options.Cast<VDSGroup>();
java.util.ArrayList<VDSGroup> clusters = (java.util.ArrayList<VDSGroup>)getCluster().getItems();
//var hosts = DataProvider.GetHostList()
//.Where(a => clusters.All(b => b.ID != a.vds_group_id)
// && (a.status == VDSStatus.Maintenance || a.status == VDSStatus.PendingApproval)
// && (a.Version.FullVersion == null || a.Version.FullVersion.GetFriendlyVersion() >= cluster.compatibility_version))
//.ToList();
//var items = hosts.Select(a => new EntityModel() { Entity = a }).ToList();
java.util.ArrayList<VDS> hosts = DataProvider.GetHostList();
java.util.ArrayList<EntityModel> items = new java.util.ArrayList<EntityModel>();
for (VDS vds : hosts)
{
if (Linq.FirstOrDefault(clusters, new Linq.ClusterPredicate(vds.getvds_group_id())) == null && (vds.getstatus() == VDSStatus.Maintenance || vds.getstatus() == VDSStatus.PendingApproval) && (vds.getVersion().getFullVersion() == null || Extensions.GetFriendlyVersion(vds.getVersion().getFullVersion()).compareTo(cluster.getcompatibility_version()) >= 0))
{
EntityModel entity = new EntityModel();
entity.setEntity(vds);
items.add(entity);
}
}
//IEnumerable<int> previouslySelectedHostIDs = new List<int>();
java.util.ArrayList<Guid> previouslySelectedHostIDs = new java.util.ArrayList<Guid>();
if (getItems() != null)
{
//previouslySelectedHostIDs =
// Items.Cast<EntityModel>().Where(a => Selector.GetIsSelected(a)).Select(a => (a.Entity as VDS).vds_id);
for (Object item : getItems())
{
EntityModel entity = (EntityModel)item;
if (entity.getIsSelected())
{
previouslySelectedHostIDs.add(((VDS)entity.getEntity()).getvds_id());
}
}
}
setItems(items);
//items.Each(a => Selector.SetIsSelected(a, previouslySelectedHostIDs.Contains((a.Entity as VDS).vds_id)));
for (EntityModel entity : items)
{
entity.setIsSelected(previouslySelectedHostIDs.contains(((VDS)entity.getEntity()).getvds_id()));
}
}
}
@Override
public void eventRaised(Event ev, Object sender, EventArgs args)
{
super.eventRaised(ev, sender, args);
if (ev.equals(SelectedItemChangedEventDefinition) && sender == getCluster())
{
Cluster_SelectedItemChanged();
}
}
public boolean Validate()
{
getCluster().ValidateSelectedItem(new IValidation[] { new NotEmptyValidation() });
return getCluster().getIsValid();
}
}