package org.ovirt.engine.ui.uicommonweb.models.pools;
import org.ovirt.engine.core.common.businessentities.VM;
import org.ovirt.engine.core.common.businessentities.VmPool;
import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface;
import org.ovirt.engine.core.common.queries.IdQueryParameters;
import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
import org.ovirt.engine.core.common.queries.VdcQueryType;
import org.ovirt.engine.ui.frontend.Frontend;
import org.ovirt.engine.ui.uicommonweb.help.HelpTag;
import org.ovirt.engine.ui.uicommonweb.models.SearchableListModel;
import org.ovirt.engine.ui.uicompat.ConstantsManager;
public class PoolInterfaceListModel extends SearchableListModel<VmPool, VmNetworkInterface> {
public PoolInterfaceListModel() {
setTitle(ConstantsManager.getInstance().getConstants().networkInterfacesTitle());
setHelpTag(HelpTag.network_interfaces);
setHashName("network_interfaces"); //$NON-NLS-1$
}
@Override
protected void onEntityChanged() {
super.onEntityChanged();
VmPool pool = getEntity();
if (pool != null) {
Frontend.getInstance().runQuery(VdcQueryType.GetVmDataByPoolId,
new IdQueryParameters(pool.getVmPoolId()),
new AsyncQuery<VdcQueryReturnValue>(result -> {
if (result != null) {
VM vm = result.getReturnValue();
if (vm == null) {
return;
}
syncSearch(VdcQueryType.GetVmInterfacesByVmId, new IdQueryParameters(vm.getId()));
}
}));
}
}
@Override
protected String getListName() {
return "PoolInterfaceListModel"; //$NON-NLS-1$
}
}