X-Git-Url: http://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=src%2Ftim%2Fprune%2Fsave%2FUpDownToggler.java;fp=src%2Ftim%2Fprune%2Fsave%2FUpDownToggler.java;h=ffdc1d662725ea77e3fc52a6bf9e86f8961168a8;hp=0000000000000000000000000000000000000000;hb=ce6f2161b8596f7018d6a76bff79bc9e571f35fd;hpb=2d8cb72e84d5cc1089ce77baf1e34ea3ea2f8465 diff --git a/src/tim/prune/save/UpDownToggler.java b/src/tim/prune/save/UpDownToggler.java new file mode 100644 index 0000000..ffdc1d6 --- /dev/null +++ b/src/tim/prune/save/UpDownToggler.java @@ -0,0 +1,58 @@ +package tim.prune.save; + +import javax.swing.JButton; +import javax.swing.ListSelectionModel; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; + + +/** + * Class to enable and disable a pair of up and down buttons + */ +public class UpDownToggler implements ListSelectionListener +{ + private JButton _upButton = null; + private JButton _downButton = null; + private int _maxIndex = 2; + + /** + * Constructor giving buttons to enable/disable + * @param inUpButton up button + * @param inDownButton down button + */ + public UpDownToggler(JButton inUpButton, JButton inDownButton) + { + _upButton = inUpButton; + _downButton = inDownButton; + } + + /** + * Set the list size + * @param inListSize number of items in list + */ + public void setListSize(int inListSize) + { + _maxIndex = inListSize - 1; + } + + /** + * list selection has changed + */ + public void valueChanged(ListSelectionEvent e) + { + ListSelectionModel lsm = (ListSelectionModel) e.getSource(); + if (lsm.isSelectionEmpty()) + { + // no rows are selected + _upButton.setEnabled(false); + _downButton.setEnabled(false); + } + else + { + // single row is selected + int row = lsm.getMinSelectionIndex(); + _upButton.setEnabled(row > 0); + _downButton.setEnabled(row >= 0 && row < _maxIndex); + } + } +}