package org.ovirt.engine.ui.uicommonweb.models.storage; import java.util.ArrayList; import java.util.Collections; import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.comparators.LexoNumericNameableComparator; 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; @SuppressWarnings("unused") public class StorageVmListModel extends SearchableListModel<StorageDomain, VM> { public StorageVmListModel() { setTitle(ConstantsManager.getInstance().getConstants().virtualMachinesTitle()); setHelpTag(HelpTag.virtual_machines); setHashName("virtual_machines"); //$NON-NLS-1$ } @Override protected void onEntityChanged() { super.onEntityChanged(); getSearchCommand().execute(); } @Override public void setEntity(StorageDomain value) { if (value == null || !value.equals(getEntity())) { super.setEntity(value); } } @Override public void search() { if (getEntity() != null) { super.search(); } else { setItems(null); } } @Override protected void syncSearch() { if (getEntity() == null) { return; } super.syncSearch(); IdQueryParameters tempVar = new IdQueryParameters(getEntity().getId()); tempVar.setRefresh(getIsQueryFirstTime()); Frontend.getInstance().runQuery(VdcQueryType.GetVmsByStorageDomain, tempVar, new AsyncQuery<VdcQueryReturnValue>(returnValue -> { ArrayList<VM> vms = returnValue.getReturnValue(); Collections.sort(vms, new LexoNumericNameableComparator<>()); setItems(vms); setIsEmpty(vms.size() == 0); })); } @Override protected String getListName() { return "StorageVmListModel"; //$NON-NLS-1$ } }