/*
 * SSA_DebugFrame.java
 *
 * Created on 22 Март 2006 г., 17:06
 */

/**
 *
 * @author voit
 */
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

//----------------------------------------------------------------------------//

// Класс для создания дочернего окна.
public class SSA_DebugFrame extends Frame implements ActionListener, WindowListener
{
    private SSA_VideoClient videoClient;
    public List listDebug;
    private Button btnStop, btnStart;
    private boolean printMsg;

    ////////////////////////////////////////////////////////////////////////////
    //
    SSA_DebugFrame( String title, SSA_VideoClient cli, boolean enabled )
    {
        super( title );

        videoClient = cli;

        setBackground( Color.lightGray );

        // Отключение менеджера компоновки.
        setLayout( null );

        // Установка размера самого окна.

        setBounds( 300, 10, 400, 360 );

        listDebug = new List();
        listDebug.setBackground( Color.white );
        listDebug.setBounds( 5, 25, 390, 275 );

        btnStop = new Button( "Stop messages" );
        btnStop.setBounds( 5, 305, 120, 25 );

        btnStart = new Button( "Start messages" );
        btnStart.setBounds( 130, 305, 120, 25 );

        // Регистрация фрейма для перехвата событий окна в интерфейсе WindowListener.
        addWindowListener( this );

        // Регистрация кнопок в интерфейсе ActionListener.
        btnStop.addActionListener( this );
        btnStart.addActionListener( this );

        // Регистрация компонентов в контейнере.
        add( listDebug );
        add( btnStop );
        add( btnStart );

        printMsg = enabled;

        setVisible( enabled );
    }
    //
    ////////////////////////////////////////////////////////////////////////////

    ////////////////////////////////////////////////////////////////////////////
    //
    public synchronized void msg( String str )
    {
        if( printMsg )
        {
            listDebug.add( str );

            listDebug.select( listDebug.getItemCount() - 1 );

            listDebug.makeVisible( listDebug.getItemCount() - 1 );
        }
    }
    //
    ////////////////////////////////////////////////////////////////////////////

    ////////////////////////////////////////////////////////////////////////////
    //
    public void actionPerformed( ActionEvent evt )
    {
        Object src = evt.getSource();

        if( src == btnStop )
            printMsg = false;

        if( src == btnStart )
            printMsg = true;
    }
    //
    ////////////////////////////////////////////////////////////////////////////

    ////////////////////////////////////////////////////////////////////////////
    //
    public void windowClosing( WindowEvent evt )
    {
        if( evt.getID() == Event.WINDOW_DESTROY )
            setVisible( false );
    }
    //
    ////////////////////////////////////////////////////////////////////////////

    ////////////////////////////////////////////////////////////////////////////
    //
    public void windowOpened( WindowEvent evt ) {}
    public void windowDeactivated( WindowEvent evt ) {}
    public void windowDeiconified( WindowEvent evt ) {}
    public void windowIconified( WindowEvent evt ) {}
    public void windowClosed( WindowEvent evt ) {}
    public void windowActivated( WindowEvent evt ) {}
    //
    ////////////////////////////////////////////////////////////////////////////
}

