Changeset 7836 for trunk


Ignore:
Timestamp:
12/15/11 11:46:56 (8 years ago)
Author:
aivar
Message:

Added cursors to histogram to change LUT ranges.

Location:
trunk/projects/slim-plugin/src/main/java/imagej/slim/histogram
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/projects/slim-plugin/src/main/java/imagej/slim/histogram/HistogramPanel.java

    r7834 r7836  
    1414import javax.swing.JPanel; 
    1515 
    16 import ij.process.LUT; 
    17  
    1816/** 
    1917 * 
     
    2220public class HistogramPanel extends JPanel { 
    2321    static final int ONE_HEIGHT = 20; 
    24     static final int FUDGE_FACTOR = 2; 
     22    static final int FUDGE_FACTOR = 3; 
     23    private IHistogramPanelListener _listener; 
    2524    private final Object _synchObject = new Object(); 
    2625    private int _width; 
     
    6867             
    6968            public void mouseReleased(MouseEvent e) { 
     69                boolean changed = false; 
    7070                synchronized (_synchObject) { 
    7171                    if (_draggingMinCursor) { 
    72                         _minCursor = e.getX(); //TODO adjust this and max to go to begin/end of histo 
     72                        _minCursor = e.getX(); 
     73                        if (_minCursor < _inset) { 
     74                            _minCursor = _inset - 1; 
     75                        } 
    7376                        _draggingMinCursor = false; 
     77                        changed = true; 
    7478                    } 
    7579                    else if (_draggingMaxCursor) {  
    7680                        _maxCursor = e.getX(); 
     81                        if (_maxCursor > _width - _inset) { 
     82                            _maxCursor = _width - _inset; 
     83                        } 
    7784                        _draggingMaxCursor = false; 
     85                        changed = true; 
    7886                    }                     
     87                } 
     88                if (changed) { 
     89                    repaint(); 
     90                    if (null != _listener) { 
     91                        // convert to 0..(_width - 1) 
     92                        int min = _minCursor - _inset + 1; 
     93                        int max = _maxCursor - _inset - 1; 
     94                        _listener.setMinMax(min, max); 
     95                    } 
    7996                } 
    8097            } 
     
    110127 
    111128    /** 
     129     * Sets a listener for dragging minimum and maximum. 
     130     * 
     131     * @param listener 
     132     */ 
     133    public void setListener(IHistogramPanelListener listener) { 
     134        _listener = listener; 
     135    } 
     136 
     137    /** 
    112138     * Changes settings and redraws. 
    113139     *  
     
    115141     */ 
    116142    public void setBins(int[] bins) { 
     143        System.out.println("SET BINS"); 
    117144        synchronized (_synchObject) { 
    118145            _bins = bins; 
  • trunk/projects/slim-plugin/src/main/java/imagej/slim/histogram/HistogramTool.java

    r7834 r7836  
    3333 * @author aivar 
    3434 */ 
    35 public class HistogramTool { 
     35public class HistogramTool implements IHistogramPanelListener { 
    3636    private final static int WIDTH = 320; 
    3737    private final static int HISTOGRAM_HEIGHT = 160; 
    3838    private final static int COLORBAR_HEIGHT = 20; 
    39     private final static int EXTRA = 2; 
     39    private final static int EXTRA = 4; 
     40    //TODO kludged in, user s/b able to select LUTS, somewhere else: 
    4041    private final static String HARDCODED_LUT =  "/Applications/ImageJ/luts/aivar6.lut"; // aivar6 is my five color blue/cyan/green/yellow/red spectral palette 
    4142    private static HistogramTool INSTANCE = null; 
     
    4849        // create the histogram and color bar display panels 
    4950        _histogram = new HistogramPanel(WIDTH, HISTOGRAM_HEIGHT, EXTRA); 
     51        _histogram.setListener(this); 
    5052        _colorBar = new ColorBarPanel(WIDTH, COLORBAR_HEIGHT, EXTRA); 
    5153        _colorBar.setLUT(getLUT()); 
     
    98100        _histogram.setBins(histogramData.binValues(WIDTH)); 
    99101    } 
     102 
     103    public void setMinMax(int min, int max) { 
     104        System.out.println("setMinMax(" + min + "," + max + ")"); 
     105    } 
    100106} 
Note: See TracChangeset for help on using the changeset viewer.