package mit.mitid.ui ;

public class TerminateServiceComponent
extends mit.swing.xJComponent
implements	mit.comm.event.DisplayResultRaiser
	,	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 String status = null ;
	public String getStatus() { return this.status ; }
	public void setStatus( String status ) { this.status = status ; }

	private String statusMessage = null ;
	public String getStatusMessage() { return this.statusMessage ; }
	public void setStatusMessage( String statusMessage ) { this.statusMessage = statusMessage ; }

	private javax.swing.JComponent resultsComponent = null ;
	public javax.swing.JComponent getResultsComponent() { return this.resultsComponent ; }
	public void setResultsComponent( javax.swing.JComponent resultsComponent ) { this.resultsComponent = resultsComponent ; }

	private java.util.Vector criteriaComponents = null ;
	public java.util.Vector getCriteriaComponents() { return this.criteriaComponents ; }
	void setCriteriaComponents( java.util.Vector criteriaComponents ) { this.criteriaComponents = criteriaComponents ; }

	private javax.swing.JButton[] actionButtons = null ;
	public javax.swing.JButton[] getActionButtons() { return this.actionButtons ; }
	public void setActionButtons( javax.swing.JButton[] actionButtons ) { this.actionButtons = actionButtons ; }

	private mit.mitid.TERMINATE terminate = new mit.mitid.TERMINATE() ;

	public void eventRaised( mit.event.Event e )
	{
		try
		{
			if( e instanceof mit.comm.event.ResultEvent )
			{
				HandleResultEvent( ( mit.comm.event.ResultEvent ) e ) ;
			}
		}
		catch( Exception ex )
		{
			ex.printStackTrace() ;
		}
	}

	private void HandleResultEvent( mit.comm.event.ResultEvent e )
	{
		mit.comm.event.ResultRaiser r = ( mit.comm.event.ResultRaiser ) e.getSource() ;
		String result = r.getResult() ;
		if( result.startsWith( mit.mitid.PROTOCOL.ERROR ) )
		{
			terminate.deserialize( result ) ;
			if( null != terminate.getStatus() )
			{
				setStatus( terminate.getStatus() ) ;
				( new mit.comm.event.DisplayResultEvent( this ) ).raise() ;
			}
		}
	}
	
	public void addNotify()
	{
		super.addNotify() ;
		try
		{
			getListenerAdapter().addHandled( mit.comm.event.ResultEvent.class ) ;
		}
		catch( Exception ex )
		{
			ex.printStackTrace() ;
		}
	}
}