/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.apache.wicket.settings;
import org.apache.wicket.ajax.WicketAjaxDebugJQueryResourceReference;
import org.apache.wicket.ajax.WicketAjaxJQueryResourceReference;
import org.apache.wicket.ajax.WicketEventJQueryResourceReference;
import org.apache.wicket.request.resource.ResourceReference;
import org.apache.wicket.resource.DynamicJQueryResourceReference;
import org.apache.wicket.resource.JQueryResourceReference;
import org.apache.wicket.util.lang.Args;
/**
* Class for settings related to the JavaScript libraries that come with and are used by Wicket.
* <p>
* With these settings the user application can replace the JavaScript libraries used for Wicket's
* event and Ajax functionality. By default Wicket uses {@linkplain JQueryResourceReference JQuery}
* as a backing library but via this interface the application can replace the implementations of
* wicket-event.js, wicket-ajax.js and wicket-ajax-debug.js to use implementations on other
* libraries, such as YUI or DOJO. The resource reference implementations need to specify the
* {@linkplain ResourceReference#getDependencies() dependency} on the backing library, if needed.
*
* @since 6.0
*/
public class JavaScriptLibrarySettings
{
private ResourceReference jQueryReference = DynamicJQueryResourceReference.get();
private ResourceReference wicketEventReference = WicketEventJQueryResourceReference.get();
private ResourceReference wicketAjaxReference = WicketAjaxJQueryResourceReference.get();
private ResourceReference wicketAjaxDebugReference = WicketAjaxDebugJQueryResourceReference.get();
/**
* @return the reference to the JQuery JavaScript library used as backing library for
* wicket-event and wicket-ajax
*/
public ResourceReference getJQueryReference()
{
return jQueryReference;
}
/**
* @param jQueryReference
* a reference to the JQuery JavaScript library used as backing library for
* wicket-event and wicket-ajax
* @return {@code this} object for chaining
*/
public JavaScriptLibrarySettings setJQueryReference(ResourceReference jQueryReference)
{
this.jQueryReference = Args.notNull(jQueryReference, "jQueryReference");
return this;
}
/**
* @return the reference to the implementation of wicket-event.js
*/
public ResourceReference getWicketEventReference()
{
return wicketEventReference;
}
/**
* @param wicketEventReference
* a reference to the implementation of wicket-event.js
* @return {@code this} object for chaining
*/
public JavaScriptLibrarySettings setWicketEventReference(ResourceReference wicketEventReference)
{
this.wicketEventReference = Args.notNull(wicketEventReference, "wicketEventReference");
return this;
}
/**
* @return the reference to the implementation of wicket-ajax.js
*/
public ResourceReference getWicketAjaxReference()
{
return wicketAjaxReference;
}
/**
* @param wicketAjaxReference
* a reference to the implementation of wicket-ajax.js
* @return {@code this} object for chaining
*/
public JavaScriptLibrarySettings setWicketAjaxReference(ResourceReference wicketAjaxReference)
{
this.wicketAjaxReference = Args.notNull(wicketAjaxReference, "wicketAjaxReference");
return this;
}
/**
* The Wicket Ajax Debug Window.
*
* @return the reference to the implementation of wicket-ajax-debug.js
*/
public ResourceReference getWicketAjaxDebugReference()
{
return wicketAjaxDebugReference;
}
/**
* @param wicketAjaxDebugReference
* a reference to the implementation of wicket-ajax-debug.js
* @return {@code this} object for chaining
*/
public JavaScriptLibrarySettings setWicketAjaxDebugReference(ResourceReference wicketAjaxDebugReference)
{
this.wicketAjaxDebugReference = Args.notNull(wicketAjaxDebugReference,
"wicketAjaxDebugReference");
return this;
}
}