Changeset 7193


Ignore:
Timestamp:
11/12/10 21:03:23 (9 years ago)
Author:
aivar
Message:

Dynamically sets minimum, as well as maximum. TIdied up code & added comments.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/maven/projects/slim-plugin/src/main/java/loci/slim/colorizer/InputPanel.java

    r7060 r7193  
    5050 
    5151/** 
    52  * TODO 
    53  * 
    54  * <dl><dt><b>Source code:</b></dt> 
    55  * <dd><a href="http://dev.loci.wisc.edu/trac/java/browser/trunk/projects/slim-plugin/src/main/java/loci/colorizer/InputPanel.java">Trac</a>, 
    56  * <a href="http://dev.loci.wisc.edu/svn/java/trunk/projects/slim-plugin/src/main/java/loci/colorizer/InputPanel.java">SVN</a></dd></dl> 
     52 * The input panel allows the user to select/deselect automatic colorizer 
     53 * range selection.  When automatic mode is off it allows the user to enter 
     54 * minimum and maximum values. 
    5755 * 
    5856 * @author Aivar Grislis grislis at wisc.edu 
    5957 */ 
    60 public class InputPanel extends JPanel implements IColorizeRangeListener, ItemListener, ActionListener { 
     58public class InputPanel extends JPanel implements IColorizeRangeListener { 
    6159    JCheckBox m_autoCheckBox; 
    6260    JTextField m_startTextField; 
     
    6563    double m_start; 
    6664    double m_stop; 
     65    double m_min; 
    6766    double m_max; 
    6867    IColorizeRangeListener m_listener; 
     
    8180 
    8281        m_auto = true; 
    83         m_start = m_stop = m_max = 0.0; 
     82        m_start = m_stop = m_min = m_max = 0.0; 
    8483 
    8584        setLayout(new BoxLayout(this, BoxLayout.X_AXIS)); 
    8685 
    8786        m_autoCheckBox = new JCheckBox("Auto", m_auto); 
    88         m_autoCheckBox.addItemListener(this); 
     87        m_autoCheckBox.addItemListener( 
     88            new ItemListener() { 
     89                public void itemStateChanged(ItemEvent e) { 
     90                    m_auto = m_autoCheckBox.isSelected(); 
     91                    if (m_auto) { 
     92                        m_start = m_min; 
     93                        m_startTextField.setText("" + m_start); 
     94 
     95                        m_stop = m_max; 
     96                        m_stopTextField.setText("" + m_stop); 
     97                    } 
     98                    enableAppropriately(); 
     99                    m_listener.setRange(m_auto, m_start, m_stop, m_min, m_max); 
     100                } 
     101            } 
     102        ); 
    89103        add(m_autoCheckBox); 
    90104 
    91105        m_startTextField = new JTextField(); 
    92106        m_startTextField.setText("" + m_start); 
    93         m_startTextField.addActionListener(this); 
     107        m_startTextField.addActionListener( 
     108            new ActionListener() { 
     109                public void actionPerformed(ActionEvent e) { 
     110                    m_start = Double.parseDouble(m_startTextField.getText()); 
     111                    m_listener.setRange(m_auto, m_start, m_stop, m_min, m_max); 
     112                } 
     113            } 
     114        ); 
    94115        add(m_startTextField); 
    95116 
    96117        m_stopTextField = new JTextField(); 
    97118        m_startTextField.setText("" + m_stop); 
    98         m_stopTextField.addActionListener(this); 
     119        m_stopTextField.addActionListener( 
     120            new ActionListener() { 
     121                public void actionPerformed(ActionEvent e) { 
     122                    m_stop = Double.parseDouble(m_stopTextField.getText()); 
     123                    m_listener.setRange(m_auto, m_start, m_stop, m_min, m_max); 
     124                } 
     125            } 
     126        ); 
    99127        add(m_stopTextField); 
    100128 
     
    102130    } 
    103131 
    104     public void setRange(boolean auto, double start, double stop, double max) { 
     132    /** 
     133     * IColorizeRangeListener method.  Gets external changes to settings. 
     134     * 
     135     * @param auto 
     136     * @param start 
     137     * @param stop 
     138     * @param min 
     139     * @param max 
     140     */ 
     141    public void setRange(boolean auto, double start, double stop, double min, double max) { 
    105142        if (auto != m_auto) { 
    106143            m_auto = auto; 
     
    118155            m_stopTextField.setText("" + stop); 
    119156        } 
     157        m_min = min; 
    120158        m_max = max; 
    121159    } 
    122160 
     161    /** 
     162     * Enable/disable start/stop text fields. 
     163     */ 
    123164    private void enableAppropriately() { 
    124         m_startTextField.enable(!m_auto); 
    125         m_stopTextField.enable(!m_auto); 
    126     } 
    127  
    128     public void itemStateChanged(ItemEvent e) { 
    129         Object source = e.getItemSelectable(); 
    130         if (source == m_autoCheckBox) { 
    131             m_auto = m_autoCheckBox.isSelected(); 
    132             if (m_auto) { 
    133                 m_start = 0.0; 
    134                 m_startTextField.setText("" + m_start); 
    135  
    136                 m_stop = m_max; 
    137                 m_stopTextField.setText("" + m_stop); 
    138             } 
    139             enableAppropriately(); 
    140             m_listener.setRange(m_auto, m_start, m_stop, m_max); 
    141         } 
    142     } 
    143  
    144     public void actionPerformed(ActionEvent e) { 
    145         boolean changed = false; 
    146         Object source = e.getSource(); 
    147         if (source == m_startTextField) { 
    148             changed = true; 
    149             m_start = Double.parseDouble(m_startTextField.getText()); 
    150         } 
    151         else if (source == m_stopTextField) { 
    152             changed = true; 
    153             m_stop = Double.parseDouble(m_stopTextField.getText()); 
    154         } 
    155         if (changed) { 
    156             m_listener.setRange(m_auto, m_start, m_stop, m_max); 
    157         } 
     165        m_startTextField.setEnabled(!m_auto); 
     166        m_stopTextField.setEnabled(!m_auto); 
    158167    } 
    159168} 
Note: See TracChangeset for help on using the changeset viewer.