package org.ovirt.engine.ui.uicommonweb;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.ovirt.engine.core.common.businessentities.VM;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
import org.ovirt.engine.ui.uicommonweb.models.vms.IconCache;
public class IconUtils {
private IconUtils() {
}
public static boolean isCustom(String icon) {
final Guid id = IconCache.getInstance().getId(icon);
if (id == null) {
return true;
}
return AsyncDataProvider.getInstance().isCustomIconId(id);
}
/**
* @param icon icon in dataurl from
* @return icon if icon is custom, null if icon is predefined
*/
public static String filterPredefinedIcons(String icon) {
return isCustom(icon)
? icon
: null;
}
public static void prefetchIcons(Collection<VM> vmsAndPoolRepresentants,
boolean smallIcons,
boolean largeIcons,
IconCache.IconsCallback callback) {
final List<Guid> iconIdsToPrefetch = extractIconIds(vmsAndPoolRepresentants, smallIcons, largeIcons);
IconCache.getInstance().getOrFetchIcons(iconIdsToPrefetch, callback);
}
private static List<Guid> extractIconIds(Collection<VM> vms, boolean smallIcons, boolean largeIcons) {
final List<Guid> result = new ArrayList<>();
for (VM vm: vms) {
if (vm == null) {
continue;
}
if (smallIcons) {
result.add(vm.getStaticData().getSmallIconId());
}
if (largeIcons) {
result.add(vm.getStaticData().getLargeIconId());
}
}
return result;
}
}