Package com.google.code.jqwicket

Source Code of com.google.code.jqwicket.SliderPage$AjaxSlider

package com.google.code.jqwicket;

import com.google.code.jqwicket.ui.slider.SliderBehavior;
import com.google.code.jqwicket.ui.slider.SliderOptions;
import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.request.cycle.RequestCycle;

import static com.google.code.jqwicket.api.JQuery.js;
import static com.google.code.jqwicket.api.JQuery.wicketAjaxGet;

public class SliderPage extends DemoPage {

    public SliderPage() {

        add(new WebMarkupContainer("slider").add(new SliderBehavior(
                new SliderOptions().min(10).max(100).value(20))));

        add(new AjaxSlider("ajaxSlider") {
            private static final long serialVersionUID = 1L;

            @Override
            public void onValueChanged(AjaxRequestTarget target, int newValue) {
                target.prependJavaScript("alert('Value received on server: "
                        + newValue + "');");
            }
        });

    }

    public abstract static class AjaxSlider extends WebMarkupContainer {

        private static final long serialVersionUID = 1L;

        public AjaxSlider(String id) {
            super(id);
            super.setOutputMarkupId(true);
        }

        public abstract void onValueChanged(AjaxRequestTarget target, int newValue);

        @Override
        protected void onInitialize() {
            super.onInitialize();
            AbstractDefaultAjaxBehavior ajaxBehavior = new AbstractDefaultAjaxBehavior() {
                private static final long serialVersionUID = 1L;

                @Override
                protected void respond(AjaxRequestTarget target) {
                    String sliderValue = RequestCycle.get().getRequest()
                            .getRequestParameters().getParameterValue("sv").toString();
                    if (Utils.isNotBlank(sliderValue)) {
                        onValueChanged(target, Integer.valueOf(sliderValue));
                    }
                }
            };
            super.add(ajaxBehavior);
            super.add(new SliderBehavior(new SliderOptions()
                    .changeEvent(wicketAjaxGet(
                            ajaxBehavior,
                            new MapBuilder<String, Object>().add("sv",
                                    js("ui.value")).build()))));
        }

    }

    /**
     * {@inheritDoc}
     *
     * @see com.google.code.jqwicket.DemoPage#getExampleTitle()
     */
    @Override
    protected String getExampleTitle() {
        return "JQuery UI Slider example";
    }

    /**
     * {@inheritDoc}
     *
     * @see com.google.code.jqwicket.DemoPage#getExampleDescription()
     */
    @Override
    protected String getExampleDescription() {
        return "This example demonstrates JQuery UI Slider integration";
    }

}
TOP

Related Classes of com.google.code.jqwicket.SliderPage$AjaxSlider

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.