using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using TradeIdeas.TIProData;
namespace WindowsFormsApplication1
{
///
/// AlertForm Main class. Here one may enter an alert config
/// strategy and receive updates within the "Results" window.
///
public partial class AlertsForm : Form
{
///
/// Alert form class constructor
///
public AlertsForm()
{
InitializeComponent();
}
private StreamingAlerts _streamingAlerts;
private void startButton_Click(object sender, EventArgs e)
{
if (null != _streamingAlerts)
_streamingAlerts.Stop();
_streamingAlerts = Form1.Connection.StreamingAlertsManager.GetAlerts(configTextBox.Text);
_streamingAlerts.StreamingAlertsData += new StreamingAlertsData(_streamingAlerts_StreamingAlertsData);
_streamingAlerts.StreamingAlertsConfig += new StreamingAlertsConfig(_streamingAlerts_StreamingAlertsConfig);
_streamingAlerts.Start();
}
void _streamingAlerts_StreamingAlertsConfig(StreamingAlerts source)
{
if (InvokeRequired)
BeginInvoke((MethodInvoker)delegate { _streamingAlerts_StreamingAlertsConfig(source); });
else
{
if (source != _streamingAlerts)
resultsTextBox.AppendText("Ignoring StreamingAlertsConfig.\r\n");
else
resultsTextBox.AppendText("Name = " + _streamingAlerts.WindowName + ", ShortForm = " + _streamingAlerts.Config + "\r\n");
}
}
private int alertCount;
private int messageCount;
void _streamingAlerts_StreamingAlertsData(List data, StreamingAlerts source)
{
if (InvokeRequired)
BeginInvoke((MethodInvoker)delegate { _streamingAlerts_StreamingAlertsData(data, source); });
else
{
if (source != _streamingAlerts)
resultsTextBox.AppendText("Ignoring StreamingAlertsData.\r\n");
else
{
alertCount += data.Count;
alertCountLabel.Text = "Alert Count: " + alertCount;
messageCount++;
messageCountLabel.Text = "Message Count: " + messageCount;
resultsTextBox.AppendText("Received " + data.Count + " alerts.\r\n");
foreach (RowData alert in data)
{
resultsTextBox.AppendText(alert.ToString());
resultsTextBox.AppendText("\r\n");
}
}
}
}
private void stopButton_Click(object sender, EventArgs e)
{
if (null != _streamingAlerts)
_streamingAlerts.Stop();
}
private void AlertsForm_FormClosed(object sender, FormClosedEventArgs e)
{
if (null != _streamingAlerts)
_streamingAlerts.Stop();
}
}
}