package org.xcolab.view.theme;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.web.servlet.resource.PathResourceResolver;
import org.springframework.web.servlet.resource.ResourceResolverChain;
import org.xcolab.client.admin.enums.ConfigurationAttributeKey;
import org.xcolab.util.enums.theme.ColabTheme;
import java.util.Collections;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
public class ThemeResourceResolver extends PathResourceResolver {
@Override
protected Resource resolveResourceInternal(HttpServletRequest request,
String requestPath,
List<? extends Resource> locations, ResourceResolverChain chain) {
Resource themedResource = super.resolveResourceInternal(request,
requestPath, getOverrideResourceLocations(), chain);
if (themedResource != null) {
return themedResource;
}
return super.resolveResourceInternal(request, requestPath, locations, chain);
}
private List<Resource> getOverrideResourceLocations() {
ColabTheme activeTheme = ConfigurationAttributeKey.ACTIVE_THEME.get();
final ClassPathResource overrideLocation =
new ClassPathResource(activeTheme.getOverrideImagePath() + "/");
return Collections.singletonList(overrideLocation);
}
}