Package org.wicketstuff.jquery.ui.slider

Source Code of org.wicketstuff.jquery.ui.slider.SliderOptions

package org.wicketstuff.jquery.ui.slider;

import net.sf.json.JSONArray;
import net.sf.json.JSONFunction;
import net.sf.json.JSONObject;
import org.apache.wicket.util.io.IClusterable;

/**
* An integration of JQuery UI Slider widget (http://docs.jquery.com/UI/Slider/slider)
*
* A Java representation of Slider's options (http://docs.jquery.com/UI/Slider/slider#options)
*
* @author Martin Grigorov <martingrigorov @ users.sf.net>
*/
public class SliderOptions implements IClusterable
{

  private static final long serialVersionUID = 1L;

  private static final String HANDLES = "handles";

  private static final String CHANGE = "change";

  private static final String RANGE = "range";

  private static final String MAX = "max";

  private static final String MIN = "min";

  private static final String STEPPING = "stepping";

  private static final String ANIMATE = "animate";

  private static final String START = "start";

  private static final String STOP = "stop";

  private static final String SLIDE = "slide";

  private transient final JSONObject json = new JSONObject();

  public SliderOptions setStepping(final Integer stepping)
  {
    json.put(STEPPING, stepping);
    return this;
  }

  public Integer getStepping()
  {
    return (Integer)json.get(STEPPING);
  }

  public SliderOptions setMin(final Integer min)
  {
    json.put(MIN, min);
    return this;
  }

  public Integer getMin()
  {
    return (Integer)json.get(MIN);
  }

  public SliderOptions setMax(final Integer max)
  {
    json.put(MAX, max);
    return this;
  }

  public Integer getMax()
  {
    return (Integer)json.get(MAX);
  }

  public SliderOptions setRange(final Boolean range)
  {
    json.put(RANGE, range);
    return this;
  }

  public Boolean getRange()
  {
    return (Boolean)json.get(RANGE);
  }

  public SliderOptions setAnimate(final Boolean animate)
  {
    json.put(ANIMATE, animate);
    return this;
  }

  public Boolean getAnimate()
  {
    return (Boolean)json.get(ANIMATE);
  }

  public SliderOptions setOnChange(final String body, final String... parametersNames)
  {
    putFunction(CHANGE, body, parametersNames);
    return this;
  }

  public SliderOptions setOnStart(final String body, final String... parametersNames)
  {
    putFunction(START, body, parametersNames);
    return this;
  }

  public SliderOptions setOnStop(final String body, final String... parametersNames)
  {
    putFunction(STOP, body, parametersNames);
    return this;
  }

  public SliderOptions setOnSlide(final String body, final String... parametersNames)
  {
    putFunction(SLIDE, body, parametersNames);
    return this;
  }

  public JSONFunction getOnChange()
  {

    return (JSONFunction)json.get(CHANGE);
  }

  public SliderOptions setHandles(final SliderHandleOptions... handlesSettings)
  {

    if (handlesSettings != null && handlesSettings.length > 0)
    {
      final JSONArray handlesArray = new JSONArray();

      for (final SliderHandleOptions sliderHandleSettings : handlesSettings)
      {
        handlesArray.add(sliderHandleSettings.getJSON());
      }

      json.put(HANDLES, handlesArray);
    }

    return this;
  }

  public String toJSON()
  {
    return json.toString();
  }

  private void putFunction(final String keyName, final String body, final String[] parametersNames)
  {

    final JSONFunction function;

    if (parametersNames != null && parametersNames.length > 0)
    {
      function = new JSONFunction(parametersNames, body);
    }
    else
    {
      function = new JSONFunction(body);
    }

    json.put(keyName, function);
  }

}
TOP

Related Classes of org.wicketstuff.jquery.ui.slider.SliderOptions

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.