package org.ovirt.engine.ui.uicommon.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.uicommon.*;
import org.ovirt.engine.ui.uicommon.models.*;
import org.ovirt.engine.core.common.*;
import org.ovirt.engine.ui.uicommon.validation.*;
import org.ovirt.engine.ui.uicompat.*;
import org.ovirt.engine.core.common.businessentities.*;
import org.ovirt.engine.ui.uicommon.*;
import org.ovirt.engine.ui.uicommon.models.*;
@SuppressWarnings("unused")
public class HostInterfaceModel extends EntityModel
{
private EntityModel privateAddress;
public EntityModel getAddress()
{
return privateAddress;
}
private void setAddress(EntityModel value)
{
privateAddress = value;
}
private EntityModel privateSubnet;
public EntityModel getSubnet()
{
return privateSubnet;
}
private void setSubnet(EntityModel value)
{
privateSubnet = value;
}
private ListModel privateNetwork;
public ListModel getNetwork()
{
return privateNetwork;
}
private void setNetwork(ListModel value)
{
privateNetwork = value;
}
private EntityModel privateCheckConnectivity;
public EntityModel getCheckConnectivity()
{
return privateCheckConnectivity;
}
private void setCheckConnectivity(EntityModel value)
{
privateCheckConnectivity = value;
}
private ListModel privateBondingOptions;
public ListModel getBondingOptions()
{
return privateBondingOptions;
}
private void setBondingOptions(ListModel value)
{
privateBondingOptions = value;
}
private java.util.ArrayList<VdsNetworkInterface> privateNetworks;
public java.util.ArrayList<VdsNetworkInterface> getNetworks()
{
return privateNetworks;
}
public void setNetworks(java.util.ArrayList<VdsNetworkInterface> value)
{
privateNetworks = value;
}
private String name;
public String getName()
{
return name;
}
public void setName(String value)
{
if (!StringHelper.stringsEqual(name, value))
{
name = value;
OnPropertyChanged(new PropertyChangedEventArgs("Name"));
}
}
private NetworkBootProtocol bootProtocol = NetworkBootProtocol.values()[0];
public NetworkBootProtocol getBootProtocol()
{
return bootProtocol;
}
public void setBootProtocol(NetworkBootProtocol value)
{
if (bootProtocol != value)
{
bootProtocol = value;
BootProtocolChanged();
OnPropertyChanged(new PropertyChangedEventArgs("BootProtocol"));
}
}
private boolean noneBootProtocolAvailable = true;
public boolean getNoneBootProtocolAvailable()
{
return noneBootProtocolAvailable;
}
public void setNoneBootProtocolAvailable(boolean value)
{
if (noneBootProtocolAvailable != value)
{
noneBootProtocolAvailable = value;
OnPropertyChanged(new PropertyChangedEventArgs("NoneBootProtocolAvailable"));
}
}
private boolean bootProtocolsAvailable;
public boolean getBootProtocolsAvailable()
{
return bootProtocolsAvailable;
}
public void setBootProtocolsAvailable(boolean value)
{
if (bootProtocolsAvailable != value)
{
bootProtocolsAvailable = value;
OnPropertyChanged(new PropertyChangedEventArgs("BootProtocolsAvailable"));
}
}
public boolean getIsStaticAddress()
{
return getBootProtocol() == NetworkBootProtocol.StaticIp;
}
private boolean commitChanges;
public boolean getCommitChanges()
{
return commitChanges;
}
public void setCommitChanges(boolean value)
{
if (commitChanges != value)
{
commitChanges = value;
OnPropertyChanged(new PropertyChangedEventArgs("CommitChanges"));
}
}
private boolean privatebondingOptionsOverrideNotification;
private boolean getbondingOptionsOverrideNotification()
{
return privatebondingOptionsOverrideNotification;
}
private void setbondingOptionsOverrideNotification(boolean value)
{
privatebondingOptionsOverrideNotification = value;
}
public boolean getBondingOptionsOverrideNotification()
{
return getbondingOptionsOverrideNotification();
}
public void setBondingOptionsOverrideNotification(boolean value)
{
setbondingOptionsOverrideNotification(value);
OnPropertyChanged(new PropertyChangedEventArgs("BondingOptionsOverrideNotification"));
}
public HostInterfaceModel()
{
setAddress(new EntityModel());
setSubnet(new EntityModel());
setNetwork(new ListModel());
getNetwork().getSelectedItemChangedEvent().addListener(this);
setCheckConnectivity(new EntityModel());
getCheckConnectivity().setEntity(false);
setBondingOptions(new ListModel());
// call the Network_ValueChanged method to set all
// properties according to default value of Network:
Network_SelectedItemChanged(null);
}
@Override
public void eventRaised(Event ev, Object sender, EventArgs args)
{
super.eventRaised(ev, sender, args);
if (ev.equals(ListModel.SelectedItemChangedEventDefinition) && sender == getNetwork())
{
Network_SelectedItemChanged(null);
}
}
private void Network_SelectedItemChanged(EventArgs e)
{
UpdateCanSpecify();
network network = (network)getNetwork().getSelectedItem();
setBootProtocolsAvailable((network != null && StringHelper.stringsEqual(network.getname(), "None")) ? false : true);
if (getNetworks() != null)
{
for (VdsNetworkInterface item : getNetworks())
{
if (StringHelper.stringsEqual(item.getNetworkName(), network.getname()))
{
getAddress().setEntity(StringHelper.isNullOrEmpty(item.getAddress()) ? null : item.getAddress());
getSubnet().setEntity(StringHelper.isNullOrEmpty(item.getSubnet()) ? null : item.getSubnet());
setBootProtocol(!getNoneBootProtocolAvailable() && item.getBootProtocol() == NetworkBootProtocol.None ? NetworkBootProtocol.Dhcp : item.getBootProtocol());
break;
}
}
}
}
private void BootProtocolChanged()
{
UpdateCanSpecify();
getAddress().setIsValid(true);
getSubnet().setIsValid(true);
}
private void UpdateCanSpecify()
{
network network = (network)getNetwork().getSelectedItem();
boolean isChangable = getIsStaticAddress() && network != null && !network.getId().equals(Guid.Empty);
getAddress().setIsChangable(isChangable);
getSubnet().setIsChangable(isChangable);
}
public boolean Validate()
{
getNetwork().ValidateSelectedItem(new IValidation[] { new NotEmptyValidation() });
getAddress().setIsValid(true);
getSubnet().setIsValid(true);
network net = (network)getNetwork().getSelectedItem();
if (getIsStaticAddress() && getNetwork().getSelectedItem() != null && !net.getId().equals(Guid.Empty))
{
getAddress().ValidateEntity(new IValidation[] { new NotEmptyValidation(), new IpAddressValidation() });
getSubnet().ValidateEntity(new IValidation[] { new NotEmptyValidation(), new IpAddressValidation() });
}
return getNetwork().getIsValid() && getAddress().getIsValid() && getSubnet().getIsValid();
}
}