package mit.sql.ui ;

public class CriteriaPanel
extends mit.util.ui.CriteriaPanel
implements	mit.event.Listener
{
	private mit.event.ListenerAdapter listenerAdapter = new mit.event.ListenerAdapter( this ) ;
	public mit.event.ListenerAdapter getListenerAdapter() { return this.listenerAdapter ; }
	public void setListenerAdapter( mit.event.ListenerAdapter listenerAdapter ) { this.listenerAdapter = listenerAdapter ; }

	private mit.sql.ui.DatabaseName databaseName = new mit.sql.ui.DatabaseName() ;
	private mit.sql.ui.Username username = new mit.sql.ui.Username() ;
	private mit.sql.ui.Password password = new mit.sql.ui.Password() ;

	private javax.swing.JComponent[] fields = null ;
	public javax.swing.JComponent[] getFields() { return this.fields ; }
	public void setFields( javax.swing.JComponent[] fields ) { this.fields = fields ; }

	public void eventRaised( mit.event.Event e )
	{
		try
		{
			if( e instanceof mit.comm.event.DisplayResultEvent )
			{
				HandleDisplayResultEvent( ( mit.comm.event.DisplayResultEvent ) e ) ;
			}
		}
		catch( Throwable ex )
		{
			ex.printStackTrace() ;
		}
	}

	private synchronized void HandleDisplayResultEvent( mit.comm.event.DisplayResultEvent e )
	{
		mit.comm.event.DisplayResultRaiser r = ( mit.comm.event.DisplayResultRaiser ) e.getSource() ;
		java.util.Vector fieldsV = r.getCriteriaComponents() ;
		if( null != fieldsV )
		{
			javax.swing.JComponent[] fields = new javax.swing.JComponent[ fieldsV.size() ] ;
			int i = 0 ;
			java.util.Enumeration enum = fieldsV.elements() ;
			while( enum.hasMoreElements() )
			{
				fields[ i ] = ( javax.swing.JComponent ) enum.nextElement() ;
				i ++ ;
			}
			setFields( fields ) ;
			setCriteria() ;
			invalidate() ;
			getParent().invalidate() ;
			repaint() ;
		}
	}

	public String getCriteriaLabel()
	{
		return "Criteria" ;
	}

	public void addNotify()
	{
		try
		{
			javax.swing.JComponent[] fields = new javax.swing.JComponent[ 3 ] ;
			fields[ 0 ] = databaseName ;
			fields[ 1 ] = username ;
			fields[ 2 ] = password ;
			setFields( fields ) ;

			super.addNotify() ;

			getListenerAdapter().addHandled( mit.comm.event.DisplayResultEvent.class ) ;
		}
		catch( Exception ex )
		{
			ex.printStackTrace() ;
		}
	}
}