package org.github.etcd.viewer.html.resource;
import java.util.Arrays;
import org.apache.wicket.Application;
import org.apache.wicket.markup.head.CssHeaderItem;
import org.apache.wicket.markup.head.HeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import org.apache.wicket.request.Url;
import org.apache.wicket.request.resource.ResourceReference;
import org.apache.wicket.request.resource.UrlResourceReference;
import org.apache.wicket.resource.JQueryResourceReference;
public final class WebResources {
private static final String BOOTSTRAP_VERSION = "3.3.4";
private static final String FONT_AWESOME_VERSION = "4.3.0";
private static final String MAXCDN_URL_PREFIX = "https://maxcdn.bootstrapcdn.com/";
private static final String WEBJARS_URL_PREFIX = "/webjars/";
private static final String BOOTSTRAP_CSS_URL = "bootstrap/" + BOOTSTRAP_VERSION + "/css/bootstrap" + getMinifiedSuffix() + ".css";
private static final String BOOTSTRAP_THEME_CSS_URL = "bootstrap/" + BOOTSTRAP_VERSION + "/css/bootstrap-theme" + getMinifiedSuffix() + ".css";
private static final String BOOTSTRAP_JS_URL = "bootstrap/" + BOOTSTRAP_VERSION + "/js/bootstrap" + getMinifiedSuffix() + ".js";
private static final String FONT_AWESOME_CSS_URL = "font-awesome/" + FONT_AWESOME_VERSION + "/css/font-awesome" + getMinifiedSuffix() + ".css";
private static final ResourceReference BOOTSTRAP_CSS = new UrlResourceReference(Url.parse(getUrlPrefix() + BOOTSTRAP_CSS_URL));
private static final ResourceReference BOOTSTRAP_THEME_CSS = new UrlResourceReference(Url.parse(getUrlPrefix() + BOOTSTRAP_THEME_CSS_URL)) {
private static final long serialVersionUID = 1L;
@Override
public Iterable<? extends HeaderItem> getDependencies() {
return Arrays.asList(CssHeaderItem.forReference(BOOTSTRAP_CSS));
}
};
private static final ResourceReference BOOTSTRAP_JS = new UrlResourceReference(Url.parse(getUrlPrefix() + BOOTSTRAP_JS_URL)) {
private static final long serialVersionUID = 1L;
@Override
public Iterable<? extends HeaderItem> getDependencies() {
final ResourceReference backingLibraryReference;
if (Application.exists()) {
backingLibraryReference = Application.get().getJavaScriptLibrarySettings().getJQueryReference();
} else {
backingLibraryReference = JQueryResourceReference.get();
}
return Arrays.asList(CssHeaderItem.forReference(BOOTSTRAP_CSS), JavaScriptHeaderItem.forReference(backingLibraryReference));
}
};
private static final ResourceReference FONT_AWESOME_CSS = new UrlResourceReference(Url.parse(getUrlPrefix() + FONT_AWESOME_CSS_URL));
private static String getMinifiedSuffix() {
return Application.get().getResourceSettings().getUseMinifiedResources() ? ".min" : "";
}
private static String getUrlPrefix() {
return Boolean.parseBoolean(System.getProperty("USE_MAXCDN", "false")) ? MAXCDN_URL_PREFIX : WEBJARS_URL_PREFIX;
}
public static void renderBootstrapHeader(IHeaderResponse response) {
response.render(JavaScriptHeaderItem.forReference(BOOTSTRAP_JS));
}
public static void renderBootstrapThemeHeader(IHeaderResponse response) {
response.render(CssHeaderItem.forReference(BOOTSTRAP_THEME_CSS));
}
public static void renderFontAwesomeHeader(IHeaderResponse response) {
response.render(CssHeaderItem.forReference(FONT_AWESOME_CSS));
}
}