package org.ovirt.engine.ui.uicommonweb.models.disks;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.ovirt.engine.core.common.businessentities.VmTemplate;
import org.ovirt.engine.core.common.businessentities.storage.DiskImage;
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 DiskTemplateListModel extends SearchableListModel<DiskImage, VmTemplate> {
public DiskTemplateListModel() {
setTitle(ConstantsManager.getInstance().getConstants().templatesTitle());
setHelpTag(HelpTag.templates);
setHashName("templates"); //$NON-NLS-1$
}
@Override
protected void onEntityChanged() {
super.onEntityChanged();
if (getEntity() != null) {
getSearchCommand().execute();
}
}
@Override
protected void syncSearch() {
DiskImage diskImage = getEntity();
if (diskImage == null) {
return;
}
IdQueryParameters getVmTemplatesByImageGuidParameters = new IdQueryParameters(diskImage.getImageId());
getVmTemplatesByImageGuidParameters.setRefresh(getIsQueryFirstTime());
Frontend.getInstance().runQuery(VdcQueryType.GetVmTemplatesByImageGuid, getVmTemplatesByImageGuidParameters, new AsyncQuery<VdcQueryReturnValue>(
returnValue -> {
HashMap<Boolean, VmTemplate> map = returnValue.getReturnValue();
List<VmTemplate> templates = new ArrayList<>();
templates.add(map.get(true));
setItems(templates);
}));
setIsQueryFirstTime(false);
}
@Override
protected void onSelectedItemChanged() {
super.onSelectedItemChanged();
updateActionAvailability();
}
@Override
protected void selectedItemsChanged() {
super.selectedItemsChanged();
updateActionAvailability();
}
private void updateActionAvailability() {
}
@Override
protected String getListName() {
return "DiskTemplateListModel"; //$NON-NLS-1$
}
}