/*******************************************************************************
*
* 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 com.example.slider.client;
import com.example.slider.client.widget.slider.RangeSlider;
import com.example.slider.client.widget.slider.Slider;
import com.example.slider.client.widget.slider.SliderEvent;
import com.example.slider.client.widget.slider.SliderListener;
import com.example.slider.client.widget.slider.SliderOption;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.json.client.JSONNumber;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;
/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class SliderExample implements EntryPoint, SliderListener
{
private Slider m_slider;
private RangeSlider m_rangeSlider;
private Slider m_stepSlider;
private Slider m_multiSlider;
private Label m_sliderLabel;
private Label m_rangeSliderLabel;
private Label m_stepSliderLabel;
private Label m_multiSliderLabel;
/**
* This is the entry point method.
*/
public void onModuleLoad()
{
/*
* Create a slider with default behavior:
* minimum possible value of 0, maximum possible value of 100,
* default value of 25
*/
Label sliderLabel = new Label("Value:");
m_sliderLabel = new Label("0");
m_sliderLabel.addStyleName("slider-values");
m_slider = new Slider("slider");
RootPanel.get("sliderContainer").add(sliderLabel);
RootPanel.get("sliderContainer").add(m_sliderLabel);
RootPanel.get("sliderContainer").add(m_slider);
m_slider.addListener(this);
/*
* Create a RangeSlider with:
* minimum possible value of 0, maximum possible value of 100,
* default range of 25-40
*/
Label rangeLabel = new Label("Price range:");
m_rangeSliderLabel = new Label("$25 - $40");
m_rangeSliderLabel.addStyleName("slider-values");
m_rangeSlider = new RangeSlider("range", 0, 100, 25, 40);
RootPanel.get("rangeContainer").add(rangeLabel);
RootPanel.get("rangeContainer").add(m_rangeSliderLabel);
RootPanel.get("rangeContainer").add(m_rangeSlider);
m_rangeSlider.addListener(this);
/*
* Create a slider with:
* minimum possible value of 50, maximum possible value of 500,
* default 100, and step of 50
* and
*/
Label stepLabel = new Label("Donation amount ($50 increments):");
m_stepSliderLabel = new Label("$200");
m_stepSliderLabel.addStyleName("slider-values");
JSONObject options = Slider.getOptions(50, 500, new int[]{200});
options.put(SliderOption.STEP.toString(), new JSONNumber(50));
m_stepSlider = new Slider("step", options);
RootPanel.get("stepContainer").add(stepLabel);
RootPanel.get("stepContainer").add(m_stepSliderLabel);
RootPanel.get("stepContainer").add(m_stepSlider);
m_stepSlider.addListener(this);
/*
* Create a slider with:
* minimum possible value of 0, maximum possible value of 100,
* default values of 25, 50, and 75
*/
Label multiLabel = new Label("Values:");
m_multiSliderLabel = new Label("25, 50, 75");
m_multiSliderLabel.addStyleName("slider-values");
m_multiSlider = new Slider("multi", 0, 100, new int[]{25, 50, 75});
RootPanel.get("multiContainer").add(multiLabel);
RootPanel.get("multiContainer").add(m_multiSliderLabel);
RootPanel.get("multiContainer").add(m_multiSlider);
m_multiSlider.addListener(this);
}
@Override
public void onChange(SliderEvent e)
{
//We don't need to do anything, because everything is done in onSlide in this example
}
@Override
public boolean onSlide(SliderEvent e)
{
Slider source = e.getSource();
if (source == m_slider) {
m_sliderLabel.setText("" + e.getValues()[0]);
} else if (source == m_rangeSlider) {
m_rangeSliderLabel.setText("$" + e.getValues()[0] + " - $" + e.getValues()[1]);
} else if (source == m_stepSlider) {
m_stepSliderLabel.setText("$" + e.getValues()[0]);
} else if (source == m_multiSlider) {
m_multiSliderLabel.setText(e.getValues()[0] + ", " + e.getValues()[1] + ", " + e.getValues()[2]);
}
return true;
}
@Override
public void onStart(SliderEvent e)
{
// We are not going to do anything onStart
}
@Override
public void onStop(SliderEvent e)
{
// We are not going to do anything onStop
}
}