All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.agilecoders.wicket.sass.BootstrapSass Maven / Gradle / Ivy

The newest version!
package de.agilecoders.wicket.sass;

import org.apache.wicket.Application;
import org.apache.wicket.markup.html.IPackageResourceGuard;
import org.apache.wicket.markup.html.SecurePackageResourceGuard;
import org.apache.wicket.request.resource.IResourceReferenceFactory;
import org.apache.wicket.request.resource.ResourceReferenceRegistry;

/**
 * Bootstrap sass compiler settings accessor class
 */
public final class BootstrapSass {

    /**
     * Construct.
     */
    private BootstrapSass() {
        throw new UnsupportedOperationException();
    }

    /**
     * Installs given settings for given application
     *
     * @param app            The current application
     * @param configFactory  The {@link SassCompilerOptionsFactory} to create new {@link io.bit3.jsass.Options}.
     */
    public static void install(final Application app, final SassCompilerOptionsFactory configFactory) {

        SassCacheManager cacheManager = new SassCacheManager(configFactory);
        cacheManager.install(app);

        IPackageResourceGuard resourceGuard = app.getResourceSettings().getPackageResourceGuard();
        if (resourceGuard instanceof SecurePackageResourceGuard) {
            SecurePackageResourceGuard securePackageResourceGuard = (SecurePackageResourceGuard) resourceGuard;
            securePackageResourceGuard.addPattern("+*.scss");
            securePackageResourceGuard.addPattern("+*.sass");
        }

        ResourceReferenceRegistry resourceReferenceRegistry = app.getResourceReferenceRegistry();
        IResourceReferenceFactory delegate = resourceReferenceRegistry.getResourceReferenceFactory();
        resourceReferenceRegistry.setResourceReferenceFactory(new SassResourceReferenceFactory(delegate));
    }

    /**
     * Installs given settings for given application
     *
     * @param app      The current application
     */
    public static void install(final Application app) {
        install(app, null);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy