/******************************************************************************* * * 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 } }