Example usage for com.google.gwt.widgetideas.client SliderBar SliderBar

List of usage examples for com.google.gwt.widgetideas.client SliderBar SliderBar

Introduction

In this page you can find the example usage for com.google.gwt.widgetideas.client SliderBar SliderBar.

Prototype

public SliderBar(double minValue, double maxValue, LabelFormatter labelFormatter) 

Source Link

Document

Create a slider bar.

Usage

From source file:org.rstudio.studio.client.workbench.views.plots.ui.manipulator.ManipulatorControlSlider.java

License:Open Source License

public ManipulatorControlSlider(String variable, double value, Manipulator.Slider slider,
        ManipulatorChangedHandler changedHandler) {
    super(variable, slider, changedHandler);

    // get manipulator styles
    ManipulatorStyles styles = ManipulatorResources.INSTANCE.manipulatorStyles();

    // containing panel
    VerticalPanel panel = new VerticalPanel();

    // setup caption panel and add it
    HorizontalPanel captionPanel = new HorizontalPanel();

    Label captionLabel = new Label();
    captionLabel.setStyleName(styles.captionLabel());
    captionLabel.setText(getLabel() + ":");
    captionPanel.add(captionLabel);//www  .  ja va 2 s . c  om
    final Label valueLabel = new Label();
    valueLabel.setStyleName(styles.sliderValueLabel());
    captionPanel.add(valueLabel);
    panel.add(captionPanel);

    // create with range and custom formatter
    final double min = slider.getMin();
    final double max = slider.getMax();
    final double range = max - min;
    sliderBar_ = new SliderBar(min, max, this);

    // show labels only at the beginning and end
    sliderBar_.setNumLabels(1);

    // set step size (default to 1 or continuous decimal as appropriate)
    double step = slider.getStep();
    if (step == -1) {
        // short range or decimals means continous decimal
        if (range < 2 || hasDecimals(max) || hasDecimals(min))
            step = range / 250; // ~ one step per pixel
        else
            step = 1;
    }
    sliderBar_.setStepSize(step);

    // optional tick marks 
    if (slider.getTicks()) {
        double numTicks = range / step;
        if (numTicks <= 25) // no more than 25 ticks
            sliderBar_.setNumTicks(new Double(numTicks).intValue());
        else
            sliderBar_.setNumTicks(1);
    } else {
        // always at beginning and end
        sliderBar_.setNumTicks(1);
    }

    // update label on change
    sliderBar_.addChangeListener(new ChangeListener() {
        @Override
        public void onChange(Widget sender) {
            valueLabel.setText(formatLabel(sliderBar_, sliderBar_.getCurrentValue()));
        }
    });
    sliderBar_.setCurrentValue(value);

    // fire changed even on slide completed
    sliderBar_.addSlideCompletedListener(new ChangeListener() {
        @Override
        public void onChange(Widget sender) {
            ManipulatorControlSlider.this.onValueChanged(new JSONNumber(sliderBar_.getCurrentValue()));
        }

    });

    // add slider bar and fully initialize widget
    panel.add(sliderBar_);
    initWidget(panel);
    addControlStyle(styles.slider());
}