001    package sharpster.client.gui;
002    
003    /**
004     * <p>Title: </p>
005     * <p>Description: </p>
006     * <p>Copyright: Copyright (c) 2003</p>
007     * <p>Company: Kafka</p>
008     * @author Tommy Eriksson
009     * @version 1.0
010     */
011    
012    import java.awt.*;
013    import java.awt.event.*;
014    import javax.swing.*;
015    
016    
017    /**
018     * Create a SINGLE_SELECTION ListSelectionModel that calls a new
019     * method, updateSingleSelection(), each time the selection
020     * changes.  This can be a little bit more convienent than using the
021     * ListModels ListSelectionListener, since ListSelectionListeners
022     * are only given the range of indices that the change spans.
023     */
024    public class SingleSelectionModel extends DefaultListSelectionModel {
025      public SingleSelectionModel() {
026        setSelectionMode(SINGLE_SELECTION);
027      }
028    
029      public void setSelectionInterval(int index0, int index1) {
030        int oldIndex = getMinSelectionIndex();
031        super.setSelectionInterval(index0, index1);
032        int newIndex = getMinSelectionIndex();
033        if (oldIndex != newIndex) {
034          updateSingleSelection(oldIndex, newIndex);
035        }
036      }
037    
038      public void updateSingleSelection(int oldIndex, int newIndex) {
039      }
040    }