package mit.swing.event ;

public class ListSelectionAdapter
extends mit.event.Adapter
implements	javax.swing.event.ListSelectionListener
	,	mit.swing.event.ListSelectionRaiser
{
	private mit.event.RaiserAdapter raiserAdapter = null ;
	public mit.event.RaiserAdapter getRaiserAdapter() { return this.raiserAdapter ; }
	public void setRaiserAdapter( mit.event.RaiserAdapter raiserAdapter ) { this.raiserAdapter = raiserAdapter ; }

	private javax.swing.event.ListSelectionEvent listSelectionEvent = null ;
	public javax.swing.event.ListSelectionEvent getListSelectionEvent() { return this.listSelectionEvent ; }
	public void setListSelectionEvent( javax.swing.event.ListSelectionEvent listSelectionEvent ) { this.listSelectionEvent = listSelectionEvent ; }

	public ListSelectionAdapter( Object owner )
	{
		super( owner ) ;
		setRaiserAdapter( new mit.event.RaiserAdapter( owner ) ) ;
		if( owner instanceof javax.swing.DefaultListSelectionModel )
		{
			( ( javax.swing.DefaultListSelectionModel ) owner ).addListSelectionListener( this ) ;
		}
		else if( owner instanceof javax.swing.JList )
		{
			( ( javax.swing.JList ) owner ).addListSelectionListener( this ) ;
		}
		else if( owner instanceof javax.swing.ListSelectionModel )
		{
			( ( javax.swing.ListSelectionModel ) owner ).addListSelectionListener( this ) ;
		}
	}

	public void valueChanged( javax.swing.event.ListSelectionEvent e ) { setEvent( e ) ; }

	private void setEvent( javax.swing.event.ListSelectionEvent e )
	{
		try
		{
			if( e.getSource().equals( getRaiserAdapter().getOwner() ) )
			{
				setListSelectionEvent( e ) ;
				new mit.swing.event.ListSelectionEvent( this ).raise() ;
			}
		}
		catch( Exception ex )
		{
			ex.printStackTrace() ;
		}
	}

}