import diamondedge.util.*;
import diamondedge.ado.*;
import diamondedge.vb.*;
import java.awt.*;
import java.awt.event.*;

public class Ticker extends AwtForm
             implements ActionListener {
    public TextField txtString = new TextField();
    public AwtLabel lblTape = new AwtLabel();
    public Button cmdFaster = new Button();
    public Button cmdStop = new Button();
    public Button cmdSlower = new Button();
    public Button cmdStart = new Button();
    public VbTimer Timer1 = new VbTimer();

    public Ticker() {
    }

    public void initialize() {
        if( initialized )
            return;
        try
        {
            setLayout( null );
            setName( "Ticker" );
            setBackground( Color.white );
            setTitle( "Ticker Tape" );
            //unsup LinkTopic = "Form1";
            setScaleHeight( 1065 );
            setScaleWidth( 6885 );
            setFormLocation( 127, 296 );
            setSize( 459, 71 );
            setFormSize( 459, 71 );

            cmdStop.setName( "cmdStop" );
            add( cmdStop );
            cmdStop.setLabel( "Stop" );
            //unsup cmdStop.TabIndex = 3;
            cmdStop.setVisible( false );
            cmdStop.setLocation( 192, 40 );
            cmdStop.setSize( 81, 25 );

            cmdFaster.setName( "cmdFaster" );
            add( cmdFaster );
            cmdFaster.setLabel( "Faster >>" );
            //unsup cmdFaster.TabIndex = 5;
            cmdFaster.setVisible( false );
            cmdFaster.setLocation( 280, 40 );
            cmdFaster.setSize( 81, 25 );

            cmdSlower.setName( "cmdSlower" );
            add( cmdSlower );
            cmdSlower.setLabel( "<< Slower" );
            //unsup cmdSlower.TabIndex = 4;
            cmdSlower.setVisible( false );
            cmdSlower.setLocation( 104, 40 );
            cmdSlower.setSize( 81, 25 );

            cmdStart.setName( "cmdStart" );
            add( cmdStart );
            cmdStart.setLabel( "Start" );
            //unsup cmdStart.TabIndex = 1;
            cmdStart.setVisible( true );
            cmdStart.setLocation( 192, 40 );
            cmdStart.setSize( 81, 25 );

            Timer1.setName( "Timer1" );
            add( Timer1 );
            Timer1.setEnabled( false );
            Timer1.setInterval( 250 );
            Timer1.setVisible( true );
            Timer1.setLocation( 408, 40 );

            txtString.setName( "txtString" );
            add( txtString );
            //unsup txtString.TabIndex = 0;
            txtString.setText( "Diamond Edge VB Converter" );
            txtString.setVisible( true );
            txtString.setLocation( 120, 8 );
            txtString.setSize( 233, 19 );

            lblTape.setName( "lblTape" );
            add( lblTape );
            lblTape.setBackground( Color.white );
            lblTape.repaint();
            //unsup lblTape.FontUnderline = false;
            //unsup lblTape.FontStrikethrough = false;
            lblTape.setForeground( Color.red );
            lblTape.repaint();
            //unsup lblTape.TabIndex = 2;
            lblTape.setVisible( false );
            lblTape.setLocation( 0, 0 );
            lblTape.setSize( 467, 33 );
            lblTape.setFont( new Font("SansSerif", Font.BOLD|Font.ITALIC, 22) );
        } catch(Exception _e_) { Err.set(_e_,"Ticker"); }

        if( !unloaded )
            enableEvents();
        super.initialize();
        initialized = true;
    }

    // methods

    // events

    private void cmdFaster_Click() {
        try {

            if ((Timer1.getInterval() - 25) > 25) {
                Timer1.setInterval( Timer1.getInterval() - 25 );
            } else {
                Timer1.setInterval( 1 );
            }

        } catch(Exception _e_) { Err.set(_e_,"cmdFaster_Click"); }
    }

    private void cmdStop_Click() {
        try {

            cmdStart.setVisible( true );
            txtString.setVisible( true );
            cmdFaster.setVisible( false );
            cmdSlower.setVisible( false );
            lblTape.setVisible( false );
            cmdStop.setVisible( false );
            Timer1.setEnabled( false );
            lblTape.setLocation( TckrTape.getTicker().getSize().width, lblTape.getLocation().y );

        } catch(Exception _e_) { Err.set(_e_,"cmdStop_Click"); }
    }

    private void cmdSlower_Click() {
        try {

            Timer1.setInterval( Timer1.getInterval() + 25 );

        } catch(Exception _e_) { Err.set(_e_,"cmdSlower_Click"); }
    }

    private void cmdStart_Click() {
        try {

            lblTape.setText( txtString.getText() );
            lblTape.setLocation( TckrTape.getTicker().getSize().width, lblTape.getLocation().y );
            txtString.setVisible( false );
            cmdStart.setVisible( false );
            cmdFaster.setVisible( true );
            cmdSlower.setVisible( true );
            lblTape.setVisible( true );
            cmdStop.setVisible( true );
            Timer1.setEnabled( true );

        } catch(Exception _e_) { Err.set(_e_,"cmdStart_Click"); }
    }

    private void Timer1_Timer() {
        try {

            if ((lblTape.getSize().width + lblTape.getLocation().x) > 0) {
                lblTape.setLocation( lblTape.getLocation().x - (int)Math.rint( (TckrTape.getTicker().getSize().width / 15) ), lblTape.getLocation().y );
            } else {
                lblTape.setLocation( TckrTape.getTicker().getSize().width, lblTape.getLocation().y );
            }

        } catch(Exception _e_) { Err.set(_e_,"Timer1_Timer"); }
    }

    // implementation of Listener interfaces

    public void actionPerformed( ActionEvent e ) {
        if (e.getSource() == cmdFaster) {
            cmdFaster_Click();
        } else if (e.getSource() == cmdStop) {
            cmdStop_Click();
        } else if (e.getSource() == cmdSlower) {
            cmdSlower_Click();
        } else if (e.getSource() == cmdStart) {
            cmdStart_Click();
        } else if (e.getSource() == Timer1) {
            Timer1_Timer();
        }
    }

    public void enableEvents() {
        cmdFaster.addActionListener( this );
        cmdStop.addActionListener( this );
        cmdSlower.addActionListener( this );
        cmdStart.addActionListener( this );
        Timer1.addActionListener( this );
    }
}