private void partitionSliders(boolean adjusting) { final double pos1 = scaleInverse(getFirstSliderSample()); final double pos2 = scaleInverse(getLastSliderSample()); final double delta = pos2 - pos1; for (int i = 0; i < (getSliderCount() - 1); i++) { final double value = scale(pos1 + factors[i] * delta); setSliderSample(i, value, adjusting); } }
public void distributeSlidersEvenly() { final double pos1 = scaleInverse(getFirstSliderSample()); final double pos2 = scaleInverse(getLastSliderSample()); final double delta = pos2 - pos1; final double evenSpace = delta / (getSliderCount() - 2 + 1); for (int i = 0; i < getSliderCount(); i++) { final double value = scale(pos1 + evenSpace * i); setSliderSample(i, value, false); } }
public void computeZoomInToSliderLimits() { final double firstSliderValue = scaleInverse(getFirstSliderSample()); final double lastSliderValue = scaleInverse(getLastSliderSample()); final double percentOffset = 0.0; final double minViewSample = scale(firstSliderValue - percentOffset); final double maxViewSample = scale(lastSliderValue + percentOffset); getModel().setMinHistogramViewSample(minViewSample); getModel().setMaxHistogramViewSample(maxViewSample); repaint(); }
private double computeSliderValueForX(int sliderIndex, int x) { final double minVS = scaleInverse(getModel().getMinHistogramViewSample()); final double maxVS = scaleInverse(getModel().getMaxHistogramViewSample()); final double value = scale(minVS + (x - sliderBaseLineRect.x) * (maxVS - minVS) / sliderBaseLineRect.width); if (isFirstSliderIndex(sliderIndex)) { return Math.min(value, getLastSliderSample()); } if (isLastSliderIndex(sliderIndex)) { return Math.max(value, getFirstSliderSample()); } return computeAdjustedSliderValue(sliderIndex, value); }
public void compute95Percent() { final Histogram histogram = new Histogram(getModel().getHistogramBins(), scaleInverse(getModel().getMinSample()), scaleInverse(getModel().getMaxSample())); final Range autoStretchRange = histogram.findRangeFor95Percent(); computeFactors(); setFirstSliderSample(scale(autoStretchRange.getMin())); setLastSliderSample(scale(autoStretchRange.getMax())); partitionSliders(false); computeZoomInToSliderLimits(); }