long paletteX1 = paletteRect.x + Math.round(getRelativeSliderPos(getFirstSliderSample())); long paletteX2 = paletteRect.x + Math.round(getRelativeSliderPos(getLastSliderSample())); g2d.setStroke(STROKE_1);
int x2 = (int) getAbsoluteSliderPos(getFirstSliderSample()); int y2 = y1; g2d.drawLine(x1, y1, x2, y2);
private void computeFactors() { factors = new double[getSliderCount()]; final double firstPS = scaleInverse(getFirstSliderSample()); final double lastPS = scaleInverse(getLastSliderSample()); double dsn = lastPS - firstPS; if (dsn == 0 || Double.isNaN(dsn)) { dsn = Double.MIN_VALUE; } for (int i = 0; i < getSliderCount(); i++) { final double sample = scaleInverse(getSliderSample(i)); final double dsi = sample - firstPS; factors[i] = dsi / dsn; } }
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); }
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(); }