package mit.sql.ui ;

public class SQLPanel
extends mit.util.ui.Panel
implements	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 ; }

	private mit.rmi.ui.ActionPanel serverAction = new mit.rmi.ui.ActionPanel() ;
	private mit.rmi.ui.CriteriaPanel serverCriteria = new mit.rmi.ui.CriteriaPanel() ;

	private mit.sql.ui.ActionPanel sqlAction = new mit.sql.ui.ActionPanel() ;
	private mit.sql.ui.CriteriaPanel sqlCriteria = new mit.sql.ui.CriteriaPanel() ;

	private mit.util.ui.ActionPanel action = serverAction ;
	public mit.util.ui.ActionPanel getActionPanel() { return this.action ; }
	public void setActionPanel( mit.util.ui.ActionPanel action ) { this.action = action ; }

	private mit.util.ui.CriteriaPanel criteria = serverCriteria ;
	public mit.util.ui.CriteriaPanel getCriteriaPanel() { return this.criteria ; }
	public void setCriteriaPanel( mit.util.ui.CriteriaPanel criteria ) { this.criteria = criteria ; }

	public void eventRaised( mit.event.Event e )
	{
		try
		{
			if( e instanceof mit.util.event.NewAppEvent )
			{
				HandleNewAppEvent( ( mit.util.event.NewAppEvent ) e ) ;
			}
		}
		catch( Exception ex )
		{
			ex.printStackTrace() ;
		}
	}

	private void HandleNewAppEvent( mit.util.event.NewAppEvent e )
	{
		remove( getActionPanel() ) ;
		remove( getCriteriaPanel() ) ;
		setActionPanel( sqlAction ) ;
		setCriteriaPanel( sqlCriteria ) ;

		gbc.gridx = 1 ;
		gbc.gridy = 1 ;
		gbc.gridwidth = java.awt.GridBagConstraints.RELATIVE ;
		gbc.gridheight = 2 ;
		gbc.weightx = 0.8 ;
		gbc.weighty = 1.0 ;
		gbc.anchor = java.awt.GridBagConstraints.WEST ;
		gbc.fill = java.awt.GridBagConstraints.BOTH ;
		if( null != getCriteriaPanel() )
		{
			addAComponent( getCriteriaPanel() , gbl , gbc ) ;
		}

		gbc.gridx = 2 ;
		gbc.gridwidth = java.awt.GridBagConstraints.REMAINDER ;
		gbc.weightx = 0.2 ;
		if( null != getActionPanel() )
		{
			addAComponent( getActionPanel() , gbl , gbc ) ;
		}

		if( null != getCriteriaPanel() )
		{
			getCriteriaPanel().requestFocus() ;
			transferFocus() ;
		}

		invalidate() ;
		validate() ;
		repaint() ;
	}

	public void addNotify()
	{
		try
		{
			super.addNotify() ;

			getListenerAdapter().addHandled( mit.util.event.NewAppEvent.class ) ;
		}
		catch( Exception ex )
		{
			ex.printStackTrace() ;
		}
	}

	public static void main( String[] args )
	{
		try
		{
			mit.swing.xJFrame f = new mit.swing.xJFrame( null , "SQL Panel" ) ;
			f.getContentPane().setLayout( new java.awt.BorderLayout() ) ;
			f.setBackground( java.awt.Color.green ) ;

			mit.sql.ui.SQLPanel p = new mit.sql.ui.SQLPanel() ;
			p.setBackground( java.awt.Color.pink ) ;

			f.getContentPane().add( p , java.awt.BorderLayout.CENTER ) ;
			f.setSize( 400 , 300 ) ;
			f.show() ;
		}
		catch( Exception ex )
		{
			ex.printStackTrace() ;
		}
	}
}