package org.richfaces.bootstrap.resource; import javax.faces.application.ProjectStage; import javax.faces.context.FacesContext; import org.richfaces.bootstrap.BootstrapConfiguration; import org.richfaces.configuration.ConfigurationServiceHelper; import org.richfaces.resource.ResourceKey; import org.richfaces.resource.ResourceLibrary; import com.google.common.collect.ImmutableList; public class CssLibrary implements ResourceLibrary { private static final ImmutableList<ResourceKey> BOOTSTRAP_MIN = ImmutableList.of( ResourceKey.create("min/rf-bootstrap-css.css", "org.richfaces")); private static final ImmutableList<ResourceKey> BOOTSTRAP_RESPONSIVE_MIN = ImmutableList.of( ResourceKey.create("min/rf-bootstrap-responsive.css", "org.richfaces")); private static final ImmutableList<ResourceKey> BOOTSTRAP_CLIENT_SIDE = ImmutableList.of( ResourceKey.create("bootstrap.less", "org.richfaces.develop"), ResourceKey.create("less.min.js", "less"), ResourceKey.create("less.instant.js", "less")); private static final ImmutableList<ResourceKey> BOOTSTRAP_RESPONSIVE_CLIENT_SIDE = ImmutableList.of( ResourceKey.create("bootstrap-responsive.less", "org.richfaces.develop"), ResourceKey.create("less.min.js", "less"), ResourceKey.create("less.instant.js", "less")); @Override public Iterable<ResourceKey> getResources() { FacesContext facesContext = FacesContext.getCurrentInstance(); ProjectStage stage = facesContext.getApplication().getProjectStage(); Boolean isResponsive = ConfigurationServiceHelper .getBooleanConfigurationValue(facesContext, BootstrapConfiguration.Items.responsiveDesign); Boolean isClientSideStyle = ConfigurationServiceHelper .getBooleanConfigurationValue(facesContext, BootstrapConfiguration.Items.clientSideStyle); if (ProjectStage.Production != stage && isClientSideStyle) { if(isResponsive) { return BOOTSTRAP_RESPONSIVE_CLIENT_SIDE; } else { return BOOTSTRAP_CLIENT_SIDE; } } else { if(isResponsive) { return BOOTSTRAP_RESPONSIVE_MIN; } else { return BOOTSTRAP_MIN; } } } }