aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/vaadin/ui/Slider.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/vaadin/ui/Slider.java')
-rw-r--r--src/com/vaadin/ui/Slider.java372
1 files changed, 0 insertions, 372 deletions
diff --git a/src/com/vaadin/ui/Slider.java b/src/com/vaadin/ui/Slider.java
deleted file mode 100644
index 94afe4e2bd..0000000000
--- a/src/com/vaadin/ui/Slider.java
+++ /dev/null
@@ -1,372 +0,0 @@
-/*
-@VaadinApache2LicenseForJavaFiles@
- */
-
-package com.vaadin.ui;
-
-import java.util.Map;
-
-import com.vaadin.terminal.PaintException;
-import com.vaadin.terminal.PaintTarget;
-import com.vaadin.terminal.Vaadin6Component;
-
-/**
- * A component for selecting a numerical value within a range.
- *
- * Example code: <code>
- * class MyPlayer extends CustomComponent implements ValueChangeListener {
- *
- * Label volumeIndicator = new Label();
- * Slider slider;
- *
- * public MyPlayer() {
- * VerticalLayout vl = new VerticalLayout();
- * setCompositionRoot(vl);
- * slider = new Slider("Volume", 0, 100);
- * slider.setImmediate(true);
- * slider.setValue(new Double(50));
- * vl.addComponent(slider);
- * vl.addComponent(volumeIndicator);
- * volumeIndicator.setValue("Current volume:" + 50.0);
- * slider.addListener(this);
- *
- * }
- *
- * public void setVolume(double d) {
- * volumeIndicator.setValue("Current volume: " + d);
- * }
- *
- * public void valueChange(ValueChangeEvent event) {
- * Double d = (Double) event.getProperty().getValue();
- * setVolume(d.doubleValue());
- * }
- * }
- *
- * </code>
- *
- * @author Vaadin Ltd.
- */
-public class Slider extends AbstractField<Double> implements Vaadin6Component {
-
- public static final int ORIENTATION_HORIZONTAL = 0;
-
- public static final int ORIENTATION_VERTICAL = 1;
-
- /** Minimum value of slider */
- private double min = 0;
-
- /** Maximum value of slider */
- private double max = 100;
-
- /**
- * Resolution, how many digits are considered relevant after the decimal
- * point. Must be a non-negative value
- */
- private int resolution = 0;
-
- /**
- * Slider orientation (horizontal/vertical), defaults .
- */
- private int orientation = ORIENTATION_HORIZONTAL;
-
- /**
- * Default slider constructor. Sets all values to defaults and the slide
- * handle at minimum value.
- *
- */
- public Slider() {
- super();
- super.setValue(new Double(min));
- }
-
- /**
- * Create a new slider with the caption given as parameter.
- *
- * The range of the slider is set to 0-100 and only integer values are
- * allowed.
- *
- * @param caption
- * The caption for this slider (e.g. "Volume").
- */
- public Slider(String caption) {
- this();
- setCaption(caption);
- }
-
- /**
- * Create a new slider with the given range and resolution.
- *
- * @param min
- * The minimum value of the slider
- * @param max
- * The maximum value of the slider
- * @param resolution
- * The number of digits after the decimal point.
- */
- public Slider(double min, double max, int resolution) {
- this();
- setMin(min);
- setMax(max);
- setResolution(resolution);
- }
-
- /**
- * Create a new slider with the given range that only allows integer values.
- *
- * @param min
- * The minimum value of the slider
- * @param max
- * The maximum value of the slider
- */
- public Slider(int min, int max) {
- this();
- setMin(min);
- setMax(max);
- setResolution(0);
- }
-
- /**
- * Create a new slider with the given caption and range that only allows
- * integer values.
- *
- * @param caption
- * The caption for the slider
- * @param min
- * The minimum value of the slider
- * @param max
- * The maximum value of the slider
- */
- public Slider(String caption, int min, int max) {
- this(min, max);
- setCaption(caption);
- }
-
- /**
- * Gets the maximum slider value
- *
- * @return the largest value the slider can have
- */
- public double getMax() {
- return max;
- }
-
- /**
- * Set the maximum slider value. If the current value of the slider is
- * larger than this, the value is set to the new maximum.
- *
- * @param max
- * The new maximum slider value
- */
- public void setMax(double max) {
- this.max = max;
- if (getValue() > max) {
- setValue(max);
- }
- requestRepaint();
- }
-
- /**
- * Gets the minimum slider value
- *
- * @return the smallest value the slider can have
- */
- public double getMin() {
- return min;
- }
-
- /**
- * Set the minimum slider value. If the current value of the slider is
- * smaller than this, the value is set to the new minimum.
- *
- * @param max
- * The new minimum slider value
- */
- public void setMin(double min) {
- this.min = min;
- if (getValue() < min) {
- setValue(min);
- }
- requestRepaint();
- }
-
- /**
- * Get the current orientation of the slider (horizontal or vertical).
- *
- * @return {@link #ORIENTATION_HORIZONTAL} or
- * {@link #ORIENTATION_HORIZONTAL}
- */
- public int getOrientation() {
- return orientation;
- }
-
- /**
- * Set the orientation of the slider.
- *
- * @param The
- * new orientation, either {@link #ORIENTATION_HORIZONTAL} or
- * {@link #ORIENTATION_VERTICAL}
- */
- public void setOrientation(int orientation) {
- this.orientation = orientation;
- requestRepaint();
- }
-
- /**
- * Get the current resolution of the slider. The resolution is the number of
- * digits after the decimal point.
- *
- * @return resolution
- */
- public int getResolution() {
- return resolution;
- }
-
- /**
- * Set a new resolution for the slider. The resolution is the number of
- * digits after the decimal point.
- *
- * @param resolution
- */
- public void setResolution(int resolution) {
- if (resolution < 0) {
- return;
- }
- this.resolution = resolution;
- requestRepaint();
- }
-
- /**
- * Sets the value of the slider.
- *
- * @param value
- * The new value of the slider.
- * @param repaintIsNotNeeded
- * If true, client-side is not requested to repaint itself.
- * @throws ValueOutOfBoundsException
- * If the given value is not inside the range of the slider.
- * @see #setMin(double) {@link #setMax(double)}
- */
- @Override
- protected void setValue(Double value, boolean repaintIsNotNeeded) {
- final double v = value.doubleValue();
- double newValue;
- if (resolution > 0) {
- // Round up to resolution
- newValue = (int) (v * Math.pow(10, resolution));
- newValue = newValue / Math.pow(10, resolution);
- if (min > newValue || max < newValue) {
- throw new ValueOutOfBoundsException(value);
- }
- } else {
- newValue = (int) v;
- if (min > newValue || max < newValue) {
- throw new ValueOutOfBoundsException(value);
- }
- }
- super.setValue(newValue, repaintIsNotNeeded);
- }
-
- @Override
- public void setValue(Object newFieldValue)
- throws com.vaadin.data.Property.ReadOnlyException {
- if (newFieldValue != null && newFieldValue instanceof Number
- && !(newFieldValue instanceof Double)) {
- // Support setting all types of Numbers
- newFieldValue = ((Number) newFieldValue).doubleValue();
- }
-
- super.setValue(newFieldValue);
- }
-
- @Override
- public void paintContent(PaintTarget target) throws PaintException {
-
- target.addAttribute("min", min);
- if (max > min) {
- target.addAttribute("max", max);
- } else {
- target.addAttribute("max", min);
- }
- target.addAttribute("resolution", resolution);
-
- if (resolution > 0) {
- target.addVariable(this, "value", getValue().doubleValue());
- } else {
- target.addVariable(this, "value", getValue().intValue());
- }
-
- if (orientation == ORIENTATION_VERTICAL) {
- target.addAttribute("vertical", true);
- }
-
- }
-
- /**
- * Invoked when the value of a variable has changed. Slider listeners are
- * notified if the slider value has changed.
- *
- * @param source
- * @param variables
- */
- @Override
- public void changeVariables(Object source, Map<String, Object> variables) {
- if (variables.containsKey("value")) {
- final Object value = variables.get("value");
- final Double newValue = new Double(value.toString());
- if (newValue != null && newValue != getValue()
- && !newValue.equals(getValue())) {
- try {
- setValue(newValue, true);
- } catch (final ValueOutOfBoundsException e) {
- // Convert to nearest bound
- double out = e.getValue().doubleValue();
- if (out < min) {
- out = min;
- }
- if (out > max) {
- out = max;
- }
- super.setValue(new Double(out), false);
- }
- }
- }
- }
-
- /**
- * Thrown when the value of the slider is about to be set to a value that is
- * outside the valid range of the slider.
- *
- * @author Vaadin Ltd.
- *
- */
- public class ValueOutOfBoundsException extends RuntimeException {
-
- private final Double value;
-
- /**
- * Constructs an <code>ValueOutOfBoundsException</code> with the
- * specified detail message.
- *
- * @param valueOutOfBounds
- */
- public ValueOutOfBoundsException(Double valueOutOfBounds) {
- value = valueOutOfBounds;
- }
-
- /**
- * Gets the value that is outside the valid range of the slider.
- *
- * @return the value that is out of bounds
- */
- public Double getValue() {
- return value;
- }
-
- }
-
- @Override
- public Class<Double> getType() {
- return Double.class;
- }
-
-}