/** * Copyright 2012 Universitat Pompeu Fabra. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * */ package org.onexus.website.api.theme; import org.apache.wicket.Component; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.behavior.Behavior; import org.apache.wicket.event.IEvent; 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.markup.head.OnLoadHeaderItem; import org.apache.wicket.request.resource.CssResourceReference; import org.apache.wicket.resource.JQueryPluginResourceReference; public class DefaultTheme extends Behavior { private static final HeaderItem BOOTSTRAP_CSS = CssHeaderItem.forReference(new CssResourceReference(DefaultTheme.class, "css/bootstrap.min.css")); private static final HeaderItem BOOTSTRAP_JS = JavaScriptHeaderItem.forReference(new JQueryPluginResourceReference(DefaultTheme.class, "js/bootstrap.min.js")); private static final HeaderItem STYLE_CSS = CssHeaderItem.forReference(new CssResourceReference(DefaultTheme.class, "css/style.css")); private static final HeaderItem COLORBOX_JS = JavaScriptHeaderItem.forReference(new JQueryPluginResourceReference(DefaultTheme.class, "colorbox/jquery.colorbox-min.js")); private static final HeaderItem COLORBOX_CSS = CssHeaderItem.forReference(new CssResourceReference(DefaultTheme.class, "colorbox/colorbox.css")); private static final HeaderItem THEME_JS = JavaScriptHeaderItem.forReference(new JQueryPluginResourceReference(DefaultTheme.class, "defaulttheme.js")); @Override public void renderHead(Component component, IHeaderResponse response) { response.render(BOOTSTRAP_CSS); response.render(STYLE_CSS); response.render(COLORBOX_CSS); response.render(BOOTSTRAP_JS); response.render(COLORBOX_JS); response.render(THEME_JS); response.render(OnLoadHeaderItem.forScript( getTooltipJavascript() + getModalJavascript() + getPopoverJavascript() + getMoveFooter() + getColorBoxJavascript() ) ); } private static String getTooltipJavascript() { return "$(\"[rel=tooltip]\").tooltip({ placement: 'bottom'});"; } private static String getTooltipHideJavascript() { return "$(\"[rel=tooltip]\").tooltip('hide');"; } private static String getModalJavascript() { return "$(\"div.modal\").modal({ show: false });"; } private static String getPopoverJavascript() { return "$(\"[rel=popover]\").popover({ placement: 'bottom'});"; } private static String getMoveFooter() { return "moveFooter();"; } private static String getColorBoxJavascript() { return "$(\".iframe\").colorbox({iframe:true, width:\"80%\", height:\"80%\"});"; } @Override public void onEvent(Component component, IEvent<?> event) { if (event.getPayload() instanceof AjaxRequestTarget) { AjaxRequestTarget target = (AjaxRequestTarget) event.getPayload(); target.prependJavaScript(getTooltipHideJavascript()); target.appendJavaScript(getTooltipJavascript()); target.appendJavaScript(getMoveFooter()); target.appendJavaScript(getColorBoxJavascript()); } } }