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.Ticker.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.Ticker.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.Ticker.getSize().width / 15) ), lblTape.getLocation().y );
      }
      else
      {
        lblTape.setLocation( TckrTape.Ticker.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 );
  }
}