org.wicketstuff.js.ext.util.ExtResourcesHeaderItem.java Source code

Java tutorial

Introduction

Here is the source code for org.wicketstuff.js.ext.util.ExtResourcesHeaderItem.java

Source

/*
 * 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.wicketstuff.js.ext.util;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import org.apache.wicket.Application;
import org.apache.wicket.RuntimeConfigurationType;
import org.apache.wicket.markup.head.HeaderItem;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import org.apache.wicket.request.Response;
import org.apache.wicket.request.resource.JavaScriptResourceReference;
import org.apache.wicket.request.resource.ResourceReference;
import org.apache.wicket.settings.IDebugSettings;
import org.apache.wicket.settings.IJavaScriptLibrarySettings;
import org.wicketstuff.js.ext.ExtBundle;
import org.wicketstuff.js.ext.ExtWicketAdapterBundle;

public class ExtResourcesHeaderItem extends HeaderItem {

    private static final ExtResourcesHeaderItem INSTANCE = new ExtResourcesHeaderItem();

    public static ExtResourcesHeaderItem get() {
        return INSTANCE;
    }

    private ExtResourcesHeaderItem() {
    }

    @Override
    public List<? extends HeaderItem> getProvidedResources() {
        List<HeaderItem> resources = new ArrayList<HeaderItem>();

        String extBase, extAll, patchedExtAjax, extAdapt;
        if (Application.get().getConfigurationType().equals(RuntimeConfigurationType.DEVELOPMENT)) {
            extBase = ExtBundle.EXT_BASE_DEBUG;
            extAll = ExtBundle.EXT_ALL_DEBUG;
            patchedExtAjax = ExtWicketAdapterBundle.PATCHED_EXT_BASE_AJAX;
            extAdapt = ExtWicketAdapterBundle.EXT_WICKET_ADAPTER_DEBUG;
        } else {
            extBase = ExtBundle.EXT_BASE_DEPLOY;
            extAll = ExtBundle.EXT_ALL_DEPLOY;
            patchedExtAjax = ExtWicketAdapterBundle.PATCHED_EXT_BASE_AJAX;
            extAdapt = ExtWicketAdapterBundle.EXT_WICKET_ADAPTER_DEPLOY;
        }
        resources.add(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(ExtBundle.class, extBase)));
        resources.add(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(ExtBundle.class, extAll)));
        resources.add(JavaScriptHeaderItem
                .forReference(new JavaScriptResourceReference(ExtBundle.class, patchedExtAjax)));
        resources
                .add(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(ExtBundle.class, extAdapt)));
        return resources;
    }

    @Override
    public Iterable<? extends HeaderItem> getDependencies() {
        final Application application = Application.get();
        IJavaScriptLibrarySettings jsLibrarySettings = application.getJavaScriptLibrarySettings();

        final IDebugSettings debugSettings = application.getDebugSettings();
        if (debugSettings.isAjaxDebugModeEnabled()) {
            return Arrays.asList(JavaScriptHeaderItem.forReference(jsLibrarySettings.getWicketAjaxDebugReference()),
                    JavaScriptHeaderItem.forScript("Wicket.Ajax.DebugWindow.enabled=true;",
                            "wicket-ajax-debug-enable"));
        } else {
            ResourceReference wicketAjaxReference = jsLibrarySettings.getWicketAjaxReference();
            return Arrays.asList(JavaScriptHeaderItem.forReference(wicketAjaxReference));
        }
    }

    @Override
    public Iterable<?> getRenderTokens() {
        return Arrays.asList("wicket-extjs-resources");
    }

    @Override
    public void render(final Response response) {
        for (HeaderItem item : getProvidedResources()) {
            item.render(response);
        }
    }
}