private Color[] getColorPalette() { if (palette == null) { palette = getModel().createColorPalette(); } return palette; }
private int getSliderCount() { return getModel().getSliderCount(); }
private void setSliderSample(int index, double v) { getModel().setSliderSample(index, v); }
private Color getSliderColor(int index) { ImageInfo.UncertaintyVisualisationMode uvMode = getModel().getImageInfo().getUncertaintyVisualisationMode(); if (uvMode != null) { if (uvMode == ImageInfo.UncertaintyVisualisationMode.Transparency_Blending) { return Color.WHITE; } else if (uvMode == ImageInfo.UncertaintyVisualisationMode.Monochromatic_Blending) { return getModel().getSliderColor(getSliderCount() - 1); } } return getModel().getSliderColor(index); }
private boolean canChangeSliderCount() { ImageInfo.UncertaintyVisualisationMode uvMode = getModel().getImageInfo().getUncertaintyVisualisationMode(); return uvMode == null || uvMode == ImageInfo.UncertaintyVisualisationMode.None || uvMode == ImageInfo.UncertaintyVisualisationMode.Polychromatic_Blending || uvMode == ImageInfo.UncertaintyVisualisationMode.Polychromatic_Overlay; }
private JMenuItem createMenuItemDeleteSlider(final int removeIndex) { JMenuItem menuItem = new JMenuItem("Remove Slider"); menuItem.setMnemonic('D'); menuItem.addActionListener(e -> { getModel().removeSlider(removeIndex); hidePopup(); applyChanges(); }); return menuItem; }
private void setSliderColor(int index, Color c) { getModel().setSliderColor(index, c); applyChanges(); }
private void setLastSliderSample(double v) { setSliderSample(getModel().getSliderCount() - 1, v); }
private double getNormalizedHistogramViewSampleValue(double sample) { final double minVisibleSample = scaleInverse(getModel().getMinHistogramViewSample()); final double maxVisibleSample = scaleInverse(getModel().getMaxHistogramViewSample()); sample = scaleInverse(sample); double delta = maxVisibleSample - minVisibleSample; if (delta == 0 || Double.isNaN(delta)) { delta = 1; } return (sample - minVisibleSample) / delta; }
private boolean maybeShowSliderActions(MouseEvent mouseEvent) { if (getModel().isColorEditable() && mouseEvent.isPopupTrigger()) { final int sliderIndex = getSelectedSliderIndex(mouseEvent); showSliderActions(mouseEvent, sliderIndex); return true; } return false; }
private boolean isSliderVisible(int sliderIndex) { if (sliderIndex == 0 || sliderIndex == getSliderCount() - 1) { return true; } ImageInfo.UncertaintyVisualisationMode uvMode = getModel().getImageInfo().getUncertaintyVisualisationMode(); return uvMode == null || uvMode == ImageInfo.UncertaintyVisualisationMode.None || uvMode == ImageInfo.UncertaintyVisualisationMode.Polychromatic_Blending || uvMode == ImageInfo.UncertaintyVisualisationMode.Polychromatic_Overlay; }
private boolean isSliderEditable(int sliderIndex) { ImageInfo.UncertaintyVisualisationMode uvMode = getModel().getImageInfo().getUncertaintyVisualisationMode(); return uvMode == null || uvMode == ImageInfo.UncertaintyVisualisationMode.None || uvMode == ImageInfo.UncertaintyVisualisationMode.Polychromatic_Blending || uvMode == ImageInfo.UncertaintyVisualisationMode.Polychromatic_Overlay || (uvMode == ImageInfo.UncertaintyVisualisationMode.Monochromatic_Blending && isLastSliderIndex(sliderIndex)); }
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 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(); }
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(); }