package mit.sql.ui ;

public class ActionPanel
extends mit.util.ui.ActionPanel
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.swing.xJButton[] buttons = null ;
	public mit.swing.xJButton[] getButtons(){ return this.buttons ; }
	public void setButtons( mit.swing.xJButton[] buttons ) { this.buttons = buttons ; }

	private mit.sql.ui.GetProceduresButton getProceduresButton = new mit.sql.ui.GetProceduresButton() ;
	private mit.sql.ui.GetTablesButton getTablesButton = new mit.sql.ui.GetTablesButton() ;

	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() ;
		setButtons( r.getActionButtons() ) ;
		setAction() ;
	}

	public String getActionLabel()
	{
		return "Action" ;
	}

	public void addNotify()
	{
		try
		{
			mit.swing.xJButton[] buttons = new mit.swing.xJButton[ 2 ] ;
			buttons[ 0 ] = getProceduresButton ;
			buttons[ 1 ] = getTablesButton ;
			setButtons( buttons ) ;

			super.addNotify() ;

			getListenerAdapter().addHandled( mit.comm.event.DisplayResultEvent.class ) ;
		}
		catch( Exception ex )
		{
			ex.printStackTrace() ;
		}
	}

}