package com.constellio.app.ui.util; import java.io.IOException; import java.io.InputStream; import java.io.Serializable; import java.util.HashMap; import java.util.Map; import org.apache.commons.io.IOUtils; import com.vaadin.ui.UI; public class ThemeUtils implements Serializable { private static Map<String, Boolean> cache = new HashMap<>(); public static boolean resourceExists(String resourcePath) { Boolean resourceExists = cache.get(resourcePath); if (resourceExists == null) { UI ui = UI.getCurrent(); InputStream resourceStream; try { resourceStream = ui.getSession().getService().getThemeResourceAsStream(ui, ui.getTheme(), resourcePath); if (resourceStream != null) { resourceExists = true; IOUtils.closeQuietly(resourceStream); } else { resourceExists = false; } } catch (IOException e) { resourceExists = false; } cache.put(resourcePath, resourceExists); } return resourceExists; } }