code: public void valueChanged( ListSelectionEvent e ) {
          if( !e.getValueIsAdjusting() ) {
  
              // We need to install this new value into the value model, but
              // we don't want to propogate it back down to the adapted selection
              // model (since we are responding to a change in that model).
              skipSelectionModelUpdate = true;
              setValue(getSelectedRows());
              skipSelectionModelUpdate = false;
          }
      }
docs: /*
  (non-Javadoc)
  
  @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)