package mit.sql.ui ;

public class Param
extends mit.swing.ui.LabeledTextField
implements//	mit.sql.event.ArgumentRaiser
//	,
	mit.event.Listener
{
	private mit.event.RaiserAdapter raiserAdapter = new mit.event.RaiserAdapter( this ) ;
	public mit.event.RaiserAdapter getRaiserAdapter() { return this.raiserAdapter ; }
	public void setRaiserAdapter( mit.event.RaiserAdapter raiserAdapter ) { this.raiserAdapter = raiserAdapter ; }

	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 ; }

	public String getValue() { return super.getText() ; }
	public void setValue( String param ) { super.setText( param ) ; }

	private String name = null ;
	public String getName() { return this.name ; }
	public void setName( String name ) { this.name = name ; }

	public static final int INPUT = 1 ;
	public static final int OUTPUT = 4 ;
	private int dataType = INPUT ;
	public int getDataType() { return this.dataType ; }
	public void setDataType( int dataType ) { this.dataType = dataType ; }

	private int number = 0 ;
	public int getNumber() { return this.number ; }
	public void setNumber( int number ) { this.number = number ; }

	private String type = null ;
	public String getType() { return this.type ; }
	public void setType( String type ) { this.type = type ; }

	public static final int NAME_COLUMN = 3 ;
	public static final int DATATYPE_COLUMN = 4 ;
	public static final int TYPENAME_COLUMN = 6 ;
	public static final int SIZE = 8 ;
	public void eventRaised( mit.event.Event e )
	{
		try
		{
			if( e instanceof mit.swing.event.DocumentEvent )
			{
				HandleDocumentEvent( ( mit.swing.event.DocumentEvent ) e ) ;
			}
			else if( e instanceof mit.util.event.ClearEvent )
			{
				HandleClearEvent( ( mit.util.event.ClearEvent ) e ) ;
			}
		}
		catch( Exception ex )
		{
			ex.printStackTrace() ;
		}
	}

	private void HandleDocumentEvent( mit.swing.event.DocumentEvent e )
	{
//		new mit.sql.event.ArgumentEvent( this ).raise() ;
	}
	
	private void HandleClearEvent( mit.util.event.ClearEvent e )
	{
		super.setText( "" ) ;
	}
	
	public void addNotify()
	{
		super.addNotify() ;
		try
		{
			super.setText( "" ) ;

			getListenerAdapter().addHandled( mit.swing.event.DocumentEvent.class ) ;
			getListenerAdapter().addHandled( mit.util.event.ClearEvent.class ) ;

			getEventControlAdapter().addContained( mit.swing.event.DocumentEvent.class ) ;
			getEventControlAdapter().addExcluded( mit.swing.event.DocumentEvent.class ) ;
		}
		catch( Exception ex )
		{
			ex.printStackTrace() ;
		}
	}
}